starknet 2.3.1 → 2.7.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 (62) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/__tests__/account.test.ts +3 -3
  3. package/__tests__/provider.test.ts +24 -13
  4. package/__tests__/signer.test.ts +17 -0
  5. package/__tests__/utils/ellipticalCurve.test.ts +1 -1
  6. package/__tests__/utils/typedData.test.ts +72 -0
  7. package/contract.d.ts +2 -2
  8. package/dist/contract.d.ts +2 -2
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +2 -1
  11. package/dist/provider/default.d.ts +26 -22
  12. package/dist/provider/default.js +64 -47
  13. package/dist/provider/interface.d.ts +25 -21
  14. package/dist/provider/utils.d.ts +27 -0
  15. package/dist/provider/utils.js +37 -0
  16. package/dist/signer/default.d.ts +20 -3
  17. package/dist/signer/default.js +61 -20
  18. package/dist/signer/interface.d.ts +22 -3
  19. package/dist/types.d.ts +10 -7
  20. package/dist/utils/ellipticCurve.d.ts +8 -1
  21. package/dist/utils/ellipticCurve.js +48 -9
  22. package/dist/utils/stark.d.ts +2 -3
  23. package/dist/utils/typedData/index.d.ts +91 -0
  24. package/dist/utils/typedData/index.js +183 -0
  25. package/dist/utils/typedData/types.d.ts +82 -0
  26. package/dist/utils/typedData/types.js +47 -0
  27. package/dist/utils/typedData/utils.d.ts +24 -0
  28. package/dist/utils/typedData/utils.js +15 -0
  29. package/index.d.ts +1 -0
  30. package/index.js +3 -1
  31. package/package.json +3 -1
  32. package/provider/default.d.ts +40 -21
  33. package/provider/default.js +85 -53
  34. package/provider/interface.d.ts +37 -21
  35. package/provider/utils.d.ts +30 -0
  36. package/provider/utils.js +39 -0
  37. package/signer/default.d.ts +20 -3
  38. package/signer/default.js +60 -17
  39. package/signer/interface.d.ts +22 -3
  40. package/src/contract.ts +2 -2
  41. package/src/index.ts +1 -0
  42. package/src/provider/default.ts +65 -40
  43. package/src/provider/interface.ts +36 -21
  44. package/src/provider/utils.ts +38 -0
  45. package/src/signer/default.ts +49 -17
  46. package/src/signer/interface.ts +26 -3
  47. package/src/types.ts +16 -7
  48. package/src/utils/ellipticCurve.ts +31 -9
  49. package/src/utils/stark.ts +4 -4
  50. package/src/utils/typedData/index.ts +176 -0
  51. package/src/utils/typedData/types.ts +82 -0
  52. package/src/utils/typedData/utils.ts +13 -0
  53. package/types.d.ts +12 -8
  54. package/utils/ellipticCurve.d.ts +12 -1
  55. package/utils/ellipticCurve.js +72 -23
  56. package/utils/stark.d.ts +2 -3
  57. package/utils/typedData/index.d.ts +113 -0
  58. package/utils/typedData/index.js +247 -0
  59. package/utils/typedData/types.d.ts +103 -0
  60. package/utils/typedData/types.js +57 -0
  61. package/utils/typedData/utils.d.ts +27 -0
  62. package/utils/typedData/utils.js +15 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,46 @@
1
+ # [2.7.0](https://github.com/seanjameshan/starknet.js/compare/v2.6.0...v2.7.0) (2022-01-03)
2
+
3
+ ### Bug Fixes
4
+
5
+ - add response to the waitForTx error ([e25bdfd](https://github.com/seanjameshan/starknet.js/commit/e25bdfd428fd36e105ed272ea39462845bae5805))
6
+
7
+ ### Features
8
+
9
+ - **blockHash:** add blockHash and fix test cases ([4e107eb](https://github.com/seanjameshan/starknet.js/commit/4e107eb7e97a9b8d2efd74b2074a7d82365c932e))
10
+
11
+ # [2.6.0](https://github.com/seanjameshan/starknet.js/compare/v2.5.0...v2.6.0) (2021-12-29)
12
+
13
+ ### Bug Fixes
14
+
15
+ - correct network name ([66e14c9](https://github.com/seanjameshan/starknet.js/commit/66e14c926f015a2dfbd50d3e54ba4e008fb43aa8))
16
+ - network name ([965f215](https://github.com/seanjameshan/starknet.js/commit/965f21580ef68bf84c105e93bfb3b98f75b31f93))
17
+
18
+ ### Features
19
+
20
+ - introduce blockNumber ([657dac1](https://github.com/seanjameshan/starknet.js/commit/657dac1d77e840a7fc663d3a180515443a7e834f))
21
+
22
+ # [2.5.0](https://github.com/seanjameshan/starknet.js/compare/v2.4.0...v2.5.0) (2021-12-13)
23
+
24
+ ### Bug Fixes
25
+
26
+ - add jsdoc comment ([4cd969f](https://github.com/seanjameshan/starknet.js/commit/4cd969f82eb4a5d8c08feb59c42fb3e7195af50e))
27
+ - remove eip712 reference ([039a360](https://github.com/seanjameshan/starknet.js/commit/039a360873f9a1cdedc7a498b6e1732183957143))
28
+ - remove unused types ([e528f7d](https://github.com/seanjameshan/starknet.js/commit/e528f7d75f4560d2affe3ca99426e01fbee6dfb5))
29
+ - review ([a3813c9](https://github.com/seanjameshan/starknet.js/commit/a3813c9931c178d58c2521b926fb3fdff6944635))
30
+
31
+ ### Features
32
+
33
+ - add `getKeyPairFromPublicKey` method ([66d543d](https://github.com/seanjameshan/starknet.js/commit/66d543dca1bb302654f0f1588a27f7794bfa49be))
34
+ - add tests ([b414a83](https://github.com/seanjameshan/starknet.js/commit/b414a839a1fdd56084a58d6efb4747e8f5455628))
35
+ - allow multi sig ([fc1e086](https://github.com/seanjameshan/starknet.js/commit/fc1e0866154d2bf29f26374639a34fec438bae5e))
36
+ - support eip712 for starknet ([d597082](https://github.com/seanjameshan/starknet.js/commit/d59708211fc497d801699a7168dad1a5cc9648fd))
37
+
38
+ # [2.4.0](https://github.com/seanjameshan/starknet.js/compare/v2.3.1...v2.4.0) (2021-12-09)
39
+
40
+ ### Features
41
+
42
+ - allow custom nonce ([17666de](https://github.com/seanjameshan/starknet.js/commit/17666de94db6875bbf8e88555773b8862a4a32cf))
43
+
1
44
  ## [2.3.1](https://github.com/seanjameshan/starknet.js/compare/v2.3.0...v2.3.1) (2021-12-01)
2
45
 
3
46
  ### Bug Fixes
@@ -104,7 +104,7 @@ describe('deploy and test Wallet', () => {
104
104
  )
105
105
  );
106
106
 
107
- const { r, s } = ec.sign(starkKeyPair, msgHash);
107
+ const signature = ec.sign(starkKeyPair, msgHash);
108
108
  const { code, transaction_hash } = await wallet.invoke(
109
109
  'execute',
110
110
  {
@@ -113,7 +113,7 @@ describe('deploy and test Wallet', () => {
113
113
  calldata: [erc20Address, '10'],
114
114
  nonce: nonce.toString(),
115
115
  },
116
- [number.toHex(r), number.toHex(s)]
116
+ signature
117
117
  );
118
118
 
119
119
  expect(code).toBe('TRANSACTION_RECEIVED');
@@ -151,7 +151,7 @@ test('build tx', async () => {
151
151
  .toString()
152
152
  );
153
153
 
154
- const { r, s } = ec.sign(keyPair, msgHash);
154
+ const [r, s] = ec.sign(keyPair, msgHash);
155
155
  expect(r.toString()).toBe(
156
156
  '706800951915233622090196542158919402159816118214143837213294331713137614072'
157
157
  );
@@ -13,38 +13,49 @@ describe('defaultProvider', () => {
13
13
  expect(typeof GpsStatementVerifier).toBe('string');
14
14
  expect(typeof Starknet).toBe('string');
15
15
  });
16
- test('getBlock()', () => {
17
- return expect(defaultProvider.getBlock(870)).resolves.not.toThrow();
16
+ test('getBlock(blockHash=0x3bca19c3d5983e21e9537669b15f951f0664f0747a083dc714e0b9648b8575d, blockNumber=undefined)', () => {
17
+ return expect(
18
+ defaultProvider.getBlock(
19
+ '0x3bca19c3d5983e21e9537669b15f951f0664f0747a083dc714e0b9648b8575d'
20
+ )
21
+ ).resolves.not.toThrow();
18
22
  });
19
- test('getBlock(blockId=null)', () => {
23
+ test('getBlock(blockHash=undefined, blockNumber=36657)', () => {
24
+ return expect(defaultProvider.getBlock(undefined, 36657)).resolves.not.toThrow();
25
+ });
26
+ test('getBlock(blockHash=undefined, blockNumber=null)', () => {
20
27
  return expect(defaultProvider.getBlock()).resolves.not.toThrow();
21
28
  });
22
29
  test('getCode()', () => {
23
30
  return expect(
24
31
  defaultProvider.getCode(
25
- '0x163a1542a64402ffc93e39a4962eec51ce126f2e634631d3f1f6770a76e3a61',
26
- 870
32
+ '0x01d1f307c073bb786a66e6e042ec2a9bdc385a3373bb3738d95b966d5ce56166',
33
+ undefined,
34
+ 36663
27
35
  )
28
36
  ).resolves.not.toThrow();
29
37
  });
30
- test('getCode(blockId=null)', () => {
38
+ test('getCode(blockHash=undefined, blockNumber=null)', () => {
31
39
  return expect(
32
- defaultProvider.getCode('0x163a1542a64402ffc93e39a4962eec51ce126f2e634631d3f1f6770a76e3a61')
40
+ defaultProvider.getCode(
41
+ '0x01d1f307c073bb786a66e6e042ec2a9bdc385a3373bb3738d95b966d5ce56166'
42
+ )
33
43
  ).resolves.not.toThrow();
34
44
  });
35
45
  test('getStorageAt()', () => {
36
46
  return expect(
37
47
  defaultProvider.getStorageAt(
38
- '0x163a1542a64402ffc93e39a4962eec51ce126f2e634631d3f1f6770a76e3a61',
48
+ '0x01d1f307c073bb786a66e6e042ec2a9bdc385a3373bb3738d95b966d5ce56166',
39
49
  0,
40
- 870
50
+ undefined,
51
+ 36663
41
52
  )
42
53
  ).resolves.not.toThrow();
43
54
  });
44
- test('getStorageAt(blockId=null)', () => {
55
+ test('getStorageAt(blockHash=undefined, blockNumber=null)', () => {
45
56
  return expect(
46
57
  defaultProvider.getStorageAt(
47
- '0x163a1542a64402ffc93e39a4962eec51ce126f2e634631d3f1f6770a76e3a61',
58
+ '0x01d1f307c073bb786a66e6e042ec2a9bdc385a3373bb3738d95b966d5ce56166',
48
59
  0
49
60
  )
50
61
  ).resolves.not.toThrow();
@@ -52,14 +63,14 @@ describe('defaultProvider', () => {
52
63
  test('getTransactionStatus()', async () => {
53
64
  return expect(
54
65
  defaultProvider.getTransactionStatus(
55
- '0x72add9621ecdcb07405a4f943fe410bf57003ca250400f01ce70f8a6fc72147'
66
+ '0x37013e1cb9c133e6fe51b4b371b76b317a480f56d80576730754c1662582348'
56
67
  )
57
68
  ).resolves.not.toThrow();
58
69
  });
59
70
  test('getTransaction()', async () => {
60
71
  return expect(
61
72
  defaultProvider.getTransaction(
62
- '0x72add9621ecdcb07405a4f943fe410bf57003ca250400f01ce70f8a6fc72147'
73
+ '0x37013e1cb9c133e6fe51b4b371b76b317a480f56d80576730754c1662582348'
63
74
  )
64
75
  ).resolves.not.toThrow();
65
76
  });
@@ -99,4 +99,21 @@ describe('deploy and test Wallet', () => {
99
99
 
100
100
  expect(number.toBN(res as string).toString()).toStrictEqual(number.toBN(990).toString());
101
101
  });
102
+ test('execute with custom nonce', async () => {
103
+ const { result } = await signer.callContract({
104
+ contract_address: signer.address,
105
+ entry_point_selector: stark.getSelectorFromName('get_nonce'),
106
+ });
107
+ const nonce = parseInt(result[0], 10);
108
+ const { code, transaction_hash } = await signer.addTransaction({
109
+ type: 'INVOKE_FUNCTION',
110
+ contract_address: erc20Address,
111
+ entry_point_selector: stark.getSelectorFromName('transfer'),
112
+ calldata: [erc20Address, '10'],
113
+ nonce,
114
+ });
115
+
116
+ expect(code).toBe('TRANSACTION_RECEIVED');
117
+ await defaultProvider.waitForTx(transaction_hash);
118
+ });
102
119
  });
@@ -40,7 +40,7 @@ test('hashMessage()', () => {
40
40
  );
41
41
  expect(hashMsg).toBe('0x7f15c38ea577a26f4f553282fcfe4f1feeb8ecfaad8f221ae41abf8224cbddd');
42
42
  const keyPair = getKeyPair(privateKey);
43
- const { r, s } = sign(keyPair, removeHexPrefix(hashMsg));
43
+ const [r, s] = sign(keyPair, removeHexPrefix(hashMsg));
44
44
  expect(r.toString()).toStrictEqual(
45
45
  toBN('2458502865976494910213617956670505342647705497324144349552978333078363662855').toString()
46
46
  );
@@ -0,0 +1,72 @@
1
+ import { encodeType, getMessageHash, getStructHash, getTypeHash } from '../../src/utils/typedData';
2
+
3
+ const typedDataExample = {
4
+ types: {
5
+ StarkNetDomain: [
6
+ { name: 'name', type: 'felt' },
7
+ { name: 'version', type: 'felt' },
8
+ { name: 'chainId', type: 'felt' },
9
+ ],
10
+ Person: [
11
+ { name: 'name', type: 'felt' },
12
+ { name: 'wallet', type: 'felt' },
13
+ ],
14
+ Mail: [
15
+ { name: 'from', type: 'Person' },
16
+ { name: 'to', type: 'Person' },
17
+ { name: 'contents', type: 'felt' },
18
+ ],
19
+ },
20
+ primaryType: 'Mail',
21
+ domain: {
22
+ name: 'StarkNet Mail',
23
+ version: '1',
24
+ chainId: 1,
25
+ },
26
+ message: {
27
+ from: {
28
+ name: 'Cow',
29
+ wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
30
+ },
31
+ to: {
32
+ name: 'Bob',
33
+ wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
34
+ },
35
+ contents: 'Hello, Bob!',
36
+ },
37
+ };
38
+
39
+ describe('typedData', () => {
40
+ test('should get right type encoding', () => {
41
+ const typeEncoding = encodeType(typedDataExample, 'Mail');
42
+ expect(typeEncoding).toMatchInlineSnapshot(
43
+ `"Mail(from:Person,to:Person,contents:felt)Person(name:felt,wallet:felt)"`
44
+ );
45
+ });
46
+ test('should get right type hash', () => {
47
+ const typeHashDomain = getTypeHash(typedDataExample, 'StarkNetDomain');
48
+ expect(typeHashDomain).toMatchInlineSnapshot(
49
+ `"0x1bfc207425a47a5dfa1a50a4f5241203f50624ca5fdf5e18755765416b8e288"`
50
+ );
51
+ const typeHashPerson = getTypeHash(typedDataExample, 'Person');
52
+ expect(typeHashPerson).toMatchInlineSnapshot(
53
+ `"0x2896dbe4b96a67110f454c01e5336edc5bbc3635537efd690f122f4809cc855"`
54
+ );
55
+ const typeHashMail = getTypeHash(typedDataExample, 'Mail');
56
+ expect(typeHashMail).toMatchInlineSnapshot(
57
+ `"0x13d89452df9512bf750f539ba3001b945576243288137ddb6c788457d4b2f79"`
58
+ );
59
+ });
60
+ test('should get right hash for StarkNetDomain', () => {
61
+ const hash = getStructHash(typedDataExample, 'StarkNetDomain', typedDataExample.domain as any);
62
+ expect(hash).toMatchInlineSnapshot(
63
+ `"0x54833b121883a3e3aebff48ec08a962f5742e5f7b973469c1f8f4f55d470b07"`
64
+ );
65
+ });
66
+ test('should get right hash for entire message', () => {
67
+ const hash = getMessageHash(typedDataExample, '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826');
68
+ expect(hash).toMatchInlineSnapshot(
69
+ `"0x6fcff244f63e38b9d88b9e3378d44757710d1b244282b435cb472053c8d78d0"`
70
+ );
71
+ });
72
+ });
package/contract.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Provider } from './provider';
2
- import { Abi, StructAbi } from './types';
2
+ import { Abi, Signature, StructAbi } from './types';
3
3
  import { BigNumberish } from './utils/number';
4
4
  export declare type Args = {
5
5
  [inputName: string]:
@@ -33,7 +33,7 @@ export declare class Contract {
33
33
  invoke(
34
34
  method: string,
35
35
  args?: Args,
36
- signature?: [BigNumberish, BigNumberish]
36
+ signature?: Signature
37
37
  ): Promise<import('./types').AddTransactionResponse>;
38
38
  call(method: string, args?: Args): Promise<Args>;
39
39
  }
@@ -1,5 +1,5 @@
1
1
  import { Provider } from './provider';
2
- import { Abi, StructAbi } from './types';
2
+ import { Abi, Signature, StructAbi } from './types';
3
3
  import { BigNumberish } from './utils/number';
4
4
  export declare type Args = {
5
5
  [inputName: string]: string | string[] | {
@@ -27,6 +27,6 @@ export declare class Contract {
27
27
  private validateMethodAndArgs;
28
28
  private parseResponseField;
29
29
  private parseResponse;
30
- invoke(method: string, args?: Args, signature?: [BigNumberish, BigNumberish]): Promise<import("./types").AddTransactionResponse>;
30
+ invoke(method: string, args?: Args, signature?: Signature): Promise<import("./types").AddTransactionResponse>;
31
31
  call(method: string, args?: Args): Promise<Args>;
32
32
  }
package/dist/index.d.ts CHANGED
@@ -17,3 +17,4 @@ export * as stark from './utils/stark';
17
17
  export * as ec from './utils/ellipticCurve';
18
18
  export * as uint256 from './utils/uint256';
19
19
  export * as shortString from './utils/shortString';
20
+ export * as typedData from './utils/typedData';
package/dist/index.js CHANGED
@@ -22,7 +22,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  return result;
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.shortString = exports.uint256 = exports.ec = exports.stark = exports.number = exports.json = exports.hash = exports.encode = exports.constants = void 0;
25
+ exports.typedData = exports.shortString = exports.uint256 = exports.ec = exports.stark = exports.number = exports.json = exports.hash = exports.encode = exports.constants = void 0;
26
26
  /**
27
27
  * Main
28
28
  */
@@ -42,3 +42,4 @@ exports.stark = __importStar(require("./utils/stark"));
42
42
  exports.ec = __importStar(require("./utils/ellipticCurve"));
43
43
  exports.uint256 = __importStar(require("./utils/uint256"));
44
44
  exports.shortString = __importStar(require("./utils/shortString"));
45
+ exports.typedData = __importStar(require("./utils/typedData"));
@@ -1,7 +1,7 @@
1
- import { AddTransactionResponse, CallContractResponse, CallContractTransaction, CompiledContract, GetBlockResponse, GetCodeResponse, GetContractAddressesResponse, GetTransactionResponse, GetTransactionStatusResponse, Transaction } from '../types';
1
+ import { AddTransactionResponse, BlockNumber, CallContractResponse, CallContractTransaction, CompiledContract, GetBlockResponse, GetCodeResponse, GetContractAddressesResponse, GetTransactionResponse, GetTransactionStatusResponse, Signature, Transaction } from '../types';
2
2
  import { BigNumberish } from '../utils/number';
3
3
  import { ProviderInterface } from './interface';
4
- declare type NetworkName = 'mainnet-alpha' | 'georli-alpha';
4
+ declare type NetworkName = 'mainnet-alpha' | 'goerli-alpha';
5
5
  declare type ProviderOptions = {
6
6
  network: NetworkName;
7
7
  } | {
@@ -23,50 +23,54 @@ export declare class Provider implements ProviderInterface {
23
23
  /**
24
24
  * Calls a function on the StarkNet contract.
25
25
  *
26
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L17-L25)
26
+ * [Reference](https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L25-L39)
27
27
  *
28
- * @param invokeTx - transaction to be invoked
29
- * @param blockId
28
+ * @param invokeTransaction - transaction to be invoked
29
+ * @param blockHash
30
+ * @param blockNumber
30
31
  * @returns the result of the function on the smart contract.
31
32
  */
32
- callContract(invokeTx: CallContractTransaction, blockId?: number): Promise<CallContractResponse>;
33
+ callContract(invokeTransaction: CallContractTransaction, blockHash?: BigNumberish, blockNumber?: BlockNumber): Promise<CallContractResponse>;
33
34
  /**
34
- * Gets the block information from a block ID.
35
+ * Gets the block information
35
36
  *
36
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L27-L31)
37
+ * [Reference](https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L41-L53)
37
38
  *
38
- * @param blockId
39
- * @returns the block object { block_id, previous_block_id, state_root, status, timestamp, transaction_receipts, transactions }
39
+ * @param blockHash
40
+ * @param blockNumber
41
+ * @returns the block object { block_number, previous_block_number, state_root, status, timestamp, transaction_receipts, transactions }
40
42
  */
41
- getBlock(blockId?: number): Promise<GetBlockResponse>;
43
+ getBlock(blockHash?: BigNumberish, blockNumber?: BlockNumber): Promise<GetBlockResponse>;
42
44
  /**
43
45
  * Gets the code of the deployed contract.
44
46
  *
45
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L33-L36)
47
+ * [Reference](https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L55-L68)
46
48
  *
47
49
  * @param contractAddress
48
- * @param blockId
50
+ * @param blockHash
51
+ * @param blockNumber
49
52
  * @returns Bytecode and ABI of compiled contract
50
53
  */
51
- getCode(contractAddress: string, blockId?: number): Promise<GetCodeResponse>;
54
+ getCode(contractAddress: string, blockHash?: BigNumberish, blockNumber?: BlockNumber): Promise<GetCodeResponse>;
52
55
  /**
53
56
  * Gets the contract's storage variable at a specific key.
54
57
  *
55
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L38-L46)
58
+ * [Reference](https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L70-L85)
56
59
  *
57
60
  * @param contractAddress
58
61
  * @param key - from getStorageVarAddress('<STORAGE_VARIABLE_NAME>') (WIP)
59
- * @param blockId
62
+ * @param blockHash
63
+ * @param blockNumber
60
64
  * @returns the value of the storage variable
61
65
  */
62
- getStorageAt(contractAddress: string, key: number, blockId?: number): Promise<object>;
66
+ getStorageAt(contractAddress: string, key: number, blockHash?: BigNumberish, blockNumber?: BlockNumber): Promise<object>;
63
67
  /**
64
68
  * Gets the status of a transaction.
65
69
  *
66
70
  * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L48-L52)
67
71
  *
68
72
  * @param txHash
69
- * @returns the transaction status object { block_id, tx_status: NOT_RECEIVED | RECEIVED | PENDING | REJECTED | ACCEPTED_ONCHAIN }
73
+ * @returns the transaction status object { block_number, tx_status: NOT_RECEIVED | RECEIVED | PENDING | REJECTED | ACCEPTED_ONCHAIN }
70
74
  */
71
75
  getTransactionStatus(txHash: BigNumberish): Promise<GetTransactionStatusResponse>;
72
76
  /**
@@ -75,7 +79,7 @@ export declare class Provider implements ProviderInterface {
75
79
  * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L54-L58)
76
80
  *
77
81
  * @param txHash
78
- * @returns the transacton object { transaction_id, status, transaction, block_id?, block_number?, transaction_index?, transaction_failure_reason? }
82
+ * @returns the transacton object { transaction_id, status, transaction, block_number?, block_number?, transaction_index?, transaction_failure_reason? }
79
83
  */
80
84
  getTransaction(txHash: BigNumberish): Promise<GetTransactionResponse>;
81
85
  /**
@@ -83,10 +87,10 @@ export declare class Provider implements ProviderInterface {
83
87
  *
84
88
  * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/gateway/gateway_client.py#L13-L17)
85
89
  *
86
- * @param tx - transaction to be invoked
90
+ * @param transaction - transaction to be invoked
87
91
  * @returns a confirmation of invoking a function on the starknet contract
88
92
  */
89
- addTransaction(tx: Transaction): Promise<AddTransactionResponse>;
93
+ addTransaction(transaction: Transaction): Promise<AddTransactionResponse>;
90
94
  /**
91
95
  * Deploys a given compiled contract (json) to starknet
92
96
  *
@@ -104,7 +108,7 @@ export declare class Provider implements ProviderInterface {
104
108
  * @param signature - (optional) signature to send along
105
109
  * @returns response from addTransaction
106
110
  */
107
- invokeFunction(contractAddress: string, entrypointSelector: string, calldata?: string[], signature?: [BigNumberish, BigNumberish]): Promise<AddTransactionResponse>;
111
+ invokeFunction(contractAddress: string, entrypointSelector: string, calldata?: string[], signature?: Signature): Promise<AddTransactionResponse>;
108
112
  waitForTx(txHash: BigNumberish, retryInterval?: number): Promise<void>;
109
113
  }
110
114
  export {};