@snapshot-labs/snapshot.js 0.14.15 → 0.14.17

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.
@@ -1,6 +1,5 @@
1
1
  import type { ProviderOptions } from '../utils/provider';
2
2
  import type { SignaturePayload } from '.';
3
- export type NetworkType = 'SN_MAIN' | 'SN_SEPOLIA';
4
3
  export declare function isStarknetMessage(data: SignaturePayload): boolean;
5
4
  export declare function getHash(data: SignaturePayload, address: string): string;
6
- export default function verify(address: string, sig: string[], data: SignaturePayload, network?: NetworkType, options?: ProviderOptions): Promise<boolean>;
5
+ export default function verify(address: string, sig: string[], data: SignaturePayload, network?: string, options?: ProviderOptions): Promise<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snapshot-labs/snapshot.js",
3
- "version": "0.14.15",
3
+ "version": "0.14.17",
4
4
  "repository": "snapshot-labs/snapshot.js",
5
5
  "license": "MIT",
6
6
  "main": "dist/snapshot.cjs.js",
package/src/networks.json CHANGED
@@ -1033,20 +1033,6 @@
1033
1033
  "start": 4219343,
1034
1034
  "logo": "ipfs://QmXkneyRB6HbHTHRLCZpZqSsawiyJY7b2kZ2V8ydvKYAgv"
1035
1035
  },
1036
- "2192": {
1037
- "key": "2192",
1038
- "name": "SnaxChain",
1039
- "shortName": "mainnet",
1040
- "chainId": 2192,
1041
- "network": "mainnet",
1042
- "multicall": "0xcA11bde05977b3631167028862bE2a173976CA11",
1043
- "rpc": [],
1044
- "explorer": {
1045
- "url": "https://explorer.snaxchain.io"
1046
- },
1047
- "start": 1554893,
1048
- "logo": "ipfs://bafkreibzz757piho2llzkbiszpvalf5k5hpmxcwhvrmgp7vpz2vp4vj7ly"
1049
- },
1050
1036
  "2221": {
1051
1037
  "key": "2221",
1052
1038
  "name": "Kava Testnet",
@@ -2040,9 +2026,7 @@
2040
2026
  "explorer": {
2041
2027
  "url": "https://starkscan.co"
2042
2028
  },
2043
- "rpc": [
2044
- "https://starknet-mainnet.public.blastapi.io"
2045
- ],
2029
+ "rpc": [],
2046
2030
  "start": 8446,
2047
2031
  "logo": "ipfs://bafkreihbjafyh7eud7r6e5743esaamifcttsvbspfwcrfoc5ykodjdi67m"
2048
2032
  },
@@ -2059,9 +2043,7 @@
2059
2043
  "explorer": {
2060
2044
  "url": "https://sepolia.starkscan.co"
2061
2045
  },
2062
- "rpc": [
2063
- "https://starknet-sepolia.public.blastapi.io"
2064
- ],
2046
+ "rpc": [],
2065
2047
  "start": 7,
2066
2048
  "logo": "ipfs://bafkreihbjafyh7eud7r6e5743esaamifcttsvbspfwcrfoc5ykodjdi67m"
2067
2049
  }
@@ -39,7 +39,7 @@ describe('verify/starknet', () => {
39
39
  ])('with a %s signature', (_, message, multisign = false) => {
40
40
  test('should return true if the signature is valid', () => {
41
41
  expect(
42
- verify(message.address, message.sig, message.data, 'SN_MAIN')
42
+ verify(message.address, message.sig, message.data, '0x534e5f4d41494e')
43
43
  ).resolves.toBe(true);
44
44
  });
45
45
 
@@ -49,7 +49,7 @@ describe('verify/starknet', () => {
49
49
  validateAndParseAddress(message.address),
50
50
  message.sig,
51
51
  message.data,
52
- 'SN_MAIN'
52
+ '0x534e5f4d41494e'
53
53
  )
54
54
  ).resolves.toBe(true);
55
55
  });
@@ -57,13 +57,23 @@ describe('verify/starknet', () => {
57
57
  if (multisign) {
58
58
  test('should throw an error when verifying on a different network', () => {
59
59
  expect(
60
- verify(message.address, message.sig, message.data, 'SN_SEPOLIA')
60
+ verify(
61
+ message.address,
62
+ message.sig,
63
+ message.data,
64
+ '0x534e5f5345504f4c4941'
65
+ )
61
66
  ).rejects.toThrowError();
62
67
  });
63
68
  } else {
64
69
  test('should return true when verifying on a different network', () => {
65
70
  expect(
66
- verify(message.address, message.sig, message.data, 'SN_SEPOLIA')
71
+ verify(
72
+ message.address,
73
+ message.sig,
74
+ message.data,
75
+ '0x534e5f5345504f4c4941'
76
+ )
67
77
  ).resolves.toBe(true);
68
78
  });
69
79
  }
@@ -85,7 +95,7 @@ describe('verify/starknet', () => {
85
95
  '0x07f71118e351c02f6EC7099C8CDf93AED66CEd8406E94631cC91637f7D7F203A',
86
96
  starknetMessage.sig,
87
97
  starknetMessage.data,
88
- 'SN_MAIN'
98
+ '0x534e5f4d41494e'
89
99
  )
90
100
  ).rejects.toThrowError('Contract not deployed');
91
101
  });
@@ -96,7 +106,7 @@ describe('verify/starknet', () => {
96
106
  starknetMessage.address,
97
107
  ['1', '2'],
98
108
  starknetMessage.data,
99
- 'SN_MAIN'
109
+ '0x534e5f4d41494e'
100
110
  )
101
111
  ).resolves.toBe(false);
102
112
  });
@@ -106,13 +116,23 @@ describe('verify/starknet', () => {
106
116
  data.message.timestamp = 1234;
107
117
 
108
118
  expect(
109
- verify(starknetMessage.address, starknetMessage.sig, data, 'SN_MAIN')
119
+ verify(
120
+ starknetMessage.address,
121
+ starknetMessage.sig,
122
+ data,
123
+ '0x534e5f4d41494e'
124
+ )
110
125
  ).resolves.toBe(false);
111
126
  });
112
127
 
113
128
  test('should return false when the signature is not valid', () => {
114
129
  expect(
115
- verify(starknetMessage.address, ['1'], starknetMessage.data, 'SN_MAIN')
130
+ verify(
131
+ starknetMessage.address,
132
+ ['1'],
133
+ starknetMessage.data,
134
+ '0x534e5f4d41494e'
135
+ )
116
136
  ).resolves.toBe(false);
117
137
  });
118
138
  });
@@ -1,22 +1,7 @@
1
- import { RpcProvider, typedData, constants, TypedData } from 'starknet';
2
- import networks from '../networks.json';
1
+ import { typedData, TypedData } from 'starknet';
3
2
  import type { ProviderOptions } from '../utils/provider';
4
3
  import type { SignaturePayload } from '.';
5
-
6
- export type NetworkType = 'SN_MAIN' | 'SN_SEPOLIA';
7
-
8
- const RPC_URLS: Record<NetworkType, string> = {
9
- SN_MAIN: networks[constants.StarknetChainId.SN_MAIN]?.rpc?.[0],
10
- SN_SEPOLIA: networks[constants.StarknetChainId.SN_SEPOLIA]?.rpc?.[0]
11
- };
12
-
13
- function getProvider(network: NetworkType, options: ProviderOptions) {
14
- if (!RPC_URLS[network]) throw new Error('Invalid network');
15
-
16
- return new RpcProvider({
17
- nodeUrl: options?.broviderUrl ?? RPC_URLS[network]
18
- });
19
- }
4
+ import getProvider from '../utils/provider';
20
5
 
21
6
  export function isStarknetMessage(data: SignaturePayload): boolean {
22
7
  return !!data.primaryType && !!data.types.StarkNetDomain;
@@ -36,7 +21,7 @@ export default async function verify(
36
21
  address: string,
37
22
  sig: string[],
38
23
  data: SignaturePayload,
39
- network: NetworkType = 'SN_MAIN',
24
+ network = '0x534e5f4d41494e',
40
25
  options: ProviderOptions = {}
41
26
  ): Promise<boolean> {
42
27
  try {