admin: update dist files
This commit is contained in:
parent
067536a837
commit
406a1d3d57
10596
dist/ethers.js
vendored
10596
dist/ethers.js
vendored
File diff suppressed because it is too large
Load Diff
1
dist/ethers.js.map
vendored
Normal file
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
2
dist/ethers.min.js
vendored
File diff suppressed because one or more lines are too long
1020
dist/wordlists-extra.js
vendored
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
1
dist/wordlists-extra.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
dist/wordlists-extra.min.js
vendored
2
dist/wordlists-extra.min.js
vendored
File diff suppressed because one or more lines are too long
111
lib.commonjs/_tests/create-provider.js
Normal file
111
lib.commonjs/_tests/create-provider.js
Normal file
@ -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
|
1
lib.commonjs/_tests/create-provider.js.map
Normal file
1
lib.commonjs/_tests/create-provider.js.map
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"create-provider.js","sourceRoot":"","sources":["../../src.ts/_tests/create-provider.ts"],"names":[],"mappings":"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"}
|
33
lib.commonjs/_tests/test-providers-avatar.js
Normal file
33
lib.commonjs/_tests/test-providers-avatar.js
Normal file
@ -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
|
1
lib.commonjs/_tests/test-providers-avatar.js.map
Normal file
1
lib.commonjs/_tests/test-providers-avatar.js.map
Normal file
@ -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"}
|
141
lib.commonjs/_tests/test-providers-ccip.js
Normal file
141
lib.commonjs/_tests/test-providers-ccip.js
Normal file
@ -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
|
1
lib.commonjs/_tests/test-providers-ccip.js.map
Normal file
1
lib.commonjs/_tests/test-providers-ccip.js.map
Normal file
@ -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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"}
|
20
lib.commonjs/_tests/test-providers-wildcard.js
Normal file
20
lib.commonjs/_tests/test-providers-wildcard.js
Normal file
@ -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
|
1
lib.commonjs/_tests/test-providers-wildcard.js.map
Normal file
1
lib.commonjs/_tests/test-providers-wildcard.js.map
Normal file
@ -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":";AAAA,mEAAmE;;;AAEnE,kDAA4C;AAE5C,kEAA2E;AAC3E,oDAAmD;AACnD,gDAA+C;AAC/C,oDAAmD;AACnD,gDAA+C;AAC/C,4DAA0D;AAC1D,8CAA6C;AAC7C,kDAAiD;AACjD,kDAAiD;AACjD,gDAA+C;AAC/C,iDAA2C;AAK3C,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACrD,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAExD,MAAa,QAAQ;IAEjB,SAAS,CAAC,KAAgB;QACtB,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;YACjB,OAAO,IAAI,qBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAC7F;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;YACjB,OAAO,IAAI,qBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SACrF;QAED,QAAQ,KAAK,CAAC,QAAQ,EAAE;YACpB,KAAK,SAAS;gBACV,OAAO,IAAI,yBAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,MAAM;gBACP,OAAO,IAAI,yBAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,QAAQ;gBACT,OAAO,IAAI,uBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,OAAO;gBACR,OAAO,IAAI,qBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,EAAE;gBACH,OAAO,IAAI,mBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACxC;QAED,cAAc;QACd,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE;YACP,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC9C,kBAAM,CAAC,kBAAkB,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;aACpF;YACD,OAAO,IAAI,uBAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SACtE;QAED,cAAc;QACd,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE;YACP,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE;gBACzB,kBAAM,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;aACrE;YACD,OAAO,IAAI,gCAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAChD;QAED,OAAO,kBAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,eAAe,CAAC,KAAwC;QACpD,MAAM,MAAM,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,IAAI,qBAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,KAAwC,EAAE,MAA0B;QACvE,kBAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QAExF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,CAAC,IAAI,qBAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,IAAI,0BAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAwC,EAAE,IAAe,EAAE,KAAe;QAC7E,MAAM,MAAM,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,IAAI,qBAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,0BAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;CACJ;AArED,4BAqEC;AAGY,QAAA,eAAe,GAAa,IAAI,QAAQ,EAAE,CAAC"}
|
{"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);
|
}
|
||||||
}
|
format(format = "sighash") {
|
||||||
if (format === FormatType.json) {
|
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);
|
}
|
||||||
}
|
format(format = "sighash") {
|
||||||
if (format === FormatType.json) {
|
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);
|
}
|
||||||
}
|
format(format = "sighash") {
|
||||||
if (format === FormatType.json) {
|
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,87 +437,124 @@ 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> = [ ];
|
||||||
|
|
||||||
try { matches.push(this.getFunction(fragment)); } catch (error) { }
|
try { matches.push(this.getFunction(fragment)); } catch (error) { }
|
||||||
try { matches.push(this.getError(<string>fragment)); } catch (_) { }
|
try { matches.push(this.getError(<string>fragment)); } catch (_) { }
|
||||||
|
|
||||||
if (matches.length === 0) {
|
if (matches.length === 0) {
|
||||||
logger.throwArgumentError("unknown fragment", "key", fragment);
|
logger.throwArgumentError("unknown fragment", "key", fragment);
|
||||||
} else if (matches.length > 1) {
|
} else if (matches.length > 1) {
|
||||||
logger.throwArgumentError("ambiguous fragment matches function and error", "key", fragment);
|
logger.throwArgumentError("ambiguous fragment matches function and error", "key", fragment);
|
||||||
}
|
|
||||||
|
|
||||||
fragment = matches[0];
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
return (0, data_js_1.dataSlice)((0, index_js_2.id)(fragment.format()), 0, 4);
|
fragment = matches[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return dataSlice(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));
|
|
||||||
}
|
}
|
||||||
// Encode the data for a function call (e.g. tx.data)
|
/**
|
||||||
encodeFunctionData(fragment, values) {
|
* Encodes the ``tx.data`` for a transaction that calls the function
|
||||||
if (typeof (fragment) === "string") {
|
* specified (see [[getFunction]] for valid values for %%key%%) with
|
||||||
fragment = this.getFunction(fragment);
|
* the %%values%%.
|
||||||
}
|
*/
|
||||||
return (0, data_js_1.concat)([
|
encodeFunctionData(key, values) {
|
||||||
this.getSelector(fragment),
|
const fragment = (typeof (key) === "string") ? this.getFunction(key) : key;
|
||||||
|
return (0, index_js_3.concat)([
|
||||||
|
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":";;;AAAA,mDAAgD;AAChD,kDAA4C;AAG5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAEzB,SAAS,kBAAkB,CAAC,OAAe;IAC3C,sCAAsC;IACtC,2EAA2E;IAC3E,OAAO;IAEH,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACxC;IAED,MAAM,MAAM,GAAG,kBAAM,CAAC,QAAQ,CAAC,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;QAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC7C;KACJ;IAED,OAAO,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,uEAAuE;AAEvE,sBAAsB;AACtB,MAAM,UAAU,GAAoC,EAAG,CAAC;AACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CAAE;AACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;CAAE;AAE1F,yEAAyE;AACzE,wDAAwD;AACxD,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,SAAS,YAAY,CAAC,OAAe;IACjC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAChC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAEhE,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEhF,kEAAkE;IAClE,OAAO,QAAQ,CAAC,MAAM,IAAI,UAAU,EAAC;QACjC,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC9C,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC1E;IAED,IAAI,QAAQ,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAAE,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;KAAE;IAE1D,OAAO,QAAQ,CAAC;AACpB,CAAC;AAAA,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC;IAAY,CAAC;IACzB,MAAM,MAAM,GAA2B,EAAG,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,sCAAsC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC,EAAE,CAAC;AAEL,SAAS,UAAU,CAAC,KAAa;IAC7B,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE5B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9C;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAgB,UAAU,CAAC,OAAe;IAEtC,IAAI,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;QAC9B,kBAAM,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACpE;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE;QAEzC,wBAAwB;QACxB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;YAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;SAAE;QAEnE,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE3C,kDAAkD;QAClD,IAAI,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,MAAM,KAAK,OAAO,EAAE;YACtE,kBAAM,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SACzE;QAED,OAAO,MAAM,CAAC;KACjB;IAED,4CAA4C;IAC5C,IAAI,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE;QACjD,4CAA4C;QAC5C,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,EAAE;YACnD,kBAAM,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SACtE;QAED,IAAI,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE;YAAE,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;SAAE;QACrD,OAAQ,kBAAkB,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;KAC7C;IAED,OAAO,kBAAM,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAlCD,gCAkCC;AAED,SAAgB,cAAc,CAAC,OAAe;IAC1C,2EAA2E;IAC3E,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE;QAAE,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;KAAE;IACrD,OAAO,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AACzD,CAAC;AALD,wCAKC"}
|
{"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":"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"}
|
{"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":"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"}
|
{"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":"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"}
|
@ -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
Loading…
Reference in New Issue
Block a user