forked from tornado-packages/ethers.js
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ca1d77298 | ||
|
|
4f6748ec4c | ||
|
|
f56fc572f1 | ||
|
|
16fdf6b621 |
2
_version.d.ts
vendored
2
_version.d.ts
vendored
@@ -1 +1 @@
|
||||
export declare const version = "4.0.16";
|
||||
export declare const version = "4.0.17";
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = "4.0.16";
|
||||
exports.version = "4.0.17";
|
||||
|
||||
11
dist/ethers.js
vendored
11
dist/ethers.js
vendored
@@ -1,7 +1,7 @@
|
||||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ethers = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = "4.0.16";
|
||||
exports.version = "4.0.17";
|
||||
|
||||
},{}],2:[function(require,module,exports){
|
||||
"use strict";
|
||||
@@ -11700,12 +11700,21 @@ var JsonRpcSigner = /** @class */ (function (_super) {
|
||||
};
|
||||
JsonRpcSigner.prototype.sendTransaction = function (transaction) {
|
||||
var _this = this;
|
||||
transaction = properties_1.shallowCopy(transaction);
|
||||
var fromAddress = this.getAddress().then(function (address) {
|
||||
if (address) {
|
||||
address = address.toLowerCase();
|
||||
}
|
||||
return address;
|
||||
});
|
||||
// The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user
|
||||
// wishes to use this, it is easy to specify explicitly, otherwise
|
||||
// we look it up for them.
|
||||
if (transaction.gasLimit == null) {
|
||||
var estimate = properties_1.shallowCopy(transaction);
|
||||
estimate.from = fromAddress;
|
||||
transaction.gasLimit = this.provider.estimateGas(estimate);
|
||||
}
|
||||
return Promise.all([
|
||||
properties_1.resolveProperties(transaction),
|
||||
fromAddress
|
||||
|
||||
2
dist/ethers.min.js
vendored
2
dist/ethers.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/ethers.min.js.map
vendored
2
dist/ethers.min.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/ethers.types.txt
vendored
2
dist/ethers.types.txt
vendored
@@ -262,7 +262,7 @@ declare module 'ethers/utils/shims' {
|
||||
}
|
||||
|
||||
declare module 'ethers/_version' {
|
||||
export const version = "4.0.16";
|
||||
export const version = "4.0.17";
|
||||
}
|
||||
|
||||
declare module 'ethers/utils/bignumber' {
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ethers",
|
||||
"version": "4.0.16",
|
||||
"version": "4.0.17",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ethers",
|
||||
"version": "4.0.16",
|
||||
"version": "4.0.17",
|
||||
"description": "Ethereum wallet library.",
|
||||
"main": "./index.js",
|
||||
"types": "./index.d.ts",
|
||||
|
||||
@@ -98,12 +98,21 @@ var JsonRpcSigner = /** @class */ (function (_super) {
|
||||
};
|
||||
JsonRpcSigner.prototype.sendTransaction = function (transaction) {
|
||||
var _this = this;
|
||||
transaction = properties_1.shallowCopy(transaction);
|
||||
var fromAddress = this.getAddress().then(function (address) {
|
||||
if (address) {
|
||||
address = address.toLowerCase();
|
||||
}
|
||||
return address;
|
||||
});
|
||||
// The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user
|
||||
// wishes to use this, it is easy to specify explicitly, otherwise
|
||||
// we look it up for them.
|
||||
if (transaction.gasLimit == null) {
|
||||
var estimate = properties_1.shallowCopy(transaction);
|
||||
estimate.from = fromAddress;
|
||||
transaction.gasLimit = this.provider.estimateGas(estimate);
|
||||
}
|
||||
return Promise.all([
|
||||
properties_1.resolveProperties(transaction),
|
||||
fromAddress
|
||||
|
||||
@@ -1 +1 @@
|
||||
export const version = "4.0.16";
|
||||
export const version = "4.0.17";
|
||||
|
||||
@@ -530,6 +530,9 @@ export class BaseProvider extends Provider {
|
||||
return network;
|
||||
}));
|
||||
|
||||
// Squash any "unhandled promise" errors; the don't need to be handled
|
||||
this.ready.catch((error) => { });
|
||||
|
||||
} else {
|
||||
let knownNetwork = getNetwork((network == null) ? 'homestead': network);
|
||||
if (knownNetwork) {
|
||||
|
||||
@@ -102,12 +102,22 @@ export class JsonRpcSigner extends Signer {
|
||||
}
|
||||
|
||||
sendTransaction(transaction: TransactionRequest): Promise<TransactionResponse> {
|
||||
transaction = shallowCopy(transaction);
|
||||
|
||||
let fromAddress = this.getAddress().then((address) => {
|
||||
if (address) { address = address.toLowerCase(); }
|
||||
return address;
|
||||
});
|
||||
|
||||
// The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user
|
||||
// wishes to use this, it is easy to specify explicitly, otherwise
|
||||
// we look it up for them.
|
||||
if (transaction.gasLimit == null) {
|
||||
let estimate = shallowCopy(transaction);
|
||||
estimate.from = fromAddress;
|
||||
transaction.gasLimit = this.provider.estimateGas(estimate);
|
||||
}
|
||||
|
||||
return Promise.all([
|
||||
resolveProperties(transaction),
|
||||
fromAddress
|
||||
|
||||
@@ -320,6 +320,7 @@ function addMethod(method: any): void {
|
||||
payable: (method.payable == null || !!method.payable),
|
||||
type: ((method.constant) ? 'call': 'transaction'),
|
||||
|
||||
name: method.name,
|
||||
signature: signature,
|
||||
sighash: sighash,
|
||||
});
|
||||
@@ -433,7 +434,7 @@ export class Interface {
|
||||
return new _TransactionDescription({
|
||||
args: result,
|
||||
decode: func.decode,
|
||||
name: name,
|
||||
name: func.name,
|
||||
signature: func.signature,
|
||||
sighash: func.sighash,
|
||||
value: bigNumberify(tx.value || '0'),
|
||||
|
||||
@@ -135,6 +135,9 @@ export function fetchJson(connection: string | ConnectionInfo, json: string, pro
|
||||
let jsonError: any = new Error('invalid json response');
|
||||
jsonError.orginialError = error;
|
||||
jsonError.responseText = request.responseText;
|
||||
if (json != null) {
|
||||
jsonError.requestBody = json;
|
||||
}
|
||||
jsonError.url = url;
|
||||
reject(jsonError);
|
||||
return;
|
||||
@@ -163,7 +166,7 @@ export function fetchJson(connection: string | ConnectionInfo, json: string, pro
|
||||
}
|
||||
|
||||
try {
|
||||
if (json) {
|
||||
if (json != null) {
|
||||
request.send(json);
|
||||
} else {
|
||||
request.send();
|
||||
|
||||
@@ -231,6 +231,36 @@ describe('Test Interface Signatures', function() {
|
||||
'derived the correct signature hash');
|
||||
})
|
||||
});
|
||||
|
||||
it('derives correct description for human-readable ABI', function() {
|
||||
var iface = new Interface([ "function transfer(address from, uint amount)" ]);
|
||||
[
|
||||
"transfer",
|
||||
"transfer(address,uint256)"
|
||||
].forEach(function(key) {
|
||||
var descr = iface.functions[key];
|
||||
assert.equal(descr.name, "transfer", "incorrect name key - " + key);
|
||||
assert.equal(descr.signature, "transfer(address,uint256)", "incorrect signature key - " + key);
|
||||
assert.equal(descr.sighash, "0xa9059cbb", "incorrect sighash key - " + key);
|
||||
});
|
||||
});
|
||||
|
||||
// See: https://github.com/ethers-io/ethers.js/issues/370
|
||||
it ('parses transaction function', function() {
|
||||
var iface = new Interface([ "function transfer(address from, uint amount)" ]);
|
||||
|
||||
// Transaction: 0x820cc57bc77be44d8f4f024a18e18f64a8b6e62a82a3d7897db5970dbe181ba1
|
||||
var rawTx = "0xf8aa028502540be4008316e36094334eec1482109bd802d9e72a447848de3bcc106380b844a9059cbb000000000000000000000000851b9167b7cbf772d38efaf89705b35022880a070000000000000000000000000000000000000000000000000de0b6b3a764000026a03200bf26e5f10f7eda59c0aad9adc2334dda79e785b9b004342524d97a66fca9a0450b07a4dc450bb472e08f8370350fa365fcef6db1a95309ae4c06c9d0748092";
|
||||
var tx = ethers.utils.parseTransaction(rawTx);
|
||||
|
||||
var descr = iface.parseTransaction(tx);
|
||||
assert.equal(descr.args[0], '0x851b9167B7cbf772D38eFaf89705b35022880A07', 'parsed tx - args[0]');
|
||||
assert.equal(descr.args[1].toString(), '1000000000000000000', 'parsed tx - args[1]');
|
||||
assert.equal(descr.name, 'transfer', 'parsed tx - name');
|
||||
assert.equal(descr.signature, 'transfer(address,uint256)', 'parsed tx - signature');
|
||||
assert.equal(descr.sighash, '0xa9059cbb', 'parsed tx - sighash');
|
||||
assert.equal(descr.value.toString(), '0', 'parsed tx - value');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Test Number Coder', function() {
|
||||
|
||||
Reference in New Issue
Block a user