@snapshot-labs/snapshot.js 0.12.0-beta.5 → 0.12.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/snapshot.cjs.js +34 -19
- package/dist/snapshot.esm.js +34 -19
- package/dist/snapshot.min.js +2 -2
- package/dist/src/utils.d.ts +1 -1
- package/package.json +4 -3
- package/src/networks.json +6 -6
- package/src/sign/hashedTypes.json +2 -1
- package/src/sign/index.ts +8 -2
- package/src/sign/types.ts +1 -0
- package/src/utils.spec.js +85 -1
- package/src/utils.ts +25 -15
- package/src/verify/starknet.spec.ts +12 -0
package/dist/snapshot.cjs.js
CHANGED
|
@@ -299,7 +299,9 @@ class Client {
|
|
|
299
299
|
// @ts-ignore
|
|
300
300
|
const signer = (web3 === null || web3 === void 0 ? void 0 : web3.getSigner) ? web3.getSigner() : web3;
|
|
301
301
|
const checksumAddress = address.getAddress(address$1);
|
|
302
|
-
message.from = message.from
|
|
302
|
+
message.from = message.from
|
|
303
|
+
? address.getAddress(message.from).toLowerCase()
|
|
304
|
+
: checksumAddress.toLowerCase();
|
|
303
305
|
if (!message.timestamp)
|
|
304
306
|
message.timestamp = parseInt((Date.now() / 1e3).toFixed());
|
|
305
307
|
const domainData = Object.assign({}, domain);
|
|
@@ -309,7 +311,11 @@ class Client {
|
|
|
309
311
|
}
|
|
310
312
|
const data = { domain: domainData, types, message };
|
|
311
313
|
const sig = yield signer._signTypedData(domainData, data.types, message);
|
|
312
|
-
return yield this.send({
|
|
314
|
+
return yield this.send({
|
|
315
|
+
address: checksumAddress.toLowerCase(),
|
|
316
|
+
sig,
|
|
317
|
+
data
|
|
318
|
+
});
|
|
313
319
|
});
|
|
314
320
|
}
|
|
315
321
|
send(envelop) {
|
|
@@ -1695,7 +1701,7 @@ var networks = {
|
|
|
1695
1701
|
},
|
|
1696
1702
|
"56": {
|
|
1697
1703
|
key: "56",
|
|
1698
|
-
name: "
|
|
1704
|
+
name: "BNB Smart Chain",
|
|
1699
1705
|
shortName: "BSC",
|
|
1700
1706
|
chainId: 56,
|
|
1701
1707
|
network: "mainnet",
|
|
@@ -1712,7 +1718,7 @@ var networks = {
|
|
|
1712
1718
|
url: "https://bscscan.com"
|
|
1713
1719
|
},
|
|
1714
1720
|
start: 461230,
|
|
1715
|
-
logo: "ipfs://
|
|
1721
|
+
logo: "ipfs://bafkreibll4la7wqerzs7zwxjne2j7ayynbg2wlenemssoahxxj5rbt6c64"
|
|
1716
1722
|
},
|
|
1717
1723
|
"61": {
|
|
1718
1724
|
key: "61",
|
|
@@ -1799,7 +1805,7 @@ var networks = {
|
|
|
1799
1805
|
},
|
|
1800
1806
|
"97": {
|
|
1801
1807
|
key: "97",
|
|
1802
|
-
name: "
|
|
1808
|
+
name: "BNB Smart Chain Testnet",
|
|
1803
1809
|
shortName: "BSC Testnet",
|
|
1804
1810
|
chainId: 97,
|
|
1805
1811
|
network: "testnet",
|
|
@@ -1813,7 +1819,7 @@ var networks = {
|
|
|
1813
1819
|
url: "https://testnet.bscscan.com"
|
|
1814
1820
|
},
|
|
1815
1821
|
start: 3599656,
|
|
1816
|
-
logo: "ipfs://
|
|
1822
|
+
logo: "ipfs://bafkreibll4la7wqerzs7zwxjne2j7ayynbg2wlenemssoahxxj5rbt6c64"
|
|
1817
1823
|
},
|
|
1818
1824
|
"100": {
|
|
1819
1825
|
key: "100",
|
|
@@ -2976,7 +2982,7 @@ var networks = {
|
|
|
2976
2982
|
url: "https://blastscan.io"
|
|
2977
2983
|
},
|
|
2978
2984
|
start: 88189,
|
|
2979
|
-
logo: "ipfs://
|
|
2985
|
+
logo: "ipfs://bafkreicqhrimt2zyp2kvhmbpvffxlmxovkg5vw6zkissyzibcfy45kbvrm"
|
|
2980
2986
|
},
|
|
2981
2987
|
"84532": {
|
|
2982
2988
|
key: "84532",
|
|
@@ -3630,8 +3636,10 @@ function fetchData(_a) {
|
|
|
3630
3636
|
});
|
|
3631
3637
|
}
|
|
3632
3638
|
|
|
3633
|
-
const
|
|
3634
|
-
|
|
3639
|
+
const ENS_REGISTRY = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
|
|
3640
|
+
const ENS_ABI = [
|
|
3641
|
+
'function text(bytes32 node, string calldata key) external view returns (string memory)',
|
|
3642
|
+
'function resolver(bytes32 node) view returns (address)' // ENS registry ABI
|
|
3635
3643
|
];
|
|
3636
3644
|
const EMPTY_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
3637
3645
|
const scoreApiHeaders = {
|
|
@@ -3686,7 +3694,7 @@ addErrors__default['default'](ajv);
|
|
|
3686
3694
|
ajv.addFormat('address', {
|
|
3687
3695
|
validate: (value) => {
|
|
3688
3696
|
try {
|
|
3689
|
-
return address.
|
|
3697
|
+
return value === address.getAddress(value);
|
|
3690
3698
|
}
|
|
3691
3699
|
catch (e) {
|
|
3692
3700
|
return false;
|
|
@@ -3696,7 +3704,7 @@ ajv.addFormat('address', {
|
|
|
3696
3704
|
ajv.addFormat('starknetAddress', {
|
|
3697
3705
|
validate: (value) => {
|
|
3698
3706
|
try {
|
|
3699
|
-
return
|
|
3707
|
+
return starknet$1.validateAndParseAddress(value) === value;
|
|
3700
3708
|
}
|
|
3701
3709
|
catch (e) {
|
|
3702
3710
|
return false;
|
|
@@ -4039,14 +4047,22 @@ function validateSchema(schema, data, options = {
|
|
|
4039
4047
|
}
|
|
4040
4048
|
function getEnsTextRecord(ens_1, record_1) {
|
|
4041
4049
|
return __awaiter(this, arguments, void 0, function* (ens, record, network = '1', options = {}) {
|
|
4042
|
-
|
|
4043
|
-
const ensResolvers =
|
|
4044
|
-
networks[
|
|
4045
|
-
networks['1'].ensResolvers;
|
|
4050
|
+
var _a, _b;
|
|
4051
|
+
const { ensResolvers = ((_a = networks[network]) === null || _a === void 0 ? void 0 : _a.ensResolvers) ||
|
|
4052
|
+
networks['1'].ensResolvers, broviderUrl } = options, multicallOptions = __rest(options, ["ensResolvers", "broviderUrl"]);
|
|
4046
4053
|
const ensHash = hash.namehash(hash.ensNormalize(ens));
|
|
4047
4054
|
const provider = getProvider(network, { broviderUrl });
|
|
4048
|
-
const
|
|
4049
|
-
|
|
4055
|
+
const calls = [
|
|
4056
|
+
[ENS_REGISTRY, 'resolver', [ensHash]], // Query for resolver from registry
|
|
4057
|
+
...ensResolvers.map((address) => [
|
|
4058
|
+
address,
|
|
4059
|
+
'text',
|
|
4060
|
+
[ensHash, record]
|
|
4061
|
+
]) // Query for text record from each resolver
|
|
4062
|
+
];
|
|
4063
|
+
const [[resolverAddress], ...textRecords] = yield multicall(network, provider, ENS_ABI, calls, multicallOptions);
|
|
4064
|
+
const resolverIndex = ensResolvers.indexOf(resolverAddress);
|
|
4065
|
+
return resolverIndex !== -1 ? (_b = textRecords[resolverIndex]) === null || _b === void 0 ? void 0 : _b[0] : null;
|
|
4050
4066
|
});
|
|
4051
4067
|
}
|
|
4052
4068
|
function getSpaceUri(id_1) {
|
|
@@ -4062,9 +4078,8 @@ function getSpaceUri(id_1) {
|
|
|
4062
4078
|
}
|
|
4063
4079
|
function getEnsOwner(ens_1) {
|
|
4064
4080
|
return __awaiter(this, arguments, void 0, function* (ens, network = '1', options = {}) {
|
|
4065
|
-
const registryAddress = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
|
|
4066
4081
|
const provider = getProvider(network, options);
|
|
4067
|
-
const ensRegistry = new contracts.Contract(
|
|
4082
|
+
const ensRegistry = new contracts.Contract(ENS_REGISTRY, ['function owner(bytes32) view returns (address)'], provider);
|
|
4068
4083
|
const ensNameWrapper = options.ensNameWrapper || networks[network].ensNameWrapper;
|
|
4069
4084
|
const ensHash = hash.namehash(hash.ensNormalize(ens));
|
|
4070
4085
|
let owner = yield ensRegistry.owner(ensHash);
|
package/dist/snapshot.esm.js
CHANGED
|
@@ -289,7 +289,9 @@ class Client {
|
|
|
289
289
|
// @ts-ignore
|
|
290
290
|
const signer = (web3 === null || web3 === void 0 ? void 0 : web3.getSigner) ? web3.getSigner() : web3;
|
|
291
291
|
const checksumAddress = getAddress(address);
|
|
292
|
-
message.from = message.from
|
|
292
|
+
message.from = message.from
|
|
293
|
+
? getAddress(message.from).toLowerCase()
|
|
294
|
+
: checksumAddress.toLowerCase();
|
|
293
295
|
if (!message.timestamp)
|
|
294
296
|
message.timestamp = parseInt((Date.now() / 1e3).toFixed());
|
|
295
297
|
const domainData = Object.assign({}, domain);
|
|
@@ -299,7 +301,11 @@ class Client {
|
|
|
299
301
|
}
|
|
300
302
|
const data = { domain: domainData, types, message };
|
|
301
303
|
const sig = yield signer._signTypedData(domainData, data.types, message);
|
|
302
|
-
return yield this.send({
|
|
304
|
+
return yield this.send({
|
|
305
|
+
address: checksumAddress.toLowerCase(),
|
|
306
|
+
sig,
|
|
307
|
+
data
|
|
308
|
+
});
|
|
303
309
|
});
|
|
304
310
|
}
|
|
305
311
|
send(envelop) {
|
|
@@ -1685,7 +1691,7 @@ var networks = {
|
|
|
1685
1691
|
},
|
|
1686
1692
|
"56": {
|
|
1687
1693
|
key: "56",
|
|
1688
|
-
name: "
|
|
1694
|
+
name: "BNB Smart Chain",
|
|
1689
1695
|
shortName: "BSC",
|
|
1690
1696
|
chainId: 56,
|
|
1691
1697
|
network: "mainnet",
|
|
@@ -1702,7 +1708,7 @@ var networks = {
|
|
|
1702
1708
|
url: "https://bscscan.com"
|
|
1703
1709
|
},
|
|
1704
1710
|
start: 461230,
|
|
1705
|
-
logo: "ipfs://
|
|
1711
|
+
logo: "ipfs://bafkreibll4la7wqerzs7zwxjne2j7ayynbg2wlenemssoahxxj5rbt6c64"
|
|
1706
1712
|
},
|
|
1707
1713
|
"61": {
|
|
1708
1714
|
key: "61",
|
|
@@ -1789,7 +1795,7 @@ var networks = {
|
|
|
1789
1795
|
},
|
|
1790
1796
|
"97": {
|
|
1791
1797
|
key: "97",
|
|
1792
|
-
name: "
|
|
1798
|
+
name: "BNB Smart Chain Testnet",
|
|
1793
1799
|
shortName: "BSC Testnet",
|
|
1794
1800
|
chainId: 97,
|
|
1795
1801
|
network: "testnet",
|
|
@@ -1803,7 +1809,7 @@ var networks = {
|
|
|
1803
1809
|
url: "https://testnet.bscscan.com"
|
|
1804
1810
|
},
|
|
1805
1811
|
start: 3599656,
|
|
1806
|
-
logo: "ipfs://
|
|
1812
|
+
logo: "ipfs://bafkreibll4la7wqerzs7zwxjne2j7ayynbg2wlenemssoahxxj5rbt6c64"
|
|
1807
1813
|
},
|
|
1808
1814
|
"100": {
|
|
1809
1815
|
key: "100",
|
|
@@ -2966,7 +2972,7 @@ var networks = {
|
|
|
2966
2972
|
url: "https://blastscan.io"
|
|
2967
2973
|
},
|
|
2968
2974
|
start: 88189,
|
|
2969
|
-
logo: "ipfs://
|
|
2975
|
+
logo: "ipfs://bafkreicqhrimt2zyp2kvhmbpvffxlmxovkg5vw6zkissyzibcfy45kbvrm"
|
|
2970
2976
|
},
|
|
2971
2977
|
"84532": {
|
|
2972
2978
|
key: "84532",
|
|
@@ -3620,8 +3626,10 @@ function fetchData(_a) {
|
|
|
3620
3626
|
});
|
|
3621
3627
|
}
|
|
3622
3628
|
|
|
3623
|
-
const
|
|
3624
|
-
|
|
3629
|
+
const ENS_REGISTRY = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
|
|
3630
|
+
const ENS_ABI = [
|
|
3631
|
+
'function text(bytes32 node, string calldata key) external view returns (string memory)',
|
|
3632
|
+
'function resolver(bytes32 node) view returns (address)' // ENS registry ABI
|
|
3625
3633
|
];
|
|
3626
3634
|
const EMPTY_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
3627
3635
|
const scoreApiHeaders = {
|
|
@@ -3676,7 +3684,7 @@ addErrors(ajv);
|
|
|
3676
3684
|
ajv.addFormat('address', {
|
|
3677
3685
|
validate: (value) => {
|
|
3678
3686
|
try {
|
|
3679
|
-
return
|
|
3687
|
+
return value === getAddress(value);
|
|
3680
3688
|
}
|
|
3681
3689
|
catch (e) {
|
|
3682
3690
|
return false;
|
|
@@ -3686,7 +3694,7 @@ ajv.addFormat('address', {
|
|
|
3686
3694
|
ajv.addFormat('starknetAddress', {
|
|
3687
3695
|
validate: (value) => {
|
|
3688
3696
|
try {
|
|
3689
|
-
return
|
|
3697
|
+
return validateAndParseAddress(value) === value;
|
|
3690
3698
|
}
|
|
3691
3699
|
catch (e) {
|
|
3692
3700
|
return false;
|
|
@@ -4029,14 +4037,22 @@ function validateSchema(schema, data, options = {
|
|
|
4029
4037
|
}
|
|
4030
4038
|
function getEnsTextRecord(ens_1, record_1) {
|
|
4031
4039
|
return __awaiter(this, arguments, void 0, function* (ens, record, network = '1', options = {}) {
|
|
4032
|
-
|
|
4033
|
-
const ensResolvers =
|
|
4034
|
-
networks[
|
|
4035
|
-
networks['1'].ensResolvers;
|
|
4040
|
+
var _a, _b;
|
|
4041
|
+
const { ensResolvers = ((_a = networks[network]) === null || _a === void 0 ? void 0 : _a.ensResolvers) ||
|
|
4042
|
+
networks['1'].ensResolvers, broviderUrl } = options, multicallOptions = __rest(options, ["ensResolvers", "broviderUrl"]);
|
|
4036
4043
|
const ensHash = namehash(ensNormalize(ens));
|
|
4037
4044
|
const provider = getProvider(network, { broviderUrl });
|
|
4038
|
-
const
|
|
4039
|
-
|
|
4045
|
+
const calls = [
|
|
4046
|
+
[ENS_REGISTRY, 'resolver', [ensHash]], // Query for resolver from registry
|
|
4047
|
+
...ensResolvers.map((address) => [
|
|
4048
|
+
address,
|
|
4049
|
+
'text',
|
|
4050
|
+
[ensHash, record]
|
|
4051
|
+
]) // Query for text record from each resolver
|
|
4052
|
+
];
|
|
4053
|
+
const [[resolverAddress], ...textRecords] = yield multicall(network, provider, ENS_ABI, calls, multicallOptions);
|
|
4054
|
+
const resolverIndex = ensResolvers.indexOf(resolverAddress);
|
|
4055
|
+
return resolverIndex !== -1 ? (_b = textRecords[resolverIndex]) === null || _b === void 0 ? void 0 : _b[0] : null;
|
|
4040
4056
|
});
|
|
4041
4057
|
}
|
|
4042
4058
|
function getSpaceUri(id_1) {
|
|
@@ -4052,9 +4068,8 @@ function getSpaceUri(id_1) {
|
|
|
4052
4068
|
}
|
|
4053
4069
|
function getEnsOwner(ens_1) {
|
|
4054
4070
|
return __awaiter(this, arguments, void 0, function* (ens, network = '1', options = {}) {
|
|
4055
|
-
const registryAddress = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e';
|
|
4056
4071
|
const provider = getProvider(network, options);
|
|
4057
|
-
const ensRegistry = new Contract$1(
|
|
4072
|
+
const ensRegistry = new Contract$1(ENS_REGISTRY, ['function owner(bytes32) view returns (address)'], provider);
|
|
4058
4073
|
const ensNameWrapper = options.ensNameWrapper || networks[network].ensNameWrapper;
|
|
4059
4074
|
const ensHash = namehash(ensNormalize(ens));
|
|
4060
4075
|
let owner = yield ensRegistry.owner(ensHash);
|