starknet 4.11.0 → 4.13.0

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.
Files changed (227) hide show
  1. package/.eslintrc +1 -0
  2. package/CHANGELOG.md +25 -0
  3. package/__tests__/account.test.ts +36 -0
  4. package/__tests__/defaultProvider.test.ts +15 -17
  5. package/__tests__/fixtures.ts +2 -0
  6. package/dist/index.d.ts +2683 -24
  7. package/dist/index.global.js +22994 -0
  8. package/dist/index.global.js.map +1 -0
  9. package/dist/index.js +4713 -53
  10. package/dist/index.js.map +1 -0
  11. package/dist/index.mjs +4655 -0
  12. package/dist/index.mjs.map +1 -0
  13. package/index.d.ts +2683 -24
  14. package/index.global.js +22994 -0
  15. package/index.global.js.map +1 -0
  16. package/index.js +4713 -53
  17. package/index.js.map +1 -0
  18. package/index.mjs +4655 -0
  19. package/index.mjs.map +1 -0
  20. package/package.json +8 -2
  21. package/src/account/default.ts +43 -8
  22. package/src/account/interface.ts +25 -2
  23. package/src/constants.ts +0 -1
  24. package/src/provider/default.ts +5 -2
  25. package/src/provider/interface.ts +3 -1
  26. package/src/provider/rpc.ts +8 -4
  27. package/src/provider/sequencer.ts +5 -2
  28. package/src/types/lib.ts +1 -1
  29. package/src/types/provider.ts +5 -0
  30. package/src/utils/ellipticCurve.ts +3 -1
  31. package/src/utils/fetchPonyfill.ts +3 -2
  32. package/src/utils/hash.ts +3 -2
  33. package/src/utils/number.ts +2 -2
  34. package/tsup.config.ts +10 -0
  35. package/__tests__/udc.test.ts +0 -41
  36. package/account/default.d.ts +0 -30
  37. package/account/default.js +0 -526
  38. package/account/index.d.ts +0 -2
  39. package/account/index.js +0 -18
  40. package/account/interface.d.ts +0 -161
  41. package/account/interface.js +0 -27
  42. package/constants.d.ts +0 -36
  43. package/constants.js +0 -2067
  44. package/contract/contractFactory.d.ts +0 -31
  45. package/contract/contractFactory.js +0 -102
  46. package/contract/default.d.ts +0 -108
  47. package/contract/default.js +0 -640
  48. package/contract/index.d.ts +0 -3
  49. package/contract/index.js +0 -19
  50. package/contract/interface.d.ts +0 -80
  51. package/contract/interface.js +0 -9
  52. package/dist/account/default.d.ts +0 -30
  53. package/dist/account/default.js +0 -526
  54. package/dist/account/index.d.ts +0 -2
  55. package/dist/account/index.js +0 -18
  56. package/dist/account/interface.d.ts +0 -161
  57. package/dist/account/interface.js +0 -27
  58. package/dist/constants.d.ts +0 -36
  59. package/dist/constants.js +0 -2067
  60. package/dist/contract/contractFactory.d.ts +0 -31
  61. package/dist/contract/contractFactory.js +0 -102
  62. package/dist/contract/default.d.ts +0 -108
  63. package/dist/contract/default.js +0 -640
  64. package/dist/contract/index.d.ts +0 -3
  65. package/dist/contract/index.js +0 -19
  66. package/dist/contract/interface.d.ts +0 -80
  67. package/dist/contract/interface.js +0 -9
  68. package/dist/provider/default.d.ts +0 -37
  69. package/dist/provider/default.js +0 -207
  70. package/dist/provider/errors.d.ts +0 -9
  71. package/dist/provider/errors.js +0 -40
  72. package/dist/provider/index.d.ts +0 -7
  73. package/dist/provider/index.js +0 -24
  74. package/dist/provider/interface.d.ts +0 -203
  75. package/dist/provider/interface.js +0 -9
  76. package/dist/provider/rpc.d.ts +0 -85
  77. package/dist/provider/rpc.js +0 -598
  78. package/dist/provider/sequencer.d.ts +0 -79
  79. package/dist/provider/sequencer.js +0 -575
  80. package/dist/provider/utils.d.ts +0 -30
  81. package/dist/provider/utils.js +0 -84
  82. package/dist/signer/default.d.ts +0 -13
  83. package/dist/signer/default.js +0 -102
  84. package/dist/signer/index.d.ts +0 -2
  85. package/dist/signer/index.js +0 -18
  86. package/dist/signer/interface.d.ts +0 -60
  87. package/dist/signer/interface.js +0 -9
  88. package/dist/types/account.d.ts +0 -11
  89. package/dist/types/account.js +0 -2
  90. package/dist/types/api/index.d.ts +0 -10
  91. package/dist/types/api/index.js +0 -18
  92. package/dist/types/api/openrpc.d.ts +0 -572
  93. package/dist/types/api/openrpc.js +0 -45
  94. package/dist/types/api/rpc.d.ts +0 -43
  95. package/dist/types/api/rpc.js +0 -2
  96. package/dist/types/api/sequencer.d.ts +0 -320
  97. package/dist/types/api/sequencer.js +0 -2
  98. package/dist/types/contract.d.ts +0 -5
  99. package/dist/types/contract.js +0 -2
  100. package/dist/types/index.d.ts +0 -7
  101. package/dist/types/index.js +0 -35
  102. package/dist/types/lib.d.ts +0 -120
  103. package/dist/types/lib.js +0 -8
  104. package/dist/types/provider.d.ts +0 -99
  105. package/dist/types/provider.js +0 -2
  106. package/dist/types/signer.d.ts +0 -19
  107. package/dist/types/signer.js +0 -2
  108. package/dist/utils/address.d.ts +0 -5
  109. package/dist/utils/address.js +0 -41
  110. package/dist/utils/ellipticCurve.d.ts +0 -29
  111. package/dist/utils/ellipticCurve.js +0 -132
  112. package/dist/utils/encode.d.ts +0 -15
  113. package/dist/utils/encode.js +0 -96
  114. package/dist/utils/fetchPonyfill.d.ts +0 -2
  115. package/dist/utils/fetchPonyfill.js +0 -6
  116. package/dist/utils/hash.d.ts +0 -37
  117. package/dist/utils/hash.js +0 -162
  118. package/dist/utils/json.d.ts +0 -16
  119. package/dist/utils/json.js +0 -19
  120. package/dist/utils/merkle.d.ts +0 -10
  121. package/dist/utils/merkle.js +0 -89
  122. package/dist/utils/number.d.ts +0 -16
  123. package/dist/utils/number.js +0 -112
  124. package/dist/utils/provider.d.ts +0 -4
  125. package/dist/utils/provider.js +0 -38
  126. package/dist/utils/responseParser/index.d.ts +0 -11
  127. package/dist/utils/responseParser/index.js +0 -9
  128. package/dist/utils/responseParser/rpc.d.ts +0 -20
  129. package/dist/utils/responseParser/rpc.js +0 -44
  130. package/dist/utils/responseParser/sequencer.d.ts +0 -17
  131. package/dist/utils/responseParser/sequencer.js +0 -99
  132. package/dist/utils/shortString.d.ts +0 -4
  133. package/dist/utils/shortString.js +0 -26
  134. package/dist/utils/stark.d.ts +0 -16
  135. package/dist/utils/stark.js +0 -91
  136. package/dist/utils/transaction.d.ts +0 -20
  137. package/dist/utils/transaction.js +0 -79
  138. package/dist/utils/typedData/index.d.ts +0 -72
  139. package/dist/utils/typedData/index.js +0 -239
  140. package/dist/utils/typedData/types.d.ts +0 -32
  141. package/dist/utils/typedData/types.js +0 -2
  142. package/dist/utils/typedData/utils.d.ts +0 -8
  143. package/dist/utils/typedData/utils.js +0 -16
  144. package/dist/utils/uint256.d.ts +0 -11
  145. package/dist/utils/uint256.js +0 -28
  146. package/dist/utils/url.d.ts +0 -7
  147. package/dist/utils/url.js +0 -49
  148. package/provider/default.d.ts +0 -37
  149. package/provider/default.js +0 -207
  150. package/provider/errors.d.ts +0 -9
  151. package/provider/errors.js +0 -40
  152. package/provider/index.d.ts +0 -7
  153. package/provider/index.js +0 -24
  154. package/provider/interface.d.ts +0 -203
  155. package/provider/interface.js +0 -9
  156. package/provider/rpc.d.ts +0 -85
  157. package/provider/rpc.js +0 -598
  158. package/provider/sequencer.d.ts +0 -79
  159. package/provider/sequencer.js +0 -575
  160. package/provider/utils.d.ts +0 -30
  161. package/provider/utils.js +0 -84
  162. package/signer/default.d.ts +0 -13
  163. package/signer/default.js +0 -102
  164. package/signer/index.d.ts +0 -2
  165. package/signer/index.js +0 -18
  166. package/signer/interface.d.ts +0 -60
  167. package/signer/interface.js +0 -9
  168. package/types/account.d.ts +0 -11
  169. package/types/account.js +0 -2
  170. package/types/api/index.d.ts +0 -10
  171. package/types/api/index.js +0 -18
  172. package/types/api/openrpc.d.ts +0 -572
  173. package/types/api/openrpc.js +0 -45
  174. package/types/api/rpc.d.ts +0 -43
  175. package/types/api/rpc.js +0 -2
  176. package/types/api/sequencer.d.ts +0 -320
  177. package/types/api/sequencer.js +0 -2
  178. package/types/contract.d.ts +0 -5
  179. package/types/contract.js +0 -2
  180. package/types/index.d.ts +0 -7
  181. package/types/index.js +0 -35
  182. package/types/lib.d.ts +0 -120
  183. package/types/lib.js +0 -8
  184. package/types/provider.d.ts +0 -99
  185. package/types/provider.js +0 -2
  186. package/types/signer.d.ts +0 -19
  187. package/types/signer.js +0 -2
  188. package/utils/address.d.ts +0 -5
  189. package/utils/address.js +0 -41
  190. package/utils/ellipticCurve.d.ts +0 -29
  191. package/utils/ellipticCurve.js +0 -132
  192. package/utils/encode.d.ts +0 -15
  193. package/utils/encode.js +0 -96
  194. package/utils/fetchPonyfill.d.ts +0 -2
  195. package/utils/fetchPonyfill.js +0 -6
  196. package/utils/hash.d.ts +0 -37
  197. package/utils/hash.js +0 -162
  198. package/utils/json.d.ts +0 -16
  199. package/utils/json.js +0 -19
  200. package/utils/merkle.d.ts +0 -10
  201. package/utils/merkle.js +0 -89
  202. package/utils/number.d.ts +0 -16
  203. package/utils/number.js +0 -112
  204. package/utils/provider.d.ts +0 -4
  205. package/utils/provider.js +0 -38
  206. package/utils/responseParser/index.d.ts +0 -11
  207. package/utils/responseParser/index.js +0 -9
  208. package/utils/responseParser/rpc.d.ts +0 -20
  209. package/utils/responseParser/rpc.js +0 -44
  210. package/utils/responseParser/sequencer.d.ts +0 -17
  211. package/utils/responseParser/sequencer.js +0 -99
  212. package/utils/shortString.d.ts +0 -4
  213. package/utils/shortString.js +0 -26
  214. package/utils/stark.d.ts +0 -16
  215. package/utils/stark.js +0 -91
  216. package/utils/transaction.d.ts +0 -20
  217. package/utils/transaction.js +0 -79
  218. package/utils/typedData/index.d.ts +0 -72
  219. package/utils/typedData/index.js +0 -239
  220. package/utils/typedData/types.d.ts +0 -32
  221. package/utils/typedData/types.js +0 -2
  222. package/utils/typedData/utils.d.ts +0 -8
  223. package/utils/typedData/utils.js +0 -16
  224. package/utils/uint256.d.ts +0 -11
  225. package/utils/uint256.js +0 -28
  226. package/utils/url.d.ts +0 -7
  227. package/utils/url.js +0 -49
package/.eslintrc CHANGED
@@ -6,6 +6,7 @@
6
6
  "jest": true
7
7
  },
8
8
  "extends": ["airbnb-base", "airbnb-typescript/base", "prettier", "plugin:prettier/recommended"],
9
+ "ignorePatterns": ["tsup.config.ts"],
9
10
  "globals": {
10
11
  "Atomics": "readonly",
11
12
  "SharedArrayBuffer": "readonly"
package/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ # [4.13.0](https://github.com/0xs34n/starknet.js/compare/v4.12.0...v4.13.0) (2022-11-22)
2
+
3
+ ### Bug Fixes
4
+
5
+ - add estimateDeployFee ([3bc11be](https://github.com/0xs34n/starknet.js/commit/3bc11bef0d744303a1288eb997fbfca32c7523ab))
6
+ - adjust fetch parameter types ([dfe876a](https://github.com/0xs34n/starknet.js/commit/dfe876ad9fd59a4351671df5fc0705b3f980ce75))
7
+ - anotate deprecate all providers deployContract ([65eed1f](https://github.com/0xs34n/starknet.js/commit/65eed1f671b41393b3ae33ae1aaa7a9ae0fbc013))
8
+ - restore rpc node url to provided one ([2e1d87a](https://github.com/0xs34n/starknet.js/commit/2e1d87a6d9fc9a1fe9b493ffd8153eb2342ffdfc))
9
+ - transaction v1 getInvokeEstimateFee ([cb4ede3](https://github.com/0xs34n/starknet.js/commit/cb4ede3b5b586ebf69768d4e4a8b36c739f6715f))
10
+
11
+ ### Features
12
+
13
+ - update devnet ([0dbe9f7](https://github.com/0xs34n/starknet.js/commit/0dbe9f72fdad96250850599ed90495a5c2975f60))
14
+
15
+ # [4.12.0](https://github.com/0xs34n/starknet.js/compare/v4.11.0...v4.12.0) (2022-11-17)
16
+
17
+ ### Bug Fixes
18
+
19
+ - **tests:** refactor udc tests ([01a6eef](https://github.com/0xs34n/starknet.js/commit/01a6eef11b2f32e05d2aea4ab185536e3fdb1a71))
20
+ - use method name similar to gateway endpoint ([79641b3](https://github.com/0xs34n/starknet.js/commit/79641b3076412d71fa4e5ccbdb018c4f3ecab938))
21
+
22
+ ### Features
23
+
24
+ - create getClass RPC alias ([1003534](https://github.com/0xs34n/starknet.js/commit/10035341dd26e23b59d3dd764936a7d8eaa3f3b0))
25
+
1
26
  # [4.11.0](https://github.com/0xs34n/starknet.js/compare/v4.10.0...v4.11.0) (2022-11-14)
2
27
 
3
28
  ### Bug Fixes
@@ -4,9 +4,12 @@ import typedDataExample from '../__mocks__/typedDataExample.json';
4
4
  import { Account, Contract, Provider, number, stark } from '../src';
5
5
  import { feeTransactionVersion } from '../src/utils/hash';
6
6
  import { toBN } from '../src/utils/number';
7
+ import { encodeShortString } from '../src/utils/shortString';
8
+ import { randomAddress } from '../src/utils/stark';
7
9
  import {
8
10
  compiledErc20,
9
11
  compiledTestDapp,
12
+ erc20ClassHash,
10
13
  getERC20DeployPayload,
11
14
  getTestAccount,
12
15
  getTestProvider,
@@ -159,4 +162,37 @@ describe('deploy and test Wallet', () => {
159
162
  expect(declareTx.class_hash).toBeDefined();
160
163
  });
161
164
  });
165
+
166
+ describe('Declare and UDC Deploy Flow', () => {
167
+ test('ERC20 Declare', async () => {
168
+ const declareTx = await account.declare({
169
+ classHash: erc20ClassHash,
170
+ contract: compiledErc20,
171
+ });
172
+
173
+ await provider.waitForTransaction(declareTx.transaction_hash);
174
+
175
+ expect(declareTx).toHaveProperty('class_hash');
176
+ expect(declareTx.class_hash).toEqual(erc20ClassHash);
177
+ });
178
+
179
+ test('UDC Deploy', async () => {
180
+ const salt = randomAddress(); // use random salt
181
+
182
+ const deployment = await account.deploy({
183
+ classHash: erc20ClassHash,
184
+ constructorCalldata: [
185
+ encodeShortString('Token'),
186
+ encodeShortString('ERC20'),
187
+ account.address,
188
+ ],
189
+ salt,
190
+ unique: true, // Using true here so as not to clash with normal erc20 deploy in account and provider test
191
+ });
192
+
193
+ await provider.waitForTransaction(deployment.transaction_hash);
194
+
195
+ expect(deployment).toHaveProperty('transaction_hash');
196
+ });
197
+ });
162
198
  });
@@ -1,6 +1,6 @@
1
1
  import { BlockNumber, GetBlockResponse, stark } from '../src';
2
2
  import { toBN } from '../src/utils/number';
3
- import { getERC20DeployPayload, getTestProvider } from './fixtures';
3
+ import { erc20ClassHash, getERC20DeployPayload, getTestProvider } from './fixtures';
4
4
 
5
5
  const { compileCalldata } = stark;
6
6
 
@@ -8,7 +8,7 @@ const testProvider = getTestProvider();
8
8
 
9
9
  describe('defaultProvider', () => {
10
10
  let exampleTransactionHash: string;
11
- let exampleContractAddress: string;
11
+ let erc20ContractAddress: string;
12
12
 
13
13
  let exampleBlock: GetBlockResponse;
14
14
  let exampleBlockNumber: BlockNumber;
@@ -23,7 +23,7 @@ describe('defaultProvider', () => {
23
23
  );
24
24
  await testProvider.waitForTransaction(transaction_hash);
25
25
  exampleTransactionHash = transaction_hash;
26
- exampleContractAddress = contract_address;
26
+ erc20ContractAddress = contract_address;
27
27
 
28
28
  exampleBlock = await testProvider.getBlock('latest');
29
29
  exampleBlockHash = exampleBlock.block_hash;
@@ -32,7 +32,7 @@ describe('defaultProvider', () => {
32
32
 
33
33
  describe('endpoints', () => {
34
34
  test('deployContract()', () => {
35
- expect(exampleContractAddress).toBeTruthy();
35
+ expect(erc20ContractAddress).toBeTruthy();
36
36
  expect(exampleTransactionHash).toBeTruthy();
37
37
  });
38
38
 
@@ -75,43 +75,41 @@ describe('defaultProvider', () => {
75
75
  });
76
76
 
77
77
  test('getNonce()', async () => {
78
- const nonce = await testProvider.getNonce(exampleContractAddress);
78
+ const nonce = await testProvider.getNonce(erc20ContractAddress);
79
79
  return expect(nonce).toEqual('0x0');
80
80
  });
81
81
 
82
82
  test('getClassAt(contractAddress, blockNumber="latest")', async () => {
83
- const classResponse = await testProvider.getClassAt(exampleContractAddress);
83
+ const classResponse = await testProvider.getClassAt(erc20ContractAddress);
84
84
 
85
85
  expect(classResponse).toHaveProperty('program');
86
86
  expect(classResponse).toHaveProperty('entry_points_by_type');
87
87
  });
88
88
 
89
89
  // TODO see if feasible to split
90
- describe('getClassHashAt & GetClass', () => {
90
+ describe('GetClassByHash', () => {
91
91
  test('responses', async () => {
92
- const classHash = await testProvider.getClassHashAt(exampleContractAddress);
93
- expect(typeof classHash).toBe('string');
94
-
95
- const classResponse = await testProvider.getClass(classHash);
92
+ const classResponse = await testProvider.getClassByHash(erc20ClassHash);
96
93
  expect(classResponse).toHaveProperty('program');
97
94
  expect(classResponse).toHaveProperty('entry_points_by_type');
95
+ expect(classResponse).toHaveProperty('abi');
98
96
  });
99
97
  });
100
98
 
101
99
  describe('getStorageAt', () => {
102
100
  test('with "key" type of number', () => {
103
- return expect(testProvider.getStorageAt(exampleContractAddress, 0)).resolves.not.toThrow();
101
+ return expect(testProvider.getStorageAt(erc20ContractAddress, 0)).resolves.not.toThrow();
104
102
  });
105
103
 
106
104
  test('"key" type of string', () => {
107
105
  return expect(
108
- testProvider.getStorageAt(exampleContractAddress, '0x0')
106
+ testProvider.getStorageAt(erc20ContractAddress, '0x0')
109
107
  ).resolves.not.toThrow();
110
108
  });
111
109
 
112
110
  test('with "key" type of BN', () => {
113
111
  return expect(
114
- testProvider.getStorageAt(exampleContractAddress, toBN('0x0'))
112
+ testProvider.getStorageAt(erc20ContractAddress, toBN('0x0'))
115
113
  ).resolves.not.toThrow();
116
114
  });
117
115
  });
@@ -135,7 +133,7 @@ describe('defaultProvider', () => {
135
133
  test('callContract()', () => {
136
134
  return expect(
137
135
  testProvider.callContract({
138
- contractAddress: exampleContractAddress,
136
+ contractAddress: erc20ContractAddress,
139
137
  entrypoint: 'balanceOf',
140
138
  calldata: compileCalldata({
141
139
  user: '0x9ff64f4ab0e1fe88df4465ade98d1ea99d5732761c39279b8e1374fa943e9b',
@@ -148,7 +146,7 @@ describe('defaultProvider', () => {
148
146
  return expect(
149
147
  testProvider
150
148
  .callContract({
151
- contractAddress: exampleContractAddress,
149
+ contractAddress: erc20ContractAddress,
152
150
  entrypoint: 'balanceOf',
153
151
  calldata: compileCalldata({
154
152
  user: wallet,
@@ -163,7 +161,7 @@ describe('defaultProvider', () => {
163
161
  test('callContract() - gateway error', async () => {
164
162
  return expect(
165
163
  testProvider.callContract({
166
- contractAddress: exampleContractAddress,
164
+ contractAddress: erc20ContractAddress,
167
165
  entrypoint: 'non_existent_entrypoint',
168
166
  calldata: compileCalldata({
169
167
  user: '0xdeadbeef',
@@ -73,6 +73,8 @@ export const describeIfSequencer = describeIf(IS_DEVNET);
73
73
  export const describeIfRpc = describeIf(IS_RPC);
74
74
  export const describeIfNotDevnet = describeIf(!IS_DEVNET);
75
75
 
76
+ export const erc20ClassHash = '0x54328a1075b8820eb43caf0caa233923148c983742402dcfc38541dd843d01a';
77
+
76
78
  export const getERC20DeployPayload = (recipient: string): DeployContractPayload => {
77
79
  return {
78
80
  contract: compiledErc20,