admin: updated dist files
This commit is contained in:
parent
32f605eb7b
commit
2845a3c4b6
174
dist/ethers.js
vendored
174
dist/ethers.js
vendored
@ -1,4 +1,4 @@
|
||||
const version = "6.0.0-beta-exports.13";
|
||||
const version = "6.0.0-beta-exports.14";
|
||||
|
||||
/**
|
||||
* Property helper functions.
|
||||
@ -11337,7 +11337,7 @@ class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
assertArgument(false, "no matching function", "selector", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -11395,10 +11395,12 @@ class Interface {
|
||||
matching.splice(0, 1);
|
||||
}
|
||||
}
|
||||
assertArgument(matching.length !== 0, "no matching function", "name", key);
|
||||
if (matching.length === 0) {
|
||||
return null;
|
||||
}
|
||||
if (matching.length > 1 && forceUnique) {
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
assertArgument(false, `multiple matching functions (i.e. ${matchStr})`, "name", key);
|
||||
assertArgument(false, `ambiguous function description (i.e. matches ${matchStr})`, "key", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -11407,14 +11409,16 @@ class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
assertArgument(false, "no matching function", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Get the function name for %%key%%, which may be a function selector,
|
||||
* function name or function signature that belongs to the ABI.
|
||||
*/
|
||||
getFunctionName(key) {
|
||||
return (this.#getFunction(key, null, false)).name;
|
||||
const fragment = this.#getFunction(key, null, false);
|
||||
assertArgument(fragment, "no matching function", "key", key);
|
||||
return fragment.name;
|
||||
}
|
||||
/**
|
||||
* Get the [[FunctionFragment]] for %%key%%, which may be a function
|
||||
@ -11450,7 +11454,7 @@ class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
assertArgument(false, "no matching event", "eventTopic", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -11483,10 +11487,12 @@ class Interface {
|
||||
}
|
||||
}
|
||||
}
|
||||
assertArgument(matching.length > 0, "no matching event", "name", key);
|
||||
if (matching.length === 0) {
|
||||
return null;
|
||||
}
|
||||
if (matching.length > 1 && forceUnique) {
|
||||
// @TODO: refine by Typed
|
||||
assertArgument(false, "multiple matching events", "name", key);
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
assertArgument(false, `ambiguous event description (i.e. matches ${matchStr})`, "key", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -11495,14 +11501,16 @@ class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
assertArgument(false, "no matching event", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Get the event name for %%key%%, which may be a topic hash,
|
||||
* event name or event signature that belongs to the ABI.
|
||||
*/
|
||||
getEventName(key) {
|
||||
return (this.#getEvent(key, null, false)).name;
|
||||
const fragment = this.#getEvent(key, null, false);
|
||||
assertArgument(fragment, "no matching event", "key", key);
|
||||
return fragment.name;
|
||||
}
|
||||
/**
|
||||
* Get the [[EventFragment]] for %%key%%, which may be a topic hash,
|
||||
@ -11549,7 +11557,7 @@ class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
assertArgument(false, "no matching error", "selector", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -11566,11 +11574,11 @@ class Interface {
|
||||
if (key === "Panic") {
|
||||
return ErrorFragment.from("error Panic(uint256)");
|
||||
}
|
||||
assertArgument(false, "no matching error", "name", key);
|
||||
return null;
|
||||
}
|
||||
else if (matching.length > 1) {
|
||||
// @TODO: refine by Typed
|
||||
assertArgument(false, "multiple matching errors", "name", key);
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
assertArgument(false, `ambiguous error description (i.e. ${matchStr})`, "name", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -11586,7 +11594,7 @@ class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
assertArgument(false, "no matching error", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Iterate over all errors, calling %%callback%%, sorted by their name.
|
||||
@ -11651,7 +11659,9 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
*/
|
||||
decodeErrorResult(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
fragment = this.getError(fragment);
|
||||
const f = this.getError(fragment);
|
||||
assertArgument(f, "unknown error", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match error ${fragment.name}.`, "data", data);
|
||||
return this._decodeParams(fragment.inputs, dataSlice(data, 4));
|
||||
@ -11659,13 +11669,17 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Encodes the transaction revert data for a call result that
|
||||
* reverted from the the Contract with the sepcified %%error%%
|
||||
* (see [[getError]] for valid values for %%key%%) with the %%values%%.
|
||||
* (see [[getError]] for valid values for %%fragment%%) with the %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeErrorResult(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getError(key) : key;
|
||||
encodeErrorResult(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getError(fragment);
|
||||
assertArgument(f, "unknown error", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return concat([
|
||||
fragment.selector,
|
||||
this._encodeParams(fragment.inputs, values || [])
|
||||
@ -11674,23 +11688,31 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Decodes the %%data%% from a transaction ``tx.data`` for
|
||||
* the function specified (see [[getFunction]] for valid values
|
||||
* for %%key%%).
|
||||
* for %%fragment%%).
|
||||
*
|
||||
* Most developers should prefer the [[parseTransaction]] method
|
||||
* instead, which will automatically detect the fragment.
|
||||
*/
|
||||
decodeFunctionData(key, data) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
decodeFunctionData(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
assertArgument(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match function ${fragment.name}.`, "data", data);
|
||||
return this._decodeParams(fragment.inputs, dataSlice(data, 4));
|
||||
}
|
||||
/**
|
||||
* Encodes the ``tx.data`` for a transaction that calls the function
|
||||
* specified (see [[getFunction]] for valid values for %%key%%) with
|
||||
* specified (see [[getFunction]] for valid values for %%fragment%%) with
|
||||
* the %%values%%.
|
||||
*/
|
||||
encodeFunctionData(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
encodeFunctionData(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
assertArgument(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return concat([
|
||||
fragment.selector,
|
||||
this._encodeParams(fragment.inputs, values || [])
|
||||
@ -11707,7 +11729,9 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
*/
|
||||
decodeFunctionResult(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
fragment = this.getFunction(fragment);
|
||||
const f = this.getFunction(fragment);
|
||||
assertArgument(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
let message = "invalid length for result data";
|
||||
const bytes = getBytesCopy(data);
|
||||
@ -11732,8 +11756,8 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
if (!error.message.match(/could not decode/)) {
|
||||
const selector = hexlify(data.slice(0, 4));
|
||||
error.message = "execution reverted (unknown custom error)";
|
||||
try {
|
||||
const ef = this.getError(selector);
|
||||
const ef = this.getError(selector);
|
||||
if (ef) {
|
||||
try {
|
||||
error.revert = {
|
||||
name: ef.name,
|
||||
@ -11747,9 +11771,6 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
error.message = `execution reverted (coult not decode custom error)`;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error); // @TODO: remove
|
||||
}
|
||||
}
|
||||
// Add the invocation, if available
|
||||
const parsed = this.parseTransaction(tx);
|
||||
@ -11765,13 +11786,17 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Encodes the result data (e.g. from an ``eth_call``) for the
|
||||
* specified function (see [[getFunction]] for valid values
|
||||
* for %%key%%) with %%values%%.
|
||||
* for %%fragment%%) with %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeFunctionResult(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
encodeFunctionResult(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
assertArgument(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return hexlify(this.#abiCoder.encode(fragment.outputs, values || []));
|
||||
}
|
||||
/*
|
||||
@ -11805,14 +11830,16 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
}
|
||||
*/
|
||||
// Create the filter for the event with search criteria (e.g. for eth_filterLog)
|
||||
encodeFilterTopics(eventFragment, values) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
encodeFilterTopics(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
assertArgument(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
assert$1(values.length <= eventFragment.inputs.length, `too many arguments for ${eventFragment.format()}`, "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: eventFragment.inputs.length });
|
||||
assert$1(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: fragment.inputs.length });
|
||||
const topics = [];
|
||||
if (!eventFragment.anonymous) {
|
||||
topics.push(eventFragment.topicHash);
|
||||
if (!fragment.anonymous) {
|
||||
topics.push(fragment.topicHash);
|
||||
}
|
||||
// @TODO: Use the coders for this; to properly support tuples, etc.
|
||||
const encodeTopic = (param, value) => {
|
||||
@ -11836,7 +11863,7 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
//@TOOD should probably be return toHex(value, 32)
|
||||
};
|
||||
values.forEach((value, index) => {
|
||||
const param = eventFragment.inputs[index];
|
||||
const param = fragment.inputs[index];
|
||||
if (!param.indexed) {
|
||||
assertArgument(value == null, "cannot filter non-indexed parameters; must be null", ("contract." + param.name), value);
|
||||
return;
|
||||
@ -11860,18 +11887,20 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
}
|
||||
return topics;
|
||||
}
|
||||
encodeEventLog(eventFragment, values) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
encodeEventLog(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
assertArgument(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
const topics = [];
|
||||
const dataTypes = [];
|
||||
const dataValues = [];
|
||||
if (!eventFragment.anonymous) {
|
||||
topics.push(eventFragment.topicHash);
|
||||
if (!fragment.anonymous) {
|
||||
topics.push(fragment.topicHash);
|
||||
}
|
||||
assertArgument(values.length === eventFragment.inputs.length, "event arguments/values mismatch", "values", values);
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
assertArgument(values.length === fragment.inputs.length, "event arguments/values mismatch", "values", values);
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
const value = values[index];
|
||||
if (param.indexed) {
|
||||
if (param.type === "string") {
|
||||
@ -11899,19 +11928,21 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
};
|
||||
}
|
||||
// Decode a filter for the event and the search criteria
|
||||
decodeEventLog(eventFragment, data, topics) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
decodeEventLog(fragment, data, topics) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
assertArgument(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
if (topics != null && !eventFragment.anonymous) {
|
||||
const eventTopic = eventFragment.topicHash;
|
||||
if (topics != null && !fragment.anonymous) {
|
||||
const eventTopic = fragment.topicHash;
|
||||
assertArgument(isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic, "fragment/topic mismatch", "topics[0]", topics[0]);
|
||||
topics = topics.slice(1);
|
||||
}
|
||||
const indexed = [];
|
||||
const nonIndexed = [];
|
||||
const dynamic = [];
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
if (param.indexed) {
|
||||
if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") {
|
||||
indexed.push(ParamType.from({ type: "bytes32", name: param.name }));
|
||||
@ -11933,7 +11964,7 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
const values = [];
|
||||
const keys = [];
|
||||
let nonIndexedIndex = 0, indexedIndex = 0;
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
let value = null;
|
||||
if (param.indexed) {
|
||||
if (resultIndexed == null) {
|
||||
@ -13123,10 +13154,18 @@ class WrappedMethod extends _WrappedMethodBase() {
|
||||
}
|
||||
// Only works on non-ambiguous keys (refined fragment is always non-ambiguous)
|
||||
get fragment() {
|
||||
return this._contract.interface.getFunction(this._key);
|
||||
const fragment = this._contract.interface.getFunction(this._key);
|
||||
assert$1(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
getFragment(...args) {
|
||||
return this._contract.interface.getFunction(this._key, args);
|
||||
const fragment = this._contract.interface.getFunction(this._key, args);
|
||||
assert$1(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
async populateTransaction(...args) {
|
||||
const fragment = this.getFragment(...args);
|
||||
@ -13205,10 +13244,18 @@ class WrappedEvent extends _WrappedEventBase() {
|
||||
}
|
||||
// Only works on non-ambiguous keys
|
||||
get fragment() {
|
||||
return this._contract.interface.getEvent(this._key);
|
||||
const fragment = this._contract.interface.getEvent(this._key);
|
||||
assert$1(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
getFragment(...args) {
|
||||
return this._contract.interface.getEvent(this._key, args);
|
||||
const fragment = this._contract.interface.getEvent(this._key, args);
|
||||
assert$1(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
;
|
||||
@ -13238,7 +13285,9 @@ async function getSubInfo(contract, event) {
|
||||
if (isHexString(name, 32)) {
|
||||
return name;
|
||||
}
|
||||
return contract.interface.getEvent(name).topicHash;
|
||||
const fragment = contract.interface.getEvent(name);
|
||||
assertArgument(fragment, "unknown fragment", "name", name);
|
||||
return fragment.topicHash;
|
||||
};
|
||||
// Array of Topics and Names; e.g. `[ "0x1234...89ab", "Transfer(address)" ]`
|
||||
topics = event.map((e) => {
|
||||
@ -13262,6 +13311,7 @@ async function getSubInfo(contract, event) {
|
||||
else {
|
||||
// Name or Signature; e.g. `"Transfer", `"Transfer(address)"`
|
||||
fragment = contract.interface.getEvent(event);
|
||||
assertArgument(fragment, "unknown fragment", "event", event);
|
||||
topics = [fragment.topicHash];
|
||||
}
|
||||
}
|
||||
|
2
dist/ethers.js.map
vendored
2
dist/ethers.js.map
vendored
File diff suppressed because one or more lines are too long
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/wordlists-extra.js
vendored
2
dist/wordlists-extra.js
vendored
@ -145,7 +145,7 @@ const u64 = {
|
||||
add, add3L, add3H, add4L, add4H, add5H, add5L,
|
||||
};
|
||||
|
||||
const version = "6.0.0-beta-exports.13";
|
||||
const version = "6.0.0-beta-exports.14";
|
||||
|
||||
/**
|
||||
* Property helper functions.
|
||||
|
2
dist/wordlists-extra.js.map
vendored
2
dist/wordlists-extra.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/wordlists-extra.min.js
vendored
2
dist/wordlists-extra.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = void 0;
|
||||
exports.version = "6.0.0-beta-exports.13";
|
||||
exports.version = "6.0.0-beta-exports.14";
|
||||
//# sourceMappingURL=_version.js.map
|
@ -233,7 +233,7 @@ class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
(0, index_js_3.assertArgument)(false, "no matching function", "selector", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -291,10 +291,12 @@ class Interface {
|
||||
matching.splice(0, 1);
|
||||
}
|
||||
}
|
||||
(0, index_js_3.assertArgument)(matching.length !== 0, "no matching function", "name", key);
|
||||
if (matching.length === 0) {
|
||||
return null;
|
||||
}
|
||||
if (matching.length > 1 && forceUnique) {
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
(0, index_js_3.assertArgument)(false, `multiple matching functions (i.e. ${matchStr})`, "name", key);
|
||||
(0, index_js_3.assertArgument)(false, `ambiguous function description (i.e. matches ${matchStr})`, "key", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -303,14 +305,16 @@ class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
(0, index_js_3.assertArgument)(false, "no matching function", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Get the function name for %%key%%, which may be a function selector,
|
||||
* function name or function signature that belongs to the ABI.
|
||||
*/
|
||||
getFunctionName(key) {
|
||||
return (this.#getFunction(key, null, false)).name;
|
||||
const fragment = this.#getFunction(key, null, false);
|
||||
(0, index_js_3.assertArgument)(fragment, "no matching function", "key", key);
|
||||
return fragment.name;
|
||||
}
|
||||
/**
|
||||
* Get the [[FunctionFragment]] for %%key%%, which may be a function
|
||||
@ -346,7 +350,7 @@ class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
(0, index_js_3.assertArgument)(false, "no matching event", "eventTopic", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -379,10 +383,12 @@ class Interface {
|
||||
}
|
||||
}
|
||||
}
|
||||
(0, index_js_3.assertArgument)(matching.length > 0, "no matching event", "name", key);
|
||||
if (matching.length === 0) {
|
||||
return null;
|
||||
}
|
||||
if (matching.length > 1 && forceUnique) {
|
||||
// @TODO: refine by Typed
|
||||
(0, index_js_3.assertArgument)(false, "multiple matching events", "name", key);
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
(0, index_js_3.assertArgument)(false, `ambiguous event description (i.e. matches ${matchStr})`, "key", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -391,14 +397,16 @@ class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
(0, index_js_3.assertArgument)(false, "no matching event", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Get the event name for %%key%%, which may be a topic hash,
|
||||
* event name or event signature that belongs to the ABI.
|
||||
*/
|
||||
getEventName(key) {
|
||||
return (this.#getEvent(key, null, false)).name;
|
||||
const fragment = this.#getEvent(key, null, false);
|
||||
(0, index_js_3.assertArgument)(fragment, "no matching event", "key", key);
|
||||
return fragment.name;
|
||||
}
|
||||
/**
|
||||
* Get the [[EventFragment]] for %%key%%, which may be a topic hash,
|
||||
@ -445,7 +453,7 @@ class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
(0, index_js_3.assertArgument)(false, "no matching error", "selector", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -462,11 +470,11 @@ class Interface {
|
||||
if (key === "Panic") {
|
||||
return fragments_js_1.ErrorFragment.from("error Panic(uint256)");
|
||||
}
|
||||
(0, index_js_3.assertArgument)(false, "no matching error", "name", key);
|
||||
return null;
|
||||
}
|
||||
else if (matching.length > 1) {
|
||||
// @TODO: refine by Typed
|
||||
(0, index_js_3.assertArgument)(false, "multiple matching errors", "name", key);
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
(0, index_js_3.assertArgument)(false, `ambiguous error description (i.e. ${matchStr})`, "name", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -482,7 +490,7 @@ class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
(0, index_js_3.assertArgument)(false, "no matching error", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Iterate over all errors, calling %%callback%%, sorted by their name.
|
||||
@ -547,7 +555,9 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
*/
|
||||
decodeErrorResult(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
fragment = this.getError(fragment);
|
||||
const f = this.getError(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown error", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
(0, index_js_3.assertArgument)((0, index_js_3.dataSlice)(data, 0, 4) === fragment.selector, `data signature does not match error ${fragment.name}.`, "data", data);
|
||||
return this._decodeParams(fragment.inputs, (0, index_js_3.dataSlice)(data, 4));
|
||||
@ -555,13 +565,17 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Encodes the transaction revert data for a call result that
|
||||
* reverted from the the Contract with the sepcified %%error%%
|
||||
* (see [[getError]] for valid values for %%key%%) with the %%values%%.
|
||||
* (see [[getError]] for valid values for %%fragment%%) with the %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeErrorResult(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getError(key) : key;
|
||||
encodeErrorResult(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getError(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown error", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return (0, index_js_3.concat)([
|
||||
fragment.selector,
|
||||
this._encodeParams(fragment.inputs, values || [])
|
||||
@ -570,23 +584,31 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Decodes the %%data%% from a transaction ``tx.data`` for
|
||||
* the function specified (see [[getFunction]] for valid values
|
||||
* for %%key%%).
|
||||
* for %%fragment%%).
|
||||
*
|
||||
* Most developers should prefer the [[parseTransaction]] method
|
||||
* instead, which will automatically detect the fragment.
|
||||
*/
|
||||
decodeFunctionData(key, data) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
decodeFunctionData(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
(0, index_js_3.assertArgument)((0, index_js_3.dataSlice)(data, 0, 4) === fragment.selector, `data signature does not match function ${fragment.name}.`, "data", data);
|
||||
return this._decodeParams(fragment.inputs, (0, index_js_3.dataSlice)(data, 4));
|
||||
}
|
||||
/**
|
||||
* Encodes the ``tx.data`` for a transaction that calls the function
|
||||
* specified (see [[getFunction]] for valid values for %%key%%) with
|
||||
* specified (see [[getFunction]] for valid values for %%fragment%%) with
|
||||
* the %%values%%.
|
||||
*/
|
||||
encodeFunctionData(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
encodeFunctionData(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return (0, index_js_3.concat)([
|
||||
fragment.selector,
|
||||
this._encodeParams(fragment.inputs, values || [])
|
||||
@ -603,7 +625,9 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
*/
|
||||
decodeFunctionResult(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
fragment = this.getFunction(fragment);
|
||||
const f = this.getFunction(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
let message = "invalid length for result data";
|
||||
const bytes = (0, index_js_3.getBytesCopy)(data);
|
||||
@ -628,8 +652,8 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
if (!error.message.match(/could not decode/)) {
|
||||
const selector = (0, index_js_3.hexlify)(data.slice(0, 4));
|
||||
error.message = "execution reverted (unknown custom error)";
|
||||
try {
|
||||
const ef = this.getError(selector);
|
||||
const ef = this.getError(selector);
|
||||
if (ef) {
|
||||
try {
|
||||
error.revert = {
|
||||
name: ef.name,
|
||||
@ -643,9 +667,6 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
error.message = `execution reverted (coult not decode custom error)`;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error); // @TODO: remove
|
||||
}
|
||||
}
|
||||
// Add the invocation, if available
|
||||
const parsed = this.parseTransaction(tx);
|
||||
@ -661,13 +682,17 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Encodes the result data (e.g. from an ``eth_call``) for the
|
||||
* specified function (see [[getFunction]] for valid values
|
||||
* for %%key%%) with %%values%%.
|
||||
* for %%fragment%%) with %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeFunctionResult(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
encodeFunctionResult(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return (0, index_js_3.hexlify)(this.#abiCoder.encode(fragment.outputs, values || []));
|
||||
}
|
||||
/*
|
||||
@ -701,14 +726,16 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
}
|
||||
*/
|
||||
// Create the filter for the event with search criteria (e.g. for eth_filterLog)
|
||||
encodeFilterTopics(eventFragment, values) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
encodeFilterTopics(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
(0, index_js_3.assert)(values.length <= eventFragment.inputs.length, `too many arguments for ${eventFragment.format()}`, "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: eventFragment.inputs.length });
|
||||
(0, index_js_3.assert)(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: fragment.inputs.length });
|
||||
const topics = [];
|
||||
if (!eventFragment.anonymous) {
|
||||
topics.push(eventFragment.topicHash);
|
||||
if (!fragment.anonymous) {
|
||||
topics.push(fragment.topicHash);
|
||||
}
|
||||
// @TODO: Use the coders for this; to properly support tuples, etc.
|
||||
const encodeTopic = (param, value) => {
|
||||
@ -732,7 +759,7 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
//@TOOD should probably be return toHex(value, 32)
|
||||
};
|
||||
values.forEach((value, index) => {
|
||||
const param = eventFragment.inputs[index];
|
||||
const param = fragment.inputs[index];
|
||||
if (!param.indexed) {
|
||||
(0, index_js_3.assertArgument)(value == null, "cannot filter non-indexed parameters; must be null", ("contract." + param.name), value);
|
||||
return;
|
||||
@ -756,18 +783,20 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
}
|
||||
return topics;
|
||||
}
|
||||
encodeEventLog(eventFragment, values) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
encodeEventLog(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
const topics = [];
|
||||
const dataTypes = [];
|
||||
const dataValues = [];
|
||||
if (!eventFragment.anonymous) {
|
||||
topics.push(eventFragment.topicHash);
|
||||
if (!fragment.anonymous) {
|
||||
topics.push(fragment.topicHash);
|
||||
}
|
||||
(0, index_js_3.assertArgument)(values.length === eventFragment.inputs.length, "event arguments/values mismatch", "values", values);
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
(0, index_js_3.assertArgument)(values.length === fragment.inputs.length, "event arguments/values mismatch", "values", values);
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
const value = values[index];
|
||||
if (param.indexed) {
|
||||
if (param.type === "string") {
|
||||
@ -795,19 +824,21 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
};
|
||||
}
|
||||
// Decode a filter for the event and the search criteria
|
||||
decodeEventLog(eventFragment, data, topics) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
decodeEventLog(fragment, data, topics) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
(0, index_js_3.assertArgument)(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
if (topics != null && !eventFragment.anonymous) {
|
||||
const eventTopic = eventFragment.topicHash;
|
||||
if (topics != null && !fragment.anonymous) {
|
||||
const eventTopic = fragment.topicHash;
|
||||
(0, index_js_3.assertArgument)((0, index_js_3.isHexString)(topics[0], 32) && topics[0].toLowerCase() === eventTopic, "fragment/topic mismatch", "topics[0]", topics[0]);
|
||||
topics = topics.slice(1);
|
||||
}
|
||||
const indexed = [];
|
||||
const nonIndexed = [];
|
||||
const dynamic = [];
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
if (param.indexed) {
|
||||
if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") {
|
||||
indexed.push(fragments_js_1.ParamType.from({ type: "bytes32", name: param.name }));
|
||||
@ -829,7 +860,7 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
const values = [];
|
||||
const keys = [];
|
||||
let nonIndexedIndex = 0, indexedIndex = 0;
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
let value = null;
|
||||
if (param.indexed) {
|
||||
if (resultIndexed == null) {
|
||||
|
File diff suppressed because one or more lines are too long
@ -141,10 +141,18 @@ class WrappedMethod extends _WrappedMethodBase() {
|
||||
}
|
||||
// Only works on non-ambiguous keys (refined fragment is always non-ambiguous)
|
||||
get fragment() {
|
||||
return this._contract.interface.getFunction(this._key);
|
||||
const fragment = this._contract.interface.getFunction(this._key);
|
||||
(0, index_js_3.assert)(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
getFragment(...args) {
|
||||
return this._contract.interface.getFunction(this._key, args);
|
||||
const fragment = this._contract.interface.getFunction(this._key, args);
|
||||
(0, index_js_3.assert)(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
async populateTransaction(...args) {
|
||||
const fragment = this.getFragment(...args);
|
||||
@ -223,10 +231,18 @@ class WrappedEvent extends _WrappedEventBase() {
|
||||
}
|
||||
// Only works on non-ambiguous keys
|
||||
get fragment() {
|
||||
return this._contract.interface.getEvent(this._key);
|
||||
const fragment = this._contract.interface.getEvent(this._key);
|
||||
(0, index_js_3.assert)(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
getFragment(...args) {
|
||||
return this._contract.interface.getEvent(this._key, args);
|
||||
const fragment = this._contract.interface.getEvent(this._key, args);
|
||||
(0, index_js_3.assert)(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
;
|
||||
@ -256,7 +272,9 @@ async function getSubInfo(contract, event) {
|
||||
if ((0, index_js_3.isHexString)(name, 32)) {
|
||||
return name;
|
||||
}
|
||||
return contract.interface.getEvent(name).topicHash;
|
||||
const fragment = contract.interface.getEvent(name);
|
||||
(0, index_js_3.assertArgument)(fragment, "unknown fragment", "name", name);
|
||||
return fragment.topicHash;
|
||||
};
|
||||
// Array of Topics and Names; e.g. `[ "0x1234...89ab", "Transfer(address)" ]`
|
||||
topics = event.map((e) => {
|
||||
@ -280,6 +298,7 @@ async function getSubInfo(contract, event) {
|
||||
else {
|
||||
// Name or Signature; e.g. `"Transfer", `"Transfer(address)"`
|
||||
fragment = contract.interface.getEvent(event);
|
||||
(0, index_js_3.assertArgument)(fragment, "unknown fragment", "event", event);
|
||||
topics = [fragment.topicHash];
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@
|
||||
export const version = "6.0.0-beta-exports.13";
|
||||
export const version = "6.0.0-beta-exports.14";
|
||||
//# sourceMappingURL=_version.js.map
|
@ -225,7 +225,7 @@ export class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
assertArgument(false, "no matching function", "selector", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -283,10 +283,12 @@ export class Interface {
|
||||
matching.splice(0, 1);
|
||||
}
|
||||
}
|
||||
assertArgument(matching.length !== 0, "no matching function", "name", key);
|
||||
if (matching.length === 0) {
|
||||
return null;
|
||||
}
|
||||
if (matching.length > 1 && forceUnique) {
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
assertArgument(false, `multiple matching functions (i.e. ${matchStr})`, "name", key);
|
||||
assertArgument(false, `ambiguous function description (i.e. matches ${matchStr})`, "key", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -295,14 +297,16 @@ export class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
assertArgument(false, "no matching function", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Get the function name for %%key%%, which may be a function selector,
|
||||
* function name or function signature that belongs to the ABI.
|
||||
*/
|
||||
getFunctionName(key) {
|
||||
return (this.#getFunction(key, null, false)).name;
|
||||
const fragment = this.#getFunction(key, null, false);
|
||||
assertArgument(fragment, "no matching function", "key", key);
|
||||
return fragment.name;
|
||||
}
|
||||
/**
|
||||
* Get the [[FunctionFragment]] for %%key%%, which may be a function
|
||||
@ -338,7 +342,7 @@ export class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
assertArgument(false, "no matching event", "eventTopic", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -371,10 +375,12 @@ export class Interface {
|
||||
}
|
||||
}
|
||||
}
|
||||
assertArgument(matching.length > 0, "no matching event", "name", key);
|
||||
if (matching.length === 0) {
|
||||
return null;
|
||||
}
|
||||
if (matching.length > 1 && forceUnique) {
|
||||
// @TODO: refine by Typed
|
||||
assertArgument(false, "multiple matching events", "name", key);
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
assertArgument(false, `ambiguous event description (i.e. matches ${matchStr})`, "key", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -383,14 +389,16 @@ export class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
assertArgument(false, "no matching event", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Get the event name for %%key%%, which may be a topic hash,
|
||||
* event name or event signature that belongs to the ABI.
|
||||
*/
|
||||
getEventName(key) {
|
||||
return (this.#getEvent(key, null, false)).name;
|
||||
const fragment = this.#getEvent(key, null, false);
|
||||
assertArgument(fragment, "no matching event", "key", key);
|
||||
return fragment.name;
|
||||
}
|
||||
/**
|
||||
* Get the [[EventFragment]] for %%key%%, which may be a topic hash,
|
||||
@ -437,7 +445,7 @@ export class Interface {
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
assertArgument(false, "no matching error", "selector", key);
|
||||
return null;
|
||||
}
|
||||
// It is a bare name, look up the function (will return null if ambiguous)
|
||||
if (key.indexOf("(") === -1) {
|
||||
@ -454,11 +462,11 @@ export class Interface {
|
||||
if (key === "Panic") {
|
||||
return ErrorFragment.from("error Panic(uint256)");
|
||||
}
|
||||
assertArgument(false, "no matching error", "name", key);
|
||||
return null;
|
||||
}
|
||||
else if (matching.length > 1) {
|
||||
// @TODO: refine by Typed
|
||||
assertArgument(false, "multiple matching errors", "name", key);
|
||||
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
|
||||
assertArgument(false, `ambiguous error description (i.e. ${matchStr})`, "name", key);
|
||||
}
|
||||
return matching[0];
|
||||
}
|
||||
@ -474,7 +482,7 @@ export class Interface {
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
assertArgument(false, "no matching error", "signature", key);
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Iterate over all errors, calling %%callback%%, sorted by their name.
|
||||
@ -539,7 +547,9 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
*/
|
||||
decodeErrorResult(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
fragment = this.getError(fragment);
|
||||
const f = this.getError(fragment);
|
||||
assertArgument(f, "unknown error", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match error ${fragment.name}.`, "data", data);
|
||||
return this._decodeParams(fragment.inputs, dataSlice(data, 4));
|
||||
@ -547,13 +557,17 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Encodes the transaction revert data for a call result that
|
||||
* reverted from the the Contract with the sepcified %%error%%
|
||||
* (see [[getError]] for valid values for %%key%%) with the %%values%%.
|
||||
* (see [[getError]] for valid values for %%fragment%%) with the %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeErrorResult(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getError(key) : key;
|
||||
encodeErrorResult(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getError(fragment);
|
||||
assertArgument(f, "unknown error", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return concat([
|
||||
fragment.selector,
|
||||
this._encodeParams(fragment.inputs, values || [])
|
||||
@ -562,23 +576,31 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Decodes the %%data%% from a transaction ``tx.data`` for
|
||||
* the function specified (see [[getFunction]] for valid values
|
||||
* for %%key%%).
|
||||
* for %%fragment%%).
|
||||
*
|
||||
* Most developers should prefer the [[parseTransaction]] method
|
||||
* instead, which will automatically detect the fragment.
|
||||
*/
|
||||
decodeFunctionData(key, data) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
decodeFunctionData(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
assertArgument(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match function ${fragment.name}.`, "data", data);
|
||||
return this._decodeParams(fragment.inputs, dataSlice(data, 4));
|
||||
}
|
||||
/**
|
||||
* Encodes the ``tx.data`` for a transaction that calls the function
|
||||
* specified (see [[getFunction]] for valid values for %%key%%) with
|
||||
* specified (see [[getFunction]] for valid values for %%fragment%%) with
|
||||
* the %%values%%.
|
||||
*/
|
||||
encodeFunctionData(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
encodeFunctionData(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
assertArgument(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return concat([
|
||||
fragment.selector,
|
||||
this._encodeParams(fragment.inputs, values || [])
|
||||
@ -595,7 +617,9 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
*/
|
||||
decodeFunctionResult(fragment, data) {
|
||||
if (typeof (fragment) === "string") {
|
||||
fragment = this.getFunction(fragment);
|
||||
const f = this.getFunction(fragment);
|
||||
assertArgument(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
let message = "invalid length for result data";
|
||||
const bytes = getBytesCopy(data);
|
||||
@ -620,8 +644,8 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
if (!error.message.match(/could not decode/)) {
|
||||
const selector = hexlify(data.slice(0, 4));
|
||||
error.message = "execution reverted (unknown custom error)";
|
||||
try {
|
||||
const ef = this.getError(selector);
|
||||
const ef = this.getError(selector);
|
||||
if (ef) {
|
||||
try {
|
||||
error.revert = {
|
||||
name: ef.name,
|
||||
@ -635,9 +659,6 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
error.message = `execution reverted (coult not decode custom error)`;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error); // @TODO: remove
|
||||
}
|
||||
}
|
||||
// Add the invocation, if available
|
||||
const parsed = this.parseTransaction(tx);
|
||||
@ -653,13 +674,17 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
/**
|
||||
* Encodes the result data (e.g. from an ``eth_call``) for the
|
||||
* specified function (see [[getFunction]] for valid values
|
||||
* for %%key%%) with %%values%%.
|
||||
* for %%fragment%%) with %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeFunctionResult(key, values) {
|
||||
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||
encodeFunctionResult(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getFunction(fragment);
|
||||
assertArgument(f, "unknown function", "fragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
return hexlify(this.#abiCoder.encode(fragment.outputs, values || []));
|
||||
}
|
||||
/*
|
||||
@ -693,14 +718,16 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
}
|
||||
*/
|
||||
// Create the filter for the event with search criteria (e.g. for eth_filterLog)
|
||||
encodeFilterTopics(eventFragment, values) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
encodeFilterTopics(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
assertArgument(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
assert(values.length <= eventFragment.inputs.length, `too many arguments for ${eventFragment.format()}`, "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: eventFragment.inputs.length });
|
||||
assert(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: fragment.inputs.length });
|
||||
const topics = [];
|
||||
if (!eventFragment.anonymous) {
|
||||
topics.push(eventFragment.topicHash);
|
||||
if (!fragment.anonymous) {
|
||||
topics.push(fragment.topicHash);
|
||||
}
|
||||
// @TODO: Use the coders for this; to properly support tuples, etc.
|
||||
const encodeTopic = (param, value) => {
|
||||
@ -724,7 +751,7 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
//@TOOD should probably be return toHex(value, 32)
|
||||
};
|
||||
values.forEach((value, index) => {
|
||||
const param = eventFragment.inputs[index];
|
||||
const param = fragment.inputs[index];
|
||||
if (!param.indexed) {
|
||||
assertArgument(value == null, "cannot filter non-indexed parameters; must be null", ("contract." + param.name), value);
|
||||
return;
|
||||
@ -748,18 +775,20 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
}
|
||||
return topics;
|
||||
}
|
||||
encodeEventLog(eventFragment, values) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
encodeEventLog(fragment, values) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
assertArgument(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
const topics = [];
|
||||
const dataTypes = [];
|
||||
const dataValues = [];
|
||||
if (!eventFragment.anonymous) {
|
||||
topics.push(eventFragment.topicHash);
|
||||
if (!fragment.anonymous) {
|
||||
topics.push(fragment.topicHash);
|
||||
}
|
||||
assertArgument(values.length === eventFragment.inputs.length, "event arguments/values mismatch", "values", values);
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
assertArgument(values.length === fragment.inputs.length, "event arguments/values mismatch", "values", values);
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
const value = values[index];
|
||||
if (param.indexed) {
|
||||
if (param.type === "string") {
|
||||
@ -787,19 +816,21 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
};
|
||||
}
|
||||
// Decode a filter for the event and the search criteria
|
||||
decodeEventLog(eventFragment, data, topics) {
|
||||
if (typeof (eventFragment) === "string") {
|
||||
eventFragment = this.getEvent(eventFragment);
|
||||
decodeEventLog(fragment, data, topics) {
|
||||
if (typeof (fragment) === "string") {
|
||||
const f = this.getEvent(fragment);
|
||||
assertArgument(f, "unknown event", "eventFragment", fragment);
|
||||
fragment = f;
|
||||
}
|
||||
if (topics != null && !eventFragment.anonymous) {
|
||||
const eventTopic = eventFragment.topicHash;
|
||||
if (topics != null && !fragment.anonymous) {
|
||||
const eventTopic = fragment.topicHash;
|
||||
assertArgument(isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic, "fragment/topic mismatch", "topics[0]", topics[0]);
|
||||
topics = topics.slice(1);
|
||||
}
|
||||
const indexed = [];
|
||||
const nonIndexed = [];
|
||||
const dynamic = [];
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
if (param.indexed) {
|
||||
if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") {
|
||||
indexed.push(ParamType.from({ type: "bytes32", name: param.name }));
|
||||
@ -821,7 +852,7 @@ getSelector(fragment: ErrorFragment | FunctionFragment): string {
|
||||
const values = [];
|
||||
const keys = [];
|
||||
let nonIndexedIndex = 0, indexedIndex = 0;
|
||||
eventFragment.inputs.forEach((param, index) => {
|
||||
fragment.inputs.forEach((param, index) => {
|
||||
let value = null;
|
||||
if (param.indexed) {
|
||||
if (resultIndexed == null) {
|
||||
|
File diff suppressed because one or more lines are too long
@ -136,10 +136,18 @@ class WrappedMethod extends _WrappedMethodBase() {
|
||||
}
|
||||
// Only works on non-ambiguous keys (refined fragment is always non-ambiguous)
|
||||
get fragment() {
|
||||
return this._contract.interface.getFunction(this._key);
|
||||
const fragment = this._contract.interface.getFunction(this._key);
|
||||
assert(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
getFragment(...args) {
|
||||
return this._contract.interface.getFunction(this._key, args);
|
||||
const fragment = this._contract.interface.getFunction(this._key, args);
|
||||
assert(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
async populateTransaction(...args) {
|
||||
const fragment = this.getFragment(...args);
|
||||
@ -218,10 +226,18 @@ class WrappedEvent extends _WrappedEventBase() {
|
||||
}
|
||||
// Only works on non-ambiguous keys
|
||||
get fragment() {
|
||||
return this._contract.interface.getEvent(this._key);
|
||||
const fragment = this._contract.interface.getEvent(this._key);
|
||||
assert(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
getFragment(...args) {
|
||||
return this._contract.interface.getEvent(this._key, args);
|
||||
const fragment = this._contract.interface.getEvent(this._key, args);
|
||||
assert(fragment, "no matching fragment", "UNSUPPORTED_OPERATION", {
|
||||
operation: "fragment"
|
||||
});
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
;
|
||||
@ -251,7 +267,9 @@ async function getSubInfo(contract, event) {
|
||||
if (isHexString(name, 32)) {
|
||||
return name;
|
||||
}
|
||||
return contract.interface.getEvent(name).topicHash;
|
||||
const fragment = contract.interface.getEvent(name);
|
||||
assertArgument(fragment, "unknown fragment", "name", name);
|
||||
return fragment.topicHash;
|
||||
};
|
||||
// Array of Topics and Names; e.g. `[ "0x1234...89ab", "Transfer(address)" ]`
|
||||
topics = event.map((e) => {
|
||||
@ -275,6 +293,7 @@ async function getSubInfo(contract, event) {
|
||||
else {
|
||||
// Name or Signature; e.g. `"Transfer", `"Transfer(address)"`
|
||||
fragment = contract.interface.getEvent(event);
|
||||
assertArgument(fragment, "unknown fragment", "event", event);
|
||||
topics = [fragment.topicHash];
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -93,7 +93,7 @@
|
||||
"types": "./types/wordlistsindex.d.ts"
|
||||
}
|
||||
},
|
||||
"gitHead": "2488d20f9e18e5489f0122b42fa01cc854e42015",
|
||||
"gitHead": "32f605eb7bde81a774427b297d02d5d4e6ee92cb",
|
||||
"keywords": [
|
||||
"ethereum",
|
||||
"ethers",
|
||||
@ -133,5 +133,5 @@
|
||||
"sideEffects": false,
|
||||
"type": "module",
|
||||
"types": "./types/index.d.ts",
|
||||
"version": "6.0.0-beta-exports.13"
|
||||
"version": "6.0.0-beta-exports.14"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
export const version: string = "6.0.0-beta-exports.13";
|
||||
export const version: string = "6.0.0-beta-exports.14";
|
||||
|
28
types/abi/interface.d.ts
vendored
28
types/abi/interface.d.ts
vendored
@ -100,7 +100,7 @@ export declare class Interface {
|
||||
* If the %%key%% and %%values%% do not refine to a single function in
|
||||
* the ABI, this will throw.
|
||||
*/
|
||||
getFunction(key: string, values?: Array<any | Typed>): FunctionFragment;
|
||||
getFunction(key: string, values?: Array<any | Typed>): null | FunctionFragment;
|
||||
/**
|
||||
* Iterate over all functions, calling %%callback%%, sorted by their name.
|
||||
*/
|
||||
@ -120,7 +120,7 @@ export declare class Interface {
|
||||
* If the %%key%% and %%values%% do not refine to a single event in
|
||||
* the ABI, this will throw.
|
||||
*/
|
||||
getEvent(key: string, values?: Array<any | Typed>): EventFragment;
|
||||
getEvent(key: string, values?: Array<any | Typed>): null | EventFragment;
|
||||
/**
|
||||
* Iterate over all events, calling %%callback%%, sorted by their name.
|
||||
*/
|
||||
@ -135,7 +135,7 @@ export declare class Interface {
|
||||
* If the %%key%% and %%values%% do not refine to a single error in
|
||||
* the ABI, this will throw.
|
||||
*/
|
||||
getError(key: string, values?: Array<any | Typed>): ErrorFragment;
|
||||
getError(key: string, values?: Array<any | Typed>): null | ErrorFragment;
|
||||
/**
|
||||
* Iterate over all errors, calling %%callback%%, sorted by their name.
|
||||
*/
|
||||
@ -160,27 +160,27 @@ export declare class Interface {
|
||||
/**
|
||||
* Encodes the transaction revert data for a call result that
|
||||
* reverted from the the Contract with the sepcified %%error%%
|
||||
* (see [[getError]] for valid values for %%key%%) with the %%values%%.
|
||||
* (see [[getError]] for valid values for %%fragment%%) with the %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeErrorResult(key: ErrorFragment | string, values?: ReadonlyArray<any>): string;
|
||||
encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray<any>): string;
|
||||
/**
|
||||
* Decodes the %%data%% from a transaction ``tx.data`` for
|
||||
* the function specified (see [[getFunction]] for valid values
|
||||
* for %%key%%).
|
||||
* for %%fragment%%).
|
||||
*
|
||||
* Most developers should prefer the [[parseTransaction]] method
|
||||
* instead, which will automatically detect the fragment.
|
||||
*/
|
||||
decodeFunctionData(key: FunctionFragment | string, data: BytesLike): Result;
|
||||
decodeFunctionData(fragment: FunctionFragment | string, data: BytesLike): Result;
|
||||
/**
|
||||
* Encodes the ``tx.data`` for a transaction that calls the function
|
||||
* specified (see [[getFunction]] for valid values for %%key%%) with
|
||||
* specified (see [[getFunction]] for valid values for %%fragment%%) with
|
||||
* the %%values%%.
|
||||
*/
|
||||
encodeFunctionData(key: FunctionFragment | string, values?: ReadonlyArray<any>): string;
|
||||
encodeFunctionData(fragment: FunctionFragment | string, values?: ReadonlyArray<any>): string;
|
||||
/**
|
||||
* Decodes the result %%data%% (e.g. from an ``eth_call``) for the
|
||||
* specified function (see [[getFunction]] for valid values for
|
||||
@ -195,18 +195,18 @@ export declare class Interface {
|
||||
/**
|
||||
* Encodes the result data (e.g. from an ``eth_call``) for the
|
||||
* specified function (see [[getFunction]] for valid values
|
||||
* for %%key%%) with %%values%%.
|
||||
* for %%fragment%%) with %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeFunctionResult(key: FunctionFragment | string, values?: ReadonlyArray<any>): string;
|
||||
encodeFilterTopics(eventFragment: EventFragment | string, values: ReadonlyArray<any>): Array<null | string | Array<string>>;
|
||||
encodeEventLog(eventFragment: EventFragment | string, values: ReadonlyArray<any>): {
|
||||
encodeFunctionResult(fragment: FunctionFragment | string, values?: ReadonlyArray<any>): string;
|
||||
encodeFilterTopics(fragment: EventFragment | string, values: ReadonlyArray<any>): Array<null | string | Array<string>>;
|
||||
encodeEventLog(fragment: EventFragment | string, values: ReadonlyArray<any>): {
|
||||
data: string;
|
||||
topics: Array<string>;
|
||||
};
|
||||
decodeEventLog(eventFragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray<string>): Result;
|
||||
decodeEventLog(fragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray<string>): Result;
|
||||
/**
|
||||
* Parses a transaction, finding the matching function and extracts
|
||||
* the parameter values along with other useful function details.
|
||||
|
@ -1 +1 @@
|
||||
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src.ts/abi/interface.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src.ts/abi/interface.ts"],"names":[],"mappings":"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"}
|
@ -1 +1 @@
|
||||
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src.ts/contract/contract.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src.ts/contract/contract.ts"],"names":[],"mappings":"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"}
|
Loading…
Reference in New Issue
Block a user