admin: updated dist files

This commit is contained in:
Richard Moore 2023-01-27 17:29:49 -05:00
parent 32f605eb7b
commit 2845a3c4b6
21 changed files with 364 additions and 214 deletions

174
dist/ethers.js vendored
View File

@ -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

File diff suppressed because one or more lines are too long

2
dist/ethers.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -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.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"
}

View File

@ -1 +1 @@
export const version: string = "6.0.0-beta-exports.13";
export const version: string = "6.0.0-beta-exports.14";

View File

@ -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.

View File

@ -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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"}

View File

@ -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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"}