Skip to content

Commit 481e7d6

Browse files
authored
fix: use brovider by default in starknet verify (#1190)
* fix: use brovider by default ### Summary - removed unused rpc URLs from networks.json - use `getProvider` from utils instead of custom one (which is same as in utils, but uses brovider) ### How to test - `yarn test` should work now (previously it will throw blast api error) * v0.14.17
1 parent 57fc807 commit 481e7d6

File tree

4 files changed

+34
-33
lines changed

4 files changed

+34
-33
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@snapshot-labs/snapshot.js",
3-
"version": "0.14.16",
3+
"version": "0.14.17",
44
"repository": "snapshot-labs/snapshot.js",
55
"license": "MIT",
66
"main": "dist/snapshot.cjs.js",

src/networks.json

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2026,9 +2026,7 @@
20262026
"explorer": {
20272027
"url": "https://starkscan.co"
20282028
},
2029-
"rpc": [
2030-
"https://starknet-mainnet.public.blastapi.io"
2031-
],
2029+
"rpc": [],
20322030
"start": 8446,
20332031
"logo": "ipfs://bafkreihbjafyh7eud7r6e5743esaamifcttsvbspfwcrfoc5ykodjdi67m"
20342032
},
@@ -2045,9 +2043,7 @@
20452043
"explorer": {
20462044
"url": "https://sepolia.starkscan.co"
20472045
},
2048-
"rpc": [
2049-
"https://starknet-sepolia.public.blastapi.io"
2050-
],
2046+
"rpc": [],
20512047
"start": 7,
20522048
"logo": "ipfs://bafkreihbjafyh7eud7r6e5743esaamifcttsvbspfwcrfoc5ykodjdi67m"
20532049
}

src/verify/starknet.spec.ts

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ describe('verify/starknet', () => {
3939
])('with a %s signature', (_, message, multisign = false) => {
4040
test('should return true if the signature is valid', () => {
4141
expect(
42-
verify(message.address, message.sig, message.data, 'SN_MAIN')
42+
verify(message.address, message.sig, message.data, '0x534e5f4d41494e')
4343
).resolves.toBe(true);
4444
});
4545

@@ -49,21 +49,31 @@ describe('verify/starknet', () => {
4949
validateAndParseAddress(message.address),
5050
message.sig,
5151
message.data,
52-
'SN_MAIN'
52+
'0x534e5f4d41494e'
5353
)
5454
).resolves.toBe(true);
5555
});
5656

5757
if (multisign) {
5858
test('should throw an error when verifying on a different network', () => {
5959
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+
)
6166
).rejects.toThrowError();
6267
});
6368
} else {
6469
test('should return true when verifying on a different network', () => {
6570
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+
)
6777
).resolves.toBe(true);
6878
});
6979
}
@@ -85,7 +95,7 @@ describe('verify/starknet', () => {
8595
'0x07f71118e351c02f6EC7099C8CDf93AED66CEd8406E94631cC91637f7D7F203A',
8696
starknetMessage.sig,
8797
starknetMessage.data,
88-
'SN_MAIN'
98+
'0x534e5f4d41494e'
8999
)
90100
).rejects.toThrowError('Contract not deployed');
91101
});
@@ -96,7 +106,7 @@ describe('verify/starknet', () => {
96106
starknetMessage.address,
97107
['1', '2'],
98108
starknetMessage.data,
99-
'SN_MAIN'
109+
'0x534e5f4d41494e'
100110
)
101111
).resolves.toBe(false);
102112
});
@@ -106,13 +116,23 @@ describe('verify/starknet', () => {
106116
data.message.timestamp = 1234;
107117

108118
expect(
109-
verify(starknetMessage.address, starknetMessage.sig, data, 'SN_MAIN')
119+
verify(
120+
starknetMessage.address,
121+
starknetMessage.sig,
122+
data,
123+
'0x534e5f4d41494e'
124+
)
110125
).resolves.toBe(false);
111126
});
112127

113128
test('should return false when the signature is not valid', () => {
114129
expect(
115-
verify(starknetMessage.address, ['1'], starknetMessage.data, 'SN_MAIN')
130+
verify(
131+
starknetMessage.address,
132+
['1'],
133+
starknetMessage.data,
134+
'0x534e5f4d41494e'
135+
)
116136
).resolves.toBe(false);
117137
});
118138
});

src/verify/starknet.ts

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,7 @@
1-
import { RpcProvider, typedData, constants, TypedData } from 'starknet';
2-
import networks from '../networks.json';
1+
import { typedData, TypedData } from 'starknet';
32
import type { ProviderOptions } from '../utils/provider';
43
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';
205

216
export function isStarknetMessage(data: SignaturePayload): boolean {
227
return !!data.primaryType && !!data.types.StarkNetDomain;
@@ -36,7 +21,7 @@ export default async function verify(
3621
address: string,
3722
sig: string[],
3823
data: SignaturePayload,
39-
network: NetworkType = 'SN_MAIN',
24+
network = '0x534e5f4d41494e',
4025
options: ProviderOptions = {}
4126
): Promise<boolean> {
4227
try {

0 commit comments

Comments
 (0)