admin: update dist files

This commit is contained in:
Richard Moore 2022-09-15 22:58:45 -04:00
parent 067536a837
commit 406a1d3d57
431 changed files with 13441 additions and 8554 deletions

10556
dist/ethers.js vendored

File diff suppressed because it is too large Load Diff

1
dist/ethers.js.map vendored Normal file

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

1020
dist/wordlists-extra.js vendored

File diff suppressed because it is too large Load Diff

1
dist/wordlists-extra.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,111 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.connect = exports.getProvider = exports.getProviderNetworks = exports.providerNames = void 0;
const index_js_1 = require("../index.js");
;
const ethNetworks = ["default", "homestead", "rinkeby", "ropsten", "goerli"];
//const maticNetworks = [ "matic", "maticmum" ];
const ProviderCreators = [
{
name: "AlchemyProvider",
networks: ethNetworks,
create: function (network) {
return new index_js_1.AlchemyProvider(network, "YrPw6SWb20vJDRFkhWq8aKnTQ8JRNRHM");
}
},
{
name: "AnkrProvider",
networks: ethNetworks.concat(["matic", "arbitrum"]),
create: function (network) {
return new index_js_1.AnkrProvider(network);
}
},
{
name: "CloudflareProvider",
networks: ["default", "homestead"],
create: function (network) {
return new index_js_1.CloudflareProvider(network);
}
},
{
name: "EtherscanProvider",
networks: ethNetworks,
create: function (network) {
return new index_js_1.EtherscanProvider(network, "FPFGK6JSW2UHJJ2666FG93KP7WC999MNW7");
}
},
{
name: "InfuraProvider",
networks: ethNetworks,
create: function (network) {
return new index_js_1.InfuraProvider(network, "49a0efa3aaee4fd99797bfa94d8ce2f1");
}
},
/*
{
name: "PocketProvider",
networks: ethNetworks,
create: function(network: string) {
const apiKeys: Record<string, string> = {
homestead: "6004bcd10040261633ade990",
ropsten: "6004bd4d0040261633ade991",
rinkeby: "6004bda20040261633ade994",
goerli: "6004bd860040261633ade992",
};
return new PocketProvider(network, apiKeys[network]);
}
},
*/
{
name: "FallbackProvider",
networks: ethNetworks,
create: function (network) {
const providers = [];
for (const creator of ProviderCreators) {
if (creator.name === "FallbackProvider") {
continue;
}
if (creator.networks.indexOf(network) >= 0) {
const provider = creator.create(network);
if (provider) {
providers.push(provider);
}
}
}
return new index_js_1.FallbackProvider(providers);
}
},
];
exports.providerNames = Object.freeze(ProviderCreators.map((c) => (c.name)));
function getCreator(provider) {
const creators = ProviderCreators.filter((c) => (c.name === provider));
if (creators.length === 1) {
return creators[0];
}
return null;
}
function getProviderNetworks(provider) {
const creator = getCreator(provider);
if (creator) {
return creator.networks;
}
return [];
}
exports.getProviderNetworks = getProviderNetworks;
function getProvider(provider, network) {
const creator = getCreator(provider);
if (creator) {
return creator.create(network);
}
return null;
}
exports.getProvider = getProvider;
function connect(network) {
const provider = getProvider("InfuraProvider", network);
if (provider == null) {
throw new Error(`could not connect to ${network}`);
}
return provider;
}
exports.connect = connect;
//# sourceMappingURL=create-provider.js.map

@ -0,0 +1 @@
{"version":3,"file":"create-provider.js","sourceRoot":"","sources":["../../src.ts/_tests/create-provider.ts"],"names":[],"mappings":"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"}

@ -0,0 +1,33 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const create_provider_js_1 = require("./create-provider.js");
describe("Resolve ENS avatar", function () {
[
{ title: "data", name: "data-avatar.tests.eth", value: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAMAAACeL25MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ4OCwgMjAyMC8wNy8xMC0yMjowNjo1MyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUQ4NTEyNUIyOEIwMTFFQzg0NTBDNTU2RDk1NTA5NzgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUQ4NTEyNUMyOEIwMTFFQzg0NTBDNTU2RDk1NTA5NzgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1RDg1MTI1OTI4QjAxMUVDODQ1MEM1NTZEOTU1MDk3OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1RDg1MTI1QTI4QjAxMUVDODQ1MEM1NTZEOTU1MDk3OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkbM0uMAAAAGUExURQAA/wAAAHtivz4AAAAOSURBVHjaYmDABAABBgAAFAABaEkyYwAAAABJRU5ErkJggg==" },
{ title: "ipfs", name: "ipfs-avatar.tests.eth", value: "https:/\/gateway.ipfs.io/ipfs/QmQsQgpda6JAYkFoeVcj5iPbwV3xRcvaiXv3bhp1VuYUqw" },
{ title: "url", name: "url-avatar.tests.eth", value: "https:/\/ethers.org/static/logo.png" },
].forEach((test) => {
it(`Resolves avatar for ${test.title}`, async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
const avatar = await provider.getAvatar(test.name);
assert_1.default.equal(test.value, avatar, "avatar url");
});
});
[
{ title: "ERC-1155", name: "nick.eth", value: "https:/\/lh3.googleusercontent.com/hKHZTZSTmcznonu8I6xcVZio1IF76fq0XmcxnvUykC-FGuVJ75UPdLDlKJsfgVXH9wOSmkyHw0C39VAYtsGyxT7WNybjQ6s3fM3macE" },
// { title: "ERC-721", name: "brantly.eth", value: "https:/\/api.wrappedpunks.com/images/punks/2430.png" }
].forEach((test) => {
it(`Resolves avatar for ${test.title}`, async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("homestead");
const avatar = await provider.getAvatar(test.name);
assert_1.default.equal(avatar, test.value, "avatar url");
});
});
});
//# sourceMappingURL=test-providers-avatar.js.map

@ -0,0 +1 @@
{"version":3,"file":"test-providers-avatar.js","sourceRoot":"","sources":["../../src.ts/_tests/test-providers-avatar.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,6DAA+C;AAE/C,QAAQ,CAAC,oBAAoB,EAAE;IAC3B;QACI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,owCAAowC,EAAE;QAC7zC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,8EAA8E,EAAE;QACvI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,qCAAqC,EAAE;KAC/F,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,EAAE,CAAC,uBAAwB,IAAI,CAAC,KAAM,EAAE,EAAE,KAAK;YAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAA,4BAAO,EAAC,SAAS,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH;QACI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,4IAA4I,EAAE;QACpM,iHAAiH;KAC5G,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,EAAE,CAAC,uBAAwB,IAAI,CAAC,KAAM,EAAE,EAAE,KAAK;YAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAA,4BAAO,EAAC,WAAW,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,gBAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}

@ -0,0 +1,141 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const index_js_1 = require("../index.js");
const create_provider_js_1 = require("./create-provider.js");
describe("Test CCIP execution", function () {
// This matches the verify method in the Solidity contract against the
// processed data from the endpoint
const verify = function (sender, data, result) {
const check = (0, index_js_1.concat)([
(0, index_js_1.toArray)((0, index_js_1.dataLength)(sender)), sender,
(0, index_js_1.toArray)((0, index_js_1.dataLength)(data)), data
]);
assert_1.default.equal(result, (0, index_js_1.keccak256)(check), "response is equal");
};
const address = "0xAe375B05A08204C809b3cA67C680765661998886";
const calldata = "0x1234";
it("testGet passes under normal operation", async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
// testGet(bytes callData = "0x1234")
const tx = {
to: address, enableCcipRead: true,
data: "0xa5f3271e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000"
};
const result = await provider.call(tx);
verify(address, calldata, result);
});
it("testGet should fail with CCIP not explicitly enabled by overrides", async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
// testGet(bytes callData = "0x1234")
const tx = {
to: address,
data: "0xa5f3271e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000"
};
await assert_1.default.rejects(async function () {
const result = await provider.call(tx);
console.log(result);
}, (error) => {
const offchainErrorData = "0x556f1830000000000000000000000000ae375b05a08204c809b3ca67c68076566199888600000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000140b1494be100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004068747470733a2f2f6574686572732e7269636d6f6f2e776f726b6572732e6465762f746573742d636369702d726561642f7b73656e6465727d2f7b646174617d00000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d4d79206578747261206461746100000000000000000000000000000000000000";
return ((0, index_js_1.isCallException)(error) && error.data === offchainErrorData);
});
});
it("testGet should fail with CCIP explicitly disabled on provider", async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
provider.disableCcipRead = true;
// testGetFail(bytes callData = "0x1234")
const tx = {
to: address, enableCcipRead: true,
data: "0xa5f3271e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000"
};
await assert_1.default.rejects(async function () {
const result = await provider.call(tx);
console.log(result);
}, (error) => {
const offchainErrorData = "0x556f1830000000000000000000000000ae375b05a08204c809b3ca67c68076566199888600000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000140b1494be100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004068747470733a2f2f6574686572732e7269636d6f6f2e776f726b6572732e6465762f746573742d636369702d726561642f7b73656e6465727d2f7b646174617d00000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d4d79206578747261206461746100000000000000000000000000000000000000";
return ((0, index_js_1.isCallException)(error) && error.data === offchainErrorData);
});
});
it("testGetFail should fail if all URLs 5xx", async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
// testGetFail(bytes callData = "0x1234")
const tx = {
to: address, enableCcipRead: true,
data: "0x36f9cea6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000"
};
await assert_1.default.rejects(async function () {
const result = await provider.call(tx);
console.log(result);
}, (error) => {
const infoJson = '{"urls":["https:/\/ethers.ricmoo.workers.dev/status/500/{sender}/{data}"],"errorMessages":["hello world"]}';
return ((0, index_js_1.isError)(error, "OFFCHAIN_FAULT") && error.reason === "500_SERVER_ERROR" &&
JSON.stringify(error.info) === infoJson);
});
});
it("testGetSenderFail should fail if sender does not match", async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
// testGetSenderFail(bytes callData = "0x1234")
const tx = {
to: address, enableCcipRead: true,
data: "0x64bff6d1000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000",
};
await assert_1.default.rejects(async function () {
const result = await provider.call(tx);
console.log(result);
}, (error) => {
const errorArgsJson = '["0x0000000000000000000000000000000000000000",["https://ethers.ricmoo.workers.dev/test-ccip-read/{sender}/{data}"],"0x1234","0xb1494be1","0x4d792065787472612064617461"]';
const offchainErrorData = "0x556f1830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000140b1494be100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004068747470733a2f2f6574686572732e7269636d6f6f2e776f726b6572732e6465762f746573742d636369702d726561642f7b73656e6465727d2f7b646174617d00000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d4d79206578747261206461746100000000000000000000000000000000000000";
return ((0, index_js_1.isCallException)(error) && error.data === offchainErrorData &&
error.errorSignature === "OffchainLookup(address,string[],bytes,bytes4,bytes)" &&
JSON.stringify(error.errorArgs) === errorArgsJson);
});
});
it("testGetMissing should fail if early URL 4xx", async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
// testGetMissing(bytes callData = "0x1234")
const tx = {
to: address, enableCcipRead: true,
data: "0x4ece8d7d000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000"
};
await assert_1.default.rejects(async function () {
const result = await provider.call(tx);
console.log(result);
}, (error) => {
const infoJson = '{"url":"https:/\/ethers.ricmoo.workers.dev/status/404/{sender}/{data}","errorMessage":"hello world"}';
return ((0, index_js_1.isError)(error, "OFFCHAIN_FAULT") && error.reason === "404_MISSING_RESOURCE" &&
JSON.stringify(error.info || "") === infoJson);
});
});
it("testGetFallback passes if any URL returns correctly", async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
// testGetFallback(bytes callData = "0x1234")
const tx = {
to: address, enableCcipRead: true,
data: "0xedf4a021000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000"
};
const result = await provider.call(tx);
verify(address, calldata, result);
});
it("testPost passes under normal operation", async function () {
this.timeout(60000);
const provider = (0, create_provider_js_1.connect)("ropsten");
// testPost(bytes callData = "0x1234")
const tx = {
to: address, enableCcipRead: true,
data: "0x66cab49d000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000021234000000000000000000000000000000000000000000000000000000000000"
};
const result = await provider.call(tx);
verify(address, calldata, result);
});
});
//# sourceMappingURL=test-providers-ccip.js.map

@ -0,0 +1 @@
{"version":3,"file":"test-providers-ccip.js","sourceRoot":"","sources":["../../src.ts/_tests/test-providers-ccip.ts"],"names":[],"mappings":"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"}

@ -0,0 +1,20 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const create_provider_js_1 = require("./create-provider.js");
describe("Test EIP-2544 ENS wildcards", function () {
const provider = (0, create_provider_js_1.connect)("ropsten");
it("Resolves recursively", async function () {
const resolver = await provider.getResolver("ricmoose.hatch.eth");
assert_1.default.ok(resolver, "failed to get resolver");
assert_1.default.equal(resolver.address, "0x8fc4C380c5d539aE631daF3Ca9182b40FB21D1ae", "address");
assert_1.default.equal(await resolver.supportsWildcard(), true, "supportsWildcard()");
// Test pass-through avatar
assert_1.default.equal(await resolver.getAvatar(), "https:/\/static.ricmoo.com/uploads/profile-06cb9c3031c9.jpg", "getAvatar()");
assert_1.default.equal(await resolver.getAddress(), "0x4FaBE0A3a4DDd9968A7b4565184Ad0eFA7BE5411", "getAddress()");
});
});
//# sourceMappingURL=test-providers-wildcard.js.map

@ -0,0 +1 @@
{"version":3,"file":"test-providers-wildcard.js","sourceRoot":"","sources":["../../src.ts/_tests/test-providers-wildcard.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,6DAA+C;AAE/C,QAAQ,CAAC,6BAA6B,EAAE;IACpC,MAAM,QAAQ,GAAG,IAAA,4BAAO,EAAC,SAAS,CAAC,CAAC;IAEpC,EAAE,CAAC,sBAAsB,EAAE,KAAK;QAC5B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAClE,gBAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QAE9C,gBAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAC;QACxF,gBAAM,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAE5E,2BAA2B;QAC3B,gBAAM,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,EAAE,6DAA6D,EAAE,aAAa,CAAC,CAAC;QAEvH,gBAAM,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,4CAA4C,EAAE,cAAc,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}

@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.log = exports.loadTests = void 0; exports.stats = exports.Stats = exports.retryIt = exports.log = exports.loadTests = void 0;
const fs_1 = __importDefault(require("fs")); const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path")); const path_1 = __importDefault(require("path"));
const zlib_1 = __importDefault(require("zlib")); const zlib_1 = __importDefault(require("zlib"));
@ -37,4 +37,91 @@ function log(context, text) {
} }
} }
exports.log = log; exports.log = log;
async function stall(duration) {
return new Promise((resolve) => { setTimeout(resolve, duration); });
}
const ATTEMPTS = 5;
async function retryIt(name, func) {
it(name, async function () {
this.timeout(ATTEMPTS * 5000);
for (let i = 0; i < ATTEMPTS; i++) {
try {
await func.call(this);
return;
}
catch (error) {
if (error.message === "sync skip; aborting execution") {
// Skipping a test; let mocha handle it
throw error;
}
else if (error.code === "ERR_ASSERTION") {
// Assertion error; let mocha scold us
throw error;
}
else {
if (i === ATTEMPTS - 1) {
exports.stats.pushRetry(i, name, error);
}
else {
await stall(500 * (1 << i));
exports.stats.pushRetry(i, name, null);
}
}
}
}
// All hope is lost.
throw new Error(`Failed after ${ATTEMPTS} attempts; ${name}`);
});
}
exports.retryIt = retryIt;
const _guard = {};
class Stats {
#stats;
constructor(guard) {
if (guard !== _guard) {
throw new Error("private constructor");
}
this.#stats = [];
}
#currentStats() {
if (this.#stats.length === 0) {
throw new Error("no active stats");
}
return this.#stats[this.#stats.length - 1];
}
pushRetry(attempt, line, error) {
const { retries } = this.#currentStats();
if (attempt > 0) {
retries.pop();
}
if (retries.length < 100) {
retries.push({
message: `${attempt + 1} failures: ${line}`,
error
});
}
}
start(name) {
this.#stats.push({ name, retries: [] });
}
end(context) {
let log = console.log.bind(console);
if (context && typeof (context._ethersLog) === "function") {
log = context._ethersLog;
}
const { name, retries } = this.#currentStats();
if (retries.length === 0) {
return;
}
log(`Warning: The following tests required retries (${name})`);
retries.forEach(({ error, message }) => {
log(" " + message);
if (error) {
log(error);
}
});
}
}
exports.Stats = Stats;
exports.stats = new Stats(_guard);
//# sourceMappingURL=utils.js.map //# sourceMappingURL=utils.js.map

@ -1 +1 @@
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src.ts/_tests/utils.ts"],"names":[],"mappings":";;;;;;AACA,4CAAmB;AACnB,gDAAwB;AACxB,gDAAwB;AAExB,0DAA0D;AAC1D,MAAM,IAAI,GAAG,CAAC;IACV,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzB,OAAO,IAAI,EAAE;QACT,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;SAAE;QAC9D,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,IAAI,EAAE;YAAE,MAAM;SAAE;QAC/B,IAAI,GAAG,MAAM,CAAC;KACjB;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAC3C,CAAC,CAAC,EAAE,CAAC;AAEL,iBAAiB;AACjB,SAAgB,SAAS,CAAI,GAAW;IACrC,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,GAAG,UAAU,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,KAAK,CAAC,cAAI,CAAC,UAAU,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5E,CAAC;AAHD,8BAGC;AAED,SAAgB,GAAG,CAAC,OAAY,EAAE,IAAY;IAC1C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE;QAC3E,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACjC;SAAM;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACrB;AACL,CAAC;AAND,kBAMC"} {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src.ts/_tests/utils.ts"],"names":[],"mappings":"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"}

@ -2,7 +2,7 @@
// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI // See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultAbiCoder = exports.AbiCoder = void 0; exports.defaultAbiCoder = exports.AbiCoder = void 0;
const logger_js_1 = require("../utils/logger.js"); const index_js_1 = require("../utils/index.js");
const abstract_coder_js_1 = require("./coders/abstract-coder.js"); const abstract_coder_js_1 = require("./coders/abstract-coder.js");
const address_js_1 = require("./coders/address.js"); const address_js_1 = require("./coders/address.js");
const array_js_1 = require("./coders/array.js"); const array_js_1 = require("./coders/array.js");
@ -41,7 +41,7 @@ class AbiCoder {
if (match) { if (match) {
let size = parseInt(match[2] || "256"); let size = parseInt(match[2] || "256");
if (size === 0 || size > 256 || (size % 8) !== 0) { if (size === 0 || size > 256 || (size % 8) !== 0) {
logger_js_1.logger.throwArgumentError("invalid " + match[1] + " bit length", "param", param); (0, index_js_1.throwArgumentError)("invalid " + match[1] + " bit length", "param", param);
} }
return new number_js_1.NumberCoder(size / 8, (match[1] === "int"), param.name); return new number_js_1.NumberCoder(size / 8, (match[1] === "int"), param.name);
} }
@ -50,11 +50,11 @@ class AbiCoder {
if (match) { if (match) {
let size = parseInt(match[1]); let size = parseInt(match[1]);
if (size === 0 || size > 32) { if (size === 0 || size > 32) {
logger_js_1.logger.throwArgumentError("invalid bytes length", "param", param); (0, index_js_1.throwArgumentError)("invalid bytes length", "param", param);
} }
return new fixed_bytes_js_1.FixedBytesCoder(size, param.name); return new fixed_bytes_js_1.FixedBytesCoder(size, param.name);
} }
return logger_js_1.logger.throwArgumentError("invalid type", "type", param.type); return (0, index_js_1.throwArgumentError)("invalid type", "type", param.type);
} }
getDefaultValue(types) { getDefaultValue(types) {
const coders = types.map((type) => this.#getCoder(fragments_js_1.ParamType.from(type))); const coders = types.map((type) => this.#getCoder(fragments_js_1.ParamType.from(type)));
@ -62,7 +62,7 @@ class AbiCoder {
return coder.defaultValue(); return coder.defaultValue();
} }
encode(types, values) { encode(types, values) {
logger_js_1.logger.assertArgumentCount(values.length, types.length, "types/values length mismatch"); (0, index_js_1.assertArgumentCount)(values.length, types.length, "types/values length mismatch");
const coders = types.map((type) => this.#getCoder(fragments_js_1.ParamType.from(type))); const coders = types.map((type) => this.#getCoder(fragments_js_1.ParamType.from(type)));
const coder = (new tuple_js_1.TupleCoder(coders, "_")); const coder = (new tuple_js_1.TupleCoder(coders, "_"));
const writer = new abstract_coder_js_1.Writer(); const writer = new abstract_coder_js_1.Writer();

@ -1 +1 @@
{"version":3,"file":"abi-coder.js","sourceRoot":"","sources":["../../src.ts/abi/abi-coder.ts"],"names":[],"mappings":"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"} {"version":3,"file":"abi-coder.js","sourceRoot":"","sources":["../../src.ts/abi/abi-coder.ts"],"names":[],"mappings":"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"}

@ -1,22 +1,20 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.parseBytes32String = exports.formatBytes32String = void 0; exports.parseBytes32String = exports.formatBytes32String = void 0;
const data_js_1 = require("../utils/data.js"); const index_js_1 = require("../utils/index.js");
const logger_js_1 = require("../utils/logger.js");
const utf8_js_1 = require("../utils/utf8.js");
function formatBytes32String(text) { function formatBytes32String(text) {
// Get the bytes // Get the bytes
const bytes = (0, utf8_js_1.toUtf8Bytes)(text); const bytes = (0, index_js_1.toUtf8Bytes)(text);
// Check we have room for null-termination // Check we have room for null-termination
if (bytes.length > 31) { if (bytes.length > 31) {
throw new Error("bytes32 string must be less than 32 bytes"); throw new Error("bytes32 string must be less than 32 bytes");
} }
// Zero-pad (implicitly null-terminates) // Zero-pad (implicitly null-terminates)
return (0, data_js_1.zeroPadBytes)(bytes, 32); return (0, index_js_1.zeroPadBytes)(bytes, 32);
} }
exports.formatBytes32String = formatBytes32String; exports.formatBytes32String = formatBytes32String;
function parseBytes32String(_bytes) { function parseBytes32String(_bytes) {
const data = logger_js_1.logger.getBytes(_bytes, "bytes"); const data = (0, index_js_1.getBytes)(_bytes, "bytes");
// Must be 32 bytes with a null-termination // Must be 32 bytes with a null-termination
if (data.length !== 32) { if (data.length !== 32) {
throw new Error("invalid bytes32 - not 32 bytes long"); throw new Error("invalid bytes32 - not 32 bytes long");
@ -30,7 +28,7 @@ function parseBytes32String(_bytes) {
length--; length--;
} }
// Determine the string value // Determine the string value
return (0, utf8_js_1.toUtf8String)(data.slice(0, length)); return (0, index_js_1.toUtf8String)(data.slice(0, length));
} }
exports.parseBytes32String = parseBytes32String; exports.parseBytes32String = parseBytes32String;
//# sourceMappingURL=bytes32.js.map //# sourceMappingURL=bytes32.js.map

@ -1 +1 @@
{"version":3,"file":"bytes32.js","sourceRoot":"","sources":["../../src.ts/abi/bytes32.ts"],"names":[],"mappings":";;;AACA,8CAAgD;AAEhD,kDAA4C;AAE5C,8CAA6D;AAK7D,SAAgB,mBAAmB,CAAC,IAAY;IAE5C,gBAAgB;IAChB,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAC;IAEhC,0CAA0C;IAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAAE;IAExF,wCAAwC;IACxC,OAAO,IAAA,sBAAY,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAVD,kDAUC;AAED,SAAgB,kBAAkB,CAAC,MAAiB;IAChD,MAAM,IAAI,GAAG,kBAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9C,2CAA2C;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KAAE;IACnF,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAAE;IAEvF,4BAA4B;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC;KAAE;IAE5C,6BAA6B;IAC7B,OAAO,IAAA,sBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAbD,gDAaC"} {"version":3,"file":"bytes32.js","sourceRoot":"","sources":["../../src.ts/abi/bytes32.ts"],"names":[],"mappings":";;;AACA,gDAE2B;AAK3B,SAAgB,mBAAmB,CAAC,IAAY;IAE5C,gBAAgB;IAChB,MAAM,KAAK,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,CAAC;IAEhC,0CAA0C;IAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAAE;IAExF,wCAAwC;IACxC,OAAO,IAAA,uBAAY,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAVD,kDAUC;AAED,SAAgB,kBAAkB,CAAC,MAAiB;IAChD,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC,2CAA2C;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KAAE;IACnF,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAAE;IAEvF,4BAA4B;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC;KAAE;IAE5C,6BAA6B;IAC7B,OAAO,IAAA,uBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAbD,gDAaC"}

@ -1,10 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.Reader = exports.Writer = exports.Coder = exports.checkResultErrors = exports.Result = exports.WordSize = void 0; exports.Reader = exports.Writer = exports.Coder = exports.checkResultErrors = exports.Result = exports.WordSize = void 0;
const maths_js_1 = require("../../utils/maths.js"); const index_js_1 = require("../../utils/index.js");
const data_js_1 = require("../../utils/data.js");
const properties_js_1 = require("../../utils/properties.js");
const logger_js_1 = require("../../utils/logger.js");
exports.WordSize = 32; exports.WordSize = 32;
const Padding = new Uint8Array(exports.WordSize); const Padding = new Uint8Array(exports.WordSize);
// Properties used to immediate pass through to the underlying object // Properties used to immediate pass through to the underlying object
@ -14,7 +11,7 @@ const _guard = {};
class Result extends Array { class Result extends Array {
#indices; #indices;
constructor(guard, items, keys) { constructor(guard, items, keys) {
logger_js_1.logger.assertPrivate(guard, _guard, "Result"); (0, index_js_1.assertPrivate)(guard, _guard, "Result");
super(...items); super(...items);
// Name lookup table // Name lookup table
this.#indices = new Map(); this.#indices = new Map();
@ -36,7 +33,7 @@ class Result extends Array {
get: (target, prop, receiver) => { get: (target, prop, receiver) => {
if (typeof (prop) === "string") { if (typeof (prop) === "string") {
if (prop.match(/^[0-9]+$/)) { if (prop.match(/^[0-9]+$/)) {
const index = logger_js_1.logger.getNumber(prop, "%index"); const index = (0, index_js_1.getNumber)(prop, "%index");
if (index < 0 || index >= this.length) { if (index < 0 || index >= this.length) {
throw new RangeError("out of result range"); throw new RangeError("out of result range");
} }
@ -135,16 +132,16 @@ function checkResultErrors(result) {
} }
exports.checkResultErrors = checkResultErrors; exports.checkResultErrors = checkResultErrors;
function getValue(value) { function getValue(value) {
let bytes = (0, maths_js_1.toArray)(value); let bytes = (0, index_js_1.toArray)(value);
if (bytes.length > exports.WordSize) { if (bytes.length > exports.WordSize) {
logger_js_1.logger.throwError("value out-of-bounds", "BUFFER_OVERRUN", { (0, index_js_1.throwError)("value out-of-bounds", "BUFFER_OVERRUN", {
buffer: bytes, buffer: bytes,
length: exports.WordSize, length: exports.WordSize,
offset: bytes.length offset: bytes.length
}); });
} }
if (bytes.length !== exports.WordSize) { if (bytes.length !== exports.WordSize) {
bytes = logger_js_1.logger.getBytesCopy((0, data_js_1.concat)([Padding.slice(bytes.length % exports.WordSize), bytes])); bytes = (0, index_js_1.getBytesCopy)((0, index_js_1.concat)([Padding.slice(bytes.length % exports.WordSize), bytes]));
} }
return bytes; return bytes;
} }
@ -163,12 +160,12 @@ class Coder {
// - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8) // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)
dynamic; dynamic;
constructor(name, type, localName, dynamic) { constructor(name, type, localName, dynamic) {
(0, properties_js_1.defineProperties)(this, { name, type, localName, dynamic }, { (0, index_js_1.defineProperties)(this, { name, type, localName, dynamic }, {
name: "string", type: "string", localName: "string", dynamic: "boolean" name: "string", type: "string", localName: "string", dynamic: "boolean"
}); });
} }
_throwError(message, value) { _throwError(message, value) {
return logger_js_1.logger.throwArgumentError(message, this.localName, value); return (0, index_js_1.throwArgumentError)(message, this.localName, value);
} }
} }
exports.Coder = Coder; exports.Coder = Coder;
@ -181,7 +178,7 @@ class Writer {
this.#dataLength = 0; this.#dataLength = 0;
} }
get data() { get data() {
return (0, data_js_1.concat)(this.#data); return (0, index_js_1.concat)(this.#data);
} }
get length() { return this.#dataLength; } get length() { return this.#dataLength; }
#writeData(data) { #writeData(data) {
@ -190,14 +187,14 @@ class Writer {
return data.length; return data.length;
} }
appendWriter(writer) { appendWriter(writer) {
return this.#writeData(logger_js_1.logger.getBytesCopy(writer.data)); return this.#writeData((0, index_js_1.getBytesCopy)(writer.data));
} }
// Arrayish item; pad on the right to *nearest* WordSize // Arrayish item; pad on the right to *nearest* WordSize
writeBytes(value) { writeBytes(value) {
let bytes = logger_js_1.logger.getBytesCopy(value); let bytes = (0, index_js_1.getBytesCopy)(value);
const paddingOffset = bytes.length % exports.WordSize; const paddingOffset = bytes.length % exports.WordSize;
if (paddingOffset) { if (paddingOffset) {
bytes = logger_js_1.logger.getBytesCopy((0, data_js_1.concat)([bytes, Padding.slice(paddingOffset)])); bytes = (0, index_js_1.getBytesCopy)((0, index_js_1.concat)([bytes, Padding.slice(paddingOffset)]));
} }
return this.#writeData(bytes); return this.#writeData(bytes);
} }
@ -226,11 +223,11 @@ class Reader {
#data; #data;
#offset; #offset;
constructor(data, allowLoose) { constructor(data, allowLoose) {
(0, properties_js_1.defineProperties)(this, { allowLoose: !!allowLoose }); (0, index_js_1.defineProperties)(this, { allowLoose: !!allowLoose });
this.#data = logger_js_1.logger.getBytesCopy(data); this.#data = (0, index_js_1.getBytesCopy)(data);
this.#offset = 0; this.#offset = 0;
} }
get data() { return (0, data_js_1.hexlify)(this.#data); } get data() { return (0, index_js_1.hexlify)(this.#data); }
get dataLength() { return this.#data.length; } get dataLength() { return this.#data.length; }
get consumed() { return this.#offset; } get consumed() { return this.#offset; }
get bytes() { return new Uint8Array(this.#data); } get bytes() { return new Uint8Array(this.#data); }
@ -241,8 +238,8 @@ class Reader {
alignedLength = length; alignedLength = length;
} }
else { else {
logger_js_1.logger.throwError("data out-of-bounds", "BUFFER_OVERRUN", { (0, index_js_1.throwError)("data out-of-bounds", "BUFFER_OVERRUN", {
buffer: logger_js_1.logger.getBytesCopy(this.#data), buffer: (0, index_js_1.getBytesCopy)(this.#data),
length: this.#data.length, length: this.#data.length,
offset: this.#offset + alignedLength offset: this.#offset + alignedLength
}); });
@ -263,10 +260,10 @@ class Reader {
} }
// Read a numeric values // Read a numeric values
readValue() { readValue() {
return (0, maths_js_1.toBigInt)(this.readBytes(exports.WordSize)); return (0, index_js_1.toBigInt)(this.readBytes(exports.WordSize));
} }
readIndex() { readIndex() {
return (0, maths_js_1.toNumber)(this.readBytes(exports.WordSize)); return (0, index_js_1.toNumber)(this.readBytes(exports.WordSize));
} }
} }
exports.Reader = Reader; exports.Reader = Reader;

File diff suppressed because one or more lines are too long

@ -1,9 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.ArrayCoder = exports.unpack = exports.pack = void 0; exports.ArrayCoder = exports.unpack = exports.pack = void 0;
const properties_js_1 = require("../../utils/properties.js"); const index_js_1 = require("../../utils/index.js");
const errors_js_1 = require("../../utils/errors.js");
const logger_js_1 = require("../../utils/logger.js");
const typed_js_1 = require("../typed.js"); const typed_js_1 = require("../typed.js");
const abstract_coder_js_1 = require("./abstract-coder.js"); const abstract_coder_js_1 = require("./abstract-coder.js");
const anonymous_js_1 = require("./anonymous.js"); const anonymous_js_1 = require("./anonymous.js");
@ -17,14 +15,14 @@ function pack(writer, coders, values) {
arrayValues = coders.map((coder) => { arrayValues = coders.map((coder) => {
const name = coder.localName; const name = coder.localName;
if (!name) { if (!name) {
logger_js_1.logger.throwError("cannot encode object for signature with missing names", "INVALID_ARGUMENT", { (0, index_js_1.throwError)("cannot encode object for signature with missing names", "INVALID_ARGUMENT", {
argument: "values", argument: "values",
info: { coder }, info: { coder },
value: values value: values
}); });
} }
if (unique[name]) { if (unique[name]) {
logger_js_1.logger.throwError("cannot encode object for signature with duplicate names", "INVALID_ARGUMENT", { (0, index_js_1.throwError)("cannot encode object for signature with duplicate names", "INVALID_ARGUMENT", {
argument: "values", argument: "values",
info: { coder }, info: { coder },
value: values value: values
@ -35,10 +33,10 @@ function pack(writer, coders, values) {
}); });
} }
else { else {
logger_js_1.logger.throwArgumentError("invalid tuple value", "tuple", values); (0, index_js_1.throwArgumentError)("invalid tuple value", "tuple", values);
} }
if (coders.length !== arrayValues.length) { if (coders.length !== arrayValues.length) {
logger_js_1.logger.throwArgumentError("types/value length mismatch", "tuple", values); (0, index_js_1.throwArgumentError)("types/value length mismatch", "tuple", values);
} }
let staticWriter = new abstract_coder_js_1.Writer(); let staticWriter = new abstract_coder_js_1.Writer();
let dynamicWriter = new abstract_coder_js_1.Writer(); let dynamicWriter = new abstract_coder_js_1.Writer();
@ -82,7 +80,7 @@ function unpack(reader, coders) {
} }
catch (error) { catch (error) {
// Cannot recover from this // Cannot recover from this
if ((0, errors_js_1.isError)(error, "BUFFER_OVERRUN")) { if ((0, index_js_1.isError)(error, "BUFFER_OVERRUN")) {
throw error; throw error;
} }
value = error; value = error;
@ -97,7 +95,7 @@ function unpack(reader, coders) {
} }
catch (error) { catch (error) {
// Cannot recover from this // Cannot recover from this
if ((0, errors_js_1.isError)(error, "BUFFER_OVERRUN")) { if ((0, index_js_1.isError)(error, "BUFFER_OVERRUN")) {
throw error; throw error;
} }
value = error; value = error;
@ -122,7 +120,7 @@ class ArrayCoder extends abstract_coder_js_1.Coder {
const type = (coder.type + "[" + (length >= 0 ? length : "") + "]"); const type = (coder.type + "[" + (length >= 0 ? length : "") + "]");
const dynamic = (length === -1 || coder.dynamic); const dynamic = (length === -1 || coder.dynamic);
super("array", type, localName, dynamic); super("array", type, localName, dynamic);
(0, properties_js_1.defineProperties)(this, { coder, length }); (0, index_js_1.defineProperties)(this, { coder, length });
} }
defaultValue() { defaultValue() {
// Verifies the child coder is valid (even if the array is dynamic or 0-length) // Verifies the child coder is valid (even if the array is dynamic or 0-length)
@ -143,7 +141,7 @@ class ArrayCoder extends abstract_coder_js_1.Coder {
count = value.length; count = value.length;
writer.writeValue(value.length); writer.writeValue(value.length);
} }
logger_js_1.logger.assertArgumentCount(value.length, count, "coder array" + (this.localName ? (" " + this.localName) : "")); (0, index_js_1.assertArgumentCount)(value.length, count, "coder array" + (this.localName ? (" " + this.localName) : ""));
let coders = []; let coders = [];
for (let i = 0; i < value.length; i++) { for (let i = 0; i < value.length; i++) {
coders.push(this.coder); coders.push(this.coder);
@ -160,7 +158,7 @@ class ArrayCoder extends abstract_coder_js_1.Coder {
// bytes as a link to the data). This could use a much // bytes as a link to the data). This could use a much
// tighter bound, but we are erroring on the side of safety. // tighter bound, but we are erroring on the side of safety.
if (count * abstract_coder_js_1.WordSize > reader.dataLength) { if (count * abstract_coder_js_1.WordSize > reader.dataLength) {
logger_js_1.logger.throwError("insufficient data length", "BUFFER_OVERRUN", { (0, index_js_1.throwError)("insufficient data length", "BUFFER_OVERRUN", {
buffer: reader.bytes, buffer: reader.bytes,
offset: count * abstract_coder_js_1.WordSize, offset: count * abstract_coder_js_1.WordSize,
length: reader.dataLength length: reader.dataLength

File diff suppressed because one or more lines are too long

@ -1,8 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.BytesCoder = exports.DynamicBytesCoder = void 0; exports.BytesCoder = exports.DynamicBytesCoder = void 0;
const logger_js_1 = require("../../utils/logger.js"); const index_js_1 = require("../../utils/index.js");
const data_js_1 = require("../../utils/data.js");
const abstract_coder_js_1 = require("./abstract-coder.js"); const abstract_coder_js_1 = require("./abstract-coder.js");
class DynamicBytesCoder extends abstract_coder_js_1.Coder { class DynamicBytesCoder extends abstract_coder_js_1.Coder {
constructor(type, localName) { constructor(type, localName) {
@ -12,7 +11,7 @@ class DynamicBytesCoder extends abstract_coder_js_1.Coder {
return "0x"; return "0x";
} }
encode(writer, value) { encode(writer, value) {
value = logger_js_1.logger.getBytesCopy(value); value = (0, index_js_1.getBytesCopy)(value);
let length = writer.writeValue(value.length); let length = writer.writeValue(value.length);
length += writer.writeBytes(value); length += writer.writeBytes(value);
return length; return length;
@ -27,7 +26,7 @@ class BytesCoder extends DynamicBytesCoder {
super("bytes", localName); super("bytes", localName);
} }
decode(reader) { decode(reader) {
return (0, data_js_1.hexlify)(super.decode(reader)); return (0, index_js_1.hexlify)(super.decode(reader));
} }
} }
exports.BytesCoder = BytesCoder; exports.BytesCoder = BytesCoder;

@ -1 +1 @@
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/bytes.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAC/C,iDAA8C;AAE9C,2DAA4C;AAK5C,MAAa,iBAAkB,SAAQ,yBAAK;IACxC,YAAY,IAAY,EAAE,SAAiB;QACxC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAAU;QAC7B,KAAK,GAAG,kBAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACJ;AAnBD,8CAmBC;AAED,MAAa,UAAW,SAAQ,iBAAiB;IAC7C,YAAY,SAAiB;QACzB,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,iBAAO,EAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;CACJ;AARD,gCAQC"} {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/bytes.ts"],"names":[],"mappings":";;;AAAA,mDAA6D;AAE7D,2DAA4C;AAK5C,MAAa,iBAAkB,SAAQ,yBAAK;IACxC,YAAY,IAAY,EAAE,SAAiB;QACxC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAAU;QAC7B,KAAK,GAAG,IAAA,uBAAY,EAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACJ;AAnBD,8CAmBC;AAED,MAAa,UAAW,SAAQ,iBAAiB;IAC7C,YAAY,SAAiB;QACzB,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,kBAAO,EAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;CACJ;AARD,gCAQC"}

@ -1,9 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.FixedBytesCoder = void 0; exports.FixedBytesCoder = void 0;
const logger_js_1 = require("../../utils/logger.js"); const index_js_1 = require("../../utils/index.js");
const data_js_1 = require("../../utils/data.js");
const properties_js_1 = require("../../utils/properties.js");
const typed_js_1 = require("../typed.js"); const typed_js_1 = require("../typed.js");
const abstract_coder_js_1 = require("./abstract-coder.js"); const abstract_coder_js_1 = require("./abstract-coder.js");
class FixedBytesCoder extends abstract_coder_js_1.Coder { class FixedBytesCoder extends abstract_coder_js_1.Coder {
@ -11,20 +9,20 @@ class FixedBytesCoder extends abstract_coder_js_1.Coder {
constructor(size, localName) { constructor(size, localName) {
let name = "bytes" + String(size); let name = "bytes" + String(size);
super(name, name, localName, false); super(name, name, localName, false);
(0, properties_js_1.defineProperties)(this, { size }, { size: "number" }); (0, index_js_1.defineProperties)(this, { size }, { size: "number" });
} }
defaultValue() { defaultValue() {
return ("0x0000000000000000000000000000000000000000000000000000000000000000").substring(0, 2 + this.size * 2); return ("0x0000000000000000000000000000000000000000000000000000000000000000").substring(0, 2 + this.size * 2);
} }
encode(writer, _value) { encode(writer, _value) {
let data = logger_js_1.logger.getBytesCopy(typed_js_1.Typed.dereference(_value, this.type)); let data = (0, index_js_1.getBytesCopy)(typed_js_1.Typed.dereference(_value, this.type));
if (data.length !== this.size) { if (data.length !== this.size) {
this._throwError("incorrect data length", _value); this._throwError("incorrect data length", _value);
} }
return writer.writeBytes(data); return writer.writeBytes(data);
} }
decode(reader) { decode(reader) {
return (0, data_js_1.hexlify)(reader.readBytes(this.size)); return (0, index_js_1.hexlify)(reader.readBytes(this.size));
} }
} }
exports.FixedBytesCoder = FixedBytesCoder; exports.FixedBytesCoder = FixedBytesCoder;

@ -1 +1 @@
{"version":3,"file":"fixed-bytes.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/fixed-bytes.ts"],"names":[],"mappings":";;;AACA,qDAA+C;AAC/C,iDAA8C;AAC9C,6DAA6D;AAE7D,0CAAoC;AACpC,2DAA4C;AAO5C,MAAa,eAAgB,SAAQ,yBAAK;IAC7B,IAAI,CAAU;IAEvB,YAAY,IAAY,EAAE,SAAiB;QACvC,IAAI,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,IAAA,gCAAgB,EAAkB,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,YAAY;QACR,OAAO,CAAC,oEAAoE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAyB;QAC5C,IAAI,IAAI,GAAG,kBAAM,CAAC,YAAY,CAAC,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;SAAE;QACrF,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,iBAAO,EAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;CACJ;AAtBD,0CAsBC"} {"version":3,"file":"fixed-bytes.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/fixed-bytes.ts"],"names":[],"mappings":";;;AACA,mDAA+E;AAE/E,0CAAoC;AACpC,2DAA4C;AAO5C,MAAa,eAAgB,SAAQ,yBAAK;IAC7B,IAAI,CAAU;IAEvB,YAAY,IAAY,EAAE,SAAiB;QACvC,IAAI,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,IAAA,2BAAgB,EAAkB,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,YAAY;QACR,OAAO,CAAC,oEAAoE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAyB;QAC5C,IAAI,IAAI,GAAG,IAAA,uBAAY,EAAC,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;SAAE;QACrF,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,kBAAO,EAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;CACJ;AAtBD,0CAsBC"}

@ -1,9 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.NumberCoder = void 0; exports.NumberCoder = void 0;
const maths_js_1 = require("../../utils/maths.js"); const index_js_1 = require("../../utils/index.js");
const properties_js_1 = require("../../utils/properties.js");
const logger_js_1 = require("../../utils/logger.js");
const typed_js_1 = require("../typed.js"); const typed_js_1 = require("../typed.js");
const abstract_coder_js_1 = require("./abstract-coder.js"); const abstract_coder_js_1 = require("./abstract-coder.js");
const BN_0 = BigInt(0); const BN_0 = BigInt(0);
@ -15,34 +13,34 @@ class NumberCoder extends abstract_coder_js_1.Coder {
constructor(size, signed, localName) { constructor(size, signed, localName) {
const name = ((signed ? "int" : "uint") + (size * 8)); const name = ((signed ? "int" : "uint") + (size * 8));
super(name, name, localName, false); super(name, name, localName, false);
(0, properties_js_1.defineProperties)(this, { size, signed }, { size: "number", signed: "boolean" }); (0, index_js_1.defineProperties)(this, { size, signed }, { size: "number", signed: "boolean" });
} }
defaultValue() { defaultValue() {
return 0; return 0;
} }
encode(writer, _value) { encode(writer, _value) {
let value = logger_js_1.logger.getBigInt(typed_js_1.Typed.dereference(_value, this.type)); let value = (0, index_js_1.getBigInt)(typed_js_1.Typed.dereference(_value, this.type));
// Check bounds are safe for encoding // Check bounds are safe for encoding
let maxUintValue = (0, maths_js_1.mask)(BN_MAX_UINT256, abstract_coder_js_1.WordSize * 8); let maxUintValue = (0, index_js_1.mask)(BN_MAX_UINT256, abstract_coder_js_1.WordSize * 8);
if (this.signed) { if (this.signed) {
let bounds = (0, maths_js_1.mask)(maxUintValue, (this.size * 8) - 1); let bounds = (0, index_js_1.mask)(maxUintValue, (this.size * 8) - 1);
if (value > bounds || value < -(bounds + BN_1)) { if (value > bounds || value < -(bounds + BN_1)) {
this._throwError("value out-of-bounds", _value); this._throwError("value out-of-bounds", _value);
} }
} }
else if (value < BN_0 || value > (0, maths_js_1.mask)(maxUintValue, this.size * 8)) { else if (value < BN_0 || value > (0, index_js_1.mask)(maxUintValue, this.size * 8)) {
this._throwError("value out-of-bounds", _value); this._throwError("value out-of-bounds", _value);
} }
value = (0, maths_js_1.mask)((0, maths_js_1.toTwos)(value, this.size * 8), this.size * 8); value = (0, index_js_1.mask)((0, index_js_1.toTwos)(value, this.size * 8), this.size * 8);
if (this.signed) { if (this.signed) {
value = (0, maths_js_1.toTwos)((0, maths_js_1.fromTwos)(value, this.size * 8), 8 * abstract_coder_js_1.WordSize); value = (0, index_js_1.toTwos)((0, index_js_1.fromTwos)(value, this.size * 8), 8 * abstract_coder_js_1.WordSize);
} }
return writer.writeValue(value); return writer.writeValue(value);
} }
decode(reader) { decode(reader) {
let value = (0, maths_js_1.mask)(reader.readValue(), this.size * 8); let value = (0, index_js_1.mask)(reader.readValue(), this.size * 8);
if (this.signed) { if (this.signed) {
value = (0, maths_js_1.fromTwos)(value, this.size * 8); value = (0, index_js_1.fromTwos)(value, this.size * 8);
} }
return value; return value;
} }

@ -1 +1 @@
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/number.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,6DAA6D;AAE7D,qDAA+C;AAC/C,0CAAoC;AACpC,2DAAsD;AAOtD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,cAAc,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAEpG,MAAa,WAAY,SAAQ,yBAAK;IACzB,IAAI,CAAU;IACd,MAAM,CAAW;IAE1B,YAAY,IAAY,EAAE,MAAe,EAAE,SAAiB;QACxD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAA,gCAAgB,EAAc,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,YAAY;QACR,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAA4B;QAC/C,IAAI,KAAK,GAAG,kBAAM,CAAC,SAAS,CAAC,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,qCAAqC;QACrC,IAAI,YAAY,GAAG,IAAA,eAAI,EAAC,cAAc,EAAE,4BAAQ,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,MAAM,GAAG,IAAA,eAAI,EAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;gBAC5C,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;aACnD;SACJ;aAAM,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAA,eAAI,EAAC,YAAY,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;YAClE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;SACnD;QAED,KAAK,GAAG,IAAA,eAAI,EAAC,IAAA,iBAAM,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,GAAG,IAAA,iBAAM,EAAC,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,4BAAQ,CAAC,CAAC;SAChE;QAED,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,KAAK,GAAG,IAAA,eAAI,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;SAC1C;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA/CD,kCA+CC"} {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/number.ts"],"names":[],"mappings":";;;AAAA,mDAE8B;AAE9B,0CAAoC;AACpC,2DAAsD;AAOtD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,cAAc,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAEpG,MAAa,WAAY,SAAQ,yBAAK;IACzB,IAAI,CAAU;IACd,MAAM,CAAW;IAE1B,YAAY,IAAY,EAAE,MAAe,EAAE,SAAiB;QACxD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAA,2BAAgB,EAAc,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,YAAY;QACR,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAA4B;QAC/C,IAAI,KAAK,GAAG,IAAA,oBAAS,EAAC,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,qCAAqC;QACrC,IAAI,YAAY,GAAG,IAAA,eAAI,EAAC,cAAc,EAAE,4BAAQ,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,MAAM,GAAG,IAAA,eAAI,EAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;gBAC5C,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;aACnD;SACJ;aAAM,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAA,eAAI,EAAC,YAAY,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;YAClE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;SACnD;QAED,KAAK,GAAG,IAAA,eAAI,EAAC,IAAA,iBAAM,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,GAAG,IAAA,iBAAM,EAAC,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,4BAAQ,CAAC,CAAC;SAChE;QAED,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,KAAK,GAAG,IAAA,eAAI,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;SAC1C;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA/CD,kCA+CC"}

@ -1,20 +1,8 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.StructFragment = exports.FunctionFragment = exports.ConstructorFragment = exports.EventFragment = exports.ErrorFragment = exports.NamedFragment = exports.Fragment = exports.FragmentType = exports.ParamType = exports.lex = exports.TokenString = exports.FormatType = void 0; exports.StructFragment = exports.FunctionFragment = exports.ConstructorFragment = exports.EventFragment = exports.ErrorFragment = exports.NamedFragment = exports.Fragment = exports.ParamType = void 0;
const logger_js_1 = require("../utils/logger.js");
const index_js_1 = require("../utils/index.js"); const index_js_1 = require("../utils/index.js");
; const index_js_2 = require("../hash/index.js");
var FormatType;
(function (FormatType) {
// Bare formatting, as is needed for computing a sighash of an event or function
FormatType["sighash"] = "sighash";
// Human-Readable with Minimal spacing and without names (compact human-readable)
FormatType["minimal"] = "minimal";
// Human-Readable with nice spacing, including all names
FormatType["full"] = "full";
// JSON-format a la Solidity
FormatType["json"] = "json";
})(FormatType = exports.FormatType || (exports.FormatType = {}));
; ;
// [ "a", "b" ] => { "a": 1, "b": 1 } // [ "a", "b" ] => { "a": 1, "b": 1 }
function setify(items) { function setify(items) {
@ -140,7 +128,6 @@ class TokenString {
return `<TokenString ${tokens.join(" ")}>`; return `<TokenString ${tokens.join(" ")}>`;
} }
} }
exports.TokenString = TokenString;
function lex(text) { function lex(text) {
const tokens = []; const tokens = [];
const throwError = (message) => { const throwError = (message) => {
@ -193,7 +180,7 @@ function lex(text) {
if (tokens.length > 0 && tokens[tokens.length - 1].type === "NUMBER") { if (tokens.length > 0 && tokens[tokens.length - 1].type === "NUMBER") {
const value = tokens.pop().text; const value = tokens.pop().text;
suffix = value + suffix; suffix = value + suffix;
(tokens[tokens.length - 1]).value = logger_js_1.logger.getNumber(value); (tokens[tokens.length - 1]).value = (0, index_js_1.getNumber)(value);
} }
if (tokens.length === 0 || tokens[tokens.length - 1].type !== "BRACKET") { if (tokens.length === 0 || tokens[tokens.length - 1].type !== "BRACKET") {
throw new Error("missing opening bracket"); throw new Error("missing opening bracket");
@ -228,7 +215,6 @@ function lex(text) {
} }
return new TokenString(tokens.map((t) => Object.freeze(t))); return new TokenString(tokens.map((t) => Object.freeze(t)));
} }
exports.lex = lex;
// Check only one of `allowed` is in `set` // Check only one of `allowed` is in `set`
function allowSingle(set, allowed) { function allowSingle(set, allowed) {
let included = []; let included = [];
@ -302,7 +288,7 @@ function consumeGas(tokens) {
if (tokens.peekType("AT")) { if (tokens.peekType("AT")) {
tokens.pop(); tokens.pop();
if (tokens.peekType("NUMBER")) { if (tokens.peekType("NUMBER")) {
return logger_js_1.logger.getBigInt(tokens.pop().text); return (0, index_js_1.getBigInt)(tokens.pop().text);
} }
throw new Error("invalid gas"); throw new Error("invalid gas");
} }
@ -317,7 +303,7 @@ const regexArrayType = new RegExp(/^(.*)\[([0-9]*)\]$/);
function verifyBasicType(type) { function verifyBasicType(type) {
const match = type.match(regexType); const match = type.match(regexType);
if (!match) { if (!match) {
return logger_js_1.logger.throwArgumentError("invalid type", "type", type); return (0, index_js_1.throwArgumentError)("invalid type", "type", type);
} }
if (type === "uint") { if (type === "uint") {
return "uint256"; return "uint256";
@ -329,14 +315,14 @@ function verifyBasicType(type) {
// bytesXX // bytesXX
const length = parseInt(match[2]); const length = parseInt(match[2]);
if (length === 0 || length > 32) { if (length === 0 || length > 32) {
logger_js_1.logger.throwArgumentError("invalid bytes length", "type", type); (0, index_js_1.throwArgumentError)("invalid bytes length", "type", type);
} }
} }
else if (match[3]) { else if (match[3]) {
// intXX or uintXX // intXX or uintXX
const size = parseInt(match[3]); const size = parseInt(match[3]);
if (size === 0 || size > 256 || size % 8) { if (size === 0 || size > 256 || size % 8) {
logger_js_1.logger.throwArgumentError("invalid numeric width", "type", type); (0, index_js_1.throwArgumentError)("invalid numeric width", "type", type);
} }
} }
return type; return type;
@ -363,7 +349,7 @@ class ParamType {
arrayLength; arrayLength;
arrayChildren; arrayChildren;
constructor(guard, name, type, baseType, indexed, components, arrayLength, arrayChildren) { constructor(guard, name, type, baseType, indexed, components, arrayLength, arrayChildren) {
logger_js_1.logger.assertPrivate(guard, _guard, "ParamType"); (0, index_js_1.assertPrivate)(guard, _guard, "ParamType");
Object.defineProperty(this, internal, { value: ParamTypeInternal }); Object.defineProperty(this, internal, { value: ParamTypeInternal });
if (components) { if (components) {
components = Object.freeze(components.slice()); components = Object.freeze(components.slice());
@ -392,11 +378,8 @@ class ParamType {
// - sighash: "(uint256,address)" // - sighash: "(uint256,address)"
// - minimal: "tuple(uint256,address) indexed" // - minimal: "tuple(uint256,address) indexed"
// - full: "tuple(uint256 foo, address bar) indexed baz" // - full: "tuple(uint256 foo, address bar) indexed baz"
format(format = FormatType.sighash) { format(format = "sighash") {
if (!FormatType[format]) { if (format === "json") {
logger_js_1.logger.throwArgumentError("invalid format type", "format", format);
}
if (format === FormatType.json) {
let result = { let result = {
type: ((this.baseType === "tuple") ? "tuple" : this.type), type: ((this.baseType === "tuple") ? "tuple" : this.type),
name: (this.name || undefined) name: (this.name || undefined)
@ -417,20 +400,20 @@ class ParamType {
} }
else { else {
if (this.isTuple()) { if (this.isTuple()) {
if (format !== FormatType.sighash) { if (format !== "sighash") {
result += this.type; result += this.type;
} }
result += "(" + this.components.map((comp) => comp.format(format)).join((format === FormatType.full) ? ", " : ",") + ")"; result += "(" + this.components.map((comp) => comp.format(format)).join((format === "full") ? ", " : ",") + ")";
} }
else { else {
result += this.type; result += this.type;
} }
} }
if (format !== FormatType.sighash) { if (format !== "sighash") {
if (this.indexed === true) { if (this.indexed === true) {
result += " indexed"; result += " indexed";
} }
if (format === FormatType.full && this.name) { if (format === "full" && this.name) {
result += " " + this.name; result += " " + this.name;
} }
} }
@ -456,7 +439,8 @@ class ParamType {
if (this.arrayLength !== -1 && value.length !== this.arrayLength) { if (this.arrayLength !== -1 && value.length !== this.arrayLength) {
throw new Error("array is wrong length"); throw new Error("array is wrong length");
} }
return value.map((v) => (this.arrayChildren.walk(v, process))); const _this = this;
return value.map((v) => (_this.arrayChildren.walk(v, process)));
} }
if (this.isTuple()) { if (this.isTuple()) {
if (!Array.isArray(value)) { if (!Array.isArray(value)) {
@ -465,7 +449,8 @@ class ParamType {
if (value.length !== this.components.length) { if (value.length !== this.components.length) {
throw new Error("array is wrong length"); throw new Error("array is wrong length");
} }
return value.map((v, i) => (this.components[i].walk(v, process))); const _this = this;
return value.map((v, i) => (_this.components[i].walk(v, process)));
} }
return process(this.type, value); return process(this.type, value);
} }
@ -550,12 +535,12 @@ class ParamType {
} }
const name = obj.name; const name = obj.name;
if (name && (typeof (name) !== "string" || !name.match(regexIdentifier))) { if (name && (typeof (name) !== "string" || !name.match(regexIdentifier))) {
logger_js_1.logger.throwArgumentError("invalid name", "obj.name", name); (0, index_js_1.throwArgumentError)("invalid name", "obj.name", name);
} }
let indexed = obj.indexed; let indexed = obj.indexed;
if (indexed != null) { if (indexed != null) {
if (!allowIndexed) { if (!allowIndexed) {
logger_js_1.logger.throwArgumentError("parameter cannot be indexed", "obj.indexed", obj.indexed); (0, index_js_1.throwArgumentError)("parameter cannot be indexed", "obj.indexed", obj.indexed);
} }
indexed = !!indexed; indexed = !!indexed;
} }
@ -625,20 +610,11 @@ class ParamType {
} }
} }
exports.ParamType = ParamType; exports.ParamType = ParamType;
var FragmentType;
(function (FragmentType) {
FragmentType["constructor"] = "constructor";
FragmentType["error"] = "error";
FragmentType["event"] = "event";
FragmentType["function"] = "function";
FragmentType["struct"] = "struct";
})(FragmentType = exports.FragmentType || (exports.FragmentType = {}));
;
class Fragment { class Fragment {
type; type;
inputs; inputs;
constructor(guard, type, inputs) { constructor(guard, type, inputs) {
logger_js_1.logger.assertPrivate(guard, _guard, "Fragment"); (0, index_js_1.assertPrivate)(guard, _guard, "Fragment");
inputs = Object.freeze(inputs.slice()); inputs = Object.freeze(inputs.slice());
(0, index_js_1.defineProperties)(this, { type, inputs }); (0, index_js_1.defineProperties)(this, { type, inputs });
} }
@ -727,17 +703,17 @@ class NamedFragment extends Fragment {
} }
exports.NamedFragment = NamedFragment; exports.NamedFragment = NamedFragment;
function joinParams(format, params) { function joinParams(format, params) {
return "(" + params.map((p) => p.format(format)).join((format === FormatType.full) ? ", " : ",") + ")"; return "(" + params.map((p) => p.format(format)).join((format === "full") ? ", " : ",") + ")";
} }
class ErrorFragment extends NamedFragment { class ErrorFragment extends NamedFragment {
constructor(guard, name, inputs) { constructor(guard, name, inputs) {
super(guard, FragmentType.error, name, inputs); super(guard, "error", name, inputs);
} }
format(format = FormatType.sighash) { get selector() {
if (!FormatType[format]) { return (0, index_js_2.id)(this.format("sighash")).substring(0, 10);
logger_js_1.logger.throwArgumentError("invalid format type", "format", format);
} }
if (format === FormatType.json) { format(format = "sighash") {
if (format === "json") {
return JSON.stringify({ return JSON.stringify({
type: "error", type: "error",
name: this.name, name: this.name,
@ -745,7 +721,7 @@ class ErrorFragment extends NamedFragment {
}); });
} }
const result = []; const result = [];
if (format !== FormatType.sighash) { if (format !== "sighash") {
result.push("error"); result.push("error");
} }
result.push(this.name + joinParams(format, this.inputs)); result.push(this.name + joinParams(format, this.inputs));
@ -765,14 +741,14 @@ exports.ErrorFragment = ErrorFragment;
class EventFragment extends NamedFragment { class EventFragment extends NamedFragment {
anonymous; anonymous;
constructor(guard, name, inputs, anonymous) { constructor(guard, name, inputs, anonymous) {
super(guard, FragmentType.event, name, inputs); super(guard, "event", name, inputs);
(0, index_js_1.defineProperties)(this, { anonymous }); (0, index_js_1.defineProperties)(this, { anonymous });
} }
format(format = FormatType.sighash) { get topicHash() {
if (!FormatType[format]) { return (0, index_js_2.id)(this.format("sighash"));
logger_js_1.logger.throwArgumentError("invalid format type", "format", format);
} }
if (format === FormatType.json) { format(format = "sighash") {
if (format === "json") {
return JSON.stringify({ return JSON.stringify({
type: "event", type: "event",
anonymous: this.anonymous, anonymous: this.anonymous,
@ -781,11 +757,11 @@ class EventFragment extends NamedFragment {
}); });
} }
const result = []; const result = [];
if (format !== FormatType.sighash) { if (format !== "sighash") {
result.push("event"); result.push("event");
} }
result.push(this.name + joinParams(format, this.inputs)); result.push(this.name + joinParams(format, this.inputs));
if (format !== FormatType.sighash && this.anonymous) { if (format !== "sighash" && this.anonymous) {
result.push("anonymous"); result.push("anonymous");
} }
return result.join(" "); return result.join(" ");
@ -809,16 +785,13 @@ class ConstructorFragment extends Fragment {
super(guard, type, inputs); super(guard, type, inputs);
(0, index_js_1.defineProperties)(this, { payable, gas }); (0, index_js_1.defineProperties)(this, { payable, gas });
} }
format(format = FormatType.sighash) { format(format = "sighash") {
if (!FormatType[format]) { if (format === "sighash") {
logger_js_1.logger.throwArgumentError("invalid format type", "format", format); (0, index_js_1.throwError)("cannot format a constructor for sighash", "UNSUPPORTED_OPERATION", {
}
if (format === FormatType.sighash) {
logger_js_1.logger.throwError("cannot format a constructor for sighash", "UNSUPPORTED_OPERATION", {
operation: "format(sighash)" operation: "format(sighash)"
}); });
} }
if (format === FormatType.json) { if (format === "json") {
return JSON.stringify({ return JSON.stringify({
type: "constructor", type: "constructor",
stateMutability: (this.payable ? "payable" : "undefined"), stateMutability: (this.payable ? "payable" : "undefined"),
@ -846,7 +819,7 @@ class ConstructorFragment extends Fragment {
const payable = !!consumeKeywords(tokens, setify(["payable"])).has("payable"); const payable = !!consumeKeywords(tokens, setify(["payable"])).has("payable");
const gas = consumeGas(tokens); const gas = consumeGas(tokens);
consumeEoi(tokens); consumeEoi(tokens);
return new ConstructorFragment(_guard, FragmentType.constructor, inputs, payable, gas); return new ConstructorFragment(_guard, "constructor", inputs, payable, gas);
} }
} }
exports.ConstructorFragment = ConstructorFragment; exports.ConstructorFragment = ConstructorFragment;
@ -857,17 +830,17 @@ class FunctionFragment extends NamedFragment {
payable; payable;
gas; gas;
constructor(guard, name, stateMutability, inputs, outputs, gas) { constructor(guard, name, stateMutability, inputs, outputs, gas) {
super(guard, FragmentType.function, name, inputs); super(guard, "function", name, inputs);
outputs = Object.freeze(outputs.slice()); outputs = Object.freeze(outputs.slice());
const constant = (stateMutability === "view" || stateMutability === "pure"); const constant = (stateMutability === "view" || stateMutability === "pure");
const payable = (stateMutability === "payable"); const payable = (stateMutability === "payable");
(0, index_js_1.defineProperties)(this, { constant, gas, outputs, payable, stateMutability }); (0, index_js_1.defineProperties)(this, { constant, gas, outputs, payable, stateMutability });
} }
format(format = FormatType.sighash) { get selector() {
if (!FormatType[format]) { return (0, index_js_2.id)(this.format("sighash")).substring(0, 10);
logger_js_1.logger.throwArgumentError("invalid format type", "format", format);
} }
if (format === FormatType.json) { format(format = "sighash") {
if (format === "json") {
return JSON.stringify({ return JSON.stringify({
type: "function", type: "function",
name: this.name, name: this.name,
@ -880,11 +853,11 @@ class FunctionFragment extends NamedFragment {
}); });
} }
const result = []; const result = [];
if (format !== FormatType.sighash) { if (format !== "sighash") {
result.push("function"); result.push("function");
} }
result.push(this.name + joinParams(format, this.inputs)); result.push(this.name + joinParams(format, this.inputs));
if (format !== FormatType.sighash) { if (format !== "sighash") {
if (this.stateMutability !== "nonpayable") { if (this.stateMutability !== "nonpayable") {
result.push(this.stateMutability); result.push(this.stateMutability);
} }
@ -926,7 +899,7 @@ class StructFragment extends NamedFragment {
const name = consumeName("struct", tokens); const name = consumeName("struct", tokens);
const inputs = consumeParams(tokens); const inputs = consumeParams(tokens);
consumeEoi(tokens); consumeEoi(tokens);
return new StructFragment(_guard, FragmentType.struct, name, inputs); return new StructFragment(_guard, "struct", name, inputs);
} }
} }
exports.StructFragment = StructFragment; exports.StructFragment = StructFragment;

File diff suppressed because one or more lines are too long

@ -1,6 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.Typed = exports.TransactionDescription = exports.Result = exports.LogDescription = exports.Interface = exports.Indexed = exports.checkResultErrors = exports.ParamType = exports.FunctionFragment = exports.Fragment = exports.EventFragment = exports.ErrorFragment = exports.ConstructorFragment = exports.parseBytes32String = exports.formatBytes32String = exports.defaultAbiCoder = exports.AbiCoder = void 0; exports.Typed = exports.Result = exports.TransactionDescription = exports.LogDescription = exports.ErrorDescription = exports.Interface = exports.Indexed = exports.checkResultErrors = exports.StructFragment = exports.ParamType = exports.NamedFragment = exports.FunctionFragment = exports.Fragment = exports.EventFragment = exports.ErrorFragment = exports.ConstructorFragment = exports.parseBytes32String = exports.formatBytes32String = exports.defaultAbiCoder = exports.AbiCoder = void 0;
//////
var abi_coder_js_1 = require("./abi-coder.js"); var abi_coder_js_1 = require("./abi-coder.js");
Object.defineProperty(exports, "AbiCoder", { enumerable: true, get: function () { return abi_coder_js_1.AbiCoder; } }); Object.defineProperty(exports, "AbiCoder", { enumerable: true, get: function () { return abi_coder_js_1.AbiCoder; } });
Object.defineProperty(exports, "defaultAbiCoder", { enumerable: true, get: function () { return abi_coder_js_1.defaultAbiCoder; } }); Object.defineProperty(exports, "defaultAbiCoder", { enumerable: true, get: function () { return abi_coder_js_1.defaultAbiCoder; } });
@ -13,14 +14,17 @@ Object.defineProperty(exports, "ErrorFragment", { enumerable: true, get: functio
Object.defineProperty(exports, "EventFragment", { enumerable: true, get: function () { return fragments_js_1.EventFragment; } }); Object.defineProperty(exports, "EventFragment", { enumerable: true, get: function () { return fragments_js_1.EventFragment; } });
Object.defineProperty(exports, "Fragment", { enumerable: true, get: function () { return fragments_js_1.Fragment; } }); Object.defineProperty(exports, "Fragment", { enumerable: true, get: function () { return fragments_js_1.Fragment; } });
Object.defineProperty(exports, "FunctionFragment", { enumerable: true, get: function () { return fragments_js_1.FunctionFragment; } }); Object.defineProperty(exports, "FunctionFragment", { enumerable: true, get: function () { return fragments_js_1.FunctionFragment; } });
Object.defineProperty(exports, "NamedFragment", { enumerable: true, get: function () { return fragments_js_1.NamedFragment; } });
Object.defineProperty(exports, "ParamType", { enumerable: true, get: function () { return fragments_js_1.ParamType; } }); Object.defineProperty(exports, "ParamType", { enumerable: true, get: function () { return fragments_js_1.ParamType; } });
Object.defineProperty(exports, "StructFragment", { enumerable: true, get: function () { return fragments_js_1.StructFragment; } });
var interface_js_1 = require("./interface.js"); var interface_js_1 = require("./interface.js");
Object.defineProperty(exports, "checkResultErrors", { enumerable: true, get: function () { return interface_js_1.checkResultErrors; } }); Object.defineProperty(exports, "checkResultErrors", { enumerable: true, get: function () { return interface_js_1.checkResultErrors; } });
Object.defineProperty(exports, "Indexed", { enumerable: true, get: function () { return interface_js_1.Indexed; } }); Object.defineProperty(exports, "Indexed", { enumerable: true, get: function () { return interface_js_1.Indexed; } });
Object.defineProperty(exports, "Interface", { enumerable: true, get: function () { return interface_js_1.Interface; } }); Object.defineProperty(exports, "Interface", { enumerable: true, get: function () { return interface_js_1.Interface; } });
Object.defineProperty(exports, "ErrorDescription", { enumerable: true, get: function () { return interface_js_1.ErrorDescription; } });
Object.defineProperty(exports, "LogDescription", { enumerable: true, get: function () { return interface_js_1.LogDescription; } }); Object.defineProperty(exports, "LogDescription", { enumerable: true, get: function () { return interface_js_1.LogDescription; } });
Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return interface_js_1.Result; } });
Object.defineProperty(exports, "TransactionDescription", { enumerable: true, get: function () { return interface_js_1.TransactionDescription; } }); Object.defineProperty(exports, "TransactionDescription", { enumerable: true, get: function () { return interface_js_1.TransactionDescription; } });
Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return interface_js_1.Result; } });
var typed_js_1 = require("./typed.js"); var typed_js_1 = require("./typed.js");
Object.defineProperty(exports, "Typed", { enumerable: true, get: function () { return typed_js_1.Typed; } }); Object.defineProperty(exports, "Typed", { enumerable: true, get: function () { return typed_js_1.Typed; } });
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src.ts/abi/index.ts"],"names":[],"mappings":";;;AACA,+CAGwB;AAFpB,wGAAA,QAAQ,OAAA;AACR,+GAAA,eAAe,OAAA;AAGnB,2CAAuE;AAA9D,iHAAA,mBAAmB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAEhD,+CAOwB;AANpB,mHAAA,mBAAmB,OAAA;AACnB,6GAAA,aAAa,OAAA;AACb,6GAAA,aAAa,OAAA;AACb,wGAAA,QAAQ,OAAA;AACR,gHAAA,gBAAgB,OAAA;AAChB,yGAAA,SAAS,OAAA;AAGb,+CAOwB;AANpB,iHAAA,iBAAiB,OAAA;AACjB,uGAAA,OAAO,OAAA;AACP,yGAAA,SAAS,OAAA;AACT,8GAAA,cAAc,OAAA;AACd,sGAAA,MAAM,OAAA;AACN,sHAAA,sBAAsB,OAAA;AAG1B,uCAAmC;AAA1B,iGAAA,KAAK,OAAA"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src.ts/abi/index.ts"],"names":[],"mappings":";;;AAGA,MAAM;AACN,+CAGwB;AAFpB,wGAAA,QAAQ,OAAA;AACR,+GAAA,eAAe,OAAA;AAGnB,2CAAuE;AAA9D,iHAAA,mBAAmB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAEhD,+CAGwB;AAFpB,mHAAA,mBAAmB,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,wGAAA,QAAQ,OAAA;AAC3D,gHAAA,gBAAgB,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,yGAAA,SAAS,OAAA;AAAE,8GAAA,cAAc,OAAA;AAG9D,+CAMwB;AALpB,iHAAA,iBAAiB,OAAA;AACjB,uGAAA,OAAO,OAAA;AACP,yGAAA,SAAS,OAAA;AACT,gHAAA,gBAAgB,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,sHAAA,sBAAsB,OAAA;AACxD,sGAAA,MAAM,OAAA;AAGV,uCAAmC;AAA1B,iGAAA,KAAK,OAAA"}

@ -1,12 +1,9 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.Interface = exports.Indexed = exports.ErrorDescription = exports.TransactionDescription = exports.LogDescription = exports.Result = exports.checkResultErrors = void 0; exports.Interface = exports.Indexed = exports.ErrorDescription = exports.TransactionDescription = exports.LogDescription = exports.Result = exports.checkResultErrors = void 0;
const data_js_1 = require("../utils/data.js");
const index_js_1 = require("../crypto/index.js"); const index_js_1 = require("../crypto/index.js");
const index_js_2 = require("../hash/index.js"); const index_js_2 = require("../hash/index.js");
const logger_js_1 = require("../utils/logger.js"); const index_js_3 = require("../utils/index.js");
const properties_js_1 = require("../utils/properties.js");
const maths_js_1 = require("../utils/maths.js");
const abi_coder_js_1 = require("./abi-coder.js"); const abi_coder_js_1 = require("./abi-coder.js");
const abstract_coder_js_1 = require("./coders/abstract-coder.js"); const abstract_coder_js_1 = require("./coders/abstract-coder.js");
Object.defineProperty(exports, "checkResultErrors", { enumerable: true, get: function () { return abstract_coder_js_1.checkResultErrors; } }); Object.defineProperty(exports, "checkResultErrors", { enumerable: true, get: function () { return abstract_coder_js_1.checkResultErrors; } });
@ -21,7 +18,7 @@ class LogDescription {
args; args;
constructor(fragment, topic, args) { constructor(fragment, topic, args) {
const name = fragment.name, signature = fragment.format(); const name = fragment.name, signature = fragment.format();
(0, properties_js_1.defineProperties)(this, { (0, index_js_3.defineProperties)(this, {
fragment, name, signature, topic, args fragment, name, signature, topic, args
}); });
} }
@ -36,7 +33,7 @@ class TransactionDescription {
value; value;
constructor(fragment, selector, args, value) { constructor(fragment, selector, args, value) {
const name = fragment.name, signature = fragment.format(); const name = fragment.name, signature = fragment.format();
(0, properties_js_1.defineProperties)(this, { (0, index_js_3.defineProperties)(this, {
fragment, name, args, signature, selector, value fragment, name, args, signature, selector, value
}); });
} }
@ -50,7 +47,7 @@ class ErrorDescription {
selector; selector;
constructor(fragment, selector, args) { constructor(fragment, selector, args) {
const name = fragment.name, signature = fragment.format(); const name = fragment.name, signature = fragment.format();
(0, properties_js_1.defineProperties)(this, { (0, index_js_3.defineProperties)(this, {
fragment, name, args, signature, selector fragment, name, args, signature, selector
}); });
} }
@ -63,7 +60,7 @@ class Indexed {
return !!(value && value._isIndexed); return !!(value && value._isIndexed);
} }
constructor(hash) { constructor(hash) {
(0, properties_js_1.defineProperties)(this, { hash, _isIndexed: true }); (0, index_js_3.defineProperties)(this, { hash, _isIndexed: true });
} }
} }
exports.Indexed = Indexed; exports.Indexed = Indexed;
@ -103,7 +100,13 @@ const BuiltinErrors = {
} }
}; };
class Interface { class Interface {
/**
* All the Contract ABI members (i.e. methods, events, errors, etc).
*/
fragments; fragments;
/**
* The Contract constructor.
*/
deploy; deploy;
#errors; #errors;
#events; #events;
@ -122,7 +125,7 @@ class Interface {
this.#errors = new Map(); this.#errors = new Map();
this.#events = new Map(); this.#events = new Map();
// this.#structs = new Map(); // this.#structs = new Map();
(0, properties_js_1.defineProperties)(this, { (0, index_js_3.defineProperties)(this, {
fragments: Object.freeze(abi.map((f) => fragments_js_1.Fragment.from(f)).filter((f) => (f != null))), fragments: Object.freeze(abi.map((f) => fragments_js_1.Fragment.from(f)).filter((f) => (f != null))),
}); });
this.#abiCoder = this.getAbiCoder(); this.#abiCoder = this.getAbiCoder();
@ -132,11 +135,11 @@ class Interface {
switch (fragment.type) { switch (fragment.type) {
case "constructor": case "constructor":
if (this.deploy) { if (this.deploy) {
logger_js_1.logger.warn("duplicate definition - constructor"); console.log("duplicate definition - constructor");
return; return;
} }
//checkNames(fragment, "input", fragment.inputs); //checkNames(fragment, "input", fragment.inputs);
(0, properties_js_1.defineProperties)(this, { deploy: fragment }); (0, index_js_3.defineProperties)(this, { deploy: fragment });
return; return;
case "function": case "function":
//checkNames(fragment, "input", fragment.inputs); //checkNames(fragment, "input", fragment.inputs);
@ -153,58 +156,57 @@ class Interface {
default: default:
return; return;
} }
// Two identical entries; ignore it
const signature = fragment.format(); const signature = fragment.format();
if (bucket.has(signature)) { if (bucket.has(signature)) {
logger_js_1.logger.warn("duplicate definition - " + signature);
return; return;
} }
bucket.set(signature, fragment); bucket.set(signature, fragment);
}); });
// If we do not have a constructor add a default // If we do not have a constructor add a default
if (!this.deploy) { if (!this.deploy) {
(0, properties_js_1.defineProperties)(this, { (0, index_js_3.defineProperties)(this, {
deploy: fragments_js_1.ConstructorFragment.fromString("constructor()") deploy: fragments_js_1.ConstructorFragment.fromString("constructor()")
}); });
} }
} }
// @TODO: multi sig? /**
format(format) { * Returns the entire Human-Readable ABI, as an array of
if (!format) { * signatures, optionally as %%minimal%% strings, which
format = fragments_js_1.FormatType.full; * removes parameter names and unneceesary spaces.
} */
if (format === fragments_js_1.FormatType.sighash) { format(minimal) {
logger_js_1.logger.throwArgumentError("interface does not support formatting sighash", "format", format); const format = (minimal ? "minimal" : "full");
}
const abi = this.fragments.map((f) => f.format(format)); const abi = this.fragments.map((f) => f.format(format));
// We need to re-bundle the JSON fragments a bit
if (format === fragments_js_1.FormatType.json) {
return JSON.stringify(abi.map((j) => JSON.parse(j)));
}
return abi; return abi;
} }
/**
* Return the JSON-encoded ABI. This is the format Solidiy
* returns.
*/
formatJson() {
const abi = this.fragments.map((f) => f.format("json"));
// We need to re-bundle the JSON fragments a bit
return JSON.stringify(abi.map((j) => JSON.parse(j)));
}
/**
* The ABI coder that will be used to encode and decode binary
* data.
*/
getAbiCoder() { getAbiCoder() {
return abi_coder_js_1.defaultAbiCoder; return abi_coder_js_1.defaultAbiCoder;
} }
//static getAddress(address: string): string {
// return getAddress(address);
//}
//static getSelector(fragment: ErrorFragment | FunctionFragment): string {
// return dataSlice(id(fragment.format()), 0, 4);
//}
//static getEventTopic(eventFragment: EventFragment): string {
// return id(eventFragment.format());
//}
// Find a function definition by any means necessary (unless it is ambiguous) // Find a function definition by any means necessary (unless it is ambiguous)
#getFunction(key, values, forceUnique) { #getFunction(key, values, forceUnique) {
// Selector // Selector
if ((0, data_js_1.isHexString)(key)) { if ((0, index_js_3.isHexString)(key)) {
const selector = key.toLowerCase(); const selector = key.toLowerCase();
for (const fragment of this.#functions.values()) { for (const fragment of this.#functions.values()) {
if (selector === this.getSelector(fragment)) { if (selector === fragment.selector) {
return fragment; return fragment;
} }
} }
logger_js_1.logger.throwArgumentError("no matching function", "selector", key); (0, index_js_3.throwArgumentError)("no matching function", "selector", key);
} }
// It is a bare name, look up the function (will return null if ambiguous) // It is a bare name, look up the function (will return null if ambiguous)
if (key.indexOf("(") === -1) { if (key.indexOf("(") === -1) {
@ -263,11 +265,11 @@ class Interface {
} }
} }
if (matching.length === 0) { if (matching.length === 0) {
logger_js_1.logger.throwArgumentError("no matching function", "name", key); (0, index_js_3.throwArgumentError)("no matching function", "name", key);
} }
else if (matching.length > 1 && forceUnique) { else if (matching.length > 1 && forceUnique) {
const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", "); const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", ");
logger_js_1.logger.throwArgumentError(`multiple matching functions (i.e. ${matchStr})`, "name", key); (0, index_js_3.throwArgumentError)(`multiple matching functions (i.e. ${matchStr})`, "name", key);
} }
return matching[0]; return matching[0];
} }
@ -276,25 +278,39 @@ class Interface {
if (result) { if (result) {
return result; return result;
} }
return logger_js_1.logger.throwArgumentError("no matching function", "signature", key); return (0, index_js_3.throwArgumentError)("no matching function", "signature", key);
} }
/**
* Get the function name for %%key%%, which may be a function selector,
* function name or function signature that belongs to the ABI.
*/
getFunctionName(key) { getFunctionName(key) {
return (this.#getFunction(key, null, false)).name; return (this.#getFunction(key, null, false)).name;
} }
/**
* Get the [[FunctionFragment]] for %%key%%, which may be a function
* selector, function name or function signature that belongs to the ABI.
*
* If %%values%% is provided, it will use the Typed API to handle
* ambiguous cases where multiple functions match by name.
*
* If the %%key%% and %%values%% do not refine to a single function in
* the ABI, this will throw.
*/
getFunction(key, values) { getFunction(key, values) {
return this.#getFunction(key, values || null, true); return this.#getFunction(key, values || null, true);
} }
// Find an event definition by any means necessary (unless it is ambiguous) // Find an event definition by any means necessary (unless it is ambiguous)
#getEvent(key, values, forceUnique) { #getEvent(key, values, forceUnique) {
// EventTopic // EventTopic
if ((0, data_js_1.isHexString)(key)) { if ((0, index_js_3.isHexString)(key)) {
const eventTopic = key.toLowerCase(); const eventTopic = key.toLowerCase();
for (const fragment of this.#events.values()) { for (const fragment of this.#events.values()) {
if (eventTopic === this.getEventTopic(fragment)) { if (eventTopic === fragment.topicHash) {
return fragment; return fragment;
} }
} }
logger_js_1.logger.throwArgumentError("no matching event", "eventTopic", key); (0, index_js_3.throwArgumentError)("no matching event", "eventTopic", key);
} }
// It is a bare name, look up the function (will return null if ambiguous) // It is a bare name, look up the function (will return null if ambiguous)
if (key.indexOf("(") === -1) { if (key.indexOf("(") === -1) {
@ -328,11 +344,11 @@ class Interface {
} }
} }
if (matching.length === 0) { if (matching.length === 0) {
logger_js_1.logger.throwArgumentError("no matching event", "name", key); (0, index_js_3.throwArgumentError)("no matching event", "name", key);
} }
else if (matching.length > 1 && forceUnique) { else if (matching.length > 1 && forceUnique) {
// @TODO: refine by Typed // @TODO: refine by Typed
logger_js_1.logger.throwArgumentError("multiple matching events", "name", key); (0, index_js_3.throwArgumentError)("multiple matching events", "name", key);
} }
return matching[0]; return matching[0];
} }
@ -341,27 +357,50 @@ class Interface {
if (result) { if (result) {
return result; return result;
} }
return logger_js_1.logger.throwArgumentError("no matching event", "signature", key); return (0, index_js_3.throwArgumentError)("no matching event", "signature", key);
} }
/**
* Get the event name for %%key%%, which may be a topic hash,
* event name or event signature that belongs to the ABI.
*/
getEventName(key) { getEventName(key) {
return (this.#getEvent(key, null, false)).name; return (this.#getEvent(key, null, false)).name;
} }
/**
* Get the [[EventFragment]] for %%key%%, which may be a topic hash,
* event name or event signature that belongs to the ABI.
*
* If %%values%% is provided, it will use the Typed API to handle
* ambiguous cases where multiple events match by name.
*
* If the %%key%% and %%values%% do not refine to a single event in
* the ABI, this will throw.
*/
getEvent(key, values) { getEvent(key, values) {
return this.#getEvent(key, values || null, true); return this.#getEvent(key, values || null, true);
} }
// Find a function definition by any means necessary (unless it is ambiguous) /**
* Get the [[ErrorFragment]] for %%key%%, which may be an error
* selector, error name or error signature that belongs to the ABI.
*
* If %%values%% is provided, it will use the Typed API to handle
* ambiguous cases where multiple errors match by name.
*
* If the %%key%% and %%values%% do not refine to a single error in
* the ABI, this will throw.
*/
getError(key, values) { getError(key, values) {
if ((0, data_js_1.isHexString)(key)) { if ((0, index_js_3.isHexString)(key)) {
const selector = key.toLowerCase(); const selector = key.toLowerCase();
if (BuiltinErrors[selector]) { if (BuiltinErrors[selector]) {
return fragments_js_1.ErrorFragment.fromString(BuiltinErrors[selector].signature); return fragments_js_1.ErrorFragment.fromString(BuiltinErrors[selector].signature);
} }
for (const fragment of this.#errors.values()) { for (const fragment of this.#errors.values()) {
if (selector === this.getSelector(fragment)) { if (selector === fragment.selector) {
return fragment; return fragment;
} }
} }
logger_js_1.logger.throwArgumentError("no matching error", "selector", key); (0, index_js_3.throwArgumentError)("no matching error", "selector", key);
} }
// It is a bare name, look up the function (will return null if ambiguous) // It is a bare name, look up the function (will return null if ambiguous)
if (key.indexOf("(") === -1) { if (key.indexOf("(") === -1) {
@ -378,11 +417,11 @@ class Interface {
if (key === "Panic") { if (key === "Panic") {
return fragments_js_1.ErrorFragment.fromString("error Panic(uint256)"); return fragments_js_1.ErrorFragment.fromString("error Panic(uint256)");
} }
logger_js_1.logger.throwArgumentError("no matching error", "name", key); (0, index_js_3.throwArgumentError)("no matching error", "name", key);
} }
else if (matching.length > 1) { else if (matching.length > 1) {
// @TODO: refine by Typed // @TODO: refine by Typed
logger_js_1.logger.throwArgumentError("multiple matching errors", "name", key); (0, index_js_3.throwArgumentError)("multiple matching errors", "name", key);
} }
return matching[0]; return matching[0];
} }
@ -398,11 +437,11 @@ class Interface {
if (result) { if (result) {
return result; return result;
} }
return logger_js_1.logger.throwArgumentError("no matching error", "signature", key); return (0, index_js_3.throwArgumentError)("no matching error", "signature", key);
} }
// Get the 4-byte selector used by Solidity to identify a function // Get the 4-byte selector used by Solidity to identify a function
getSelector(fragment) {
/* /*
getSelector(fragment: ErrorFragment | FunctionFragment): string {
if (typeof(fragment) === "string") { if (typeof(fragment) === "string") {
const matches: Array<Fragment> = [ ]; const matches: Array<Fragment> = [ ];
@ -417,68 +456,105 @@ class Interface {
fragment = matches[0]; fragment = matches[0];
} }
return dataSlice(id(fragment.format()), 0, 4);
}
*/ */
return (0, data_js_1.dataSlice)((0, index_js_2.id)(fragment.format()), 0, 4);
}
// Get the 32-byte topic hash used by Solidity to identify an event // Get the 32-byte topic hash used by Solidity to identify an event
getEventTopic(fragment) { /*
getEventTopic(fragment: EventFragment): string {
//if (typeof(fragment) === "string") { fragment = this.getEvent(eventFragment); } //if (typeof(fragment) === "string") { fragment = this.getEvent(eventFragment); }
return (0, index_js_2.id)(fragment.format()); return id(fragment.format());
} }
*/
_decodeParams(params, data) { _decodeParams(params, data) {
return this.#abiCoder.decode(params, data); return this.#abiCoder.decode(params, data);
} }
_encodeParams(params, values) { _encodeParams(params, values) {
return this.#abiCoder.encode(params, values); return this.#abiCoder.encode(params, values);
} }
/**
* Encodes a ``tx.data`` object for deploying the Contract with
* the %%values%% as the constructor arguments.
*/
encodeDeploy(values) { encodeDeploy(values) {
return this._encodeParams(this.deploy.inputs, values || []); return this._encodeParams(this.deploy.inputs, values || []);
} }
/**
* Decodes the result %%data%% (e.g. from an ``eth_call``) for the
* specified error (see [[getError]] for valid values for
* %%key%%).
*
* Most developers should prefer the [[parseResult]] method instead,
* which will automatically detect a ``CALL_EXCEPTION`` and throw the
* corresponding error.
*/
decodeErrorResult(fragment, data) { decodeErrorResult(fragment, data) {
if (typeof (fragment) === "string") { if (typeof (fragment) === "string") {
fragment = this.getError(fragment); fragment = this.getError(fragment);
} }
if ((0, data_js_1.dataSlice)(data, 0, 4) !== this.getSelector(fragment)) { if ((0, index_js_3.dataSlice)(data, 0, 4) !== fragment.selector) {
logger_js_1.logger.throwArgumentError(`data signature does not match error ${fragment.name}.`, "data", data); (0, index_js_3.throwArgumentError)(`data signature does not match error ${fragment.name}.`, "data", data);
} }
return this._decodeParams(fragment.inputs, (0, data_js_1.dataSlice)(data, 4)); return this._decodeParams(fragment.inputs, (0, index_js_3.dataSlice)(data, 4));
} }
encodeErrorResult(fragment, values) { /**
if (typeof (fragment) === "string") { * Encodes the transaction revert data for a call result that
fragment = this.getError(fragment); * reverted from the the Contract with the sepcified %%error%%
} * (see [[getError]] for valid values for %%key%%) with the %%values%%.
return (0, data_js_1.concat)([ *
this.getSelector(fragment), * 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;
return (0, index_js_3.concat)([
fragment.selector,
this._encodeParams(fragment.inputs, values || []) this._encodeParams(fragment.inputs, values || [])
]); ]);
} }
// Decode the data for a function call (e.g. tx.data) /**
decodeFunctionData(fragment, data) { * Decodes the %%data%% from a transaction ``tx.data`` for
if (typeof (fragment) === "string") { * the function specified (see [[getFunction]] for valid values
fragment = this.getFunction(fragment); * for %%key%%).
*
* 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;
if ((0, index_js_3.dataSlice)(data, 0, 4) !== fragment.selector) {
(0, index_js_3.throwArgumentError)(`data signature does not match function ${fragment.name}.`, "data", data);
} }
if ((0, data_js_1.dataSlice)(data, 0, 4) !== this.getSelector(fragment)) { return this._decodeParams(fragment.inputs, (0, index_js_3.dataSlice)(data, 4));
logger_js_1.logger.throwArgumentError(`data signature does not match function ${fragment.name}.`, "data", data);
} }
return this._decodeParams(fragment.inputs, (0, data_js_1.dataSlice)(data, 4)); /**
} * Encodes the ``tx.data`` for a transaction that calls the function
// Encode the data for a function call (e.g. tx.data) * specified (see [[getFunction]] for valid values for %%key%%) with
encodeFunctionData(fragment, values) { * the %%values%%.
if (typeof (fragment) === "string") { */
fragment = this.getFunction(fragment); encodeFunctionData(key, values) {
} const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
return (0, data_js_1.concat)([ return (0, index_js_3.concat)([
this.getSelector(fragment), fragment.selector,
this._encodeParams(fragment.inputs, values || []) this._encodeParams(fragment.inputs, values || [])
]); ]);
} }
// Decode the result from a function call (e.g. from eth_call) /**
* Decodes the result %%data%% (e.g. from an ``eth_call``) for the
* specified function (see [[getFunction]] for valid values for
* %%key%%).
*
* Most developers should prefer the [[parseResult]] method instead,
* which will automatically detect a ``CALL_EXCEPTION`` and throw the
* corresponding error.
*/
decodeFunctionResult(fragment, data) { decodeFunctionResult(fragment, data) {
if (typeof (fragment) === "string") { if (typeof (fragment) === "string") {
fragment = this.getFunction(fragment); fragment = this.getFunction(fragment);
} }
let message = "invalid length for result data"; let message = "invalid length for result data";
const bytes = logger_js_1.logger.getBytesCopy(data); const bytes = (0, index_js_3.getBytesCopy)(data);
if ((bytes.length % 32) === 0) { if ((bytes.length % 32) === 0) {
try { try {
return this.#abiCoder.decode(fragment.outputs, bytes); return this.#abiCoder.decode(fragment.outputs, bytes);
@ -488,8 +564,8 @@ class Interface {
} }
} }
// Call returned data with no error, but the data is junk // Call returned data with no error, but the data is junk
return logger_js_1.logger.throwError(message, "BAD_DATA", { return (0, index_js_3.throwError)(message, "BAD_DATA", {
value: (0, data_js_1.hexlify)(bytes), value: (0, index_js_3.hexlify)(bytes),
info: { method: fragment.name, signature: fragment.format() } info: { method: fragment.name, signature: fragment.format() }
}); });
} }
@ -497,7 +573,7 @@ class Interface {
if (typeof (fragment) === "string") { if (typeof (fragment) === "string") {
fragment = this.getFunction(fragment); fragment = this.getFunction(fragment);
} }
const data = logger_js_1.logger.getBytes(_data); const data = (0, index_js_3.getBytes)(_data);
let args = undefined; let args = undefined;
if (tx) { if (tx) {
try { try {
@ -515,7 +591,7 @@ class Interface {
reason = "missing error reason"; reason = "missing error reason";
} }
else if ((data.length % 32) === 4) { else if ((data.length % 32) === 4) {
const selector = (0, data_js_1.hexlify)(data.slice(0, 4)); const selector = (0, index_js_3.hexlify)(data.slice(0, 4));
const builtin = BuiltinErrors[selector]; const builtin = BuiltinErrors[selector];
if (builtin) { if (builtin) {
try { try {
@ -547,18 +623,23 @@ class Interface {
} }
} }
} }
return logger_js_1.logger.makeError("call revert exception", "CALL_EXCEPTION", { return (0, index_js_3.makeError)("call revert exception", "CALL_EXCEPTION", {
data: (0, data_js_1.hexlify)(data), transaction: null, data: (0, index_js_3.hexlify)(data), transaction: null,
method: fragment.name, signature: fragment.format(), args, method: fragment.name, signature: fragment.format(), args,
errorArgs, errorName, errorSignature, reason errorArgs, errorName, errorSignature, reason
}); });
} }
// Encode the result for a function call (e.g. for eth_call) /**
encodeFunctionResult(functionFragment, values) { * Encodes the result data (e.g. from an ``eth_call``) for the
if (typeof (functionFragment) === "string") { * specified function (see [[getFunction]] for valid values
functionFragment = this.getFunction(functionFragment); * for %%key%%) with %%values%%.
} *
return (0, data_js_1.hexlify)(this.#abiCoder.encode(functionFragment.outputs, 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;
return (0, index_js_3.hexlify)(this.#abiCoder.encode(fragment.outputs, values || []));
} }
/* /*
spelunk(inputs: Array<ParamType>, values: ReadonlyArray<any>, processfunc: (type: string, value: any) => Promise<any>): Promise<Array<any>> { spelunk(inputs: Array<ParamType>, values: ReadonlyArray<any>, processfunc: (type: string, value: any) => Promise<any>): Promise<Array<any>> {
@ -596,14 +677,14 @@ class Interface {
eventFragment = this.getEvent(eventFragment); eventFragment = this.getEvent(eventFragment);
} }
if (values.length > eventFragment.inputs.length) { if (values.length > eventFragment.inputs.length) {
logger_js_1.logger.throwError("too many arguments for " + eventFragment.format(), "UNEXPECTED_ARGUMENT", { (0, index_js_3.throwError)("too many arguments for " + eventFragment.format(), "UNEXPECTED_ARGUMENT", {
count: values.length, count: values.length,
expectedCount: eventFragment.inputs.length expectedCount: eventFragment.inputs.length
}); });
} }
const topics = []; const topics = [];
if (!eventFragment.anonymous) { if (!eventFragment.anonymous) {
topics.push(this.getEventTopic(eventFragment)); topics.push(eventFragment.topicHash);
} }
// @TODO: Use the coders for this; to properly support tuples, etc. // @TODO: Use the coders for this; to properly support tuples, etc.
const encodeTopic = (param, value) => { const encodeTopic = (param, value) => {
@ -611,26 +692,26 @@ class Interface {
return (0, index_js_2.id)(value); return (0, index_js_2.id)(value);
} }
else if (param.type === "bytes") { else if (param.type === "bytes") {
return (0, index_js_1.keccak256)((0, data_js_1.hexlify)(value)); return (0, index_js_1.keccak256)((0, index_js_3.hexlify)(value));
} }
if (param.type === "bool" && typeof (value) === "boolean") { if (param.type === "bool" && typeof (value) === "boolean") {
value = (value ? "0x01" : "0x00"); value = (value ? "0x01" : "0x00");
} }
if (param.type.match(/^u?int/)) { if (param.type.match(/^u?int/)) {
value = (0, maths_js_1.toHex)(value); value = (0, index_js_3.toHex)(value);
} }
// Check addresses are valid // Check addresses are valid
if (param.type === "address") { if (param.type === "address") {
this.#abiCoder.encode(["address"], [value]); this.#abiCoder.encode(["address"], [value]);
} }
return (0, data_js_1.zeroPadValue)((0, data_js_1.hexlify)(value), 32); return (0, index_js_3.zeroPadValue)((0, index_js_3.hexlify)(value), 32);
//@TOOD should probably be return toHex(value, 32) //@TOOD should probably be return toHex(value, 32)
}; };
values.forEach((value, index) => { values.forEach((value, index) => {
const param = eventFragment.inputs[index]; const param = eventFragment.inputs[index];
if (!param.indexed) { if (!param.indexed) {
if (value != null) { if (value != null) {
logger_js_1.logger.throwArgumentError("cannot filter non-indexed parameters; must be null", ("contract." + param.name), value); (0, index_js_3.throwArgumentError)("cannot filter non-indexed parameters; must be null", ("contract." + param.name), value);
} }
return; return;
} }
@ -638,7 +719,7 @@ class Interface {
topics.push(null); topics.push(null);
} }
else if (param.baseType === "array" || param.baseType === "tuple") { else if (param.baseType === "array" || param.baseType === "tuple") {
logger_js_1.logger.throwArgumentError("filtering with tuples or arrays not supported", ("contract." + param.name), value); (0, index_js_3.throwArgumentError)("filtering with tuples or arrays not supported", ("contract." + param.name), value);
} }
else if (Array.isArray(value)) { else if (Array.isArray(value)) {
topics.push(value.map((value) => encodeTopic(param, value))); topics.push(value.map((value) => encodeTopic(param, value)));
@ -661,10 +742,10 @@ class Interface {
const dataTypes = []; const dataTypes = [];
const dataValues = []; const dataValues = [];
if (!eventFragment.anonymous) { if (!eventFragment.anonymous) {
topics.push(this.getEventTopic(eventFragment)); topics.push(eventFragment.topicHash);
} }
if (values.length !== eventFragment.inputs.length) { if (values.length !== eventFragment.inputs.length) {
logger_js_1.logger.throwArgumentError("event arguments/values mismatch", "values", values); (0, index_js_3.throwArgumentError)("event arguments/values mismatch", "values", values);
} }
eventFragment.inputs.forEach((param, index) => { eventFragment.inputs.forEach((param, index) => {
const value = values[index]; const value = values[index];
@ -699,9 +780,9 @@ class Interface {
eventFragment = this.getEvent(eventFragment); eventFragment = this.getEvent(eventFragment);
} }
if (topics != null && !eventFragment.anonymous) { if (topics != null && !eventFragment.anonymous) {
const eventTopic = this.getEventTopic(eventFragment); const eventTopic = eventFragment.topicHash;
if (!(0, data_js_1.isHexString)(topics[0], 32) || topics[0].toLowerCase() !== eventTopic) { if (!(0, index_js_3.isHexString)(topics[0], 32) || topics[0].toLowerCase() !== eventTopic) {
logger_js_1.logger.throwArgumentError("fragment/topic mismatch", "topics[0]", topics[0]); (0, index_js_3.throwArgumentError)("fragment/topic mismatch", "topics[0]", topics[0]);
} }
topics = topics.slice(1); topics = topics.slice(1);
} }
@ -724,7 +805,7 @@ class Interface {
dynamic.push(false); dynamic.push(false);
} }
}); });
const resultIndexed = (topics != null) ? this.#abiCoder.decode(indexed, (0, data_js_1.concat)(topics)) : null; const resultIndexed = (topics != null) ? this.#abiCoder.decode(indexed, (0, index_js_3.concat)(topics)) : null;
const resultNonIndexed = this.#abiCoder.decode(nonIndexed, data, true); const resultNonIndexed = this.#abiCoder.decode(nonIndexed, data, true);
//const result: (Array<any> & { [ key: string ]: any }) = [ ]; //const result: (Array<any> & { [ key: string ]: any }) = [ ];
const values = []; const values = [];
@ -761,22 +842,31 @@ class Interface {
}); });
return abstract_coder_js_1.Result.fromItems(values, keys); return abstract_coder_js_1.Result.fromItems(values, keys);
} }
// Given a transaction, find the matching function fragment (if any) and /**
// determine all its properties and call parameters * Parses a transaction, finding the matching function and extracts
* the parameter values along with other useful function details.
*
* If the matching function cannot be found, return null.
*/
parseTransaction(tx) { parseTransaction(tx) {
const data = logger_js_1.logger.getBytes(tx.data, "tx.data"); const data = (0, index_js_3.getBytes)(tx.data, "tx.data");
const value = logger_js_1.logger.getBigInt((tx.value != null) ? tx.value : 0, "tx.value"); const value = (0, index_js_3.getBigInt)((tx.value != null) ? tx.value : 0, "tx.value");
const fragment = this.getFunction((0, data_js_1.hexlify)(data.slice(0, 4))); const fragment = this.getFunction((0, index_js_3.hexlify)(data.slice(0, 4)));
if (!fragment) { if (!fragment) {
return null; return null;
} }
const args = this.#abiCoder.decode(fragment.inputs, data.slice(4)); const args = this.#abiCoder.decode(fragment.inputs, data.slice(4));
return new TransactionDescription(fragment, this.getSelector(fragment), args, value); return new TransactionDescription(fragment, fragment.selector, args, value);
} }
// @TODO parseCallResult(data) {
//parseCallResult(data: BytesLike): ?? throw new Error("@TODO");
// Given an event log, find the matching event fragment (if any) and }
// determine all its properties and values /**
* Parses a receipt log, finding the matching event and extracts
* the parameter values along with other useful event details.
*
* If the matching event cannot be found, returns null.
*/
parseLog(log) { parseLog(log) {
const fragment = this.getEvent(log.topics[0]); const fragment = this.getEvent(log.topics[0]);
if (!fragment || fragment.anonymous) { if (!fragment || fragment.anonymous) {
@ -785,17 +875,29 @@ class Interface {
// @TODO: If anonymous, and the only method, and the input count matches, should we parse? // @TODO: If anonymous, and the only method, and the input count matches, should we parse?
// Probably not, because just because it is the only event in the ABI does // Probably not, because just because it is the only event in the ABI does
// not mean we have the full ABI; maybe just a fragment? // not mean we have the full ABI; maybe just a fragment?
return new LogDescription(fragment, this.getEventTopic(fragment), this.decodeEventLog(fragment, log.data, log.topics)); return new LogDescription(fragment, fragment.topicHash, this.decodeEventLog(fragment, log.data, log.topics));
} }
/**
* Parses a revert data, finding the matching error and extracts
* the parameter values along with other useful error details.
*
* If the matching event cannot be found, returns null.
*/
parseError(data) { parseError(data) {
const hexData = (0, data_js_1.hexlify)(data); const hexData = (0, index_js_3.hexlify)(data);
const fragment = this.getError((0, data_js_1.dataSlice)(hexData, 0, 4)); const fragment = this.getError((0, index_js_3.dataSlice)(hexData, 0, 4));
if (!fragment) { if (!fragment) {
return null; return null;
} }
const args = this.#abiCoder.decode(fragment.inputs, (0, data_js_1.dataSlice)(hexData, 4)); const args = this.#abiCoder.decode(fragment.inputs, (0, index_js_3.dataSlice)(hexData, 4));
return new ErrorDescription(fragment, this.getSelector(fragment), args); return new ErrorDescription(fragment, fragment.selector, args);
} }
/**
* Creates a new [[Interface]] from the ABI %%value%%.
*
* The %%value%% may be provided as an existing [[Interface]] object,
* a JSON-encoded ABI or any Human-Readable ABI format.
*/
static from(value) { static from(value) {
// Already an Interface, which is immutable // Already an Interface, which is immutable
if (value instanceof Interface) { if (value instanceof Interface) {
@ -807,7 +909,7 @@ class Interface {
} }
// Maybe an interface from an older version, or from a symlinked copy // Maybe an interface from an older version, or from a symlinked copy
if (typeof (value.format) === "function") { if (typeof (value.format) === "function") {
return new Interface(value.format(fragments_js_1.FormatType.json)); return new Interface(value.format("json"));
} }
// Array of fragments // Array of fragments
return new Interface(value); return new Interface(value);

File diff suppressed because one or more lines are too long

@ -1,7 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.Typed = void 0; exports.Typed = void 0;
const properties_js_1 = require("../utils/properties.js"); const index_js_1 = require("../utils/index.js");
const _gaurd = {}; const _gaurd = {};
function n(value, width) { function n(value, width) {
let signed = false; let signed = false;
@ -26,7 +26,7 @@ class Typed {
if (gaurd !== _gaurd) { if (gaurd !== _gaurd) {
throw new Error("private constructor"); throw new Error("private constructor");
} }
(0, properties_js_1.defineProperties)(this, { _typedSymbol, type, value }); (0, index_js_1.defineProperties)(this, { _typedSymbol, type, value });
this.#options = options; this.#options = options;
// Check the value is valid // Check the value is valid
this.format(); this.format();

File diff suppressed because one or more lines are too long

@ -1,8 +1,8 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.getIcapAddress = exports.getAddress = void 0; exports.getIcapAddress = exports.getAddress = void 0;
const keccak_js_1 = require("../crypto/keccak.js"); const index_js_1 = require("../crypto/index.js");
const logger_js_1 = require("../utils/logger.js"); const index_js_2 = require("../utils/index.js");
const BN_0 = BigInt(0); const BN_0 = BigInt(0);
const BN_36 = BigInt(36); const BN_36 = BigInt(36);
function getChecksumAddress(address) { function getChecksumAddress(address) {
@ -15,7 +15,7 @@ function getChecksumAddress(address) {
for (let i = 0; i < 40; i++) { for (let i = 0; i < 40; i++) {
expanded[i] = chars[i].charCodeAt(0); expanded[i] = chars[i].charCodeAt(0);
} }
const hashed = logger_js_1.logger.getBytes((0, keccak_js_1.keccak256)(expanded)); const hashed = (0, index_js_2.getBytes)((0, index_js_1.keccak256)(expanded));
for (let i = 0; i < 40; i += 2) { for (let i = 0; i < 40; i += 2) {
if ((hashed[i >> 1] >> 4) >= 8) { if ((hashed[i >> 1] >> 4) >= 8) {
chars[i] = chars[i].toUpperCase(); chars[i] = chars[i].toUpperCase();
@ -73,7 +73,7 @@ function fromBase36(value) {
} }
function getAddress(address) { function getAddress(address) {
if (typeof (address) !== "string") { if (typeof (address) !== "string") {
logger_js_1.logger.throwArgumentError("invalid address", "address", address); (0, index_js_2.throwArgumentError)("invalid address", "address", address);
} }
if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) { if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
// Missing the 0x prefix // Missing the 0x prefix
@ -83,7 +83,7 @@ function getAddress(address) {
const result = getChecksumAddress(address); const result = getChecksumAddress(address);
// It is a checksummed address with a bad checksum // It is a checksummed address with a bad checksum
if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) { if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {
logger_js_1.logger.throwArgumentError("bad address checksum", "address", address); (0, index_js_2.throwArgumentError)("bad address checksum", "address", address);
} }
return result; return result;
} }
@ -91,7 +91,7 @@ function getAddress(address) {
if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
// It is an ICAP address with a bad checksum // It is an ICAP address with a bad checksum
if (address.substring(2, 4) !== ibanChecksum(address)) { if (address.substring(2, 4) !== ibanChecksum(address)) {
logger_js_1.logger.throwArgumentError("bad icap checksum", "address", address); (0, index_js_2.throwArgumentError)("bad icap checksum", "address", address);
} }
let result = fromBase36(address.substring(4)).toString(16); let result = fromBase36(address.substring(4)).toString(16);
while (result.length < 40) { while (result.length < 40) {
@ -99,7 +99,7 @@ function getAddress(address) {
} }
return getChecksumAddress("0x" + result); return getChecksumAddress("0x" + result);
} }
return logger_js_1.logger.throwArgumentError("invalid address", "address", address); return (0, index_js_2.throwArgumentError)("invalid address", "address", address);
} }
exports.getAddress = getAddress; exports.getAddress = getAddress;
function getIcapAddress(address) { function getIcapAddress(address) {

@ -1 +1 @@
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src.ts/address/address.ts"],"names":[],"mappings":"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"} {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src.ts/address/address.ts"],"names":[],"mappings":"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"}

@ -1,7 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveAddress = exports.isAddress = exports.isAddressable = void 0; exports.resolveAddress = exports.isAddress = exports.isAddressable = void 0;
const logger_js_1 = require("../utils/logger.js"); const index_js_1 = require("../utils/index.js");
const address_js_1 = require("./address.js"); const address_js_1 = require("./address.js");
function isAddressable(value) { function isAddressable(value) {
return (value && typeof (value.getAddress) === "function"); return (value && typeof (value.getAddress) === "function");
@ -20,9 +20,9 @@ async function checkAddress(target, promise) {
const result = await promise; const result = await promise;
if (result == null || result === "0x0000000000000000000000000000000000000000") { if (result == null || result === "0x0000000000000000000000000000000000000000") {
if (typeof (target) === "string") { if (typeof (target) === "string") {
return logger_js_1.logger.throwError("unconfigured name", "UNCONFIGURED_NAME", { value: target }); return (0, index_js_1.throwError)("unconfigured name", "UNCONFIGURED_NAME", { value: target });
} }
return logger_js_1.logger.throwArgumentError("invalid AddressLike value; did not resolve to a value address", "target", target); return (0, index_js_1.throwArgumentError)("invalid AddressLike value; did not resolve to a value address", "target", target);
} }
return (0, address_js_1.getAddress)(result); return (0, address_js_1.getAddress)(result);
} }
@ -34,7 +34,7 @@ function resolveAddress(target, resolver) {
return (0, address_js_1.getAddress)(target); return (0, address_js_1.getAddress)(target);
} }
if (resolver == null) { if (resolver == null) {
return logger_js_1.logger.throwError("ENS resolution requires a provider", "UNSUPPORTED_OPERATION", { return (0, index_js_1.throwError)("ENS resolution requires a provider", "UNSUPPORTED_OPERATION", {
operation: "resolveName", operation: "resolveName",
}); });
} }
@ -46,7 +46,7 @@ function resolveAddress(target, resolver) {
else if (typeof (target.then) === "function") { else if (typeof (target.then) === "function") {
return checkAddress(target, target); return checkAddress(target, target);
} }
return logger_js_1.logger.throwArgumentError("unsupported addressable value", "target", target); return (0, index_js_1.throwArgumentError)("unsupported addressable value", "target", target);
} }
exports.resolveAddress = resolveAddress; exports.resolveAddress = resolveAddress;
//# sourceMappingURL=checks.js.map //# sourceMappingURL=checks.js.map

@ -1 +1 @@
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../../src.ts/address/checks.ts"],"names":[],"mappings":";;;AAAA,kDAA4C;AAE5C,6CAA0C;AAK1C,SAAgB,aAAa,CAAC,KAAU;IACpC,OAAO,CAAC,KAAK,IAAI,OAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,CAAC;AAC9D,CAAC;AAFD,sCAEC;AAED,SAAgB,SAAS,CAAC,KAAU;IAChC,IAAI;QACA,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;KACf;IAAC,OAAO,KAAK,EAAE,GAAG;IACnB,OAAO,KAAK,CAAC;AACjB,CAAC;AAND,8BAMC;AAED,KAAK,UAAU,YAAY,CAAC,MAAW,EAAE,OAA+B;IACpE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;IAC7B,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,4CAA4C,EAAE;QAC3E,IAAI,OAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;YAC7B,OAAO,kBAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SACzF;QACD,OAAO,kBAAM,CAAC,kBAAkB,CAAC,+DAA+D,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KACvH;IACD,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,gEAAgE;AAChE,kCAAkC;AAClC,SAAgB,cAAc,CAAC,MAAmB,EAAE,QAA8B;IAE9E,IAAI,OAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;QAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YAAE,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;SAAE;QAErE,IAAI,QAAQ,IAAI,IAAI,EAAE;YAClB,OAAO,kBAAM,CAAC,UAAU,CAAC,oCAAoC,EAAE,uBAAuB,EAAE;gBACpF,SAAS,EAAE,aAAa;aAC3B,CAAC,CAAC;SACN;QAED,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAE7D;SAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;KAEpD;SAAM,IAAI,OAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;QAC3C,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC;IAED,OAAO,kBAAM,CAAC,kBAAkB,CAAC,+BAA+B,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AArBD,wCAqBC"} {"version":3,"file":"checks.js","sourceRoot":"","sources":["../../src.ts/address/checks.ts"],"names":[],"mappings":";;;AAAA,gDAAmE;AAEnE,6CAA0C;AAK1C,SAAgB,aAAa,CAAC,KAAU;IACpC,OAAO,CAAC,KAAK,IAAI,OAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,CAAC;AAC9D,CAAC;AAFD,sCAEC;AAED,SAAgB,SAAS,CAAC,KAAU;IAChC,IAAI;QACA,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;KACf;IAAC,OAAO,KAAK,EAAE,GAAG;IACnB,OAAO,KAAK,CAAC;AACjB,CAAC;AAND,8BAMC;AAED,KAAK,UAAU,YAAY,CAAC,MAAW,EAAE,OAA+B;IACpE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;IAC7B,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,4CAA4C,EAAE;QAC3E,IAAI,OAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAA,qBAAU,EAAC,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SAClF;QACD,OAAO,IAAA,6BAAkB,EAAC,+DAA+D,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KAChH;IACD,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,gEAAgE;AAChE,kCAAkC;AAClC,SAAgB,cAAc,CAAC,MAAmB,EAAE,QAA8B;IAE9E,IAAI,OAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;QAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YAAE,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;SAAE;QAErE,IAAI,QAAQ,IAAI,IAAI,EAAE;YAClB,OAAO,IAAA,qBAAU,EAAC,oCAAoC,EAAE,uBAAuB,EAAE;gBAC7E,SAAS,EAAE,aAAa;aAC3B,CAAC,CAAC;SACN;QAED,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAE7D;SAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;KAEpD;SAAM,IAAI,OAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;QAC3C,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC;IAED,OAAO,IAAA,6BAAkB,EAAC,+BAA+B,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AArBD,wCAqBC"}

@ -1,13 +1,13 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.getCreate2Address = exports.getCreateAddress = void 0; exports.getCreate2Address = exports.getCreateAddress = void 0;
const keccak_js_1 = require("../crypto/keccak.js"); const index_js_1 = require("../crypto/index.js");
const index_js_1 = require("../utils/index.js"); const index_js_2 = require("../utils/index.js");
const address_js_1 = require("./address.js"); const address_js_1 = require("./address.js");
// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed // http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed
function getCreateAddress(tx) { function getCreateAddress(tx) {
const from = (0, address_js_1.getAddress)(tx.from); const from = (0, address_js_1.getAddress)(tx.from);
const nonce = index_js_1.logger.getBigInt(tx.nonce, "tx.nonce"); const nonce = (0, index_js_2.getBigInt)(tx.nonce, "tx.nonce");
let nonceHex = nonce.toString(16); let nonceHex = nonce.toString(16);
if (nonceHex === "0") { if (nonceHex === "0") {
nonceHex = "0x"; nonceHex = "0x";
@ -18,20 +18,20 @@ function getCreateAddress(tx) {
else { else {
nonceHex = "0x" + nonceHex; nonceHex = "0x" + nonceHex;
} }
return (0, address_js_1.getAddress)((0, index_js_1.dataSlice)((0, keccak_js_1.keccak256)((0, index_js_1.encodeRlp)([from, nonceHex])), 12)); return (0, address_js_1.getAddress)((0, index_js_2.dataSlice)((0, index_js_1.keccak256)((0, index_js_2.encodeRlp)([from, nonceHex])), 12));
} }
exports.getCreateAddress = getCreateAddress; exports.getCreateAddress = getCreateAddress;
function getCreate2Address(_from, _salt, _initCodeHash) { function getCreate2Address(_from, _salt, _initCodeHash) {
const from = (0, address_js_1.getAddress)(_from); const from = (0, address_js_1.getAddress)(_from);
const salt = index_js_1.logger.getBytes(_salt, "salt"); const salt = (0, index_js_2.getBytes)(_salt, "salt");
const initCodeHash = index_js_1.logger.getBytes(_initCodeHash, "initCodeHash"); const initCodeHash = (0, index_js_2.getBytes)(_initCodeHash, "initCodeHash");
if (salt.length !== 32) { if (salt.length !== 32) {
index_js_1.logger.throwArgumentError("salt must be 32 bytes", "salt", _salt); (0, index_js_2.throwArgumentError)("salt must be 32 bytes", "salt", _salt);
} }
if (initCodeHash.length !== 32) { if (initCodeHash.length !== 32) {
index_js_1.logger.throwArgumentError("initCodeHash must be 32 bytes", "initCodeHash", _initCodeHash); (0, index_js_2.throwArgumentError)("initCodeHash must be 32 bytes", "initCodeHash", _initCodeHash);
} }
return (0, address_js_1.getAddress)((0, index_js_1.dataSlice)((0, keccak_js_1.keccak256)((0, index_js_1.concat)(["0xff", from, salt, initCodeHash])), 12)); return (0, address_js_1.getAddress)((0, index_js_2.dataSlice)((0, index_js_1.keccak256)((0, index_js_2.concat)(["0xff", from, salt, initCodeHash])), 12));
} }
exports.getCreate2Address = getCreate2Address; exports.getCreate2Address = getCreate2Address;
//# sourceMappingURL=contract-address.js.map //# sourceMappingURL=contract-address.js.map

@ -1 +1 @@
{"version":3,"file":"contract-address.js","sourceRoot":"","sources":["../../src.ts/address/contract-address.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,gDAAyE;AAEzE,6CAA0C;AAK1C,sGAAsG;AACtG,SAAgB,gBAAgB,CAAC,EAAyC;IACtE,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,iBAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAErD,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,GAAG,EAAE;QAClB,QAAQ,GAAG,IAAI,CAAC;KACnB;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;KAC/B;SAAM;QACH,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;KAC9B;IAED,OAAO,IAAA,uBAAU,EAAC,IAAA,oBAAS,EAAC,IAAA,qBAAS,EAAC,IAAA,oBAAS,EAAC,CAAE,IAAI,EAAE,QAAQ,CAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAdD,4CAcC;AAED,SAAgB,iBAAiB,CAAC,KAAa,EAAE,KAAgB,EAAE,aAAwB;IACvF,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,iBAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAEpE,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;QACpB,iBAAM,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;KACrE;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE;QAC5B,iBAAM,CAAC,kBAAkB,CAAC,+BAA+B,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;KAC7F;IAED,OAAO,IAAA,uBAAU,EAAC,IAAA,oBAAS,EAAC,IAAA,qBAAS,EAAC,IAAA,iBAAM,EAAC,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC7F,CAAC;AAdD,8CAcC"} {"version":3,"file":"contract-address.js","sourceRoot":"","sources":["../../src.ts/address/contract-address.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,gDAE2B;AAE3B,6CAA0C;AAK1C,sGAAsG;AACtG,SAAgB,gBAAgB,CAAC,EAAyC;IACtE,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAA,oBAAS,EAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAE9C,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,GAAG,EAAE;QAClB,QAAQ,GAAG,IAAI,CAAC;KACnB;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;KAC/B;SAAM;QACH,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;KAC9B;IAED,OAAO,IAAA,uBAAU,EAAC,IAAA,oBAAS,EAAC,IAAA,oBAAS,EAAC,IAAA,oBAAS,EAAC,CAAE,IAAI,EAAE,QAAQ,CAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAdD,4CAcC;AAED,SAAgB,iBAAiB,CAAC,KAAa,EAAE,KAAgB,EAAE,aAAwB;IACvF,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,IAAA,mBAAQ,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAE7D,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;QACpB,IAAA,6BAAkB,EAAC,uBAAuB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;KAC9D;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE;QAC5B,IAAA,6BAAkB,EAAC,+BAA+B,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;KACtF;IAED,OAAO,IAAA,uBAAU,EAAC,IAAA,oBAAS,EAAC,IAAA,oBAAS,EAAC,IAAA,iBAAM,EAAC,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC7F,CAAC;AAdD,8CAcC"}

@ -1,10 +1,10 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.Contract = exports.BaseContract = exports.resolveArgs = exports.copyOverrides = void 0; exports.Contract = exports.BaseContract = exports.resolveArgs = exports.copyOverrides = void 0;
const index_js_1 = require("../address/index.js"); const index_js_1 = require("../abi/index.js");
const index_js_2 = require("../abi/index.js"); const index_js_2 = require("../address/index.js");
const index_js_3 = require("../utils/index.js"); const index_js_3 = require("../providers/index.js");
const index_js_4 = require("../providers/index.js"); const index_js_4 = require("../utils/index.js");
const wrappers_js_1 = require("./wrappers.js"); const wrappers_js_1 = require("./wrappers.js");
function canCall(value) { function canCall(value) {
return (value && typeof (value.call) === "function"); return (value && typeof (value.call) === "function");
@ -27,7 +27,7 @@ class PreparedTopicFilter {
#filter; #filter;
fragment; fragment;
constructor(contract, fragment, args) { constructor(contract, fragment, args) {
(0, index_js_3.defineProperties)(this, { fragment }); (0, index_js_4.defineProperties)(this, { fragment });
if (fragment.inputs.length < args.length) { if (fragment.inputs.length < args.length) {
throw new Error("too many arguments"); throw new Error("too many arguments");
} }
@ -38,7 +38,7 @@ class PreparedTopicFilter {
const resolvedArgs = await Promise.all(fragment.inputs.map((param, index) => { const resolvedArgs = await Promise.all(fragment.inputs.map((param, index) => {
return param.walkAsync(args[index], (type, value) => { return param.walkAsync(args[index], (type, value) => {
if (type === "address") { if (type === "address") {
return (0, index_js_1.resolveAddress)(value, resolver); return (0, index_js_2.resolveAddress)(value, resolver);
} }
return value; return value;
}); });
@ -79,18 +79,18 @@ function getProvider(value) {
} }
async function copyOverrides(arg) { async function copyOverrides(arg) {
// Create a shallow copy (we'll deep-ify anything needed during normalizing) // Create a shallow copy (we'll deep-ify anything needed during normalizing)
const overrides = (0, index_js_4.copyRequest)(index_js_2.Typed.dereference(arg, "overrides")); const overrides = (0, index_js_3.copyRequest)(index_js_1.Typed.dereference(arg, "overrides"));
// Some sanity checking; these are what these methods adds // Some sanity checking; these are what these methods adds
//if ((<any>overrides).to) { //if ((<any>overrides).to) {
if (overrides.to) { if (overrides.to) {
index_js_3.logger.throwArgumentError("cannot override to", "overrides.to", overrides.to); (0, index_js_4.throwArgumentError)("cannot override to", "overrides.to", overrides.to);
} }
else if (overrides.data) { else if (overrides.data) {
index_js_3.logger.throwArgumentError("cannot override data", "overrides.data", overrides.data); (0, index_js_4.throwArgumentError)("cannot override data", "overrides.data", overrides.data);
} }
// Resolve any from // Resolve any from
if (overrides.from) { if (overrides.from) {
overrides.from = await (0, index_js_1.resolveAddress)(overrides.from); overrides.from = await (0, index_js_2.resolveAddress)(overrides.from);
} }
return overrides; return overrides;
} }
@ -102,7 +102,7 @@ async function resolveArgs(_runner, inputs, args) {
return await Promise.all(inputs.map((param, index) => { return await Promise.all(inputs.map((param, index) => {
return param.walkAsync(args[index], (type, value) => { return param.walkAsync(args[index], (type, value) => {
if (type === "address") { if (type === "address") {
return (0, index_js_1.resolveAddress)(value, resolver); return (0, index_js_2.resolveAddress)(value, resolver);
} }
return value; return value;
}); });
@ -115,7 +115,7 @@ class WrappedMethod extends _WrappedMethodBase() {
_key; _key;
constructor(contract, key) { constructor(contract, key) {
super(); super();
(0, index_js_3.defineProperties)(this, { (0, index_js_4.defineProperties)(this, {
name: contract.interface.getFunctionName(key), name: contract.interface.getFunctionName(key),
_contract: contract, _key: key _contract: contract, _key: key
}); });
@ -149,7 +149,7 @@ class WrappedMethod extends _WrappedMethodBase() {
throw new Error("internal error: fragment inputs doesn't match arguments; should not happen"); throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");
} }
const resolvedArgs = await resolveArgs(this._contract.runner, fragment.inputs, args); const resolvedArgs = await resolveArgs(this._contract.runner, fragment.inputs, args);
return Object.assign({}, overrides, await (0, index_js_3.resolveProperties)({ return Object.assign({}, overrides, await (0, index_js_4.resolveProperties)({
to: this._contract.getAddress(), to: this._contract.getAddress(),
data: this._contract.interface.encodeFunctionData(fragment, resolvedArgs) data: this._contract.interface.encodeFunctionData(fragment, resolvedArgs)
})); }));
@ -164,7 +164,7 @@ class WrappedMethod extends _WrappedMethodBase() {
async send(...args) { async send(...args) {
const runner = this._contract.runner; const runner = this._contract.runner;
if (!canSend(runner)) { if (!canSend(runner)) {
return index_js_3.logger.throwError("contract runner does not support sending transactions", "UNSUPPORTED_OPERATION", { return (0, index_js_4.throwError)("contract runner does not support sending transactions", "UNSUPPORTED_OPERATION", {
operation: "sendTransaction" operation: "sendTransaction"
}); });
} }
@ -175,7 +175,7 @@ class WrappedMethod extends _WrappedMethodBase() {
async estimateGas(...args) { async estimateGas(...args) {
const runner = getRunner(this._contract.runner, "estimateGas"); const runner = getRunner(this._contract.runner, "estimateGas");
if (!canEstimate(runner)) { if (!canEstimate(runner)) {
return index_js_3.logger.throwError("contract runner does not support gas estimation", "UNSUPPORTED_OPERATION", { return (0, index_js_4.throwError)("contract runner does not support gas estimation", "UNSUPPORTED_OPERATION", {
operation: "estimateGas" operation: "estimateGas"
}); });
} }
@ -184,7 +184,7 @@ class WrappedMethod extends _WrappedMethodBase() {
async staticCallResult(...args) { async staticCallResult(...args) {
const runner = getRunner(this._contract.runner, "call"); const runner = getRunner(this._contract.runner, "call");
if (!canCall(runner)) { if (!canCall(runner)) {
return index_js_3.logger.throwError("contract runner does not support calling", "UNSUPPORTED_OPERATION", { return (0, index_js_4.throwError)("contract runner does not support calling", "UNSUPPORTED_OPERATION", {
operation: "call" operation: "call"
}); });
} }
@ -195,7 +195,7 @@ class WrappedMethod extends _WrappedMethodBase() {
result = await runner.call(tx); result = await runner.call(tx);
} }
catch (error) { catch (error) {
if ((0, index_js_3.isCallException)(error)) { if ((0, index_js_4.isCallException)(error)) {
throw this._contract.interface.makeError(fragment, error.data, tx); throw this._contract.interface.makeError(fragment, error.data, tx);
} }
throw error; throw error;
@ -212,7 +212,7 @@ class WrappedEvent extends _WrappedEventBase() {
_key; _key;
constructor(contract, key) { constructor(contract, key) {
super(); super();
(0, index_js_3.defineProperties)(this, { (0, index_js_4.defineProperties)(this, {
name: contract.interface.getEventName(key), name: contract.interface.getEventName(key),
_contract: contract, _key: key _contract: contract, _key: key
}); });
@ -259,7 +259,7 @@ async function getSubTag(contract, event) {
else if (typeof (event) === "string") { else if (typeof (event) === "string") {
// Event name (name or signature); `"Transfer"` // Event name (name or signature); `"Transfer"`
fragment = contract.interface.getEvent(event); fragment = contract.interface.getEvent(event);
topics = [contract.interface.getEventTopic(fragment)]; topics = [fragment.topicHash];
} }
else if (isDeferred(event)) { else if (isDeferred(event)) {
// Deferred Topic Filter; e.g. `contract.filter.Transfer(from)` // Deferred Topic Filter; e.g. `contract.filter.Transfer(from)`
@ -269,7 +269,7 @@ async function getSubTag(contract, event) {
else if ("fragment" in event) { else if ("fragment" in event) {
// ContractEvent; e.g. `contract.filter.Transfer` // ContractEvent; e.g. `contract.filter.Transfer`
fragment = event.fragment; fragment = event.fragment;
topics = [contract.interface.getEventTopic(fragment)]; topics = [fragment.topicHash];
} }
else { else {
console.log(event); console.log(event);
@ -304,7 +304,7 @@ async function getSub(contract, event) {
// Make sure our runner can actually subscribe to events // Make sure our runner can actually subscribe to events
const provider = getProvider(contract.runner); const provider = getProvider(contract.runner);
if (!provider) { if (!provider) {
return index_js_3.logger.throwError("contract runner does not support subscribing", "UNSUPPORTED_OPERATION", { return (0, index_js_4.throwError)("contract runner does not support subscribing", "UNSUPPORTED_OPERATION", {
operation: "on" operation: "on"
}); });
} }
@ -379,8 +379,8 @@ class BaseContract {
filters; filters;
[internal]; [internal];
constructor(target, abi, runner = null, _deployTx) { constructor(target, abi, runner = null, _deployTx) {
const iface = index_js_2.Interface.from(abi); const iface = index_js_1.Interface.from(abi);
(0, index_js_3.defineProperties)(this, { target, runner, interface: iface }); (0, index_js_4.defineProperties)(this, { target, runner, interface: iface });
Object.defineProperty(this, internal, { value: {} }); Object.defineProperty(this, internal, { value: {} });
let addrPromise; let addrPromise;
let addr = null; let addr = null;
@ -392,14 +392,14 @@ class BaseContract {
let subs = new Map(); let subs = new Map();
// Resolve the target as the address // Resolve the target as the address
if (typeof (target) === "string") { if (typeof (target) === "string") {
if ((0, index_js_3.isHexString)(target)) { if ((0, index_js_4.isHexString)(target)) {
addr = target; addr = target;
addrPromise = Promise.resolve(target); addrPromise = Promise.resolve(target);
} }
else { else {
const resolver = getRunner(runner, "resolveName"); const resolver = getRunner(runner, "resolveName");
if (!canResolve(resolver)) { if (!canResolve(resolver)) {
throw index_js_3.logger.makeError("contract runner does not support name resolution", "UNSUPPORTED_OPERATION", { throw (0, index_js_4.makeError)("contract runner does not support name resolution", "UNSUPPORTED_OPERATION", {
operation: "resolveName" operation: "resolveName"
}); });
} }
@ -438,7 +438,7 @@ class BaseContract {
throw new Error(`unknown contract event: ${prop}`); throw new Error(`unknown contract event: ${prop}`);
} }
}); });
(0, index_js_3.defineProperties)(this, { filters }); (0, index_js_4.defineProperties)(this, { filters });
// Return a Proxy that will respond to functions // Return a Proxy that will respond to functions
return new Proxy(this, { return new Proxy(this, {
get: (target, _prop, receiver) => { get: (target, _prop, receiver) => {
@ -458,7 +458,7 @@ class BaseContract {
async getDeployedCode() { async getDeployedCode() {
const provider = getProvider(this.runner); const provider = getProvider(this.runner);
if (!provider) { if (!provider) {
return index_js_3.logger.throwError("runner does not support .provider", "UNSUPPORTED_OPERATION", { return (0, index_js_4.throwError)("runner does not support .provider", "UNSUPPORTED_OPERATION", {
operation: "getDeployedCode" operation: "getDeployedCode"
}); });
} }
@ -483,7 +483,7 @@ class BaseContract {
// Make sure we can subscribe to a provider event // Make sure we can subscribe to a provider event
const provider = getProvider(this.runner); const provider = getProvider(this.runner);
if (provider == null) { if (provider == null) {
return index_js_3.logger.throwError("contract runner does not support .provider", "UNSUPPORTED_OPERATION", { return (0, index_js_4.throwError)("contract runner does not support .provider", "UNSUPPORTED_OPERATION", {
operation: "waitForDeployment" operation: "waitForDeployment"
}); });
} }
@ -529,7 +529,7 @@ class BaseContract {
const filter = { address, topics, fromBlock, toBlock }; const filter = { address, topics, fromBlock, toBlock };
const provider = getProvider(this.runner); const provider = getProvider(this.runner);
if (!provider) { if (!provider) {
return index_js_3.logger.throwError("contract runner does not have a provider", "UNSUPPORTED_OPERATION", { return (0, index_js_4.throwError)("contract runner does not have a provider", "UNSUPPORTED_OPERATION", {
operation: "queryFilter" operation: "queryFilter"
}); });
} }

File diff suppressed because one or more lines are too long

@ -15,7 +15,7 @@ class ContractFactory {
const iface = index_js_1.Interface.from(abi); const iface = index_js_1.Interface.from(abi);
// Dereference Solidity bytecode objects and allow a missing `0x`-prefix // Dereference Solidity bytecode objects and allow a missing `0x`-prefix
if (bytecode instanceof Uint8Array) { if (bytecode instanceof Uint8Array) {
bytecode = (0, index_js_3.hexlify)(index_js_3.logger.getBytes(bytecode)); bytecode = (0, index_js_3.hexlify)((0, index_js_3.getBytes)(bytecode));
} }
else { else {
if (typeof (bytecode) === "object") { if (typeof (bytecode) === "object") {
@ -24,7 +24,7 @@ class ContractFactory {
if (bytecode.substring(0, 2) !== "0x") { if (bytecode.substring(0, 2) !== "0x") {
bytecode = "0x" + bytecode; bytecode = "0x" + bytecode;
} }
bytecode = (0, index_js_3.hexlify)(index_js_3.logger.getBytes(bytecode)); bytecode = (0, index_js_3.hexlify)((0, index_js_3.getBytes)(bytecode));
} }
(0, index_js_3.defineProperties)(this, { (0, index_js_3.defineProperties)(this, {
bytecode, interface: iface, runner: (runner || null) bytecode, interface: iface, runner: (runner || null)
@ -46,7 +46,7 @@ class ContractFactory {
async deploy(...args) { async deploy(...args) {
const tx = await this.getDeployTransaction(...args); const tx = await this.getDeployTransaction(...args);
if (!this.runner || typeof (this.runner.sendTransaction) !== "function") { if (!this.runner || typeof (this.runner.sendTransaction) !== "function") {
return index_js_3.logger.throwError("factory runner does not support sending transactions", "UNSUPPORTED_OPERATION", { return (0, index_js_3.throwError)("factory runner does not support sending transactions", "UNSUPPORTED_OPERATION", {
operation: "sendTransaction" operation: "sendTransaction"
}); });
} }
@ -59,7 +59,7 @@ class ContractFactory {
} }
static fromSolidity(output, runner) { static fromSolidity(output, runner) {
if (output == null) { if (output == null) {
index_js_3.logger.throwArgumentError("bad compiler output", "output", output); (0, index_js_3.throwArgumentError)("bad compiler output", "output", output);
} }
if (typeof (output) === "string") { if (typeof (output) === "string") {
output = JSON.parse(output); output = JSON.parse(output);

@ -1 +1 @@
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src.ts/contract/factory.ts"],"names":[],"mappings":";;;AACA,8CAA4C;AAC5C,kDAAuD;AACvD,gDAA8E;AAE9E,+CAAyE;AAYzE,mCAAmC;AACnC,sCAAsC;AACtC,MAAa,eAAe;IACf,SAAS,CAAa;IACtB,QAAQ,CAAU;IAClB,MAAM,CAAyB;IAExC,YAAY,GAA6B,EAAE,QAAwC,EAAE,MAA8B;QAC/G,MAAM,KAAK,GAAG,oBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElC,wEAAwE;QACxE,IAAI,QAAQ,YAAY,UAAU,EAAE;YAChC,QAAQ,GAAG,IAAA,kBAAO,EAAC,iBAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;SACjD;aAAM;YACH,IAAI,OAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;gBAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;aAAE;YAClE,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;gBAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;aAAE;YACtE,QAAQ,GAAG,IAAA,kBAAO,EAAC,iBAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;SACjD;QAED,IAAA,2BAAgB,EAAkB,IAAI,EAAE;YACpC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,GAAG,IAA2B;QACrD,IAAI,SAAS,GAA4C,EAAG,CAAC;QAE7D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAEvC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;YAC5C,SAAS,GAAG,MAAM,IAAA,2BAAa,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;SAC/C;QAED,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACnE;QAED,MAAM,YAAY,GAAG,MAAM,IAAA,yBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE3E,MAAM,IAAI,GAAG,IAAA,iBAAM,EAAC,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAE,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAG,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAG,IAA2B;QACvC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,UAAU,EAAE;YACpE,OAAO,iBAAM,CAAC,UAAU,CAAC,sDAAsD,EAAE,uBAAuB,EAAE;gBACtG,SAAS,EAAE,iBAAiB;aAC/B,CAAC,CAAC;SACN;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,CAAC;QACzC,OAAO,IAAU,0BAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,CAAC,MAA6B;QACjC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,YAAY,CAA2D,MAAW,EAAE,MAAuB;QAC9G,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,iBAAM,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SACtE;QAED,IAAI,OAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;YAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAAE;QAEjE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAEvB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;SAC9B;aAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC1C,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;SAClC;QAED,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;CACJ;AA7ED,0CA6EC"} {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src.ts/contract/factory.ts"],"names":[],"mappings":"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"}

@ -6,7 +6,7 @@ const hmac_1 = require("@noble/hashes/hmac");
const pbkdf2_1 = require("@noble/hashes/pbkdf2"); const pbkdf2_1 = require("@noble/hashes/pbkdf2");
const sha256_1 = require("@noble/hashes/sha256"); const sha256_1 = require("@noble/hashes/sha256");
const sha512_1 = require("@noble/hashes/sha512"); const sha512_1 = require("@noble/hashes/sha512");
const logger_js_1 = require("../utils/logger.js"); const index_js_1 = require("../utils/index.js");
function getGlobal() { function getGlobal() {
if (typeof self !== 'undefined') { if (typeof self !== 'undefined') {
return self; return self;
@ -27,13 +27,13 @@ function createHash(algo) {
case "sha256": return sha256_1.sha256.create(); case "sha256": return sha256_1.sha256.create();
case "sha512": return sha512_1.sha512.create(); case "sha512": return sha512_1.sha512.create();
} }
return logger_js_1.logger.throwArgumentError("invalid hashing algorithm name", "algorithm", algo); return (0, index_js_1.throwArgumentError)("invalid hashing algorithm name", "algorithm", algo);
} }
exports.createHash = createHash; exports.createHash = createHash;
function createHmac(_algo, key) { function createHmac(_algo, key) {
const algo = ({ sha256: sha256_1.sha256, sha512: sha512_1.sha512 }[_algo]); const algo = ({ sha256: sha256_1.sha256, sha512: sha512_1.sha512 }[_algo]);
if (algo == null) { if (algo == null) {
return logger_js_1.logger.throwArgumentError("invalid hmac algorithm", "algorithm", _algo); return (0, index_js_1.throwArgumentError)("invalid hmac algorithm", "algorithm", _algo);
} }
return hmac_1.hmac.create(algo, key); return hmac_1.hmac.create(algo, key);
} }
@ -41,19 +41,19 @@ exports.createHmac = createHmac;
function pbkdf2Sync(password, salt, iterations, keylen, _algo) { function pbkdf2Sync(password, salt, iterations, keylen, _algo) {
const algo = ({ sha256: sha256_1.sha256, sha512: sha512_1.sha512 }[_algo]); const algo = ({ sha256: sha256_1.sha256, sha512: sha512_1.sha512 }[_algo]);
if (algo == null) { if (algo == null) {
return logger_js_1.logger.throwArgumentError("invalid pbkdf2 algorithm", "algorithm", _algo); return (0, index_js_1.throwArgumentError)("invalid pbkdf2 algorithm", "algorithm", _algo);
} }
return (0, pbkdf2_1.pbkdf2)(algo, password, salt, { c: iterations, dkLen: keylen }); return (0, pbkdf2_1.pbkdf2)(algo, password, salt, { c: iterations, dkLen: keylen });
} }
exports.pbkdf2Sync = pbkdf2Sync; exports.pbkdf2Sync = pbkdf2Sync;
function randomBytes(length) { function randomBytes(length) {
if (crypto == null) { if (crypto == null) {
return logger_js_1.logger.throwError("platform does not support secure random numbers", "UNSUPPORTED_OPERATION", { return (0, index_js_1.throwError)("platform does not support secure random numbers", "UNSUPPORTED_OPERATION", {
operation: "randomBytes" operation: "randomBytes"
}); });
} }
if (!Number.isInteger(length) || length <= 0 || length > 1024) { if (!Number.isInteger(length) || length <= 0 || length > 1024) {
logger_js_1.logger.throwArgumentError("invalid length", "length", length); (0, index_js_1.throwArgumentError)("invalid length", "length", length);
} }
const result = new Uint8Array(length); const result = new Uint8Array(length);
crypto.getRandomValues(result); crypto.getRandomValues(result);

@ -1 +1 @@
{"version":3,"file":"crypto-browser.js","sourceRoot":"","sources":["../../src.ts/crypto/crypto-browser.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;AAE1B,6CAA0C;AAC1C,iDAA8C;AAC9C,iDAA8C;AAC9C,iDAA8C;AAE9C,kDAA4C;AAW5C,SAAS,SAAS;IAChB,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAAE,OAAO,IAAI,CAAC;KAAE;IACjD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAAE,OAAO,MAAM,CAAC;KAAE;IACrD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAAE,OAAO,MAAM,CAAC;KAAE;IACrD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAAA,CAAC;AAEF,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AAC9B,MAAM,MAAM,GAAQ,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC;AAQ3D,SAAgB,UAAU,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE;QACV,KAAK,QAAQ,CAAC,CAAC,OAAO,eAAM,CAAC,MAAM,EAAE,CAAC;QACtC,KAAK,QAAQ,CAAC,CAAC,OAAO,eAAM,CAAC,MAAM,EAAE,CAAC;KACzC;IACD,OAAO,kBAAM,CAAC,kBAAkB,CAAC,gCAAgC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAC1F,CAAC;AAND,gCAMC;AAED,SAAgB,UAAU,CAAC,KAAa,EAAE,GAAe;IACrD,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM,EAAN,eAAM,EAAE,MAAM,EAAN,eAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,OAAO,kBAAM,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;KAClF;IACD,OAAO,WAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAND,gCAMC;AAED,SAAgB,UAAU,CAAC,QAAoB,EAAE,IAAgB,EAAE,UAAkB,EAAE,MAAc,EAAE,KAA0B;IAC7H,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM,EAAN,eAAM,EAAE,MAAM,EAAN,eAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,OAAO,kBAAM,CAAC,kBAAkB,CAAC,0BAA0B,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;KACpF;IACD,OAAO,IAAA,eAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1E,CAAC;AAND,gCAMC;AAED,SAAgB,WAAW,CAAC,MAAc;IACtC,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,OAAO,kBAAM,CAAC,UAAU,CAAC,iDAAiD,EAAE,uBAAuB,EAAE;YACjG,SAAS,EAAE,aAAa;SAC3B,CAAC,CAAC;KACN;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,IAAI,EAAE;QAC3D,kBAAM,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KACjE;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAClB,CAAC;AAdD,kCAcC"} {"version":3,"file":"crypto-browser.js","sourceRoot":"","sources":["../../src.ts/crypto/crypto-browser.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;AAE1B,6CAA0C;AAC1C,iDAA8C;AAC9C,iDAA8C;AAC9C,iDAA8C;AAE9C,gDAAmE;AAWnE,SAAS,SAAS;IAChB,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAAE,OAAO,IAAI,CAAC;KAAE;IACjD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAAE,OAAO,MAAM,CAAC;KAAE;IACrD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAAE,OAAO,MAAM,CAAC;KAAE;IACrD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAAA,CAAC;AAEF,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AAC9B,MAAM,MAAM,GAAQ,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC;AAQ3D,SAAgB,UAAU,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE;QACV,KAAK,QAAQ,CAAC,CAAC,OAAO,eAAM,CAAC,MAAM,EAAE,CAAC;QACtC,KAAK,QAAQ,CAAC,CAAC,OAAO,eAAM,CAAC,MAAM,EAAE,CAAC;KACzC;IACD,OAAO,IAAA,6BAAkB,EAAC,gCAAgC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACnF,CAAC;AAND,gCAMC;AAED,SAAgB,UAAU,CAAC,KAAa,EAAE,GAAe;IACrD,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM,EAAN,eAAM,EAAE,MAAM,EAAN,eAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,OAAO,IAAA,6BAAkB,EAAC,wBAAwB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;KAC3E;IACD,OAAO,WAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAND,gCAMC;AAED,SAAgB,UAAU,CAAC,QAAoB,EAAE,IAAgB,EAAE,UAAkB,EAAE,MAAc,EAAE,KAA0B;IAC7H,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM,EAAN,eAAM,EAAE,MAAM,EAAN,eAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,OAAO,IAAA,6BAAkB,EAAC,0BAA0B,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;KAC7E;IACD,OAAO,IAAA,eAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1E,CAAC;AAND,gCAMC;AAED,SAAgB,WAAW,CAAC,MAAc;IACtC,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,OAAO,IAAA,qBAAU,EAAC,iDAAiD,EAAE,uBAAuB,EAAE;YAC1F,SAAS,EAAE,aAAa;SAC3B,CAAC,CAAC;KACN;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,IAAI,EAAE;QAC3D,IAAA,6BAAkB,EAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC1D;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAClB,CAAC;AAdD,kCAcC"}

@ -9,8 +9,8 @@ const _computeHmac = function (algorithm, key, data) {
}; };
let __computeHmac = _computeHmac; let __computeHmac = _computeHmac;
function computeHmac(algorithm, _key, _data) { function computeHmac(algorithm, _key, _data) {
const key = index_js_1.logger.getBytes(_key, "key"); const key = (0, index_js_1.getBytes)(_key, "key");
const data = index_js_1.logger.getBytes(_data, "data"); const data = (0, index_js_1.getBytes)(_data, "data");
return (0, index_js_1.hexlify)(__computeHmac(algorithm, key, data)); return (0, index_js_1.hexlify)(__computeHmac(algorithm, key, data));
} }
exports.computeHmac = computeHmac; exports.computeHmac = computeHmac;

@ -1 +1 @@
{"version":3,"file":"hmac.js","sourceRoot":"","sources":["../../src.ts/crypto/hmac.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AACzC,gDAAoD;AAKpD,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,YAAY,GAAG,UAAS,SAA8B,EAAE,GAAe,EAAE,IAAgB;IAC3F,OAAO,IAAI,GAAG,IAAA,sBAAU,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC,CAAA;AAED,IAAI,aAAa,GAAG,YAAY,CAAC;AAEjC,SAAgB,WAAW,CAAC,SAA8B,EAAE,IAAe,EAAE,KAAgB;IACzF,MAAM,GAAG,GAAG,iBAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,kBAAO,EAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAJD,kCAIC;AACD,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC;AAC7B,WAAW,CAAC,IAAI,GAAI,cAAa,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACjD,WAAW,CAAC,QAAQ,GAAG,UAAS,IAAsF;IAClH,IAAI,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAAE;IACzD,aAAa,GAAG,IAAI,CAAC;AACzB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC"} {"version":3,"file":"hmac.js","sourceRoot":"","sources":["../../src.ts/crypto/hmac.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AACzC,gDAAsD;AAKtD,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,YAAY,GAAG,UAAS,SAA8B,EAAE,GAAe,EAAE,IAAgB;IAC3F,OAAO,IAAI,GAAG,IAAA,sBAAU,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC,CAAA;AAED,IAAI,aAAa,GAAG,YAAY,CAAC;AAEjC,SAAgB,WAAW,CAAC,SAA8B,EAAE,IAAe,EAAE,KAAgB;IACzF,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,kBAAO,EAAC,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAJD,kCAIC;AACD,WAAW,CAAC,CAAC,GAAG,YAAY,CAAC;AAC7B,WAAW,CAAC,IAAI,GAAI,cAAa,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACjD,WAAW,CAAC,QAAQ,GAAG,UAAS,IAAsF;IAClH,IAAI,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAAE;IACzD,aAAa,GAAG,IAAI,CAAC;AACzB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC"}

@ -9,7 +9,7 @@ const _keccak256 = function (data) {
}; };
let __keccak256 = _keccak256; let __keccak256 = _keccak256;
function keccak256(_data) { function keccak256(_data) {
const data = index_js_1.logger.getBytes(_data, "data"); const data = (0, index_js_1.getBytes)(_data, "data");
return (0, index_js_1.hexlify)(__keccak256(data)); return (0, index_js_1.hexlify)(__keccak256(data));
} }
exports.keccak256 = keccak256; exports.keccak256 = keccak256;

@ -1 +1 @@
{"version":3,"file":"keccak.js","sourceRoot":"","sources":["../../src.ts/crypto/keccak.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAEhD,gDAAoD;AAKpD,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,UAAU,GAAG,UAAS,IAAgB;IACxC,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAA;AAED,IAAI,WAAW,GAAoC,UAAU,CAAC;AAE9D,SAAgB,SAAS,CAAC,KAAgB;IACtC,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,kBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AAHD,8BAGC;AACD,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC;AACzB,SAAS,CAAC,IAAI,GAAG,cAAmB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACpD,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAqC;IAC/D,IAAI,MAAM,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;KAAE;IAC3D,WAAW,GAAG,IAAI,CAAC;AACvB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC"} {"version":3,"file":"keccak.js","sourceRoot":"","sources":["../../src.ts/crypto/keccak.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAEhD,gDAAsD;AAKtD,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,UAAU,GAAG,UAAS,IAAgB;IACxC,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAA;AAED,IAAI,WAAW,GAAoC,UAAU,CAAC;AAE9D,SAAgB,SAAS,CAAC,KAAgB;IACtC,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,kBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AAHD,8BAGC;AACD,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC;AACzB,SAAS,CAAC,IAAI,GAAG,cAAmB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACpD,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAqC;IAC/D,IAAI,MAAM,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;KAAE;IAC3D,WAAW,GAAG,IAAI,CAAC;AACvB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC"}

@ -9,8 +9,8 @@ const _pbkdf2 = function (password, salt, iterations, keylen, algo) {
}; };
let __pbkdf2 = _pbkdf2; let __pbkdf2 = _pbkdf2;
function pbkdf2(_password, _salt, iterations, keylen, algo) { function pbkdf2(_password, _salt, iterations, keylen, algo) {
const password = index_js_1.logger.getBytes(_password, "password"); const password = (0, index_js_1.getBytes)(_password, "password");
const salt = index_js_1.logger.getBytes(_salt, "salt"); const salt = (0, index_js_1.getBytes)(_salt, "salt");
return (0, index_js_1.hexlify)(__pbkdf2(password, salt, iterations, keylen, algo)); return (0, index_js_1.hexlify)(__pbkdf2(password, salt, iterations, keylen, algo));
} }
exports.pbkdf2 = pbkdf2; exports.pbkdf2 = pbkdf2;

@ -1 +1 @@
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src.ts/crypto/pbkdf2.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAEzC,gDAAoD;AAKpD,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,OAAO,GAAG,UAAS,QAAoB,EAAE,IAAgB,EAAE,UAAkB,EAAE,MAAc,EAAE,IAAyB;IAC1H,OAAO,IAAA,sBAAU,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC,CAAA;AAED,IAAI,QAAQ,GAAG,OAAO,CAAC;AAEvB,SAAgB,MAAM,CAAC,SAAoB,EAAE,KAAgB,EAAE,UAAkB,EAAE,MAAc,EAAE,IAAyB;IACxH,MAAM,QAAQ,GAAG,iBAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,kBAAO,EAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAJD,wBAIC;AACD,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;AACnB,MAAM,CAAC,IAAI,GAAG,cAAmB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACjD,MAAM,CAAC,QAAQ,GAAG,UAAS,IAA0H;IACjJ,IAAI,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAAE;IACpD,QAAQ,GAAG,IAAI,CAAC;AACpB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC"} {"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src.ts/crypto/pbkdf2.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAEzC,gDAAsD;AAKtD,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,OAAO,GAAG,UAAS,QAAoB,EAAE,IAAgB,EAAE,UAAkB,EAAE,MAAc,EAAE,IAAyB;IAC1H,OAAO,IAAA,sBAAU,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC,CAAA;AAED,IAAI,QAAQ,GAAG,OAAO,CAAC;AAEvB,SAAgB,MAAM,CAAC,SAAoB,EAAE,KAAgB,EAAE,UAAkB,EAAE,MAAc,EAAE,IAAyB;IACxH,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,kBAAO,EAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAJD,wBAIC;AACD,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;AACnB,MAAM,CAAC,IAAI,GAAG,cAAmB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACjD,MAAM,CAAC,QAAQ,GAAG,UAAS,IAA0H;IACjJ,IAAI,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAAE;IACpD,QAAQ,GAAG,IAAI,CAAC;AACpB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC"}

@ -9,7 +9,7 @@ const _ripemd160 = function (data) {
}; };
let __ripemd160 = _ripemd160; let __ripemd160 = _ripemd160;
function ripemd160(_data) { function ripemd160(_data) {
const data = index_js_1.logger.getBytes(_data, "data"); const data = (0, index_js_1.getBytes)(_data, "data");
return (0, index_js_1.hexlify)(__ripemd160(data)); return (0, index_js_1.hexlify)(__ripemd160(data));
} }
exports.ripemd160 = ripemd160; exports.ripemd160 = ripemd160;

@ -1 +1 @@
{"version":3,"file":"ripemd160.js","sourceRoot":"","sources":["../../src.ts/crypto/ripemd160.ts"],"names":[],"mappings":";;;AAAA,uDAAuE;AAEvE,gDAAoD;AAKpD,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,UAAU,GAAG,UAAS,IAAgB;IACxC,OAAO,IAAA,qBAAe,EAAC,IAAI,CAAC,CAAC;AACjC,CAAC,CAAA;AAED,IAAI,WAAW,GAAoC,UAAU,CAAC;AAE9D,SAAgB,SAAS,CAAC,KAAgB;IACtC,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,kBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AAHD,8BAGC;AACD,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC;AACzB,SAAS,CAAC,IAAI,GAAG,cAAmB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACpD,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAqC;IAC/D,IAAI,MAAM,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;KAAE;IAC3D,WAAW,GAAG,IAAI,CAAC;AACvB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC"} {"version":3,"file":"ripemd160.js","sourceRoot":"","sources":["../../src.ts/crypto/ripemd160.ts"],"names":[],"mappings":";;;AAAA,uDAAuE;AAEvE,gDAAuD;AAKvD,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,UAAU,GAAG,UAAS,IAAgB;IACxC,OAAO,IAAA,qBAAe,EAAC,IAAI,CAAC,CAAC;AACjC,CAAC,CAAA;AAED,IAAI,WAAW,GAAoC,UAAU,CAAC;AAE9D,SAAgB,SAAS,CAAC,KAAgB;IACtC,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,kBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AAHD,8BAGC;AACD,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC;AACzB,SAAS,CAAC,IAAI,GAAG,cAAmB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACpD,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAqC;IAC/D,IAAI,MAAM,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;KAAE;IAC3D,WAAW,GAAG,IAAI,CAAC;AACvB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC"}

@ -13,8 +13,8 @@ const _scryptSync = function (passwd, salt, N, r, p, dkLen) {
let __scryptAsync = _scryptAsync; let __scryptAsync = _scryptAsync;
let __scryptSync = _scryptSync; let __scryptSync = _scryptSync;
async function scrypt(_passwd, _salt, N, r, p, dkLen, progress) { async function scrypt(_passwd, _salt, N, r, p, dkLen, progress) {
const passwd = index_js_1.logger.getBytes(_passwd, "passwd"); const passwd = (0, index_js_1.getBytes)(_passwd, "passwd");
const salt = index_js_1.logger.getBytes(_salt, "salt"); const salt = (0, index_js_1.getBytes)(_salt, "salt");
return (0, index_js_1.hexlify)(await __scryptAsync(passwd, salt, N, r, p, dkLen, progress)); return (0, index_js_1.hexlify)(await __scryptAsync(passwd, salt, N, r, p, dkLen, progress));
} }
exports.scrypt = scrypt; exports.scrypt = scrypt;
@ -28,8 +28,8 @@ scrypt.register = function (func) {
}; };
Object.freeze(scrypt); Object.freeze(scrypt);
function scryptSync(_passwd, _salt, N, r, p, dkLen) { function scryptSync(_passwd, _salt, N, r, p, dkLen) {
const passwd = index_js_1.logger.getBytes(_passwd, "passwd"); const passwd = (0, index_js_1.getBytes)(_passwd, "passwd");
const salt = index_js_1.logger.getBytes(_salt, "salt"); const salt = (0, index_js_1.getBytes)(_salt, "salt");
return (0, index_js_1.hexlify)(__scryptSync(passwd, salt, N, r, p, dkLen)); return (0, index_js_1.hexlify)(__scryptSync(passwd, salt, N, r, p, dkLen));
} }
exports.scryptSync = scryptSync; exports.scryptSync = scryptSync;

@ -1 +1 @@
{"version":3,"file":"scrypt.js","sourceRoot":"","sources":["../../src.ts/crypto/scrypt.ts"],"names":[],"mappings":";;;AAAA,iDAAwF;AAExF,gDAAyD;AAQzD,IAAI,UAAU,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC;AAE5C,MAAM,YAAY,GAAG,KAAK,WAAU,MAAkB,EAAE,IAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,UAA6B;IACnJ,OAAO,MAAM,IAAA,oBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAA;AACD,MAAM,WAAW,GAAG,UAAS,MAAkB,EAAE,IAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa;IAC7G,OAAO,IAAA,eAAU,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC,CAAA;AAED,IAAI,aAAa,GAAgJ,YAAY,CAAC;AAC9K,IAAI,YAAY,GAAwG,WAAW,CAAA;AAG5H,KAAK,UAAU,MAAM,CAAC,OAAkB,EAAE,KAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,QAA2B;IAC1I,MAAM,MAAM,GAAG,iBAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,kBAAC,EAAC,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1E,CAAC;AAJD,wBAIC;AACD,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC;AACxB,MAAM,CAAC,IAAI,GAAG,cAAmB,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACtD,MAAM,CAAC,QAAQ,GAAG,UAAS,IAA+I;IACtK,IAAI,WAAW,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAAE;IACzD,aAAa,GAAG,IAAI,CAAC;AACzB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtB,SAAgB,UAAU,CAAC,OAAkB,EAAE,KAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa;IAC3G,MAAM,MAAM,GAAG,iBAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,kBAAC,EAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC;AAJD,gCAIC;AACD,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC;AAC3B,UAAU,CAAC,IAAI,GAAG,cAAmB,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACzD,UAAU,CAAC,QAAQ,GAAG,UAAS,IAAyG;IACpI,IAAI,UAAU,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KAAE;IAC5D,YAAY,GAAG,IAAI,CAAC;AACxB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC"} {"version":3,"file":"scrypt.js","sourceRoot":"","sources":["../../src.ts/crypto/scrypt.ts"],"names":[],"mappings":";;;AAAA,iDAAwF;AAExF,gDAA2D;AAQ3D,IAAI,UAAU,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC;AAE5C,MAAM,YAAY,GAAG,KAAK,WAAU,MAAkB,EAAE,IAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,UAA6B;IACnJ,OAAO,MAAM,IAAA,oBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAA;AACD,MAAM,WAAW,GAAG,UAAS,MAAkB,EAAE,IAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa;IAC7G,OAAO,IAAA,eAAU,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC,CAAA;AAED,IAAI,aAAa,GAAgJ,YAAY,CAAC;AAC9K,IAAI,YAAY,GAAwG,WAAW,CAAA;AAG5H,KAAK,UAAU,MAAM,CAAC,OAAkB,EAAE,KAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,QAA2B;IAC1I,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,kBAAC,EAAC,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1E,CAAC;AAJD,wBAIC;AACD,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC;AACxB,MAAM,CAAC,IAAI,GAAG,cAAmB,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACtD,MAAM,CAAC,QAAQ,GAAG,UAAS,IAA+I;IACtK,IAAI,WAAW,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAAE;IACzD,aAAa,GAAG,IAAI,CAAC;AACzB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtB,SAAgB,UAAU,CAAC,OAAkB,EAAE,KAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa;IAC3G,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,kBAAC,EAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC;AAJD,gCAIC;AACD,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC;AAC3B,UAAU,CAAC,IAAI,GAAG,cAAmB,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACzD,UAAU,CAAC,QAAQ,GAAG,UAAS,IAAyG;IACpI,IAAI,UAAU,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KAAE;IAC5D,YAAY,GAAG,IAAI,CAAC;AACxB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC"}

@ -13,7 +13,7 @@ let __sha256 = _sha256;
let __sha512 = _sha512; let __sha512 = _sha512;
let locked256 = false, locked512 = false; let locked256 = false, locked512 = false;
function sha256(_data) { function sha256(_data) {
const data = index_js_1.logger.getBytes(_data, "data"); const data = (0, index_js_1.getBytes)(_data, "data");
return (0, index_js_1.hexlify)(__sha256(data)); return (0, index_js_1.hexlify)(__sha256(data));
} }
exports.sha256 = sha256; exports.sha256 = sha256;
@ -27,7 +27,7 @@ sha256.register = function (func) {
}; };
Object.freeze(sha256); Object.freeze(sha256);
function sha512(_data) { function sha512(_data) {
const data = index_js_1.logger.getBytes(_data, "data"); const data = (0, index_js_1.getBytes)(_data, "data");
return (0, index_js_1.hexlify)(__sha512(data)); return (0, index_js_1.hexlify)(__sha512(data));
} }
exports.sha512 = sha512; exports.sha512 = sha512;

@ -1 +1 @@
{"version":3,"file":"sha2.js","sourceRoot":"","sources":["../../src.ts/crypto/sha2.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAEzC,gDAAoD;AAKpD,MAAM,OAAO,GAAG,UAAS,IAAgB;IACrC,OAAO,IAAA,sBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,UAAS,IAAgB;IACrC,OAAO,IAAA,sBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,CAAC,CAAA;AAED,IAAI,QAAQ,GAAoC,OAAO,CAAC;AACxD,IAAI,QAAQ,GAAoC,OAAO,CAAC;AAExD,IAAI,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC;AAGzC,SAAgB,MAAM,CAAC,KAAgB;IACnC,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,kBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAHD,wBAGC;AACD,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;AACnB,MAAM,CAAC,IAAI,GAAG,cAAmB,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACpD,MAAM,CAAC,QAAQ,GAAG,UAAS,IAAqC;IAC5D,IAAI,SAAS,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAAE;IACvD,QAAQ,GAAG,IAAI,CAAC;AACpB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtB,SAAgB,MAAM,CAAC,KAAgB;IACnC,MAAM,IAAI,GAAG,iBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,kBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAHD,wBAGC;AACD,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;AACnB,MAAM,CAAC,IAAI,GAAG,cAAmB,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACpD,MAAM,CAAC,QAAQ,GAAG,UAAS,IAAqC;IAC5D,IAAI,SAAS,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAAE;IACvD,QAAQ,GAAG,IAAI,CAAC;AACpB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC"} {"version":3,"file":"sha2.js","sourceRoot":"","sources":["../../src.ts/crypto/sha2.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAEzC,gDAAsD;AAKtD,MAAM,OAAO,GAAG,UAAS,IAAgB;IACrC,OAAO,IAAA,sBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,UAAS,IAAgB;IACrC,OAAO,IAAA,sBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,CAAC,CAAA;AAED,IAAI,QAAQ,GAAoC,OAAO,CAAC;AACxD,IAAI,QAAQ,GAAoC,OAAO,CAAC;AAExD,IAAI,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC;AAGzC,SAAgB,MAAM,CAAC,KAAgB;IACnC,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,kBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAHD,wBAGC;AACD,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;AACnB,MAAM,CAAC,IAAI,GAAG,cAAmB,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACpD,MAAM,CAAC,QAAQ,GAAG,UAAS,IAAqC;IAC5D,IAAI,SAAS,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAAE;IACvD,QAAQ,GAAG,IAAI,CAAC;AACpB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtB,SAAgB,MAAM,CAAC,KAAgB;IACnC,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,kBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAHD,wBAGC;AACD,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;AACnB,MAAM,CAAC,IAAI,GAAG,cAAmB,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACpD,MAAM,CAAC,QAAQ,GAAG,UAAS,IAAqC;IAC5D,IAAI,SAAS,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAAE;IACvD,QAAQ,GAAG,IAAI,CAAC;AACpB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC"}

@ -16,23 +16,23 @@ class Signature {
get r() { return (0, index_js_2.getStore)(this.#props, "r"); } get r() { return (0, index_js_2.getStore)(this.#props, "r"); }
set r(value) { set r(value) {
if ((0, index_js_2.dataLength)(value) !== 32) { if ((0, index_js_2.dataLength)(value) !== 32) {
index_js_2.logger.throwArgumentError("invalid r", "value", value); (0, index_js_2.throwArgumentError)("invalid r", "value", value);
} }
(0, index_js_2.setStore)(this.#props, "r", (0, index_js_2.hexlify)(value)); (0, index_js_2.setStore)(this.#props, "r", (0, index_js_2.hexlify)(value));
} }
get s() { return (0, index_js_2.getStore)(this.#props, "s"); } get s() { return (0, index_js_2.getStore)(this.#props, "s"); }
set s(value) { set s(value) {
if ((0, index_js_2.dataLength)(value) !== 32) { if ((0, index_js_2.dataLength)(value) !== 32) {
index_js_2.logger.throwArgumentError("invalid r", "value", value); (0, index_js_2.throwArgumentError)("invalid r", "value", value);
} }
else if (index_js_2.logger.getBytes(value)[0] & 0x80) { else if ((0, index_js_2.getBytes)(value)[0] & 0x80) {
index_js_2.logger.throwArgumentError("non-canonical s", "value", value); (0, index_js_2.throwArgumentError)("non-canonical s", "value", value);
} }
(0, index_js_2.setStore)(this.#props, "s", (0, index_js_2.hexlify)(value)); (0, index_js_2.setStore)(this.#props, "s", (0, index_js_2.hexlify)(value));
} }
get v() { return (0, index_js_2.getStore)(this.#props, "v"); } get v() { return (0, index_js_2.getStore)(this.#props, "v"); }
set v(value) { set v(value) {
const v = index_js_2.logger.getNumber(value, "value"); const v = (0, index_js_2.getNumber)(value, "value");
if (v !== 27 && v !== 28) { if (v !== 27 && v !== 28) {
throw new Error("@TODO"); throw new Error("@TODO");
} }
@ -62,7 +62,7 @@ class Signature {
} }
get yParityAndS() { get yParityAndS() {
// The EIP-2098 compact representation // The EIP-2098 compact representation
const yParityAndS = index_js_2.logger.getBytes(this.s); const yParityAndS = (0, index_js_2.getBytes)(this.s);
if (this.yParity) { if (this.yParity) {
yParityAndS[0] |= 0x80; yParityAndS[0] |= 0x80;
} }
@ -75,7 +75,7 @@ class Signature {
return (0, index_js_2.concat)([this.r, this.s, (this.yParity ? "0x1c" : "0x1b")]); return (0, index_js_2.concat)([this.r, this.s, (this.yParity ? "0x1c" : "0x1b")]);
} }
constructor(guard, r, s, v) { constructor(guard, r, s, v) {
index_js_2.logger.assertPrivate(guard, _guard, "Signature"); (0, index_js_2.assertPrivate)(guard, _guard, "Signature");
this.#props = { r, s, v, networkV: null }; this.#props = { r, s, v, networkV: null };
} }
[Symbol.for('nodejs.util.inspect.custom')]() { [Symbol.for('nodejs.util.inspect.custom')]() {
@ -108,24 +108,24 @@ class Signature {
} }
// Get the chain ID from an EIP-155 v // Get the chain ID from an EIP-155 v
static getChainId(v) { static getChainId(v) {
const bv = index_js_2.logger.getBigInt(v, "v"); const bv = (0, index_js_2.getBigInt)(v, "v");
// The v is not an EIP-155 v, so it is the unspecified chain ID // The v is not an EIP-155 v, so it is the unspecified chain ID
if ((bv == BN_27) || (bv == BN_28)) { if ((bv == BN_27) || (bv == BN_28)) {
return BN_0; return BN_0;
} }
// Bad value for an EIP-155 v // Bad value for an EIP-155 v
if (bv < BN_35) { if (bv < BN_35) {
index_js_2.logger.throwArgumentError("invalid EIP-155 v", "v", v); (0, index_js_2.throwArgumentError)("invalid EIP-155 v", "v", v);
} }
return (bv - BN_35) / BN_2; return (bv - BN_35) / BN_2;
} }
// Get the EIP-155 v transformed for a given chainId // Get the EIP-155 v transformed for a given chainId
static getChainIdV(chainId, v) { static getChainIdV(chainId, v) {
return (index_js_2.logger.getBigInt(chainId) * BN_2) + BigInt(35 + v - 27); return ((0, index_js_2.getBigInt)(chainId) * BN_2) + BigInt(35 + v - 27);
} }
// Convert an EIP-155 v into a normalized v // Convert an EIP-155 v into a normalized v
static getNormalizedV(v) { static getNormalizedV(v) {
const bv = index_js_2.logger.getBigInt(v); const bv = (0, index_js_2.getBigInt)(v);
if (bv == BN_0) { if (bv == BN_0) {
return 27; return 27;
} }
@ -137,10 +137,10 @@ class Signature {
} }
static from(sig) { static from(sig) {
const throwError = (message) => { const throwError = (message) => {
return index_js_2.logger.throwArgumentError(message, "signature", sig); return (0, index_js_2.throwArgumentError)(message, "signature", sig);
}; };
if (typeof (sig) === "string") { if (typeof (sig) === "string") {
const bytes = index_js_2.logger.getBytes(sig, "signature"); const bytes = (0, index_js_2.getBytes)(sig, "signature");
if (bytes.length === 64) { if (bytes.length === 64) {
const r = (0, index_js_2.hexlify)(bytes.slice(0, 32)); const r = (0, index_js_2.hexlify)(bytes.slice(0, 32));
const s = bytes.slice(32, 64); const s = bytes.slice(32, 64);
@ -182,19 +182,19 @@ class Signature {
if (!(0, index_js_2.isHexString)(yParityAndS, 32)) { if (!(0, index_js_2.isHexString)(yParityAndS, 32)) {
throwError("invalid yParityAndS"); throwError("invalid yParityAndS");
} }
const bytes = index_js_2.logger.getBytes(yParityAndS); const bytes = (0, index_js_2.getBytes)(yParityAndS);
bytes[0] &= 0x7f; bytes[0] &= 0x7f;
return (0, index_js_2.hexlify)(bytes); return (0, index_js_2.hexlify)(bytes);
} }
return throwError("missing s"); return throwError("missing s");
})(sig.s, sig.yParityAndS); })(sig.s, sig.yParityAndS);
if (index_js_2.logger.getBytes(s)[0] & 0x80) { if ((0, index_js_2.getBytes)(s)[0] & 0x80) {
throwError("non-canonical s"); throwError("non-canonical s");
} }
// Get v; by any means necessary (we check consistency below) // Get v; by any means necessary (we check consistency below)
const { networkV, v } = (function (_v, yParityAndS, yParity) { const { networkV, v } = (function (_v, yParityAndS, yParity) {
if (_v != null) { if (_v != null) {
const v = index_js_2.logger.getBigInt(_v); const v = (0, index_js_2.getBigInt)(_v);
return { return {
networkV: ((v >= BN_35) ? v : undefined), networkV: ((v >= BN_35) ? v : undefined),
v: Signature.getNormalizedV(v) v: Signature.getNormalizedV(v)
@ -204,7 +204,7 @@ class Signature {
if (!(0, index_js_2.isHexString)(yParityAndS, 32)) { if (!(0, index_js_2.isHexString)(yParityAndS, 32)) {
throwError("invalid yParityAndS"); throwError("invalid yParityAndS");
} }
return { v: ((index_js_2.logger.getBytes(yParityAndS)[0] & 0x80) ? 28 : 27) }; return { v: (((0, index_js_2.getBytes)(yParityAndS)[0] & 0x80) ? 28 : 27) };
} }
if (yParity != null) { if (yParity != null) {
switch (yParity) { switch (yParity) {

File diff suppressed because one or more lines are too long

@ -31,7 +31,7 @@ const signature_js_1 = require("./signature.js");
//const N = BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"); //const N = BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");
// Make noble-secp256k1 sync // Make noble-secp256k1 sync
secp256k1.utils.hmacSha256Sync = function (key, ...messages) { secp256k1.utils.hmacSha256Sync = function (key, ...messages) {
return index_js_1.logger.getBytes((0, hmac_js_1.computeHmac)("sha256", key, (0, index_js_1.concat)(messages))); return (0, index_js_1.getBytes)((0, hmac_js_1.computeHmac)("sha256", key, (0, index_js_1.concat)(messages)));
}; };
class SigningKey { class SigningKey {
#privateKey; #privateKey;
@ -51,7 +51,7 @@ class SigningKey {
/* @TODO /* @TODO
logger.assertArgument(() => (dataLength(digest) === 32), "invalid digest length", "digest", digest); logger.assertArgument(() => (dataLength(digest) === 32), "invalid digest length", "digest", digest);
*/ */
const [sigDer, recid] = secp256k1.signSync(index_js_1.logger.getBytesCopy(digest), index_js_1.logger.getBytesCopy(this.#privateKey), { const [sigDer, recid] = secp256k1.signSync((0, index_js_1.getBytesCopy)(digest), (0, index_js_1.getBytesCopy)(this.#privateKey), {
recovered: true, recovered: true,
canonical: true canonical: true
}); });
@ -64,10 +64,10 @@ class SigningKey {
} }
computeShardSecret(other) { computeShardSecret(other) {
const pubKey = SigningKey.computePublicKey(other); const pubKey = SigningKey.computePublicKey(other);
return (0, index_js_1.hexlify)(secp256k1.getSharedSecret(index_js_1.logger.getBytesCopy(this.#privateKey), pubKey)); return (0, index_js_1.hexlify)(secp256k1.getSharedSecret((0, index_js_1.getBytesCopy)(this.#privateKey), pubKey));
} }
static computePublicKey(key, compressed) { static computePublicKey(key, compressed) {
let bytes = index_js_1.logger.getBytes(key, "key"); let bytes = (0, index_js_1.getBytes)(key, "key");
if (bytes.length === 32) { if (bytes.length === 32) {
const pubKey = secp256k1.getPublicKey(bytes, !!compressed); const pubKey = secp256k1.getPublicKey(bytes, !!compressed);
return (0, index_js_1.hexlify)(pubKey); return (0, index_js_1.hexlify)(pubKey);
@ -83,12 +83,12 @@ class SigningKey {
} }
static recoverPublicKey(digest, signature) { static recoverPublicKey(digest, signature) {
const sig = signature_js_1.Signature.from(signature); const sig = signature_js_1.Signature.from(signature);
const der = secp256k1.Signature.fromCompact(index_js_1.logger.getBytesCopy((0, index_js_1.concat)([sig.r, sig.s]))).toDERRawBytes(); const der = secp256k1.Signature.fromCompact((0, index_js_1.getBytesCopy)((0, index_js_1.concat)([sig.r, sig.s]))).toDERRawBytes();
const pubKey = secp256k1.recoverPublicKey(index_js_1.logger.getBytesCopy(digest), der, sig.yParity); const pubKey = secp256k1.recoverPublicKey((0, index_js_1.getBytesCopy)(digest), der, sig.yParity);
if (pubKey != null) { if (pubKey != null) {
return (0, index_js_1.hexlify)(pubKey); return (0, index_js_1.hexlify)(pubKey);
} }
return index_js_1.logger.throwArgumentError("invalid signautre for digest", "signature", signature); return (0, index_js_1.throwArgumentError)("invalid signautre for digest", "signature", signature);
} }
static _addPoints(p0, p1, compressed) { static _addPoints(p0, p1, compressed) {
const pub0 = secp256k1.Point.fromHex(SigningKey.computePublicKey(p0).substring(2)); const pub0 = secp256k1.Point.fromHex(SigningKey.computePublicKey(p0).substring(2));

@ -1 +1 @@
{"version":3,"file":"signing-key.js","sourceRoot":"","sources":["../../src.ts/crypto/signing-key.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4DAA8C;AAE9C,gDAAmE;AAEnE,uCAAwC;AACxC,iDAA2C;AAO3C,yFAAyF;AAEzF,4BAA4B;AAC5B,SAAS,CAAC,KAAK,CAAC,cAAc,GAAG,UAAS,GAAe,EAAE,GAAG,QAA2B;IACrF,OAAO,iBAAM,CAAC,QAAQ,CAAC,IAAA,qBAAW,EAAC,QAAQ,EAAE,GAAG,EAAE,IAAA,iBAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAA;AAED,MAAa,UAAU;IACnB,WAAW,CAAS;IAEpB,YAAY,UAAqB;QAC7B;;;;;UAKE;QACF,IAAI,CAAC,WAAW,GAAG,IAAA,kBAAO,EAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,UAAU,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACrD,IAAI,SAAS,KAAa,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjF,IAAI,mBAAmB,KAAa,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjG,IAAI,CAAC,MAAiB;QAClB;;UAEE;QAEF,MAAM,CAAE,MAAM,EAAE,KAAK,CAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,iBAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,iBAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC7G,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,wBAAS,CAAC,IAAI,CAAC;YAClB,CAAC,EAAE,IAAA,gBAAK,EAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,CAAC,EAAE,IAAA,gBAAK,EAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,CAAC,CAAC,IAAI,CAAC;SAC1B,CAAC,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,KAAgB;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,IAAA,kBAAO,EAAC,SAAS,CAAC,eAAe,CAAC,iBAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAc,EAAE,UAAoB;QACxD,IAAI,KAAK,GAAG,iBAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAExC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC3D,OAAO,IAAA,kBAAO,EAAC,MAAM,CAAC,CAAC;SAC1B;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;YAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClB,KAAK,GAAG,GAAG,CAAC;SACf;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,IAAA,kBAAO,EAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAiB,EAAE,SAAwB;QAC/D,MAAM,GAAG,GAAG,wBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAM,CAAC,YAAY,CAAC,IAAA,iBAAM,EAAC,CAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAE3G,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,iBAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACzF,IAAI,MAAM,IAAI,IAAI,EAAE;YAAE,OAAO,IAAA,kBAAO,EAAC,MAAM,CAAC,CAAC;SAAE;QAE/C,OAAO,iBAAM,CAAC,kBAAkB,CAAC,8BAA8B,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,EAAa,EAAE,EAAa,EAAE,UAAoB;QAChE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACpD,CAAC;CACJ;AA3ED,gCA2EC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCE"} {"version":3,"file":"signing-key.js","sourceRoot":"","sources":["../../src.ts/crypto/signing-key.ts"],"names":[],"mappings":"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"}

@ -2,9 +2,10 @@
///////////////////////////// /////////////////////////////
// //
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.scryptSync = exports.scrypt = exports.pbkdf2 = exports.sha512 = exports.sha256 = exports.ripemd160 = exports.keccak256 = exports.randomBytes = exports.computeHmac = exports.EventLog = exports.ContractTransactionResponse = exports.ContractTransactionReceipt = exports.ContractEventPayload = exports.ContractFactory = exports.Contract = exports.BaseContract = exports.MessagePrefix = exports.EtherSymbol = exports.ZeroHash = exports.MaxInt256 = exports.MinInt256 = exports.MaxUint256 = exports.WeiPerEther = exports.Two = exports.One = exports.Zero = exports.NegativeOne = exports.ZeroAddress = exports.getCreate2Address = exports.getCreateAddress = exports.getIcapAddress = exports.getAddress = exports.Typed = exports.TransactionDescription = exports.Result = exports.LogDescription = exports.Interface = exports.Indexed = exports.checkResultErrors = exports.ParamType = exports.FunctionFragment = exports.Fragment = exports.EventFragment = exports.ErrorFragment = exports.ConstructorFragment = exports.defaultAbiCoder = exports.AbiCoder = exports.parseBytes32String = exports.formatBytes32String = exports.version = void 0; exports.scrypt = exports.pbkdf2 = exports.sha512 = exports.sha256 = exports.ripemd160 = exports.keccak256 = exports.randomBytes = exports.computeHmac = exports.EventLog = exports.ContractTransactionResponse = exports.ContractTransactionReceipt = exports.ContractEventPayload = exports.ContractFactory = exports.Contract = exports.BaseContract = exports.MessagePrefix = exports.EtherSymbol = exports.ZeroHash = exports.N = exports.MaxInt256 = exports.MinInt256 = exports.MaxUint256 = exports.WeiPerEther = exports.Two = exports.One = exports.Zero = exports.NegativeOne = exports.ZeroAddress = exports.getCreate2Address = exports.getCreateAddress = exports.getIcapAddress = exports.getAddress = exports.Typed = exports.TransactionDescription = exports.Result = exports.LogDescription = exports.Interface = exports.Indexed = exports.checkResultErrors = exports.ParamType = exports.FunctionFragment = exports.Fragment = exports.EventFragment = exports.ErrorFragment = exports.ConstructorFragment = exports.defaultAbiCoder = exports.AbiCoder = exports.parseBytes32String = exports.formatBytes32String = exports.version = void 0;
exports.isCrowdsaleJson = exports.HDNodeWalletManager = exports.HDNodeVoidWallet = exports.HDNodeWallet = exports.getAccountPath = exports.defaultPath = exports.encodeRlp = exports.decodeRlp = exports.Utf8ErrorFuncs = exports.toUtf8String = exports.toUtf8CodePoints = exports.toUtf8Bytes = exports._toEscapedUtf8String = exports.parseUnits = exports.formatUnits = exports.parseEther = exports.formatEther = exports.toNumber = exports.toHex = exports.toBigInt = exports.toArray = exports.mask = exports.toTwos = exports.fromTwos = exports.logger = exports.Logger = exports.assertArgument = exports.parseFixed = exports.formatFixed = exports.FixedNumber = exports.FixedFormat = exports.FetchResponse = exports.FetchRequest = exports.isError = exports.isCallException = exports.encodeBase58 = exports.decodeBase58 = exports.Transaction = exports.recoverAddress = exports.computeAddress = exports.accessListify = exports.TypedDataEncoder = exports.solidityPackedSha256 = exports.solidityPackedKeccak256 = exports.solidityPacked = exports.hashMessage = exports.id = exports.SigningKey = exports.Signature = exports.lock = void 0; exports.getBigInt = exports.parseFixed = exports.formatFixed = exports.FixedNumber = exports.FixedFormat = exports.FetchCancelSignal = exports.FetchResponse = exports.FetchRequest = exports.getIpfsGatewayFunc = exports.isError = exports.isCallException = exports.throwError = exports.throwArgumentError = exports.makeError = exports.assertPrivate = exports.assertNormalize = exports.assertArgumentCount = exports.assertArgument = exports.zeroPadValue = exports.zeroPadBytes = exports.stripZerosLeft = exports.isBytesLike = exports.isHexString = exports.hexlify = exports.getBytesCopy = exports.getBytes = exports.dataSlice = exports.dataLength = exports.concat = exports.encodeBase64 = exports.decodeBase64 = exports.encodeBase58 = exports.decodeBase58 = exports.Transaction = exports.recoverAddress = exports.computeAddress = exports.accessListify = exports.TypedDataEncoder = exports.solidityPackedSha256 = exports.solidityPackedKeccak256 = exports.solidityPacked = exports.hashMessage = exports.dnsEncode = exports.namehash = exports.isValidName = exports.id = exports.SigningKey = exports.Signature = exports.lock = exports.scryptSync = void 0;
exports.Network = exports.WebSocketProvider = exports.SocketProvider = exports.IpcSocketProvider = exports.InfuraProvider = exports.EtherscanProvider = exports.CloudflareProvider = exports.AnkrProvider = exports.AlchemyProvider = exports.JsonRpcSigner = exports.JsonRpcProvider = exports.JsonRpcApiProvider = exports.FallbackProvider = exports.WordlistOwlA = exports.WordlistOwl = exports.wordlists = exports.LangEn = exports.langEn = exports.Wordlist = exports.Wallet = exports.Mnemonic = exports.encryptKeystoreJson = exports.decryptKeystoreJson = exports.decryptKeystoreJsonSync = exports.isKeystoreJson = exports.decryptCrowdsaleJson = void 0; exports.IpcSocketProvider = exports.InfuraProvider = exports.EtherscanProvider = exports.CloudflareProvider = exports.AnkrProvider = exports.AlchemyProvider = exports.JsonRpcSigner = exports.JsonRpcProvider = exports.JsonRpcApiProvider = exports.FallbackProvider = exports.AbstractProvider = exports.WordlistOwlA = exports.WordlistOwl = exports.wordlists = exports.LangEn = exports.langEn = exports.Wordlist = exports.Wallet = exports.Mnemonic = exports.encryptKeystoreJson = exports.decryptKeystoreJson = exports.decryptKeystoreJsonSync = exports.isKeystoreJson = exports.decryptCrowdsaleJson = exports.isCrowdsaleJson = exports.HDNodeWalletManager = exports.HDNodeVoidWallet = exports.HDNodeWallet = exports.getAccountPath = exports.defaultPath = exports.encodeRlp = exports.decodeRlp = exports.Utf8ErrorFuncs = exports.toUtf8String = exports.toUtf8CodePoints = exports.toUtf8Bytes = exports._toEscapedUtf8String = exports.parseUnits = exports.formatUnits = exports.parseEther = exports.formatEther = exports.mask = exports.toTwos = exports.fromTwos = exports.toQuantity = exports.toNumber = exports.toHex = exports.toBigInt = exports.toArray = exports.getNumber = void 0;
exports.Network = exports.WebSocketProvider = exports.SocketProvider = void 0;
var _version_js_1 = require("./_version.js"); var _version_js_1 = require("./_version.js");
Object.defineProperty(exports, "version", { enumerable: true, get: function () { return _version_js_1.version; } }); Object.defineProperty(exports, "version", { enumerable: true, get: function () { return _version_js_1.version; } });
var index_js_1 = require("./abi/index.js"); var index_js_1 = require("./abi/index.js");
@ -40,6 +41,7 @@ Object.defineProperty(exports, "WeiPerEther", { enumerable: true, get: function
Object.defineProperty(exports, "MaxUint256", { enumerable: true, get: function () { return index_js_3.MaxUint256; } }); Object.defineProperty(exports, "MaxUint256", { enumerable: true, get: function () { return index_js_3.MaxUint256; } });
Object.defineProperty(exports, "MinInt256", { enumerable: true, get: function () { return index_js_3.MinInt256; } }); Object.defineProperty(exports, "MinInt256", { enumerable: true, get: function () { return index_js_3.MinInt256; } });
Object.defineProperty(exports, "MaxInt256", { enumerable: true, get: function () { return index_js_3.MaxInt256; } }); Object.defineProperty(exports, "MaxInt256", { enumerable: true, get: function () { return index_js_3.MaxInt256; } });
Object.defineProperty(exports, "N", { enumerable: true, get: function () { return index_js_3.N; } });
Object.defineProperty(exports, "ZeroHash", { enumerable: true, get: function () { return index_js_3.ZeroHash; } }); Object.defineProperty(exports, "ZeroHash", { enumerable: true, get: function () { return index_js_3.ZeroHash; } });
Object.defineProperty(exports, "EtherSymbol", { enumerable: true, get: function () { return index_js_3.EtherSymbol; } }); Object.defineProperty(exports, "EtherSymbol", { enumerable: true, get: function () { return index_js_3.EtherSymbol; } });
Object.defineProperty(exports, "MessagePrefix", { enumerable: true, get: function () { return index_js_3.MessagePrefix; } }); Object.defineProperty(exports, "MessagePrefix", { enumerable: true, get: function () { return index_js_3.MessagePrefix; } });
@ -66,7 +68,9 @@ Object.defineProperty(exports, "Signature", { enumerable: true, get: function ()
Object.defineProperty(exports, "SigningKey", { enumerable: true, get: function () { return index_js_5.SigningKey; } }); Object.defineProperty(exports, "SigningKey", { enumerable: true, get: function () { return index_js_5.SigningKey; } });
var index_js_6 = require("./hash/index.js"); var index_js_6 = require("./hash/index.js");
Object.defineProperty(exports, "id", { enumerable: true, get: function () { return index_js_6.id; } }); Object.defineProperty(exports, "id", { enumerable: true, get: function () { return index_js_6.id; } });
//isValidName, namehash, dnsEncode Object.defineProperty(exports, "isValidName", { enumerable: true, get: function () { return index_js_6.isValidName; } });
Object.defineProperty(exports, "namehash", { enumerable: true, get: function () { return index_js_6.namehash; } });
Object.defineProperty(exports, "dnsEncode", { enumerable: true, get: function () { return index_js_6.dnsEncode; } });
Object.defineProperty(exports, "hashMessage", { enumerable: true, get: function () { return index_js_6.hashMessage; } }); Object.defineProperty(exports, "hashMessage", { enumerable: true, get: function () { return index_js_6.hashMessage; } });
Object.defineProperty(exports, "solidityPacked", { enumerable: true, get: function () { return index_js_6.solidityPacked; } }); Object.defineProperty(exports, "solidityPacked", { enumerable: true, get: function () { return index_js_6.solidityPacked; } });
Object.defineProperty(exports, "solidityPackedKeccak256", { enumerable: true, get: function () { return index_js_6.solidityPackedKeccak256; } }); Object.defineProperty(exports, "solidityPackedKeccak256", { enumerable: true, get: function () { return index_js_6.solidityPackedKeccak256; } });
@ -80,24 +84,46 @@ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function
var index_js_8 = require("./utils/index.js"); var index_js_8 = require("./utils/index.js");
Object.defineProperty(exports, "decodeBase58", { enumerable: true, get: function () { return index_js_8.decodeBase58; } }); Object.defineProperty(exports, "decodeBase58", { enumerable: true, get: function () { return index_js_8.decodeBase58; } });
Object.defineProperty(exports, "encodeBase58", { enumerable: true, get: function () { return index_js_8.encodeBase58; } }); Object.defineProperty(exports, "encodeBase58", { enumerable: true, get: function () { return index_js_8.encodeBase58; } });
Object.defineProperty(exports, "decodeBase64", { enumerable: true, get: function () { return index_js_8.decodeBase64; } });
Object.defineProperty(exports, "encodeBase64", { enumerable: true, get: function () { return index_js_8.encodeBase64; } });
Object.defineProperty(exports, "concat", { enumerable: true, get: function () { return index_js_8.concat; } });
Object.defineProperty(exports, "dataLength", { enumerable: true, get: function () { return index_js_8.dataLength; } });
Object.defineProperty(exports, "dataSlice", { enumerable: true, get: function () { return index_js_8.dataSlice; } });
Object.defineProperty(exports, "getBytes", { enumerable: true, get: function () { return index_js_8.getBytes; } });
Object.defineProperty(exports, "getBytesCopy", { enumerable: true, get: function () { return index_js_8.getBytesCopy; } });
Object.defineProperty(exports, "hexlify", { enumerable: true, get: function () { return index_js_8.hexlify; } });
Object.defineProperty(exports, "isHexString", { enumerable: true, get: function () { return index_js_8.isHexString; } });
Object.defineProperty(exports, "isBytesLike", { enumerable: true, get: function () { return index_js_8.isBytesLike; } });
Object.defineProperty(exports, "stripZerosLeft", { enumerable: true, get: function () { return index_js_8.stripZerosLeft; } });
Object.defineProperty(exports, "zeroPadBytes", { enumerable: true, get: function () { return index_js_8.zeroPadBytes; } });
Object.defineProperty(exports, "zeroPadValue", { enumerable: true, get: function () { return index_js_8.zeroPadValue; } });
Object.defineProperty(exports, "assertArgument", { enumerable: true, get: function () { return index_js_8.assertArgument; } });
Object.defineProperty(exports, "assertArgumentCount", { enumerable: true, get: function () { return index_js_8.assertArgumentCount; } });
Object.defineProperty(exports, "assertNormalize", { enumerable: true, get: function () { return index_js_8.assertNormalize; } });
Object.defineProperty(exports, "assertPrivate", { enumerable: true, get: function () { return index_js_8.assertPrivate; } });
Object.defineProperty(exports, "makeError", { enumerable: true, get: function () { return index_js_8.makeError; } });
Object.defineProperty(exports, "throwArgumentError", { enumerable: true, get: function () { return index_js_8.throwArgumentError; } });
Object.defineProperty(exports, "throwError", { enumerable: true, get: function () { return index_js_8.throwError; } });
Object.defineProperty(exports, "isCallException", { enumerable: true, get: function () { return index_js_8.isCallException; } }); Object.defineProperty(exports, "isCallException", { enumerable: true, get: function () { return index_js_8.isCallException; } });
Object.defineProperty(exports, "isError", { enumerable: true, get: function () { return index_js_8.isError; } }); Object.defineProperty(exports, "isError", { enumerable: true, get: function () { return index_js_8.isError; } });
Object.defineProperty(exports, "getIpfsGatewayFunc", { enumerable: true, get: function () { return index_js_8.getIpfsGatewayFunc; } });
Object.defineProperty(exports, "FetchRequest", { enumerable: true, get: function () { return index_js_8.FetchRequest; } }); Object.defineProperty(exports, "FetchRequest", { enumerable: true, get: function () { return index_js_8.FetchRequest; } });
Object.defineProperty(exports, "FetchResponse", { enumerable: true, get: function () { return index_js_8.FetchResponse; } }); Object.defineProperty(exports, "FetchResponse", { enumerable: true, get: function () { return index_js_8.FetchResponse; } });
Object.defineProperty(exports, "FetchCancelSignal", { enumerable: true, get: function () { return index_js_8.FetchCancelSignal; } });
Object.defineProperty(exports, "FixedFormat", { enumerable: true, get: function () { return index_js_8.FixedFormat; } }); Object.defineProperty(exports, "FixedFormat", { enumerable: true, get: function () { return index_js_8.FixedFormat; } });
Object.defineProperty(exports, "FixedNumber", { enumerable: true, get: function () { return index_js_8.FixedNumber; } }); Object.defineProperty(exports, "FixedNumber", { enumerable: true, get: function () { return index_js_8.FixedNumber; } });
Object.defineProperty(exports, "formatFixed", { enumerable: true, get: function () { return index_js_8.formatFixed; } }); Object.defineProperty(exports, "formatFixed", { enumerable: true, get: function () { return index_js_8.formatFixed; } });
Object.defineProperty(exports, "parseFixed", { enumerable: true, get: function () { return index_js_8.parseFixed; } }); Object.defineProperty(exports, "parseFixed", { enumerable: true, get: function () { return index_js_8.parseFixed; } });
Object.defineProperty(exports, "assertArgument", { enumerable: true, get: function () { return index_js_8.assertArgument; } }); Object.defineProperty(exports, "getBigInt", { enumerable: true, get: function () { return index_js_8.getBigInt; } });
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return index_js_8.Logger; } }); Object.defineProperty(exports, "getNumber", { enumerable: true, get: function () { return index_js_8.getNumber; } });
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return index_js_8.logger; } });
Object.defineProperty(exports, "fromTwos", { enumerable: true, get: function () { return index_js_8.fromTwos; } });
Object.defineProperty(exports, "toTwos", { enumerable: true, get: function () { return index_js_8.toTwos; } });
Object.defineProperty(exports, "mask", { enumerable: true, get: function () { return index_js_8.mask; } });
Object.defineProperty(exports, "toArray", { enumerable: true, get: function () { return index_js_8.toArray; } }); Object.defineProperty(exports, "toArray", { enumerable: true, get: function () { return index_js_8.toArray; } });
Object.defineProperty(exports, "toBigInt", { enumerable: true, get: function () { return index_js_8.toBigInt; } }); Object.defineProperty(exports, "toBigInt", { enumerable: true, get: function () { return index_js_8.toBigInt; } });
Object.defineProperty(exports, "toHex", { enumerable: true, get: function () { return index_js_8.toHex; } }); Object.defineProperty(exports, "toHex", { enumerable: true, get: function () { return index_js_8.toHex; } });
Object.defineProperty(exports, "toNumber", { enumerable: true, get: function () { return index_js_8.toNumber; } }); Object.defineProperty(exports, "toNumber", { enumerable: true, get: function () { return index_js_8.toNumber; } });
Object.defineProperty(exports, "toQuantity", { enumerable: true, get: function () { return index_js_8.toQuantity; } });
Object.defineProperty(exports, "fromTwos", { enumerable: true, get: function () { return index_js_8.fromTwos; } });
Object.defineProperty(exports, "toTwos", { enumerable: true, get: function () { return index_js_8.toTwos; } });
Object.defineProperty(exports, "mask", { enumerable: true, get: function () { return index_js_8.mask; } });
Object.defineProperty(exports, "formatEther", { enumerable: true, get: function () { return index_js_8.formatEther; } }); Object.defineProperty(exports, "formatEther", { enumerable: true, get: function () { return index_js_8.formatEther; } });
Object.defineProperty(exports, "parseEther", { enumerable: true, get: function () { return index_js_8.parseEther; } }); Object.defineProperty(exports, "parseEther", { enumerable: true, get: function () { return index_js_8.parseEther; } });
Object.defineProperty(exports, "formatUnits", { enumerable: true, get: function () { return index_js_8.formatUnits; } }); Object.defineProperty(exports, "formatUnits", { enumerable: true, get: function () { return index_js_8.formatUnits; } });
@ -131,6 +157,7 @@ Object.defineProperty(exports, "wordlists", { enumerable: true, get: function ()
Object.defineProperty(exports, "WordlistOwl", { enumerable: true, get: function () { return index_js_10.WordlistOwl; } }); Object.defineProperty(exports, "WordlistOwl", { enumerable: true, get: function () { return index_js_10.WordlistOwl; } });
Object.defineProperty(exports, "WordlistOwlA", { enumerable: true, get: function () { return index_js_10.WordlistOwlA; } }); Object.defineProperty(exports, "WordlistOwlA", { enumerable: true, get: function () { return index_js_10.WordlistOwlA; } });
var index_js_11 = require("./providers/index.js"); var index_js_11 = require("./providers/index.js");
Object.defineProperty(exports, "AbstractProvider", { enumerable: true, get: function () { return index_js_11.AbstractProvider; } });
Object.defineProperty(exports, "FallbackProvider", { enumerable: true, get: function () { return index_js_11.FallbackProvider; } }); Object.defineProperty(exports, "FallbackProvider", { enumerable: true, get: function () { return index_js_11.FallbackProvider; } });
Object.defineProperty(exports, "JsonRpcApiProvider", { enumerable: true, get: function () { return index_js_11.JsonRpcApiProvider; } }); Object.defineProperty(exports, "JsonRpcApiProvider", { enumerable: true, get: function () { return index_js_11.JsonRpcApiProvider; } });
Object.defineProperty(exports, "JsonRpcProvider", { enumerable: true, get: function () { return index_js_11.JsonRpcProvider; } }); Object.defineProperty(exports, "JsonRpcProvider", { enumerable: true, get: function () { return index_js_11.JsonRpcProvider; } });

@ -1 +1 @@
{"version":3,"file":"ethers.js","sourceRoot":"","sources":["../src.ts/ethers.ts"],"names":[],"mappings":"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"} {"version":3,"file":"ethers.js","sourceRoot":"","sources":["../src.ts/ethers.ts"],"names":[],"mappings":"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"}

@ -1,10 +1,10 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.id = void 0; exports.id = void 0;
const keccak_js_1 = require("../crypto/keccak.js"); const index_js_1 = require("../crypto/index.js");
const index_js_1 = require("../utils/index.js"); const index_js_2 = require("../utils/index.js");
function id(value) { function id(value) {
return (0, keccak_js_1.keccak256)((0, index_js_1.toUtf8Bytes)(value)); return (0, index_js_1.keccak256)((0, index_js_2.toUtf8Bytes)(value));
} }
exports.id = id; exports.id = id;
//# sourceMappingURL=id.js.map //# sourceMappingURL=id.js.map

@ -1 +1 @@
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src.ts/hash/id.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,gDAAgD;AAEhD,SAAgB,EAAE,CAAC,KAAa;IAC5B,OAAO,IAAA,qBAAS,EAAC,IAAA,sBAAW,EAAC,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC;AAFD,gBAEC"} {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src.ts/hash/id.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,gDAAgD;AAEhD,SAAgB,EAAE,CAAC,KAAa;IAC5B,OAAO,IAAA,oBAAS,EAAC,IAAA,sBAAW,EAAC,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC;AAFD,gBAEC"}

@ -1,16 +1,16 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.hashMessage = void 0; exports.hashMessage = void 0;
const keccak_js_1 = require("../crypto/keccak.js"); const index_js_1 = require("../crypto/index.js");
const index_js_1 = require("../constants/index.js"); const index_js_2 = require("../constants/index.js");
const index_js_2 = require("../utils/index.js"); const index_js_3 = require("../utils/index.js");
function hashMessage(message) { function hashMessage(message) {
if (typeof (message) === "string") { if (typeof (message) === "string") {
message = (0, index_js_2.toUtf8Bytes)(message); message = (0, index_js_3.toUtf8Bytes)(message);
} }
return (0, keccak_js_1.keccak256)((0, index_js_2.concat)([ return (0, index_js_1.keccak256)((0, index_js_3.concat)([
(0, index_js_2.toUtf8Bytes)(index_js_1.MessagePrefix), (0, index_js_3.toUtf8Bytes)(index_js_2.MessagePrefix),
(0, index_js_2.toUtf8Bytes)(String(message.length)), (0, index_js_3.toUtf8Bytes)(String(message.length)),
message message
])); ]));
} }

@ -1 +1 @@
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src.ts/hash/message.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,oDAAsD;AACtD,gDAAwD;AAGxD,SAAgB,WAAW,CAAC,OAA4B;IACpD,IAAI,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;QAAE,OAAO,GAAG,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;KAAE;IACrE,OAAO,IAAA,qBAAS,EAAC,IAAA,iBAAM,EAAC;QACpB,IAAA,sBAAW,EAAC,wBAAa,CAAC;QAC1B,IAAA,sBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO;KACV,CAAC,CAAC,CAAC;AACR,CAAC;AAPD,kCAOC"} {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src.ts/hash/message.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,oDAAsD;AACtD,gDAAwD;AAGxD,SAAgB,WAAW,CAAC,OAA4B;IACpD,IAAI,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;QAAE,OAAO,GAAG,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;KAAE;IACrE,OAAO,IAAA,oBAAS,EAAC,IAAA,iBAAM,EAAC;QACpB,IAAA,sBAAW,EAAC,wBAAa,CAAC;QAC1B,IAAA,sBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO;KACV,CAAC,CAAC,CAAC;AACR,CAAC;AAPD,kCAOC"}

@ -1,8 +1,8 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.dnsEncode = exports.namehash = exports.isValidName = exports.ensNormalize = void 0; exports.dnsEncode = exports.namehash = exports.isValidName = exports.ensNormalize = void 0;
const keccak_js_1 = require("../crypto/keccak.js"); const index_js_1 = require("../crypto/index.js");
const index_js_1 = require("../utils/index.js"); const index_js_2 = require("../utils/index.js");
//import { ens_normalize } from "./ens-normalize/lib"; //import { ens_normalize } from "./ens-normalize/lib";
// @TOOD: // @TOOD:
function ens_normalize(name) { function ens_normalize(name) {
@ -17,7 +17,7 @@ function checkComponent(comp) {
return comp; return comp;
} }
function ensNameSplit(name) { function ensNameSplit(name) {
const bytes = (0, index_js_1.toUtf8Bytes)(ens_normalize(name)); const bytes = (0, index_js_2.toUtf8Bytes)(ens_normalize(name));
const comps = []; const comps = [];
if (name.length === 0) { if (name.length === 0) {
return comps; return comps;
@ -39,7 +39,7 @@ function ensNameSplit(name) {
return comps; return comps;
} }
function ensNormalize(name) { function ensNormalize(name) {
return ensNameSplit(name).map((comp) => (0, index_js_1.toUtf8String)(comp)).join("."); return ensNameSplit(name).map((comp) => (0, index_js_2.toUtf8String)(comp)).join(".");
} }
exports.ensNormalize = ensNormalize; exports.ensNormalize = ensNormalize;
function isValidName(name) { function isValidName(name) {
@ -53,18 +53,18 @@ exports.isValidName = isValidName;
function namehash(name) { function namehash(name) {
/* istanbul ignore if */ /* istanbul ignore if */
if (typeof (name) !== "string") { if (typeof (name) !== "string") {
index_js_1.logger.throwArgumentError("invalid ENS name; not a string", "name", name); (0, index_js_2.throwArgumentError)("invalid ENS name; not a string", "name", name);
} }
let result = Zeros; let result = Zeros;
const comps = ensNameSplit(name); const comps = ensNameSplit(name);
while (comps.length) { while (comps.length) {
result = (0, keccak_js_1.keccak256)((0, index_js_1.concat)([result, (0, keccak_js_1.keccak256)((comps.pop()))])); result = (0, index_js_1.keccak256)((0, index_js_2.concat)([result, (0, index_js_1.keccak256)((comps.pop()))]));
} }
return (0, index_js_1.hexlify)(result); return (0, index_js_2.hexlify)(result);
} }
exports.namehash = namehash; exports.namehash = namehash;
function dnsEncode(name) { function dnsEncode(name) {
return (0, index_js_1.hexlify)((0, index_js_1.concat)(ensNameSplit(name).map((comp) => { return (0, index_js_2.hexlify)((0, index_js_2.concat)(ensNameSplit(name).map((comp) => {
// DNS does not allow components over 63 bytes in length // DNS does not allow components over 63 bytes in length
if (comp.length > 63) { if (comp.length > 63) {
throw new Error("invalid DNS encoded entry; length exceeds 63 bytes"); throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");

@ -1 +1 @@
{"version":3,"file":"namehash.js","sourceRoot":"","sources":["../../src.ts/hash/namehash.ts"],"names":[],"mappings":"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"} {"version":3,"file":"namehash.js","sourceRoot":"","sources":["../../src.ts/hash/namehash.ts"],"names":[],"mappings":"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"}

@ -1,9 +1,8 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.solidityPackedSha256 = exports.test = exports.solidityPackedKeccak256 = exports.solidityPacked = void 0; exports.solidityPackedSha256 = exports.solidityPackedKeccak256 = exports.solidityPacked = void 0;
const index_js_1 = require("../utils/index.js"); const index_js_1 = require("../crypto/index.js");
const keccak_js_1 = require("../crypto/keccak.js"); const index_js_2 = require("../utils/index.js");
const sha2_js_1 = require("../crypto/sha2.js");
const regexBytes = new RegExp("^bytes([0-9]+)$"); const regexBytes = new RegExp("^bytes([0-9]+)$");
const regexNumber = new RegExp("^(u?int)([0-9]*)$"); const regexNumber = new RegExp("^(u?int)([0-9]*)$");
const regexArray = new RegExp("^(.*)\\[([0-9]*)\\]$"); const regexArray = new RegExp("^(.*)\\[([0-9]*)\\]$");
@ -11,43 +10,43 @@ function _pack(type, value, isArray) {
switch (type) { switch (type) {
case "address": case "address":
if (isArray) { if (isArray) {
return index_js_1.logger.getBytes((0, index_js_1.zeroPadValue)(value, 32)); return (0, index_js_2.getBytes)((0, index_js_2.zeroPadValue)(value, 32));
} }
return index_js_1.logger.getBytes(value); return (0, index_js_2.getBytes)(value);
case "string": case "string":
return (0, index_js_1.toUtf8Bytes)(value); return (0, index_js_2.toUtf8Bytes)(value);
case "bytes": case "bytes":
return index_js_1.logger.getBytes(value); return (0, index_js_2.getBytes)(value);
case "bool": case "bool":
value = (!!value ? "0x01" : "0x00"); value = (!!value ? "0x01" : "0x00");
if (isArray) { if (isArray) {
return index_js_1.logger.getBytes((0, index_js_1.zeroPadValue)(value, 32)); return (0, index_js_2.getBytes)((0, index_js_2.zeroPadValue)(value, 32));
} }
return index_js_1.logger.getBytes(value); return (0, index_js_2.getBytes)(value);
} }
let match = type.match(regexNumber); let match = type.match(regexNumber);
if (match) { if (match) {
let size = parseInt(match[2] || "256"); let size = parseInt(match[2] || "256");
if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) { if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {
return index_js_1.logger.throwArgumentError("invalid number type", "type", type); return (0, index_js_2.throwArgumentError)("invalid number type", "type", type);
} }
if (isArray) { if (isArray) {
size = 256; size = 256;
} }
value = (0, index_js_1.toTwos)(value, size); value = (0, index_js_2.toTwos)(value, size);
return index_js_1.logger.getBytes((0, index_js_1.zeroPadValue)((0, index_js_1.toArray)(value), size / 8)); return (0, index_js_2.getBytes)((0, index_js_2.zeroPadValue)((0, index_js_2.toArray)(value), size / 8));
} }
match = type.match(regexBytes); match = type.match(regexBytes);
if (match) { if (match) {
const size = parseInt(match[1]); const size = parseInt(match[1]);
if (String(size) !== match[1] || size === 0 || size > 32) { if (String(size) !== match[1] || size === 0 || size > 32) {
return index_js_1.logger.throwArgumentError("invalid bytes type", "type", type); return (0, index_js_2.throwArgumentError)("invalid bytes type", "type", type);
} }
if ((0, index_js_1.dataLength)(value) !== size) { if ((0, index_js_2.dataLength)(value) !== size) {
return index_js_1.logger.throwArgumentError(`invalid value for ${type}`, "value", value); return (0, index_js_2.throwArgumentError)(`invalid value for ${type}`, "value", value);
} }
if (isArray) { if (isArray) {
return index_js_1.logger.getBytes((0, index_js_1.zeroPadBytes)(value, 32)); return (0, index_js_2.getBytes)((0, index_js_2.zeroPadBytes)(value, 32));
} }
return value; return value;
} }
@ -56,26 +55,26 @@ function _pack(type, value, isArray) {
const baseType = match[1]; const baseType = match[1];
const count = parseInt(match[2] || String(value.length)); const count = parseInt(match[2] || String(value.length));
if (count != value.length) { if (count != value.length) {
index_js_1.logger.throwArgumentError(`invalid array length for ${type}`, "value", value); (0, index_js_2.throwArgumentError)(`invalid array length for ${type}`, "value", value);
} }
const result = []; const result = [];
value.forEach(function (value) { value.forEach(function (value) {
result.push(_pack(baseType, value, true)); result.push(_pack(baseType, value, true));
}); });
return index_js_1.logger.getBytes((0, index_js_1.concat)(result)); return (0, index_js_2.getBytes)((0, index_js_2.concat)(result));
} }
return index_js_1.logger.throwArgumentError("invalid type", "type", type); return (0, index_js_2.throwArgumentError)("invalid type", "type", type);
} }
// @TODO: Array Enum // @TODO: Array Enum
function solidityPacked(types, values) { function solidityPacked(types, values) {
if (types.length != values.length) { if (types.length != values.length) {
index_js_1.logger.throwArgumentError("wrong number of values; expected ${ types.length }", "values", values); (0, index_js_2.throwArgumentError)("wrong number of values; expected ${ types.length }", "values", values);
} }
const tight = []; const tight = [];
types.forEach(function (type, index) { types.forEach(function (type, index) {
tight.push(_pack(type, values[index])); tight.push(_pack(type, values[index]));
}); });
return (0, index_js_1.hexlify)((0, index_js_1.concat)(tight)); return (0, index_js_2.hexlify)((0, index_js_2.concat)(tight));
} }
exports.solidityPacked = solidityPacked; exports.solidityPacked = solidityPacked;
/** /**
@ -93,19 +92,11 @@ exports.solidityPacked = solidityPacked;
* @see https://docs.soliditylang.org/en/v0.8.14/abi-spec.html#non-standard-packed-mode * @see https://docs.soliditylang.org/en/v0.8.14/abi-spec.html#non-standard-packed-mode
*/ */
function solidityPackedKeccak256(types, values) { function solidityPackedKeccak256(types, values) {
return (0, keccak_js_1.keccak256)(solidityPacked(types, values)); return (0, index_js_1.keccak256)(solidityPacked(types, values));
} }
exports.solidityPackedKeccak256 = solidityPackedKeccak256; exports.solidityPackedKeccak256 = solidityPackedKeccak256;
/**
* Test Function, for fun
*
* @param foo - something fun
*/
function test(foo) {
}
exports.test = test;
function solidityPackedSha256(types, values) { function solidityPackedSha256(types, values) {
return (0, sha2_js_1.sha256)(solidityPacked(types, values)); return (0, index_js_1.sha256)(solidityPacked(types, values));
} }
exports.solidityPackedSha256 = solidityPackedSha256; exports.solidityPackedSha256 = solidityPackedSha256;
//# sourceMappingURL=solidity.js.map //# sourceMappingURL=solidity.js.map

@ -1 +1 @@
{"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../src.ts/hash/solidity.ts"],"names":[],"mappings":"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"} {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../src.ts/hash/solidity.ts"],"names":[],"mappings":";;;AAAA,iDAE4B;AAC5B,gDAG2B;AAG3B,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACpD,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAGtD,SAAS,KAAK,CAAC,IAAY,EAAE,KAAU,EAAE,OAAiB;IACtD,QAAO,IAAI,EAAE;QACT,KAAK,SAAS;YACV,IAAI,OAAO,EAAE;gBAAE,OAAO,IAAA,mBAAQ,EAAC,IAAA,uBAAY,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;aAAE;YAC1D,OAAO,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,QAAQ;YACT,OAAO,IAAA,sBAAW,EAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,OAAO;YACR,OAAO,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,MAAM;YACP,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,OAAO,EAAE;gBAAE,OAAO,IAAA,mBAAQ,EAAC,IAAA,uBAAY,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;aAAE;YAC1D,OAAO,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;KAC9B;IAED,IAAI,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,KAAK,EAAE;QACP,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA;QAEtC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,EAAE;YACzF,OAAO,IAAA,6BAAkB,EAAC,qBAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;SACjE;QAED,IAAI,OAAO,EAAE;YAAE,IAAI,GAAG,GAAG,CAAC;SAAE;QAE5B,KAAK,GAAG,IAAA,iBAAM,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5B,OAAO,IAAA,mBAAQ,EAAC,IAAA,uBAAY,EAAC,IAAA,kBAAO,EAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;KAC3D;IAED,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,IAAI,KAAK,EAAE;QACP,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE;YACtD,OAAO,IAAA,6BAAkB,EAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;SAChE;QACD,IAAI,IAAA,qBAAU,EAAC,KAAK,CAAC,KAAK,IAAI,EAAE;YAC5B,OAAO,IAAA,6BAAkB,EAAC,qBAAsB,IAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;SAC3E;QACD,IAAI,OAAO,EAAE;YAAE,OAAO,IAAA,mBAAQ,EAAC,IAAA,uBAAY,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;SAAE;QAC1D,OAAO,KAAK,CAAC;KAChB;IAED,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;YACvB,IAAA,6BAAkB,EAAC,4BAA6B,IAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;SAC3E;QACD,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,UAAS,KAAK;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,OAAO,IAAA,mBAAQ,EAAC,IAAA,iBAAM,EAAC,MAAM,CAAC,CAAC,CAAC;KACnC;IAED,OAAO,IAAA,6BAAkB,EAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAC3D,CAAC;AAED,oBAAoB;AAEpB,SAAgB,cAAc,CAAC,KAA4B,EAAE,MAA0B;IACnF,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;QAC/B,IAAA,6BAAkB,EAAC,oDAAoD,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KAC7F;IACD,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,CAAC,OAAO,CAAC,UAAS,IAAI,EAAE,KAAK;QAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,OAAO,IAAA,kBAAO,EAAC,IAAA,iBAAM,EAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AATD,wCASC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,uBAAuB,CAAC,KAA4B,EAAE,MAA0B;IAC5F,OAAO,IAAA,oBAAU,EAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAFD,0DAEC;AAED,SAAgB,oBAAoB,CAAC,KAA4B,EAAE,MAA0B;IACzF,OAAO,IAAA,iBAAO,EAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC;AAFD,oDAEC"}

@ -6,7 +6,6 @@ const index_js_1 = require("../address/index.js");
const index_js_2 = require("../crypto/index.js"); const index_js_2 = require("../crypto/index.js");
const index_js_3 = require("../utils/index.js"); const index_js_3 = require("../utils/index.js");
const id_js_1 = require("./id.js"); const id_js_1 = require("./id.js");
const logger_js_1 = require("../utils/logger.js");
const padding = new Uint8Array(32); const padding = new Uint8Array(32);
padding.fill(0); padding.fill(0);
const BN__1 = BigInt(-1); const BN__1 = BigInt(-1);
@ -16,7 +15,7 @@ const BN_MAX_UINT256 = BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffff
; ;
; ;
function hexPadRight(value) { function hexPadRight(value) {
const bytes = logger_js_1.logger.getBytes(value); const bytes = (0, index_js_3.getBytes)(value);
const padOffset = bytes.length % 32; const padOffset = bytes.length % 32;
if (padOffset) { if (padOffset) {
return (0, index_js_3.concat)([bytes, padding.slice(padOffset)]); return (0, index_js_3.concat)([bytes, padding.slice(padOffset)]);
@ -38,7 +37,7 @@ const domainFieldNames = [
function checkString(key) { function checkString(key) {
return function (value) { return function (value) {
if (typeof (value) !== "string") { if (typeof (value) !== "string") {
logger_js_1.logger.throwArgumentError(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value); (0, index_js_3.throwArgumentError)(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);
} }
return value; return value;
}; };
@ -47,19 +46,19 @@ const domainChecks = {
name: checkString("name"), name: checkString("name"),
version: checkString("version"), version: checkString("version"),
chainId: function (value) { chainId: function (value) {
return logger_js_1.logger.getBigInt(value, "domain.chainId"); return (0, index_js_3.getBigInt)(value, "domain.chainId");
}, },
verifyingContract: function (value) { verifyingContract: function (value) {
try { try {
return (0, index_js_1.getAddress)(value).toLowerCase(); return (0, index_js_1.getAddress)(value).toLowerCase();
} }
catch (error) { } catch (error) { }
return logger_js_1.logger.throwArgumentError(`invalid domain value "verifyingContract"`, "domain.verifyingContract", value); return (0, index_js_3.throwArgumentError)(`invalid domain value "verifyingContract"`, "domain.verifyingContract", value);
}, },
salt: function (value) { salt: function (value) {
const bytes = logger_js_1.logger.getBytes(value, "domain.salt"); const bytes = (0, index_js_3.getBytes)(value, "domain.salt");
if (bytes.length !== 32) { if (bytes.length !== 32) {
logger_js_1.logger.throwArgumentError(`invalid domain value "salt"`, "domain.salt", value); (0, index_js_3.throwArgumentError)(`invalid domain value "salt"`, "domain.salt", value);
} }
return (0, index_js_3.hexlify)(bytes); return (0, index_js_3.hexlify)(bytes);
} }
@ -72,14 +71,14 @@ function getBaseEncoder(type) {
const signed = (match[1] === ""); const signed = (match[1] === "");
const width = parseInt(match[2] || "256"); const width = parseInt(match[2] || "256");
if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) { if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {
logger_js_1.logger.throwArgumentError("invalid numeric width", "type", type); (0, index_js_3.throwArgumentError)("invalid numeric width", "type", type);
} }
const boundsUpper = (0, index_js_3.mask)(BN_MAX_UINT256, signed ? (width - 1) : width); const boundsUpper = (0, index_js_3.mask)(BN_MAX_UINT256, signed ? (width - 1) : width);
const boundsLower = signed ? ((boundsUpper + BN_1) * BN__1) : BN_0; const boundsLower = signed ? ((boundsUpper + BN_1) * BN__1) : BN_0;
return function (_value) { return function (_value) {
const value = logger_js_1.logger.getBigInt(_value, "value"); const value = (0, index_js_3.getBigInt)(_value, "value");
if (value < boundsLower || value > boundsUpper) { if (value < boundsLower || value > boundsUpper) {
logger_js_1.logger.throwArgumentError(`value out-of-bounds for ${type}`, "value", value); (0, index_js_3.throwArgumentError)(`value out-of-bounds for ${type}`, "value", value);
} }
return (0, index_js_3.toHex)((0, index_js_3.toTwos)(value, 256), 32); return (0, index_js_3.toHex)((0, index_js_3.toTwos)(value, 256), 32);
}; };
@ -91,12 +90,12 @@ function getBaseEncoder(type) {
if (match) { if (match) {
const width = parseInt(match[1]); const width = parseInt(match[1]);
if (width === 0 || width > 32 || match[1] !== String(width)) { if (width === 0 || width > 32 || match[1] !== String(width)) {
logger_js_1.logger.throwArgumentError("invalid bytes width", "type", type); (0, index_js_3.throwArgumentError)("invalid bytes width", "type", type);
} }
return function (value) { return function (value) {
const bytes = logger_js_1.logger.getBytes(value); const bytes = (0, index_js_3.getBytes)(value);
if (bytes.length !== width) { if (bytes.length !== width) {
logger_js_1.logger.throwArgumentError(`invalid length for ${type}`, "value", value); (0, index_js_3.throwArgumentError)(`invalid length for ${type}`, "value", value);
} }
return hexPadRight(value); return hexPadRight(value);
}; };
@ -149,13 +148,13 @@ class TypedDataEncoder {
for (const field of types[name]) { for (const field of types[name]) {
// Check each field has a unique name // Check each field has a unique name
if (uniqueNames.has(field.name)) { if (uniqueNames.has(field.name)) {
logger_js_1.logger.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, "types", types); (0, index_js_3.throwArgumentError)(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, "types", types);
} }
uniqueNames.add(field.name); uniqueNames.add(field.name);
// Get the base type (drop any array specifiers) // Get the base type (drop any array specifiers)
const baseType = (field.type.match(/^([^\x5b]*)(\x5b|$)/))[1] || null; const baseType = (field.type.match(/^([^\x5b]*)(\x5b|$)/))[1] || null;
if (baseType === name) { if (baseType === name) {
logger_js_1.logger.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, "types", types); (0, index_js_3.throwArgumentError)(`circular type reference to ${JSON.stringify(baseType)}`, "types", types);
} }
// Is this a base encoding type? // Is this a base encoding type?
const encoder = getBaseEncoder(baseType); const encoder = getBaseEncoder(baseType);
@ -163,7 +162,7 @@ class TypedDataEncoder {
continue; continue;
} }
if (!parents.has(baseType)) { if (!parents.has(baseType)) {
logger_js_1.logger.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, "types", types); (0, index_js_3.throwArgumentError)(`unknown type ${JSON.stringify(baseType)}`, "types", types);
} }
// Add linkage // Add linkage
parents.get(baseType).push(name); parents.get(baseType).push(name);
@ -173,16 +172,16 @@ class TypedDataEncoder {
// Deduce the primary type // Deduce the primary type
const primaryTypes = Array.from(parents.keys()).filter((n) => (parents.get(n).length === 0)); const primaryTypes = Array.from(parents.keys()).filter((n) => (parents.get(n).length === 0));
if (primaryTypes.length === 0) { if (primaryTypes.length === 0) {
logger_js_1.logger.throwArgumentError("missing primary type", "types", types); (0, index_js_3.throwArgumentError)("missing primary type", "types", types);
} }
else if (primaryTypes.length > 1) { else if (primaryTypes.length > 1) {
logger_js_1.logger.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(", ")}`, "types", types); (0, index_js_3.throwArgumentError)(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(", ")}`, "types", types);
} }
(0, index_js_3.defineProperties)(this, { primaryType: primaryTypes[0] }); (0, index_js_3.defineProperties)(this, { primaryType: primaryTypes[0] });
// Check for circular type references // Check for circular type references
function checkCircular(type, found) { function checkCircular(type, found) {
if (found.has(type)) { if (found.has(type)) {
logger_js_1.logger.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, "types", types); (0, index_js_3.throwArgumentError)(`circular type reference to ${JSON.stringify(type)}`, "types", types);
} }
found.add(type); found.add(type);
for (const child of links.get(type)) { for (const child of links.get(type)) {
@ -230,7 +229,7 @@ class TypedDataEncoder {
const length = parseInt(match[3]); const length = parseInt(match[3]);
return (value) => { return (value) => {
if (length >= 0 && value.length !== length) { if (length >= 0 && value.length !== length) {
logger_js_1.logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value); (0, index_js_3.throwArgumentError)("array length mismatch; expected length ${ arrayLength }", "value", value);
} }
let result = value.map(subEncoder); let result = value.map(subEncoder);
if (this.#fullTypes.has(subtype)) { if (this.#fullTypes.has(subtype)) {
@ -255,12 +254,12 @@ class TypedDataEncoder {
return (0, index_js_3.concat)(values); return (0, index_js_3.concat)(values);
}; };
} }
return logger_js_1.logger.throwArgumentError(`unknown type: ${type}`, "type", type); return (0, index_js_3.throwArgumentError)(`unknown type: ${type}`, "type", type);
} }
encodeType(name) { encodeType(name) {
const result = this.#fullTypes.get(name); const result = this.#fullTypes.get(name);
if (!result) { if (!result) {
return logger_js_1.logger.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, "name", name); return (0, index_js_3.throwArgumentError)(`unknown type: ${JSON.stringify(name)}`, "name", name);
} }
return result; return result;
} }
@ -290,7 +289,7 @@ class TypedDataEncoder {
const subtype = match[1]; const subtype = match[1];
const length = parseInt(match[3]); const length = parseInt(match[3]);
if (length >= 0 && value.length !== length) { if (length >= 0 && value.length !== length) {
logger_js_1.logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value); (0, index_js_3.throwArgumentError)("array length mismatch; expected length ${ arrayLength }", "value", value);
} }
return value.map((v) => this._visit(subtype, v, callback)); return value.map((v) => this._visit(subtype, v, callback));
} }
@ -302,7 +301,7 @@ class TypedDataEncoder {
return accum; return accum;
}, {}); }, {});
} }
return logger_js_1.logger.throwArgumentError(`unknown type: ${type}`, "type", type); return (0, index_js_3.throwArgumentError)(`unknown type: ${type}`, "type", type);
} }
visit(value, callback) { visit(value, callback) {
return this._visit(this.primaryType, value, callback); return this._visit(this.primaryType, value, callback);
@ -321,7 +320,7 @@ class TypedDataEncoder {
for (const name in domain) { for (const name in domain) {
const type = domainFieldTypes[name]; const type = domainFieldTypes[name];
if (!type) { if (!type) {
logger_js_1.logger.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, "domain", domain); (0, index_js_3.throwArgumentError)(`invalid typed-data domain key: ${JSON.stringify(name)}`, "domain", domain);
} }
domainFields.push({ name, type }); domainFields.push({ name, type });
} }
@ -393,7 +392,7 @@ class TypedDataEncoder {
const encoder = TypedDataEncoder.from(types); const encoder = TypedDataEncoder.from(types);
const typesWithDomain = Object.assign({}, types); const typesWithDomain = Object.assign({}, types);
if (typesWithDomain.EIP712Domain) { if (typesWithDomain.EIP712Domain) {
logger_js_1.logger.throwArgumentError("types must not contain EIP712Domain type", "types.EIP712Domain", types); (0, index_js_3.throwArgumentError)("types must not contain EIP712Domain type", "types.EIP712Domain", types);
} }
else { else {
typesWithDomain.EIP712Domain = domainTypes; typesWithDomain.EIP712Domain = domainTypes;
@ -407,11 +406,11 @@ class TypedDataEncoder {
message: encoder.visit(value, (type, value) => { message: encoder.visit(value, (type, value) => {
// bytes // bytes
if (type.match(/^bytes(\d*)/)) { if (type.match(/^bytes(\d*)/)) {
return (0, index_js_3.hexlify)(logger_js_1.logger.getBytes(value)); return (0, index_js_3.hexlify)((0, index_js_3.getBytes)(value));
} }
// uint or int // uint or int
if (type.match(/^u?int/)) { if (type.match(/^u?int/)) {
return logger_js_1.logger.getBigInt(value).toString(); return (0, index_js_3.getBigInt)(value).toString();
} }
switch (type) { switch (type) {
case "address": case "address":
@ -420,11 +419,11 @@ class TypedDataEncoder {
return !!value; return !!value;
case "string": case "string":
if (typeof (value) !== "string") { if (typeof (value) !== "string") {
logger_js_1.logger.throwArgumentError(`invalid string`, "value", value); (0, index_js_3.throwArgumentError)(`invalid string`, "value", value);
} }
return value; return value;
} }
return logger_js_1.logger.throwArgumentError("unsupported type", "type", type); return (0, index_js_3.throwArgumentError)("unsupported type", "type", type);
}) })
}; };
} }

File diff suppressed because one or more lines are too long

@ -9,14 +9,7 @@
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractProvider = exports.copyRequest = exports.UnmanagedSubscriber = void 0; exports.AbstractProvider = exports.copyRequest = exports.UnmanagedSubscriber = void 0;
const index_js_1 = require("../address/index.js"); const index_js_1 = require("../address/index.js");
const data_js_1 = require("../utils/data.js");
const errors_js_1 = require("../utils/errors.js");
const fetch_js_1 = require("../utils/fetch.js");
const maths_js_1 = require("../utils/maths.js");
const index_js_2 = require("../utils/index.js"); const index_js_2 = require("../utils/index.js");
const index_js_3 = require("../utils/index.js");
;
const logger_js_1 = require("../utils/logger.js");
const ens_resolver_js_1 = require("./ens-resolver.js"); const ens_resolver_js_1 = require("./ens-resolver.js");
const network_js_1 = require("./network.js"); const network_js_1 = require("./network.js");
const provider_js_1 = require("./provider.js"); const provider_js_1 = require("./provider.js");
@ -83,7 +76,7 @@ async function getSubscription(_event, provider) {
} }
} }
} }
if ((0, data_js_1.isHexString)(_event, 32)) { if ((0, index_js_2.isHexString)(_event, 32)) {
const hash = _event.toLowerCase(); const hash = _event.toLowerCase();
return { type: "transaction", tag: getTag("tx", { hash }), hash }; return { type: "transaction", tag: getTag("tx", { hash }), hash };
} }
@ -109,7 +102,7 @@ async function getSubscription(_event, provider) {
const addresses = []; const addresses = [];
const promises = []; const promises = [];
const addAddress = (addr) => { const addAddress = (addr) => {
if ((0, data_js_1.isHexString)(addr)) { if ((0, index_js_2.isHexString)(addr)) {
addresses.push(addr); addresses.push(addr);
} }
else { else {
@ -131,7 +124,7 @@ async function getSubscription(_event, provider) {
} }
return { filter, tag: getTag("event", filter), type: "event" }; return { filter, tag: getTag("event", filter), type: "event" };
} }
return logger_js_1.logger.throwArgumentError("unknown ProviderEvent", "event", _event); return (0, index_js_2.throwArgumentError)("unknown ProviderEvent", "event", _event);
} }
function getTime() { return (new Date()).getTime(); } function getTime() { return (new Date()).getTime(); }
function copyRequest(tx) { function copyRequest(tx) {
@ -224,7 +217,7 @@ class AbstractProvider {
// value.status = response.statusCode; // value.status = response.statusCode;
// return value; // return value;
//}); //});
const request = new fetch_js_1.FetchRequest(href); const request = new index_js_2.FetchRequest(href);
if (url.indexOf("{data}") === -1) { if (url.indexOf("{data}") === -1) {
request.body = { data, sender }; request.body = { data, sender };
} }
@ -242,7 +235,7 @@ class AbstractProvider {
catch (error) { } catch (error) { }
// 4xx indicates the result is not present; stop // 4xx indicates the result is not present; stop
if (resp.statusCode >= 400 && resp.statusCode < 500) { if (resp.statusCode >= 400 && resp.statusCode < 500) {
return logger_js_1.logger.throwError(`response not found during CCIP fetch: ${errorMessage}`, "OFFCHAIN_FAULT", { return (0, index_js_2.throwError)(`response not found during CCIP fetch: ${errorMessage}`, "OFFCHAIN_FAULT", {
reason: "404_MISSING_RESOURCE", reason: "404_MISSING_RESOURCE",
transaction: tx, info: { url, errorMessage } transaction: tx, info: { url, errorMessage }
}); });
@ -250,7 +243,7 @@ class AbstractProvider {
// 5xx indicates server issue; try the next url // 5xx indicates server issue; try the next url
errorMessages.push(errorMessage); errorMessages.push(errorMessage);
} }
return logger_js_1.logger.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(", ")}`, "OFFCHAIN_FAULT", { return (0, index_js_2.throwError)(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(", ")}`, "OFFCHAIN_FAULT", {
reason: "500_SERVER_ERROR", reason: "500_SERVER_ERROR",
transaction: tx, info: { urls, errorMessages } transaction: tx, info: { urls, errorMessages }
}); });
@ -259,21 +252,21 @@ class AbstractProvider {
return tx; return tx;
} }
_detectNetwork() { _detectNetwork() {
return logger_js_1.logger.throwError("sub-classes must implement this", "UNSUPPORTED_OPERATION", { return (0, index_js_2.throwError)("sub-classes must implement this", "UNSUPPORTED_OPERATION", {
operation: "_detectNetwork" operation: "_detectNetwork"
}); });
} }
// Sub-classes should override this and handle PerformActionRequest requests, calling // Sub-classes should override this and handle PerformActionRequest requests, calling
// the super for any unhandled actions. // the super for any unhandled actions.
async _perform(req) { async _perform(req) {
return logger_js_1.logger.throwError(`unsupported method: ${req.method}`, "UNSUPPORTED_OPERATION", { return (0, index_js_2.throwError)(`unsupported method: ${req.method}`, "UNSUPPORTED_OPERATION", {
operation: req.method, operation: req.method,
info: req info: req
}); });
} }
// State // State
async getBlockNumber() { async getBlockNumber() {
return logger_js_1.logger.getNumber(await this.#perform({ method: "getBlockNumber" }), "%response"); return (0, index_js_2.getNumber)(await this.#perform({ method: "getBlockNumber" }), "%response");
} }
// @TODO: Make this string | Promsie<string> so no await needed if sync is possible // @TODO: Make this string | Promsie<string> so no await needed if sync is possible
_getAddress(address) { _getAddress(address) {
@ -301,19 +294,19 @@ class AbstractProvider {
case "finalized": case "finalized":
return blockTag; return blockTag;
} }
if ((0, data_js_1.isHexString)(blockTag)) { if ((0, index_js_2.isHexString)(blockTag)) {
if ((0, data_js_1.dataLength)(blockTag) === 32) { if ((0, index_js_2.dataLength)(blockTag) === 32) {
return blockTag; return blockTag;
} }
return (0, maths_js_1.toQuantity)(blockTag); return (0, index_js_2.toQuantity)(blockTag);
} }
if (typeof (blockTag) === "number") { if (typeof (blockTag) === "number") {
if (blockTag >= 0) { if (blockTag >= 0) {
return (0, maths_js_1.toQuantity)(blockTag); return (0, index_js_2.toQuantity)(blockTag);
} }
return this.getBlockNumber().then((b) => (0, maths_js_1.toQuantity)(b + blockTag)); return this.getBlockNumber().then((b) => (0, index_js_2.toQuantity)(b + blockTag));
} }
return logger_js_1.logger.throwArgumentError("invalid blockTag", "blockTag", blockTag); return (0, index_js_2.throwArgumentError)("invalid blockTag", "blockTag", blockTag);
} }
async getNetwork() { async getNetwork() {
// No explicit network was set and this is our first time // No explicit network was set and this is our first time
@ -348,7 +341,7 @@ class AbstractProvider {
} }
else { else {
// Otherwise, we do not allow changes to the underlying network // Otherwise, we do not allow changes to the underlying network
logger_js_1.logger.throwError(`network changed: ${expected.chainId} => ${actual.chainId} `, "NETWORK_ERROR", { (0, index_js_2.throwError)(`network changed: ${expected.chainId} => ${actual.chainId} `, "NETWORK_ERROR", {
event: "changed" event: "changed"
}); });
} }
@ -361,7 +354,7 @@ class AbstractProvider {
gasPrice: ((async () => { gasPrice: ((async () => {
try { try {
const gasPrice = await this.#perform({ method: "getGasPrice" }); const gasPrice = await this.#perform({ method: "getGasPrice" });
return logger_js_1.logger.getBigInt(gasPrice, "%response"); return (0, index_js_2.getBigInt)(gasPrice, "%response");
} }
catch (error) { } catch (error) { }
return null; return null;
@ -393,40 +386,40 @@ class AbstractProvider {
} }
async estimateGas(_tx) { async estimateGas(_tx) {
const transaction = await this._getTransaction(_tx); const transaction = await this._getTransaction(_tx);
return logger_js_1.logger.getBigInt(await this.#perform({ return (0, index_js_2.getBigInt)(await this.#perform({
method: "estimateGas", transaction method: "estimateGas", transaction
}), "%response"); }), "%response");
} }
async #call(tx, blockTag, attempt) { async #call(tx, blockTag, attempt) {
if (attempt >= MAX_CCIP_REDIRECTS) { if (attempt >= MAX_CCIP_REDIRECTS) {
logger_js_1.logger.throwError("CCIP read exceeded maximum redirections", "OFFCHAIN_FAULT", { (0, index_js_2.throwError)("CCIP read exceeded maximum redirections", "OFFCHAIN_FAULT", {
reason: "TOO_MANY_REDIRECTS", reason: "TOO_MANY_REDIRECTS",
transaction: Object.assign({}, tx, { blockTag, enableCcipRead: true }) transaction: Object.assign({}, tx, { blockTag, enableCcipRead: true })
}); });
} }
const transaction = copyRequest(tx); const transaction = copyRequest(tx);
try { try {
return (0, data_js_1.hexlify)(await this._perform({ method: "call", transaction, blockTag })); return (0, index_js_2.hexlify)(await this._perform({ method: "call", transaction, blockTag }));
} }
catch (error) { catch (error) {
// CCIP Read OffchainLookup // CCIP Read OffchainLookup
if (!this.disableCcipRead && (0, errors_js_1.isCallException)(error) && attempt >= 0 && blockTag === "latest" && transaction.to != null && (0, data_js_1.dataSlice)(error.data, 0, 4) === "0x556f1830") { if (!this.disableCcipRead && (0, index_js_2.isCallException)(error) && attempt >= 0 && blockTag === "latest" && transaction.to != null && (0, index_js_2.dataSlice)(error.data, 0, 4) === "0x556f1830") {
const data = error.data; const data = error.data;
const txSender = await (0, index_js_1.resolveAddress)(transaction.to, this); const txSender = await (0, index_js_1.resolveAddress)(transaction.to, this);
// Parse the CCIP Read Arguments // Parse the CCIP Read Arguments
let ccipArgs; let ccipArgs;
try { try {
ccipArgs = parseOffchainLookup((0, data_js_1.dataSlice)(error.data, 4)); ccipArgs = parseOffchainLookup((0, index_js_2.dataSlice)(error.data, 4));
} }
catch (error) { catch (error) {
return logger_js_1.logger.throwError(error.message, "OFFCHAIN_FAULT", { return (0, index_js_2.throwError)(error.message, "OFFCHAIN_FAULT", {
reason: "BAD_DATA", reason: "BAD_DATA",
transaction, info: { data } transaction, info: { data }
}); });
} }
// Check the sender of the OffchainLookup matches the transaction // Check the sender of the OffchainLookup matches the transaction
if (ccipArgs.sender.toLowerCase() !== txSender.toLowerCase()) { if (ccipArgs.sender.toLowerCase() !== txSender.toLowerCase()) {
return logger_js_1.logger.throwError("CCIP Read sender mismatch", "CALL_EXCEPTION", { return (0, index_js_2.throwError)("CCIP Read sender mismatch", "CALL_EXCEPTION", {
data, transaction, data, transaction,
errorSignature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", errorSignature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
errorName: "OffchainLookup", errorName: "OffchainLookup",
@ -435,14 +428,14 @@ class AbstractProvider {
} }
const ccipResult = await this.ccipReadFetch(transaction, ccipArgs.calldata, ccipArgs.urls); const ccipResult = await this.ccipReadFetch(transaction, ccipArgs.calldata, ccipArgs.urls);
if (ccipResult == null) { if (ccipResult == null) {
return logger_js_1.logger.throwError("CCIP Read failed to fetch data", "OFFCHAIN_FAULT", { return (0, index_js_2.throwError)("CCIP Read failed to fetch data", "OFFCHAIN_FAULT", {
reason: "FETCH_FAILED", reason: "FETCH_FAILED",
transaction, info: { data: error.data, errorArgs: ccipArgs.errorArgs } transaction, info: { data: error.data, errorArgs: ccipArgs.errorArgs }
}); });
} }
return this.#call({ return this.#call({
to: txSender, to: txSender,
data: (0, data_js_1.concat)([ data: (0, index_js_2.concat)([
ccipArgs.selector, encodeBytes([ccipResult, ccipArgs.extraData]) ccipArgs.selector, encodeBytes([ccipResult, ccipArgs.extraData])
]), ]),
}, blockTag, attempt + 1); }, blockTag, attempt + 1);
@ -466,17 +459,17 @@ class AbstractProvider {
return await this.#perform(Object.assign(request, { address, blockTag })); return await this.#perform(Object.assign(request, { address, blockTag }));
} }
async getBalance(address, blockTag) { async getBalance(address, blockTag) {
return logger_js_1.logger.getBigInt(await this.#getAccountValue({ method: "getBalance" }, address, blockTag), "%response"); return (0, index_js_2.getBigInt)(await this.#getAccountValue({ method: "getBalance" }, address, blockTag), "%response");
} }
async getTransactionCount(address, blockTag) { async getTransactionCount(address, blockTag) {
return logger_js_1.logger.getNumber(await this.#getAccountValue({ method: "getTransactionCount" }, address, blockTag), "%response"); return (0, index_js_2.getNumber)(await this.#getAccountValue({ method: "getTransactionCount" }, address, blockTag), "%response");
} }
async getCode(address, blockTag) { async getCode(address, blockTag) {
return (0, data_js_1.hexlify)(await this.#getAccountValue({ method: "getCode" }, address, blockTag)); return (0, index_js_2.hexlify)(await this.#getAccountValue({ method: "getCode" }, address, blockTag));
} }
async getStorageAt(address, _position, blockTag) { async getStorageAt(address, _position, blockTag) {
const position = logger_js_1.logger.getBigInt(_position, "position"); const position = (0, index_js_2.getBigInt)(_position, "position");
return (0, data_js_1.hexlify)(await this.#getAccountValue({ method: "getStorageAt", position }, address, blockTag)); return (0, index_js_2.hexlify)(await this.#getAccountValue({ method: "getStorageAt", position }, address, blockTag));
} }
// Write // Write
async broadcastTransaction(signedTx) { async broadcastTransaction(signedTx) {
@ -484,7 +477,7 @@ class AbstractProvider {
return {}; return {};
} }
async #getBlock(block, includeTransactions) { async #getBlock(block, includeTransactions) {
if ((0, data_js_1.isHexString)(block, 32)) { if ((0, index_js_2.isHexString)(block, 32)) {
return await this.#perform({ return await this.#perform({
method: "getBlock", blockHash: block, includeTransactions method: "getBlock", blockHash: block, includeTransactions
}); });
@ -539,7 +532,7 @@ class AbstractProvider {
if (result == null) { if (result == null) {
return null; return null;
} }
return (0, data_js_1.hexlify)(result); return (0, index_js_2.hexlify)(result);
} }
_getFilter(filter) { _getFilter(filter) {
// Create a canonical representation of the topics // Create a canonical representation of the topics
@ -628,7 +621,7 @@ class AbstractProvider {
} }
// ENS // ENS
_getProvider(chainId) { _getProvider(chainId) {
return logger_js_1.logger.throwError("provider cannot connect to target network", "UNSUPPORTED_OPERATION", { return (0, index_js_2.throwError)("provider cannot connect to target network", "UNSUPPORTED_OPERATION", {
operation: "_getProvider()" operation: "_getProvider()"
}); });
} }
@ -643,6 +636,9 @@ class AbstractProvider {
return null; return null;
} }
async resolveName(name) { async resolveName(name) {
if ((0, index_js_2.isHexString)(name, 20)) {
return name;
}
//if (typeof(name) === "string") { //if (typeof(name) === "string") {
const resolver = await this.getResolver(name); const resolver = await this.getResolver(name);
if (resolver) { if (resolver) {
@ -696,7 +692,7 @@ class AbstractProvider {
} }
timer = null; timer = null;
this.off("block", listener); this.off("block", listener);
reject(logger_js_1.logger.makeError("timeout", "TIMEOUT", { reason: "timeout" })); reject((0, index_js_2.makeError)("timeout", "TIMEOUT", { reason: "timeout" }));
}, timeout); }, timeout);
} }
listener(await this.getBlockNumber()); listener(await this.getBlockNumber());
@ -935,7 +931,7 @@ class AbstractProvider {
if (this.#pausedState == !!dropWhilePaused) { if (this.#pausedState == !!dropWhilePaused) {
return; return;
} }
return logger_js_1.logger.throwError("cannot change pause type; resume first", "UNSUPPORTED_OPERATION", { return (0, index_js_2.throwError)("cannot change pause type; resume first", "UNSUPPORTED_OPERATION", {
operation: "pause" operation: "pause"
}); });
} }
@ -974,7 +970,7 @@ function _parseString(result, start) {
try { try {
const bytes = _parseBytes(result, start); const bytes = _parseBytes(result, start);
if (bytes) { if (bytes) {
return (0, index_js_3.toUtf8String)(bytes); return (0, index_js_2.toUtf8String)(bytes);
} }
} }
catch (error) { } catch (error) { }
@ -985,15 +981,15 @@ function _parseBytes(result, start) {
return null; return null;
} }
try { try {
const offset = logger_js_1.logger.getNumber((0, data_js_1.dataSlice)(result, start, start + 32)); const offset = (0, index_js_2.getNumber)((0, index_js_2.dataSlice)(result, start, start + 32));
const length = logger_js_1.logger.getNumber((0, data_js_1.dataSlice)(result, offset, offset + 32)); const length = (0, index_js_2.getNumber)((0, index_js_2.dataSlice)(result, offset, offset + 32));
return (0, data_js_1.dataSlice)(result, offset + 32, offset + 32 + length); return (0, index_js_2.dataSlice)(result, offset + 32, offset + 32 + length);
} }
catch (error) { } catch (error) { }
return null; return null;
} }
function numPad(value) { function numPad(value) {
const result = (0, maths_js_1.toArray)(value); const result = (0, index_js_2.toArray)(value);
if (result.length > 32) { if (result.length > 32) {
throw new Error("internal; should not happen"); throw new Error("internal; should not happen");
} }
@ -1020,7 +1016,7 @@ function encodeBytes(datas) {
byteCount += 32; byteCount += 32;
} }
for (let i = 0; i < datas.length; i++) { for (let i = 0; i < datas.length; i++) {
const data = logger_js_1.logger.getBytes(datas[i]); const data = (0, index_js_2.getBytes)(datas[i]);
// Update the bytes offset // Update the bytes offset
result[i] = numPad(byteCount); result[i] = numPad(byteCount);
// The length and padded value of data // The length and padded value of data
@ -1028,27 +1024,27 @@ function encodeBytes(datas) {
result.push(bytesPad(data)); result.push(bytesPad(data));
byteCount += 32 + Math.ceil(data.length / 32) * 32; byteCount += 32 + Math.ceil(data.length / 32) * 32;
} }
return (0, data_js_1.concat)(result); return (0, index_js_2.concat)(result);
} }
const zeros = "0x0000000000000000000000000000000000000000000000000000000000000000"; const zeros = "0x0000000000000000000000000000000000000000000000000000000000000000";
function parseOffchainLookup(data) { function parseOffchainLookup(data) {
const result = { const result = {
sender: "", urls: [], calldata: "", selector: "", extraData: "", errorArgs: [] sender: "", urls: [], calldata: "", selector: "", extraData: "", errorArgs: []
}; };
if ((0, data_js_1.dataLength)(data) < 5 * 32) { if ((0, index_js_2.dataLength)(data) < 5 * 32) {
throw new Error("insufficient OffchainLookup data"); throw new Error("insufficient OffchainLookup data");
} }
const sender = (0, data_js_1.dataSlice)(data, 0, 32); const sender = (0, index_js_2.dataSlice)(data, 0, 32);
if ((0, data_js_1.dataSlice)(sender, 0, 12) !== (0, data_js_1.dataSlice)(zeros, 0, 12)) { if ((0, index_js_2.dataSlice)(sender, 0, 12) !== (0, index_js_2.dataSlice)(zeros, 0, 12)) {
throw new Error("corrupt OffchainLookup sender"); throw new Error("corrupt OffchainLookup sender");
} }
result.sender = (0, data_js_1.dataSlice)(sender, 12); result.sender = (0, index_js_2.dataSlice)(sender, 12);
// Read the URLs from the response // Read the URLs from the response
try { try {
const urls = []; const urls = [];
const urlsOffset = logger_js_1.logger.getNumber((0, data_js_1.dataSlice)(data, 32, 64)); const urlsOffset = (0, index_js_2.getNumber)((0, index_js_2.dataSlice)(data, 32, 64));
const urlsLength = logger_js_1.logger.getNumber((0, data_js_1.dataSlice)(data, urlsOffset, urlsOffset + 32)); const urlsLength = (0, index_js_2.getNumber)((0, index_js_2.dataSlice)(data, urlsOffset, urlsOffset + 32));
const urlsData = (0, data_js_1.dataSlice)(data, urlsOffset + 32); const urlsData = (0, index_js_2.dataSlice)(data, urlsOffset + 32);
for (let u = 0; u < urlsLength; u++) { for (let u = 0; u < urlsLength; u++) {
const url = _parseString(urlsData, u * 32); const url = _parseString(urlsData, u * 32);
if (url == null) { if (url == null) {
@ -1073,10 +1069,10 @@ function parseOffchainLookup(data) {
throw new Error("corrupt OffchainLookup calldata"); throw new Error("corrupt OffchainLookup calldata");
} }
// Get the callbackSelector (bytes4) // Get the callbackSelector (bytes4)
if ((0, data_js_1.dataSlice)(data, 100, 128) !== (0, data_js_1.dataSlice)(zeros, 0, 28)) { if ((0, index_js_2.dataSlice)(data, 100, 128) !== (0, index_js_2.dataSlice)(zeros, 0, 28)) {
throw new Error("corrupt OffchainLookup callbaackSelector"); throw new Error("corrupt OffchainLookup callbaackSelector");
} }
result.selector = (0, data_js_1.dataSlice)(data, 96, 100); result.selector = (0, index_js_2.dataSlice)(data, 96, 100);
// Get the extra data to send back to the contract as context // Get the extra data to send back to the contract as context
try { try {
const extraData = _parseBytes(data, 128); const extraData = _parseBytes(data, 128);

File diff suppressed because one or more lines are too long

@ -1,7 +1,6 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.WrappedSigner = exports.VoidSigner = exports.AbstractSigner = void 0; exports.WrappedSigner = exports.VoidSigner = exports.AbstractSigner = void 0;
const logger_js_1 = require("../utils/logger.js");
const index_js_1 = require("../transaction/index.js"); const index_js_1 = require("../transaction/index.js");
const index_js_2 = require("../utils/index.js"); const index_js_2 = require("../utils/index.js");
class AbstractSigner { class AbstractSigner {
@ -13,7 +12,7 @@ class AbstractSigner {
if (this.provider) { if (this.provider) {
return this.provider; return this.provider;
} }
return logger_js_1.logger.throwError("missing provider", "UNSUPPORTED_OPERATION", { operation }); return (0, index_js_2.throwError)("missing provider", "UNSUPPORTED_OPERATION", { operation });
} }
async getNonce(blockTag) { async getNonce(blockTag) {
return this.#checkProvider("getTransactionCount").getTransactionCount(await this.getAddress(), blockTag); return this.#checkProvider("getTransactionCount").getTransactionCount(await this.getAddress(), blockTag);
@ -25,7 +24,7 @@ class AbstractSigner {
if (pop.to != null) { if (pop.to != null) {
pop.to = provider.resolveName(pop.to).then((to) => { pop.to = provider.resolveName(pop.to).then((to) => {
if (to == null) { if (to == null) {
return logger_js_1.logger.throwArgumentError("transaction to ENS name not configured", "tx.to", pop.to); return (0, index_js_2.throwArgumentError)("transaction to ENS name not configured", "tx.to", pop.to);
} }
return to; return to;
}); });
@ -37,7 +36,7 @@ class AbstractSigner {
this.resolveName(from) this.resolveName(from)
]).then(([address, from]) => { ]).then(([address, from]) => {
if (!from || address.toLowerCase() !== from.toLowerCase()) { if (!from || address.toLowerCase() !== from.toLowerCase()) {
return logger_js_1.logger.throwArgumentError("transaction from mismatch", "tx.from", from); return (0, index_js_2.throwArgumentError)("transaction from mismatch", "tx.from", from);
} }
return address; return address;
}); });
@ -56,7 +55,21 @@ class AbstractSigner {
if (pop.gasLimit == null) { if (pop.gasLimit == null) {
pop.gasLimit = await this.estimateGas(pop); pop.gasLimit = await this.estimateGas(pop);
} }
// Populate the chain ID
const network = await (this.provider).getNetwork();
if (pop.chainId != null) {
const chainId = (0, index_js_2.getBigInt)(pop.chainId);
if (chainId !== network.chainId) {
(0, index_js_2.throwArgumentError)("transaction chainId mismatch", "tx.chainId", tx.chainId);
}
}
else {
pop.chainId = network.chainId;
}
//@TOOD: Don't await all over the place; save them up for
// the end for better batching
//@TODO: Copy type logic from AbstractSigner in v5 //@TODO: Copy type logic from AbstractSigner in v5
// Test how many batches is actually sent for sending a tx; compare before/after
return await (0, index_js_2.resolveProperties)(pop); return await (0, index_js_2.resolveProperties)(pop);
} }
async estimateGas(tx) { async estimateGas(tx) {
@ -87,7 +100,7 @@ class VoidSigner extends AbstractSigner {
return new VoidSigner(this.address, provider); return new VoidSigner(this.address, provider);
} }
#throwUnsupported(suffix, operation) { #throwUnsupported(suffix, operation) {
return logger_js_1.logger.throwError(`VoidSigner cannot sign ${suffix}`, "UNSUPPORTED_OPERATION", { return (0, index_js_2.throwError)(`VoidSigner cannot sign ${suffix}`, "UNSUPPORTED_OPERATION", {
operation operation
}); });
} }

File diff suppressed because one or more lines are too long

@ -4,18 +4,15 @@ exports.EnsResolver = exports.BasicMulticoinProviderPlugin = exports.MulticoinPr
const hashes_js_1 = require("../constants/hashes.js"); const hashes_js_1 = require("../constants/hashes.js");
const index_js_1 = require("../hash/index.js"); const index_js_1 = require("../hash/index.js");
const index_js_2 = require("../utils/index.js"); const index_js_2 = require("../utils/index.js");
const data_js_1 = require("../utils/data.js");
const fetch_js_1 = require("../utils/fetch.js");
const logger_js_1 = require("../utils/logger.js");
const BN_1 = BigInt(1); const BN_1 = BigInt(1);
const Empty = new Uint8Array([]); const Empty = new Uint8Array([]);
function parseBytes(result, start) { function parseBytes(result, start) {
if (result === "0x") { if (result === "0x") {
return null; return null;
} }
const offset = (0, index_js_2.toNumber)((0, data_js_1.dataSlice)(result, start, start + 32)); const offset = (0, index_js_2.toNumber)((0, index_js_2.dataSlice)(result, start, start + 32));
const length = (0, index_js_2.toNumber)((0, data_js_1.dataSlice)(result, offset, offset + 32)); const length = (0, index_js_2.toNumber)((0, index_js_2.dataSlice)(result, offset, offset + 32));
return (0, data_js_1.dataSlice)(result, offset + 32, offset + 32 + length); return (0, index_js_2.dataSlice)(result, offset + 32, offset + 32 + length);
} }
function parseString(result, start) { function parseString(result, start) {
try { try {
@ -54,7 +51,7 @@ function encodeBytes(datas) {
byteCount += 32; byteCount += 32;
} }
for (let i = 0; i < datas.length; i++) { for (let i = 0; i < datas.length; i++) {
const data = logger_js_1.logger.getBytes(datas[i]); const data = (0, index_js_2.getBytes)(datas[i]);
// Update the bytes offset // Update the bytes offset
result[i] = numPad(byteCount); result[i] = numPad(byteCount);
// The length and padded value of data // The length and padded value of data
@ -62,7 +59,7 @@ function encodeBytes(datas) {
result.push(bytesPad(data)); result.push(bytesPad(data));
byteCount += 32 + Math.ceil(data.length / 32) * 32; byteCount += 32 + Math.ceil(data.length / 32) * 32;
} }
return (0, data_js_1.concat)(result); return (0, index_js_2.concat)(result);
} }
// @TODO: This should use the fetch-data:ipfs gateway // @TODO: This should use the fetch-data:ipfs gateway
// Trim off the ipfs:// prefix and return the default gateway URL // Trim off the ipfs:// prefix and return the default gateway URL
@ -74,7 +71,7 @@ function getIpfsLink(link) {
link = link.substring(7); link = link.substring(7);
} }
else { else {
logger_js_1.logger.throwArgumentError("unsupported IPFS format", "link", link); (0, index_js_2.throwArgumentError)("unsupported IPFS format", "link", link);
} }
return `https:/\/gateway.ipfs.io/ipfs/${link}`; return `https:/\/gateway.ipfs.io/ipfs/${link}`;
} }
@ -130,7 +127,7 @@ class EnsResolver {
to: this.address, to: this.address,
data: "0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000" data: "0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"
}).then((result) => { }).then((result) => {
return (logger_js_1.logger.getBigInt(result) === BN_1); return ((0, index_js_2.getBigInt)(result) === BN_1);
}).catch((error) => { }).catch((error) => {
if (error.code === "CALL_EXCEPTION") { if (error.code === "CALL_EXCEPTION") {
return false; return false;
@ -144,7 +141,7 @@ class EnsResolver {
} }
async _fetch(selector, parameters = "0x") { async _fetch(selector, parameters = "0x") {
// e.g. keccak256("addr(bytes32,uint256)") // e.g. keccak256("addr(bytes32,uint256)")
const addrData = (0, data_js_1.concat)([selector, (0, index_js_1.namehash)(this.name), parameters]); const addrData = (0, index_js_2.concat)([selector, (0, index_js_1.namehash)(this.name), parameters]);
const tx = { const tx = {
to: this.address, to: this.address,
enableCcipRead: true, enableCcipRead: true,
@ -155,12 +152,12 @@ class EnsResolver {
if (await this.supportsWildcard()) { if (await this.supportsWildcard()) {
wrapped = true; wrapped = true;
// selector("resolve(bytes,bytes)") // selector("resolve(bytes,bytes)")
tx.data = (0, data_js_1.concat)(["0x9061b923", encodeBytes([(0, index_js_1.dnsEncode)(this.name), addrData])]); tx.data = (0, index_js_2.concat)(["0x9061b923", encodeBytes([(0, index_js_1.dnsEncode)(this.name), addrData])]);
} }
try { try {
let data = await this.provider.call(tx); let data = await this.provider.call(tx);
if ((logger_js_1.logger.getBytes(data).length % 32) === 4) { if (((0, index_js_2.getBytes)(data).length % 32) === 4) {
return logger_js_1.logger.throwError("resolver threw error", "CALL_EXCEPTION", { return (0, index_js_2.throwError)("resolver threw error", "CALL_EXCEPTION", {
transaction: tx, data transaction: tx, data
}); });
} }
@ -219,7 +216,7 @@ class EnsResolver {
if (address != null) { if (address != null) {
return address; return address;
} }
return logger_js_1.logger.throwError(`invalid coin data`, "UNSUPPORTED_OPERATION", { return (0, index_js_2.throwError)(`invalid coin data`, "UNSUPPORTED_OPERATION", {
operation: `getAddress(${coinType})`, operation: `getAddress(${coinType})`,
info: { coinType, data } info: { coinType, data }
}); });
@ -229,7 +226,7 @@ class EnsResolver {
let keyBytes = (0, index_js_2.toUtf8Bytes)(key); let keyBytes = (0, index_js_2.toUtf8Bytes)(key);
// The nodehash consumes the first slot, so the string pointer targets // The nodehash consumes the first slot, so the string pointer targets
// offset 64, with the length at offset 64 and data starting at offset 96 // offset 64, with the length at offset 64 and data starting at offset 96
const calldata = logger_js_1.logger.getBytes((0, data_js_1.concat)([numPad(64), numPad(keyBytes.length), keyBytes])); const calldata = (0, index_js_2.getBytes)((0, index_js_2.concat)([numPad(64), numPad(keyBytes.length), keyBytes]));
const hexBytes = parseBytes((await this._fetch("0x59d1d43c", bytesPad(calldata))) || "0x", 0); const hexBytes = parseBytes((await this._fetch("0x59d1d43c", bytesPad(calldata))) || "0x", 0);
if (hexBytes == null || hexBytes === "0x") { if (hexBytes == null || hexBytes === "0x") {
return null; return null;
@ -257,7 +254,7 @@ class EnsResolver {
if (swarm && swarm[1].length === 64) { if (swarm && swarm[1].length === 64) {
return `bzz:/\/${swarm[1]}`; return `bzz:/\/${swarm[1]}`;
} }
return logger_js_1.logger.throwError(`invalid or unsupported content hash data`, "UNSUPPORTED_OPERATION", { return (0, index_js_2.throwError)(`invalid or unsupported content hash data`, "UNSUPPORTED_OPERATION", {
operation: "getContentHash()", operation: "getContentHash()",
info: { data: hexBytes } info: { data: hexBytes }
}); });
@ -316,7 +313,7 @@ class EnsResolver {
if (scheme === "erc721") { if (scheme === "erc721") {
// ownerOf(uint256 tokenId) // ownerOf(uint256 tokenId)
const tokenOwner = formatter.callAddress(await this.provider.call({ const tokenOwner = formatter.callAddress(await this.provider.call({
to: addr, data: (0, data_js_1.concat)(["0x6352211e", tokenId]) to: addr, data: (0, index_js_2.concat)(["0x6352211e", tokenId])
})); }));
if (owner !== tokenOwner) { if (owner !== tokenOwner) {
linkage.push({ type: "!owner", value: tokenOwner }); linkage.push({ type: "!owner", value: tokenOwner });
@ -326,8 +323,8 @@ class EnsResolver {
} }
else if (scheme === "erc1155") { else if (scheme === "erc1155") {
// balanceOf(address owner, uint256 tokenId) // balanceOf(address owner, uint256 tokenId)
const balance = logger_js_1.logger.getBigInt(await this.provider.call({ const balance = (0, index_js_2.getBigInt)(await this.provider.call({
to: addr, data: (0, data_js_1.concat)(["0x00fdd58e", (0, data_js_1.zeroPadValue)(owner, 32), tokenId]) to: addr, data: (0, index_js_2.concat)(["0x00fdd58e", (0, index_js_2.zeroPadValue)(owner, 32), tokenId])
})); }));
if (!balance) { if (!balance) {
linkage.push({ type: "!balance", value: "0" }); linkage.push({ type: "!balance", value: "0" });
@ -338,7 +335,7 @@ class EnsResolver {
// Call the token contract for the metadata URL // Call the token contract for the metadata URL
const tx = { const tx = {
to: comps[0], to: comps[0],
data: (0, data_js_1.concat)([selector, tokenId]) data: (0, index_js_2.concat)([selector, tokenId])
}; };
let metadataUrl = parseString(await this.provider.call(tx), 0); let metadataUrl = parseString(await this.provider.call(tx), 0);
if (metadataUrl == null) { if (metadataUrl == null) {
@ -348,7 +345,7 @@ class EnsResolver {
linkage.push({ type: "metadata-url-base", value: metadataUrl }); linkage.push({ type: "metadata-url-base", value: metadataUrl });
// ERC-1155 allows a generic {id} in the URL // ERC-1155 allows a generic {id} in the URL
if (scheme === "erc1155") { if (scheme === "erc1155") {
metadataUrl = metadataUrl.replace("{id}", (0, data_js_1.hexlify)(tokenId).substring(2)); metadataUrl = metadataUrl.replace("{id}", (0, index_js_2.hexlify)(tokenId).substring(2));
linkage.push({ type: "metadata-url-expanded", value: metadataUrl }); linkage.push({ type: "metadata-url-expanded", value: metadataUrl });
} }
// Transform IPFS metadata links // Transform IPFS metadata links
@ -358,7 +355,7 @@ class EnsResolver {
linkage.push({ type: "metadata-url", value: metadataUrl }); linkage.push({ type: "metadata-url", value: metadataUrl });
// Get the token metadata // Get the token metadata
let metadata = {}; let metadata = {};
const response = await (new fetch_js_1.FetchRequest(metadataUrl)).send(); const response = await (new index_js_2.FetchRequest(metadataUrl)).send();
response.assertOk(); response.assertOk();
try { try {
metadata = response.bodyJson; metadata = response.bodyJson;
@ -370,7 +367,7 @@ class EnsResolver {
catch (error) { catch (error) {
const bytes = response.body; const bytes = response.body;
if (bytes) { if (bytes) {
linkage.push({ type: "!metadata", value: (0, data_js_1.hexlify)(bytes) }); linkage.push({ type: "!metadata", value: (0, index_js_2.hexlify)(bytes) });
} }
throw error; throw error;
} }
@ -416,7 +413,7 @@ class EnsResolver {
const ensPlugin = network.getPlugin("org.ethers.network-plugins.ens"); const ensPlugin = network.getPlugin("org.ethers.network-plugins.ens");
// No ENS... // No ENS...
if (!ensPlugin) { if (!ensPlugin) {
return logger_js_1.logger.throwError("network does not support ENS", "UNSUPPORTED_OPERATION", { return (0, index_js_2.throwError)("network does not support ENS", "UNSUPPORTED_OPERATION", {
operation: "getResolver", info: { network: network.name } operation: "getResolver", info: { network: network.name }
}); });
} }
@ -424,11 +421,11 @@ class EnsResolver {
// keccak256("resolver(bytes32)") // keccak256("resolver(bytes32)")
const addrData = await provider.call({ const addrData = await provider.call({
to: ensPlugin.address, to: ensPlugin.address,
data: (0, data_js_1.concat)(["0x0178b8bf", (0, index_js_1.namehash)(name)]), data: (0, index_js_2.concat)(["0x0178b8bf", (0, index_js_1.namehash)(name)]),
enableCcipRead: true enableCcipRead: true
}); });
const addr = network.formatter.callAddress(addrData); const addr = network.formatter.callAddress(addrData);
if (addr === (0, data_js_1.dataSlice)(hashes_js_1.ZeroHash, 0, 20)) { if (addr === (0, index_js_2.dataSlice)(hashes_js_1.ZeroHash, 0, 20)) {
return null; return null;
} }
return addr; return addr;

File diff suppressed because one or more lines are too long

@ -17,11 +17,9 @@ exports.Formatter = void 0;
* to be fairly simple to adapt to ethers. * to be fairly simple to adapt to ethers.
*/ */
const index_js_1 = require("../address/index.js"); const index_js_1 = require("../address/index.js");
const data_js_1 = require("../utils/data.js"); const index_js_2 = require("../utils/index.js");
const maths_js_1 = require("../utils/maths.js");
const logger_js_1 = require("../utils/logger.js");
const signature_js_1 = require("../crypto/signature.js"); const signature_js_1 = require("../crypto/signature.js");
const index_js_2 = require("../transaction/index.js"); const index_js_3 = require("../transaction/index.js");
const provider_js_1 = require("./provider.js"); const provider_js_1 = require("./provider.js");
const BN_MAX_UINT256 = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); const BN_MAX_UINT256 = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
//export type AccessListSet = { address: string, storageKeys: Array<string> }; //export type AccessListSet = { address: string, storageKeys: Array<string> };
@ -121,16 +119,16 @@ class Formatter {
} }
// An address from a call result; may be zero-padded // An address from a call result; may be zero-padded
callAddress(value) { callAddress(value) {
if ((0, data_js_1.dataLength)(value) !== 32 || (0, data_js_1.dataSlice)(value, 0, 12) !== "0x000000000000000000000000") { if ((0, index_js_2.dataLength)(value) !== 32 || (0, index_js_2.dataSlice)(value, 0, 12) !== "0x000000000000000000000000") {
logger_js_1.logger.throwArgumentError("invalid call address", "value", value); (0, index_js_2.throwArgumentError)("invalid call address", "value", value);
} }
return this.address((0, data_js_1.dataSlice)(value, 12)); return this.address((0, index_js_2.dataSlice)(value, 12));
} }
// An address from a transaction (e.g. { from: string, nonce: number }) // An address from a transaction (e.g. { from: string, nonce: number })
contractAddress(value) { contractAddress(value) {
return (0, index_js_1.getCreateAddress)({ return (0, index_js_1.getCreateAddress)({
from: this.address(value.from), from: this.address(value.from),
nonce: logger_js_1.logger.getNumber(value.nonce, "value.nonce") nonce: (0, index_js_2.getNumber)(value.nonce, "value.nonce")
}); });
} }
// Block Tag // Block Tag
@ -147,10 +145,10 @@ class Formatter {
case "finalized": case "finalized":
return value; return value;
} }
if (typeof (value) === "number" || ((0, data_js_1.isHexString)(value) && (0, data_js_1.dataLength)(value) < 32)) { if (typeof (value) === "number" || ((0, index_js_2.isHexString)(value) && (0, index_js_2.dataLength)(value) < 32)) {
return (0, maths_js_1.toQuantity)(value); return (0, index_js_2.toQuantity)(value);
} }
return logger_js_1.logger.throwArgumentError("invalid blockTag", "value", value); return (0, index_js_2.throwArgumentError)("invalid blockTag", "value", value);
} }
// Block objects // Block objects
block(value, provider) { block(value, provider) {
@ -229,7 +227,7 @@ class Formatter {
if (value === 0 || value === 1) { if (value === 0 || value === 1) {
// Make sure if both are specified, they match // Make sure if both are specified, they match
if (receipt.status != null && receipt.status !== value) { if (receipt.status != null && receipt.status !== value) {
return logger_js_1.logger.throwError("alt-root-status/status mismatch", "BAD_DATA", { return (0, index_js_2.throwError)("alt-root-status/status mismatch", "BAD_DATA", {
value: { root: receipt.root, status: receipt.status } value: { root: receipt.root, status: receipt.status }
}); });
} }
@ -237,14 +235,14 @@ class Formatter {
delete receipt.root; delete receipt.root;
} }
else { else {
return logger_js_1.logger.throwError("invalid alt-root-status", "BAD_DATA", { return (0, index_js_2.throwError)("invalid alt-root-status", "BAD_DATA", {
value: receipt.root value: receipt.root
}); });
} }
} }
else if (!(0, data_js_1.isHexString)(receipt.root, 32)) { else if (!(0, index_js_2.isHexString)(receipt.root, 32)) {
// Must be a valid bytes32 // Must be a valid bytes32
return logger_js_1.logger.throwError("invalid receipt root hash", "BAD_DATA", { return (0, index_js_2.throwError)("invalid receipt root hash", "BAD_DATA", {
value: receipt.root value: receipt.root
}); });
} }
@ -271,7 +269,7 @@ class Formatter {
// methods within the formatter to ensure internal compatibility // methods within the formatter to ensure internal compatibility
// Access List; converts an AccessListish to an AccessList // Access List; converts an AccessListish to an AccessList
accessList(value) { accessList(value) {
return (0, index_js_2.accessListify)(value); return (0, index_js_3.accessListify)(value);
} }
// Converts falsish values to a specific value, otherwise use the formatter. Calls preserve `this`. // Converts falsish values to a specific value, otherwise use the formatter. Calls preserve `this`.
allowFalsish(format, ifFalse) { allowFalsish(format, ifFalse) {
@ -302,12 +300,12 @@ class Formatter {
} }
// Requires a value which is a value BigNumber // Requires a value which is a value BigNumber
bigNumber(value) { bigNumber(value) {
return logger_js_1.logger.getBigInt(value, "value"); return (0, index_js_2.getBigInt)(value, "value");
} }
uint256(value) { uint256(value) {
const result = this.bigNumber(value); const result = this.bigNumber(value);
if (result < 0 || result > BN_MAX_UINT256) { if (result < 0 || result > BN_MAX_UINT256) {
logger_js_1.logger.throwArgumentError("invalid uint256", "value", value); (0, index_js_2.throwArgumentError)("invalid uint256", "value", value);
} }
return result; return result;
} }
@ -321,7 +319,7 @@ class Formatter {
case "false": case "false":
return false; return false;
} }
return logger_js_1.logger.throwArgumentError(`invalid boolean; ${JSON.stringify(value)}`, "value", value); return (0, index_js_2.throwArgumentError)(`invalid boolean; ${JSON.stringify(value)}`, "value", value);
} }
// Requires a value which is a valid hexstring. If dataOrLength is true, // Requires a value which is a valid hexstring. If dataOrLength is true,
// the length must be even (i.e. a datahexstring) or if it is a number, // the length must be even (i.e. a datahexstring) or if it is a number,
@ -331,28 +329,28 @@ class Formatter {
dataOrLength = false; dataOrLength = false;
} }
return (function (value) { return (function (value) {
if ((0, data_js_1.isHexString)(value, dataOrLength)) { if ((0, index_js_2.isHexString)(value, dataOrLength)) {
return value.toLowerCase(); return value.toLowerCase();
} }
throw new Error("bad hexstring"); throw new Error("bad hexstring");
}); });
} }
data(value) { data(value) {
if ((0, data_js_1.dataLength)(value) == null) { if ((0, index_js_2.dataLength)(value) == null) {
logger_js_1.logger.throwArgumentError("", "value", value); (0, index_js_2.throwArgumentError)("", "value", value);
} }
return value; return value;
} }
// Requires a network-native hash // Requires a network-native hash
hash(value) { hash(value) {
if ((0, data_js_1.dataLength)(value) !== 32) { if ((0, index_js_2.dataLength)(value) !== 32) {
logger_js_1.logger.throwArgumentError("", "value", value); (0, index_js_2.throwArgumentError)("", "value", value);
} }
return this.#format.data(value); return this.#format.data(value);
} }
// Requires a valid number, within the IEEE 754 safe range // Requires a valid number, within the IEEE 754 safe range
number(value) { number(value) {
return logger_js_1.logger.getNumber(value); return (0, index_js_2.getNumber)(value);
} }
// Requires an object which matches a fleet of other formatters // Requires an object which matches a fleet of other formatters
// Any FormatFunc may return `undefined` to have the value omitted // Any FormatFunc may return `undefined` to have the value omitted
@ -378,7 +376,7 @@ class Formatter {
} }
catch (error) { catch (error) {
const message = (error instanceof Error) ? error.message : "not-an-error"; const message = (error instanceof Error) ? error.message : "not-an-error";
logger_js_1.logger.throwError(`invalid value for value.${key} (${message})`, "BAD_DATA", { value }); (0, index_js_2.throwError)(`invalid value for value.${key} (${message})`, "BAD_DATA", { value });
} }
} }
return result; return result;

File diff suppressed because one or more lines are too long

@ -1,11 +1,10 @@
"use strict"; "use strict";
/* /////
export {
AbstractProvider, UnmanagedSubscriber
} from "./abstract-provider.js";
*/
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.WebSocketProvider = exports.SocketProvider = exports.IpcSocketProvider = exports.InfuraProvider = exports.EtherscanProvider = exports.CloudflareProvider = exports.AnkrProvider = exports.AlchemyProvider = exports.JsonRpcSigner = exports.JsonRpcProvider = exports.JsonRpcApiProvider = exports.FallbackProvider = exports.copyRequest = exports.dummyProvider = exports.TransactionResponse = exports.TransactionReceipt = exports.Log = exports.FeeData = exports.Block = exports.EnsPlugin = exports.GasCostPlugin = exports.NetworkPlugin = exports.Network = exports.Formatter = exports.WrappedSigner = exports.VoidSigner = exports.AbstractSigner = void 0; exports.SocketEventSubscriber = exports.SocketPendingSubscriber = exports.SocketBlockSubscriber = exports.SocketSubscriber = exports.WebSocketProvider = exports.SocketProvider = exports.IpcSocketProvider = exports.InfuraProvider = exports.EtherscanProvider = exports.CloudflareProvider = exports.AnkrProvider = exports.AlchemyProvider = exports.JsonRpcSigner = exports.JsonRpcProvider = exports.JsonRpcApiProvider = exports.FallbackProvider = exports.copyRequest = exports.dummyProvider = exports.TransactionResponse = exports.TransactionReceipt = exports.Log = exports.FeeData = exports.Block = exports.EnsPlugin = exports.GasCostPlugin = exports.NetworkPlugin = exports.Network = exports.Formatter = exports.WrappedSigner = exports.VoidSigner = exports.AbstractSigner = exports.UnmanagedSubscriber = exports.AbstractProvider = void 0;
var abstract_provider_js_1 = require("./abstract-provider.js");
Object.defineProperty(exports, "AbstractProvider", { enumerable: true, get: function () { return abstract_provider_js_1.AbstractProvider; } });
Object.defineProperty(exports, "UnmanagedSubscriber", { enumerable: true, get: function () { return abstract_provider_js_1.UnmanagedSubscriber; } });
var abstract_signer_js_1 = require("./abstract-signer.js"); var abstract_signer_js_1 = require("./abstract-signer.js");
Object.defineProperty(exports, "AbstractSigner", { enumerable: true, get: function () { return abstract_signer_js_1.AbstractSigner; } }); Object.defineProperty(exports, "AbstractSigner", { enumerable: true, get: function () { return abstract_signer_js_1.AbstractSigner; } });
Object.defineProperty(exports, "VoidSigner", { enumerable: true, get: function () { return abstract_signer_js_1.VoidSigner; } }); Object.defineProperty(exports, "VoidSigner", { enumerable: true, get: function () { return abstract_signer_js_1.VoidSigner; } });
@ -58,4 +57,9 @@ var provider_socket_js_1 = require("./provider-socket.js");
Object.defineProperty(exports, "SocketProvider", { enumerable: true, get: function () { return provider_socket_js_1.SocketProvider; } }); Object.defineProperty(exports, "SocketProvider", { enumerable: true, get: function () { return provider_socket_js_1.SocketProvider; } });
var provider_websocket_js_1 = require("./provider-websocket.js"); var provider_websocket_js_1 = require("./provider-websocket.js");
Object.defineProperty(exports, "WebSocketProvider", { enumerable: true, get: function () { return provider_websocket_js_1.WebSocketProvider; } }); Object.defineProperty(exports, "WebSocketProvider", { enumerable: true, get: function () { return provider_websocket_js_1.WebSocketProvider; } });
var provider_socket_js_2 = require("./provider-socket.js");
Object.defineProperty(exports, "SocketSubscriber", { enumerable: true, get: function () { return provider_socket_js_2.SocketSubscriber; } });
Object.defineProperty(exports, "SocketBlockSubscriber", { enumerable: true, get: function () { return provider_socket_js_2.SocketBlockSubscriber; } });
Object.defineProperty(exports, "SocketPendingSubscriber", { enumerable: true, get: function () { return provider_socket_js_2.SocketPendingSubscriber; } });
Object.defineProperty(exports, "SocketEventSubscriber", { enumerable: true, get: function () { return provider_socket_js_2.SocketEventSubscriber; } });
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src.ts/providers/index.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;AAEF,2DAI8B;AAH1B,oHAAA,cAAc,OAAA;AACd,gHAAA,UAAU,OAAA;AACV,mHAAA,aAAa,OAAA;AAEjB;;;;;;;;EAQE;AAEF,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,2DAA+C;AAAtC,6GAAA,OAAO,OAAA;AAEhB,2DAO8B;AAN1B,mHAAA,aAAa,OAAA;AACb,mHAAA,aAAa,OAAA;AACb,+GAAA,SAAS,OAAA;AAMb,6CAWuB;AAVnB,oGAAA,KAAK,OAAA;AACL,sGAAA,OAAO,OAAA;AACP,kGAAA,GAAG,OAAA;AACH,iHAAA,kBAAkB,OAAA;AAClB,kHAAA,mBAAmB,OAAA;AAEnB,4GAAA,aAAa,OAAA;AAEb,0GAAA,WAAW,OAAA;AAIf,+DAA0D;AAAjD,wHAAA,gBAAgB,OAAA;AACzB,6DAA0F;AAAjF,yHAAA,kBAAkB,OAAA;AAAE,sHAAA,eAAe,OAAA;AAAE,oHAAA,aAAa,OAAA;AAE3D,6DAAwD;AAA/C,sHAAA,eAAe,OAAA;AACxB,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AACrB,mEAA8D;AAArD,4HAAA,kBAAkB,OAAA;AAC3B,iEAA4D;AAAnD,0HAAA,iBAAiB,OAAA;AAC1B,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,wDAAwD;AAExD,mEAA4D,CAAC,YAAY;AAChE,kGADA,yCAAiB,OACA;AAC1B,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,iEAA4D;AAAnD,0HAAA,iBAAiB,OAAA"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src.ts/providers/index.ts"],"names":[],"mappings":";AAGA,KAAK;;;AAEL,+DAEgC;AAD5B,wHAAA,gBAAgB,OAAA;AAAE,2HAAA,mBAAmB,OAAA;AAGzC,2DAI8B;AAH1B,oHAAA,cAAc,OAAA;AACd,gHAAA,UAAU,OAAA;AACV,mHAAA,aAAa,OAAA;AAEjB;;;;;;;;EAQE;AAEF,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,2DAA+C;AAAtC,6GAAA,OAAO,OAAA;AAEhB,2DAO8B;AAN1B,mHAAA,aAAa,OAAA;AACb,mHAAA,aAAa,OAAA;AACb,+GAAA,SAAS,OAAA;AAMb,6CAWuB;AAVnB,oGAAA,KAAK,OAAA;AACL,sGAAA,OAAO,OAAA;AACP,kGAAA,GAAG,OAAA;AACH,iHAAA,kBAAkB,OAAA;AAClB,kHAAA,mBAAmB,OAAA;AAEnB,4GAAA,aAAa,OAAA;AAEb,0GAAA,WAAW,OAAA;AAIf,+DAA0D;AAAjD,wHAAA,gBAAgB,OAAA;AACzB,6DAA0F;AAAjF,yHAAA,kBAAkB,OAAA;AAAE,sHAAA,eAAe,OAAA;AAAE,oHAAA,aAAa,OAAA;AAE3D,6DAAwD;AAA/C,sHAAA,eAAe,OAAA;AACxB,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AACrB,mEAA8D;AAArD,4HAAA,kBAAkB,OAAA;AAC3B,iEAA4D;AAAnD,0HAAA,iBAAiB,OAAA;AAC1B,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,wDAAwD;AAExD,mEAA4D,CAAC,YAAY;AAChE,kGADA,yCAAiB,OACA;AAC1B,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,iEAA4D;AAAnD,0HAAA,iBAAiB,OAAA;AAE1B,2DAG8B;AAF1B,sHAAA,gBAAgB,OAAA;AAAE,2HAAA,qBAAqB,OAAA;AAAE,6HAAA,uBAAuB,OAAA;AAChE,2HAAA,qBAAqB,OAAA"}

@ -1,8 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.Network = void 0; exports.Network = void 0;
const logger_js_1 = require("../utils/logger.js"); const index_js_1 = require("../utils/index.js");
const storage_js_1 = require("../utils/storage.js");
const formatter_js_1 = require("./formatter.js"); const formatter_js_1 = require("./formatter.js");
const plugins_network_js_1 = require("./plugins-network.js"); const plugins_network_js_1 = require("./plugins-network.js");
/* * * * /* * * *
@ -60,7 +59,7 @@ const defaultFormatter = new formatter_js_1.Formatter();
class Network { class Network {
#props; #props;
constructor(name, _chainId, formatter) { constructor(name, _chainId, formatter) {
const chainId = logger_js_1.logger.getBigInt(_chainId); const chainId = (0, index_js_1.getBigInt)(_chainId);
if (formatter == null) { if (formatter == null) {
formatter = defaultFormatter; formatter = defaultFormatter;
} }
@ -70,12 +69,12 @@ class Network {
toJSON() { toJSON() {
return { name: this.name, chainId: this.chainId }; return { name: this.name, chainId: this.chainId };
} }
get name() { return (0, storage_js_1.getStore)(this.#props, "name"); } get name() { return (0, index_js_1.getStore)(this.#props, "name"); }
set name(value) { (0, storage_js_1.setStore)(this.#props, "name", value); } set name(value) { (0, index_js_1.setStore)(this.#props, "name", value); }
get chainId() { return (0, storage_js_1.getStore)(this.#props, "chainId"); } get chainId() { return (0, index_js_1.getStore)(this.#props, "chainId"); }
set chainId(value) { (0, storage_js_1.setStore)(this.#props, "chainId", logger_js_1.logger.getBigInt(value, "chainId")); } set chainId(value) { (0, index_js_1.setStore)(this.#props, "chainId", (0, index_js_1.getBigInt)(value, "chainId")); }
get formatter() { return (0, storage_js_1.getStore)(this.#props, "formatter"); } get formatter() { return (0, index_js_1.getStore)(this.#props, "formatter"); }
set formatter(value) { (0, storage_js_1.setStore)(this.#props, "formatter", value); } set formatter(value) { (0, index_js_1.setStore)(this.#props, "formatter", value); }
get plugins() { get plugins() {
return Array.from(this.#props.plugins.values()); return Array.from(this.#props.plugins.values());
} }
@ -134,6 +133,9 @@ class Network {
} }
return gas; return gas;
} }
/**
* Returns a new Network for the %%network%% name or chainId.
*/
static from(network) { static from(network) {
// Default network // Default network
if (network == null) { if (network == null) {
@ -151,7 +153,7 @@ class Network {
if (typeof (network) === "bigint") { if (typeof (network) === "bigint") {
return new Network("unknown", network); return new Network("unknown", network);
} }
logger_js_1.logger.throwArgumentError("unknown network", "network", network); (0, index_js_1.throwArgumentError)("unknown network", "network", network);
} }
// Clonable with network-like abilities // Clonable with network-like abilities
if (typeof (network.clone) === "function") { if (typeof (network.clone) === "function") {
@ -163,7 +165,7 @@ class Network {
// Networkish // Networkish
if (typeof (network) === "object") { if (typeof (network) === "object") {
if (typeof (network.name) !== "string" || typeof (network.chainId) !== "number") { if (typeof (network.name) !== "string" || typeof (network.chainId) !== "number") {
logger_js_1.logger.throwArgumentError("invalid network object name or chainId", "network", network); (0, index_js_1.throwArgumentError)("invalid network object name or chainId", "network", network);
} }
const custom = new Network((network.name), (network.chainId)); const custom = new Network((network.name), (network.chainId));
if (network.ensAddress || network.ensNetwork != null) { if (network.ensAddress || network.ensNetwork != null) {
@ -174,15 +176,19 @@ class Network {
//} //}
return custom; return custom;
} }
return logger_js_1.logger.throwArgumentError("invalid network", "network", network); return (0, index_js_1.throwArgumentError)("invalid network", "network", network);
} }
/**
* Register %%nameOrChainId%% with a function which returns
* an instance of a Network representing that chain.
*/
static register(nameOrChainId, networkFunc) { static register(nameOrChainId, networkFunc) {
if (typeof (nameOrChainId) === "number") { if (typeof (nameOrChainId) === "number") {
nameOrChainId = BigInt(nameOrChainId); nameOrChainId = BigInt(nameOrChainId);
} }
const existing = Networks.get(nameOrChainId); const existing = Networks.get(nameOrChainId);
if (existing) { if (existing) {
logger_js_1.logger.throwArgumentError(`conflicting network for ${JSON.stringify(existing.name)}`, "nameOrChainId", nameOrChainId); (0, index_js_1.throwArgumentError)(`conflicting network for ${JSON.stringify(existing.name)}`, "nameOrChainId", nameOrChainId);
} }
Networks.set(nameOrChainId, networkFunc); Networks.set(nameOrChainId, networkFunc);
} }

File diff suppressed because one or more lines are too long

@ -2,7 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.FeeDataNetworkPlugin = exports.EnsPlugin = exports.GasCostPlugin = exports.NetworkPlugin = void 0; exports.FeeDataNetworkPlugin = exports.EnsPlugin = exports.GasCostPlugin = exports.NetworkPlugin = void 0;
const properties_js_1 = require("../utils/properties.js"); const properties_js_1 = require("../utils/properties.js");
const logger_js_1 = require("../utils/logger.js"); const index_js_1 = require("../utils/index.js");
const EnsAddress = "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"; const EnsAddress = "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
class NetworkPlugin { class NetworkPlugin {
name; name;
@ -34,7 +34,7 @@ class GasCostPlugin extends NetworkPlugin {
value = nullish; value = nullish;
} }
if (typeof (value) !== "number") { if (typeof (value) !== "number") {
logger_js_1.logger.throwArgumentError(`invalud value for ${name}`, "costs", costs); (0, index_js_1.throwArgumentError)(`invalud value for ${name}`, "costs", costs);
} }
props[name] = value; props[name] = value;
} }

@ -1 +1 @@
{"version":3,"file":"plugins-network.js","sourceRoot":"","sources":["../../src.ts/providers/plugins-network.ts"],"names":[],"mappings":"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"} {"version":3,"file":"plugins-network.js","sourceRoot":"","sources":["../../src.ts/providers/plugins-network.ts"],"names":[],"mappings":"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"}

@ -1,10 +1,8 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.AlchemyProvider = void 0; exports.AlchemyProvider = void 0;
const properties_js_1 = require("../utils/properties.js"); const index_js_1 = require("../utils/index.js");
const fetch_js_1 = require("../utils/fetch.js");
const community_js_1 = require("./community.js"); const community_js_1 = require("./community.js");
const logger_js_1 = require("../utils/logger.js");
const network_js_1 = require("./network.js"); const network_js_1 = require("./network.js");
const provider_jsonrpc_js_1 = require("./provider-jsonrpc.js"); const provider_jsonrpc_js_1 = require("./provider-jsonrpc.js");
const defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC"; const defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
@ -33,7 +31,7 @@ function getHost(name) {
case "optimism-kovan": case "optimism-kovan":
return "opt-kovan.g.alchemy.com"; return "opt-kovan.g.alchemy.com";
} }
return logger_js_1.logger.throwArgumentError("unsupported network", "network", name); return (0, index_js_1.throwArgumentError)("unsupported network", "network", name);
} }
class AlchemyProvider extends provider_jsonrpc_js_1.JsonRpcProvider { class AlchemyProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
apiKey; apiKey;
@ -44,7 +42,7 @@ class AlchemyProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
} }
const request = AlchemyProvider.getRequest(network, apiKey); const request = AlchemyProvider.getRequest(network, apiKey);
super(request, network, { staticNetwork: network }); super(request, network, { staticNetwork: network });
(0, properties_js_1.defineProperties)(this, { apiKey }); (0, index_js_1.defineProperties)(this, { apiKey });
} }
_getProvider(chainId) { _getProvider(chainId) {
try { try {
@ -69,13 +67,13 @@ class AlchemyProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
catch (error) { } catch (error) { }
if (data) { if (data) {
if (error) { if (error) {
logger_js_1.logger.throwError("an error occurred during transaction executions", "CALL_EXCEPTION", { (0, index_js_1.throwError)("an error occurred during transaction executions", "CALL_EXCEPTION", {
data data
}); });
} }
return data; return data;
} }
return logger_js_1.logger.throwError("could not parse trace result", "BAD_DATA", { value: trace }); return (0, index_js_1.throwError)("could not parse trace result", "BAD_DATA", { value: trace });
} }
return await super._perform(req); return await super._perform(req);
} }
@ -86,7 +84,7 @@ class AlchemyProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
if (apiKey == null) { if (apiKey == null) {
apiKey = defaultApiKey; apiKey = defaultApiKey;
} }
const request = new fetch_js_1.FetchRequest(`https:/\/${getHost(network.name)}/v2/${apiKey}`); const request = new index_js_1.FetchRequest(`https:/\/${getHost(network.name)}/v2/${apiKey}`);
request.allowGzip = true; request.allowGzip = true;
if (apiKey === defaultApiKey) { if (apiKey === defaultApiKey) {
request.retryFunc = async (request, response, attempt) => { request.retryFunc = async (request, response, attempt) => {

@ -1 +1 @@
{"version":3,"file":"provider-alchemy.js","sourceRoot":"","sources":["../../src.ts/providers/provider-alchemy.ts"],"names":[],"mappings":"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"} {"version":3,"file":"provider-alchemy.js","sourceRoot":"","sources":["../../src.ts/providers/provider-alchemy.ts"],"names":[],"mappings":"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"}

@ -1,10 +1,8 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.AnkrProvider = void 0; exports.AnkrProvider = void 0;
const properties_js_1 = require("../utils/properties.js"); const index_js_1 = require("../utils/index.js");
const fetch_js_1 = require("../utils/fetch.js");
const community_js_1 = require("./community.js"); const community_js_1 = require("./community.js");
const logger_js_1 = require("../utils/logger.js");
const network_js_1 = require("./network.js"); const network_js_1 = require("./network.js");
const provider_jsonrpc_js_1 = require("./provider-jsonrpc.js"); const provider_jsonrpc_js_1 = require("./provider-jsonrpc.js");
const defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972"; const defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";
@ -23,7 +21,7 @@ function getHost(name) {
case "arbitrum": case "arbitrum":
return "rpc.ankr.com/arbitrum"; return "rpc.ankr.com/arbitrum";
} }
return logger_js_1.logger.throwArgumentError("unsupported network", "network", name); return (0, index_js_1.throwArgumentError)("unsupported network", "network", name);
} }
class AnkrProvider extends provider_jsonrpc_js_1.JsonRpcProvider { class AnkrProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
apiKey; apiKey;
@ -36,7 +34,7 @@ class AnkrProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
const options = { polling: true, staticNetwork: network }; const options = { polling: true, staticNetwork: network };
const request = AnkrProvider.getRequest(network, apiKey); const request = AnkrProvider.getRequest(network, apiKey);
super(request, network, options); super(request, network, options);
(0, properties_js_1.defineProperties)(this, { apiKey }); (0, index_js_1.defineProperties)(this, { apiKey });
} }
_getProvider(chainId) { _getProvider(chainId) {
try { try {
@ -49,7 +47,7 @@ class AnkrProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
if (apiKey == null) { if (apiKey == null) {
apiKey = defaultApiKey; apiKey = defaultApiKey;
} }
const request = new fetch_js_1.FetchRequest(`https:/\/${getHost(network.name)}/${apiKey}`); const request = new index_js_1.FetchRequest(`https:/\/${getHost(network.name)}/${apiKey}`);
request.allowGzip = true; request.allowGzip = true;
if (apiKey === defaultApiKey) { if (apiKey === defaultApiKey) {
request.retryFunc = async (request, response, attempt) => { request.retryFunc = async (request, response, attempt) => {

@ -1 +1 @@
{"version":3,"file":"provider-ankr.js","sourceRoot":"","sources":["../../src.ts/providers/provider-ankr.ts"],"names":[],"mappings":";;;AAAA,0DAA0D;AAC1D,gDAAiD;AAGjD,iDAAqD;AACrD,kDAA4C;AAC5C,6CAAuC;AACvC,+DAAwD;AAMxD,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAEzF,SAAS,OAAO,CAAC,IAAY;IACzB,QAAQ,IAAI,EAAE;QACV,KAAK,WAAW;YACZ,OAAO,kBAAkB,CAAC;QAC9B,KAAK,SAAS;YACV,OAAO,0BAA0B,CAAC;QACtC,KAAK,SAAS;YACV,OAAO,0BAA0B,CAAC;QACtC,KAAK,QAAQ;YACT,OAAO,yBAAyB,CAAC;QACrC,KAAK,OAAO;YACR,OAAO,sBAAsB,CAAC;QAClC,KAAK,UAAU;YACX,OAAO,uBAAuB,CAAC;KACtC;IACD,OAAO,kBAAM,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC;AAGD,MAAa,YAAa,SAAQ,qCAAe;IACpC,MAAM,CAAU;IAEzB,YAAY,WAAuB,WAAW,EAAE,MAAsB;QAClE,MAAM,OAAO,GAAG,oBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,IAAI,EAAE;YAAE,MAAM,GAAG,aAAa,CAAC;SAAE;QAE/C,sDAAsD;QACtD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;QAE1D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzD,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAEjC,IAAA,gCAAgB,EAAe,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,OAAe;QACxB,IAAI;YACA,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACjD;QAAC,OAAO,KAAK,EAAE,GAAG;QACnB,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAgB,EAAE,MAAsB;QACtD,IAAI,MAAM,IAAI,IAAI,EAAE;YAAE,MAAM,GAAG,aAAa,CAAC;SAAE;QAE/C,MAAM,OAAO,GAAG,IAAI,uBAAY,CAAC,YAAa,OAAO,CAAC,OAAO,CAAC,IAAI,CAAE,IAAK,MAAO,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAEzB,IAAI,MAAM,KAAK,aAAa,EAAE;YAC1B,OAAO,CAAC,SAAS,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;gBACrD,IAAA,kCAAmB,EAAC,cAAc,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;SACL;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,mBAAmB;QACf,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IAC3C,CAAC;CACJ;AA1CD,oCA0CC"} {"version":3,"file":"provider-ankr.js","sourceRoot":"","sources":["../../src.ts/providers/provider-ankr.ts"],"names":[],"mappings":";;;AAAA,gDAE2B;AAG3B,iDAAqD;AACrD,6CAAuC;AACvC,+DAAwD;AAMxD,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAEzF,SAAS,OAAO,CAAC,IAAY;IACzB,QAAQ,IAAI,EAAE;QACV,KAAK,WAAW;YACZ,OAAO,kBAAkB,CAAC;QAC9B,KAAK,SAAS;YACV,OAAO,0BAA0B,CAAC;QACtC,KAAK,SAAS;YACV,OAAO,0BAA0B,CAAC;QACtC,KAAK,QAAQ;YACT,OAAO,yBAAyB,CAAC;QACrC,KAAK,OAAO;YACR,OAAO,sBAAsB,CAAC;QAClC,KAAK,UAAU;YACX,OAAO,uBAAuB,CAAC;KACtC;IACD,OAAO,IAAA,6BAAkB,EAAC,qBAAqB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAGD,MAAa,YAAa,SAAQ,qCAAe;IACpC,MAAM,CAAU;IAEzB,YAAY,WAAuB,WAAW,EAAE,MAAsB;QAClE,MAAM,OAAO,GAAG,oBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,IAAI,EAAE;YAAE,MAAM,GAAG,aAAa,CAAC;SAAE;QAE/C,sDAAsD;QACtD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;QAE1D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzD,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAEjC,IAAA,2BAAgB,EAAe,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,OAAe;QACxB,IAAI;YACA,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACjD;QAAC,OAAO,KAAK,EAAE,GAAG;QACnB,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAgB,EAAE,MAAsB;QACtD,IAAI,MAAM,IAAI,IAAI,EAAE;YAAE,MAAM,GAAG,aAAa,CAAC;SAAE;QAE/C,MAAM,OAAO,GAAG,IAAI,uBAAY,CAAC,YAAa,OAAO,CAAC,OAAO,CAAC,IAAI,CAAE,IAAK,MAAO,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAEzB,IAAI,MAAM,KAAK,aAAa,EAAE;YAC1B,OAAO,CAAC,SAAS,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;gBACrD,IAAA,kCAAmB,EAAC,cAAc,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;SACL;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,mBAAmB;QACf,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IAC3C,CAAC;CACJ;AA1CD,oCA0CC"}

@ -1,14 +1,14 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.CloudflareProvider = void 0; exports.CloudflareProvider = void 0;
const logger_js_1 = require("../utils/logger.js"); const index_js_1 = require("../utils/index.js");
const network_js_1 = require("./network.js"); const network_js_1 = require("./network.js");
const provider_jsonrpc_js_1 = require("./provider-jsonrpc.js"); const provider_jsonrpc_js_1 = require("./provider-jsonrpc.js");
class CloudflareProvider extends provider_jsonrpc_js_1.JsonRpcProvider { class CloudflareProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
constructor(_network = "homestead") { constructor(_network = "homestead") {
const network = network_js_1.Network.from(_network); const network = network_js_1.Network.from(_network);
if (network.name !== "homestead") { if (network.name !== "homestead") {
return logger_js_1.logger.throwArgumentError("unsupported network", "network", _network); return (0, index_js_1.throwArgumentError)("unsupported network", "network", _network);
} }
super("https:/\/cloudflare-eth.com/", network, { staticNetwork: network }); super("https:/\/cloudflare-eth.com/", network, { staticNetwork: network });
} }

@ -1 +1 @@
{"version":3,"file":"provider-cloudflare.js","sourceRoot":"","sources":["../../src.ts/providers/provider-cloudflare.ts"],"names":[],"mappings":";;;AACA,kDAA4C;AAC5C,6CAAuC;AACvC,+DAAwD;AAKxD,MAAa,kBAAmB,SAAQ,qCAAe;IACnD,YAAY,WAAuB,WAAW;QAC1C,MAAM,OAAO,GAAG,oBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;YAC9B,OAAO,kBAAM,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAChF;QACD,KAAK,CAAC,8BAA8B,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;CACJ;AARD,gDAQC"} {"version":3,"file":"provider-cloudflare.js","sourceRoot":"","sources":["../../src.ts/providers/provider-cloudflare.ts"],"names":[],"mappings":";;;AAAA,gDAAuD;AAEvD,6CAAuC;AACvC,+DAAwD;AAKxD,MAAa,kBAAmB,SAAQ,qCAAe;IACnD,YAAY,WAAuB,WAAW;QAC1C,MAAM,OAAO,GAAG,oBAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;YAC9B,OAAO,IAAA,6BAAkB,EAAC,qBAAqB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SACzE;QACD,KAAK,CAAC,8BAA8B,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;CACJ;AARD,gDAQC"}

@ -1,19 +1,10 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.EtherscanProvider = exports.EtherscanPlugin = void 0; exports.EtherscanProvider = exports.EtherscanPlugin = void 0;
const data_js_1 = require("../utils/data.js"); const index_js_1 = require("../utils/index.js");
const maths_js_1 = require("../utils/maths.js");
const errors_js_1 = require("../utils/errors.js");
const properties_js_1 = require("../utils/properties.js");
const utf8_js_1 = require("../utils/utf8.js");
const fetch_js_1 = require("../utils/fetch.js");
if (false) {
console.log(data_js_1.isHexString, errors_js_1.isError);
} // @TODO
const abstract_provider_js_1 = require("./abstract-provider.js"); const abstract_provider_js_1 = require("./abstract-provider.js");
const network_js_1 = require("./network.js"); const network_js_1 = require("./network.js");
const plugins_network_js_1 = require("./plugins-network.js"); const plugins_network_js_1 = require("./plugins-network.js");
const logger_js_1 = require("../utils/logger.js");
const defaultApiKey = "9D13ZE7XSBTJ94N9BNJ2MA33VMAY2YPIRB"; const defaultApiKey = "9D13ZE7XSBTJ94N9BNJ2MA33VMAY2YPIRB";
const EtherscanPluginId = "org.ethers.plugins.etherscan"; const EtherscanPluginId = "org.ethers.plugins.etherscan";
class EtherscanPlugin extends plugins_network_js_1.NetworkPlugin { class EtherscanPlugin extends plugins_network_js_1.NetworkPlugin {
@ -22,7 +13,7 @@ class EtherscanPlugin extends plugins_network_js_1.NetworkPlugin {
constructor(baseUrl, communityApiKey) { constructor(baseUrl, communityApiKey) {
super(EtherscanPluginId); super(EtherscanPluginId);
//if (communityApiKey == null) { communityApiKey = null; } //if (communityApiKey == null) { communityApiKey = null; }
(0, properties_js_1.defineProperties)(this, { baseUrl, communityApiKey }); (0, index_js_1.defineProperties)(this, { baseUrl, communityApiKey });
} }
clone() { clone() {
return new EtherscanPlugin(this.baseUrl, this.communityApiKey); return new EtherscanPlugin(this.baseUrl, this.communityApiKey);
@ -44,7 +35,7 @@ class EtherscanProvider extends abstract_provider_js_1.AbstractProvider {
apiKey = defaultApiKey; apiKey = defaultApiKey;
} }
} }
(0, properties_js_1.defineProperties)(this, { apiKey, network }); (0, index_js_1.defineProperties)(this, { apiKey, network });
// Test that the network is supported by Etherscan // Test that the network is supported by Etherscan
this.getBaseUrl(); this.getBaseUrl();
} }
@ -66,7 +57,7 @@ class EtherscanProvider extends abstract_provider_js_1.AbstractProvider {
return "https:/\/api-goerli.etherscan.io"; return "https:/\/api-goerli.etherscan.io";
default: default:
} }
return logger_js_1.logger.throwArgumentError("unsupported network", "network", this.network); return (0, index_js_1.throwArgumentError)("unsupported network", "network", this.network);
} }
getUrl(module, params) { getUrl(module, params) {
const query = Object.keys(params).reduce((accum, key) => { const query = Object.keys(params).reduce((accum, key) => {
@ -100,9 +91,9 @@ class EtherscanProvider extends abstract_provider_js_1.AbstractProvider {
provider: this provider: this
}); });
*/ */
const request = new fetch_js_1.FetchRequest(url); const request = new index_js_1.FetchRequest(url);
request.processFunc = async (request, response) => { request.processFunc = async (request, response) => {
const result = response.hasBody() ? JSON.parse((0, utf8_js_1.toUtf8String)(response.body)) : {}; const result = response.hasBody() ? JSON.parse((0, index_js_1.toUtf8String)(response.body)) : {};
const throttle = ((typeof (result.result) === "string") ? result.result : "").toLowerCase().indexOf("rate limit") >= 0; const throttle = ((typeof (result.result) === "string") ? result.result : "").toLowerCase().indexOf("rate limit") >= 0;
if (module === "proxy") { if (module === "proxy") {
// This JSON response indicates we are being throttled // This JSON response indicates we are being throttled
@ -136,7 +127,7 @@ class EtherscanProvider extends abstract_provider_js_1.AbstractProvider {
provider: this provider: this
}); });
*/ */
const result = JSON.parse((0, utf8_js_1.toUtf8String)(response.body)); const result = JSON.parse((0, index_js_1.toUtf8String)(response.body));
if (module === "proxy") { if (module === "proxy") {
if (result.jsonrpc != "2.0") { if (result.jsonrpc != "2.0") {
// @TODO: not any // @TODO: not any
@ -186,7 +177,7 @@ class EtherscanProvider extends abstract_provider_js_1.AbstractProvider {
} }
// Quantity-types require no leading zero, unless 0 // Quantity-types require no leading zero, unless 0
if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) { if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {
value = (0, maths_js_1.toQuantity)((0, data_js_1.hexlify)(value)); value = (0, index_js_1.toQuantity)((0, index_js_1.hexlify)(value));
} }
else if (key === "accessList") { else if (key === "accessList") {
value = "[" + this.network.formatter.accessList(value).map((set) => { value = "[" + this.network.formatter.accessList(value).map((set) => {
@ -194,7 +185,7 @@ class EtherscanProvider extends abstract_provider_js_1.AbstractProvider {
}).join(",") + "]"; }).join(",") + "]";
} }
else { else {
value = (0, data_js_1.hexlify)(value); value = (0, index_js_1.hexlify)(value);
} }
result[key] = value; result[key] = value;
} }
@ -322,7 +313,7 @@ class EtherscanProvider extends abstract_provider_js_1.AbstractProvider {
boolean: (req.includeTransactions ? "true" : "false") boolean: (req.includeTransactions ? "true" : "false")
}); });
} }
return logger_js_1.logger.throwError("getBlock by blockHash not supported by Etherscan", "UNSUPPORTED_OPERATION", { return (0, index_js_1.throwError)("getBlock by blockHash not supported by Etherscan", "UNSUPPORTED_OPERATION", {
operation: "getBlock(blockHash)" operation: "getBlock(blockHash)"
}); });
case "getTransaction": case "getTransaction":

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More