starknet 3.18.2 → 4.0.1

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 (165) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +1 -2
  3. package/__tests__/account.test.ts +11 -56
  4. package/__tests__/contract.test.ts +11 -49
  5. package/__tests__/defaultProvider.test.ts +321 -0
  6. package/__tests__/fixtures.ts +32 -11
  7. package/__tests__/jest.setup.ts +2 -3
  8. package/__tests__/rpcProvider.test.ts +17 -0
  9. package/__tests__/sequencerProvider.test.ts +45 -0
  10. package/account/default.d.ts +54 -77
  11. package/account/default.js +271 -596
  12. package/account/index.js +18 -31
  13. package/account/interface.d.ts +66 -95
  14. package/account/interface.js +20 -30
  15. package/constants.d.ts +17 -19
  16. package/constants.js +2038 -2059
  17. package/contract/contractFactory.d.ts +25 -29
  18. package/contract/contractFactory.js +94 -210
  19. package/contract/default.d.ts +117 -146
  20. package/contract/default.js +582 -776
  21. package/contract/index.js +19 -32
  22. package/contract/interface.d.ts +72 -92
  23. package/contract/interface.js +6 -5
  24. package/dist/account/default.d.ts +5 -9
  25. package/dist/account/default.js +35 -169
  26. package/dist/account/interface.d.ts +3 -15
  27. package/dist/contract/contractFactory.js +4 -4
  28. package/dist/contract/default.d.ts +3 -3
  29. package/dist/contract/default.js +3 -2
  30. package/dist/contract/interface.d.ts +2 -2
  31. package/dist/provider/default.d.ts +18 -134
  32. package/dist/provider/default.js +47 -411
  33. package/dist/provider/index.d.ts +2 -0
  34. package/dist/provider/index.js +2 -0
  35. package/dist/provider/interface.d.ts +45 -50
  36. package/dist/provider/rpc.d.ts +57 -0
  37. package/dist/provider/rpc.js +364 -0
  38. package/dist/provider/sequencer.d.ts +66 -0
  39. package/dist/provider/sequencer.js +444 -0
  40. package/dist/types/account.d.ts +2 -3
  41. package/dist/types/api/index.d.ts +16 -0
  42. package/dist/types/api/index.js +18 -0
  43. package/dist/types/api/rpc.d.ts +221 -0
  44. package/dist/types/{api.js → api/rpc.js} +0 -0
  45. package/dist/types/api/sequencer.d.ts +289 -0
  46. package/dist/types/api/sequencer.js +2 -0
  47. package/dist/types/index.d.ts +3 -1
  48. package/dist/types/index.js +15 -1
  49. package/dist/types/lib.d.ts +3 -1
  50. package/dist/types/provider.d.ts +86 -0
  51. package/dist/types/provider.js +2 -0
  52. package/dist/utils/fetchPonyfill.d.ts +2 -0
  53. package/dist/utils/fetchPonyfill.js +6 -0
  54. package/dist/utils/provider.d.ts +4 -0
  55. package/dist/utils/provider.js +38 -0
  56. package/dist/utils/responseParser/index.d.ts +11 -0
  57. package/dist/utils/responseParser/index.js +9 -0
  58. package/dist/utils/responseParser/rpc.d.ts +13 -0
  59. package/dist/utils/responseParser/rpc.js +96 -0
  60. package/dist/utils/responseParser/sequencer.d.ts +13 -0
  61. package/dist/utils/responseParser/sequencer.js +124 -0
  62. package/index.js +42 -75
  63. package/package.json +2 -3
  64. package/provider/default.d.ts +21 -175
  65. package/provider/default.js +139 -704
  66. package/provider/errors.d.ts +4 -4
  67. package/provider/errors.js +30 -40
  68. package/provider/index.d.ts +2 -0
  69. package/provider/index.js +22 -33
  70. package/provider/interface.d.ts +104 -131
  71. package/provider/interface.js +6 -5
  72. package/provider/rpc.d.ts +57 -0
  73. package/provider/rpc.js +364 -0
  74. package/provider/sequencer.d.ts +66 -0
  75. package/provider/sequencer.js +444 -0
  76. package/provider/utils.d.ts +7 -9
  77. package/provider/utils.js +39 -44
  78. package/signer/default.d.ts +5 -9
  79. package/signer/default.js +72 -177
  80. package/signer/index.js +18 -31
  81. package/signer/interface.d.ts +29 -33
  82. package/signer/interface.js +6 -5
  83. package/src/account/default.ts +26 -146
  84. package/src/account/interface.ts +5 -20
  85. package/src/contract/contractFactory.ts +3 -6
  86. package/src/contract/default.ts +6 -4
  87. package/src/contract/interface.ts +2 -2
  88. package/src/provider/default.ts +63 -395
  89. package/src/provider/index.ts +2 -0
  90. package/src/provider/interface.ts +68 -63
  91. package/src/provider/rpc.ts +299 -0
  92. package/src/provider/sequencer.ts +385 -0
  93. package/src/types/account.ts +2 -3
  94. package/src/types/api/index.ts +17 -0
  95. package/src/types/api/rpc.ts +247 -0
  96. package/src/types/api/sequencer.ts +331 -0
  97. package/src/types/index.ts +3 -1
  98. package/src/types/lib.ts +3 -1
  99. package/src/types/provider.ts +108 -0
  100. package/src/utils/fetchPonyfill.ts +4 -0
  101. package/src/utils/provider.ts +28 -0
  102. package/src/utils/responseParser/index.ts +28 -0
  103. package/src/utils/responseParser/rpc.ts +93 -0
  104. package/src/utils/responseParser/sequencer.ts +127 -0
  105. package/types/account.d.ts +5 -7
  106. package/types/account.js +2 -2
  107. package/types/api/index.d.ts +16 -0
  108. package/types/api/index.js +18 -0
  109. package/types/api/rpc.d.ts +221 -0
  110. package/types/api/rpc.js +2 -0
  111. package/types/api/sequencer.d.ts +289 -0
  112. package/types/api/sequencer.js +2 -0
  113. package/types/contract.d.ts +1 -1
  114. package/types/contract.js +2 -2
  115. package/types/index.d.ts +3 -1
  116. package/types/index.js +35 -34
  117. package/types/lib.d.ts +36 -41
  118. package/types/lib.js +2 -2
  119. package/types/provider.d.ts +86 -0
  120. package/types/provider.js +2 -0
  121. package/types/signer.d.ts +2 -2
  122. package/types/signer.js +2 -2
  123. package/utils/address.js +26 -37
  124. package/utils/ellipticCurve.d.ts +1 -6
  125. package/utils/ellipticCurve.js +73 -137
  126. package/utils/encode.js +49 -85
  127. package/utils/fetchPonyfill.d.ts +2 -0
  128. package/utils/fetchPonyfill.js +6 -0
  129. package/utils/hash.d.ts +4 -31
  130. package/utils/hash.js +76 -141
  131. package/utils/json.d.ts +13 -45
  132. package/utils/json.js +15 -22
  133. package/utils/number.d.ts +2 -9
  134. package/utils/number.js +47 -81
  135. package/utils/provider.d.ts +4 -0
  136. package/utils/provider.js +38 -0
  137. package/utils/responseParser/index.d.ts +11 -0
  138. package/utils/responseParser/index.js +9 -0
  139. package/utils/responseParser/rpc.d.ts +13 -0
  140. package/utils/responseParser/rpc.js +96 -0
  141. package/utils/responseParser/sequencer.d.ts +13 -0
  142. package/utils/responseParser/sequencer.js +124 -0
  143. package/utils/shortString.js +13 -21
  144. package/utils/stark.d.ts +0 -1
  145. package/utils/stark.js +59 -93
  146. package/utils/transaction.d.ts +3 -6
  147. package/utils/transaction.js +50 -81
  148. package/utils/typedData/index.d.ts +3 -15
  149. package/utils/typedData/index.js +109 -175
  150. package/utils/typedData/types.d.ts +9 -9
  151. package/utils/typedData/types.js +2 -2
  152. package/utils/typedData/utils.js +6 -6
  153. package/utils/uint256.d.ts +5 -5
  154. package/utils/uint256.js +16 -26
  155. package/www/docs/API/account.md +3 -4
  156. package/www/docs/API/contract.md +2 -2
  157. package/www/docs/API/contractFactory.md +2 -2
  158. package/www/docs/API/provider.md +185 -74
  159. package/www/guides/account.md +1 -8
  160. package/www/guides/erc20.md +3 -0
  161. package/__tests__/provider.test.ts +0 -168
  162. package/dist/types/api.d.ts +0 -261
  163. package/src/types/api.ts +0 -303
  164. package/types/api.d.ts +0 -287
  165. package/types/api.js +0 -2
@@ -1,181 +1,27 @@
1
1
  import { StarknetChainId } from '../constants';
2
- import {
3
- Abi,
4
- AddTransactionResponse,
5
- Call,
6
- CallContractResponse,
7
- DeclareContractPayload,
8
- DeployContractPayload,
9
- Endpoints,
10
- GetBlockResponse,
11
- GetCodeResponse,
12
- GetContractAddressesResponse,
13
- GetTransactionResponse,
14
- GetTransactionStatusResponse,
15
- GetTransactionTraceResponse,
16
- Invocation,
17
- TransactionReceiptResponse,
18
- } from '../types';
2
+ import { BlockTag, Call, CallContractResponse, ContractClass, DeclareContractPayload, DeclareContractResponse, DeployContractPayload, DeployContractResponse, EstimateFeeResponse, GetBlockResponse, GetTransactionReceiptResponse, GetTransactionResponse, Invocation, InvocationsDetails, InvokeFunctionResponse } from '../types';
19
3
  import { BigNumberish } from '../utils/number';
20
4
  import { ProviderInterface } from './interface';
5
+ import { RpcProviderOptions } from './rpc';
6
+ import { SequencerProviderOptions } from './sequencer';
21
7
  import { BlockIdentifier } from './utils';
22
- declare type NetworkName = 'mainnet-alpha' | 'goerli-alpha';
23
- declare type ProviderOptions =
24
- | {
25
- network: NetworkName;
26
- }
27
- | {
28
- baseUrl: string;
29
- };
8
+ export interface ProviderOptions {
9
+ sequencer?: SequencerProviderOptions;
10
+ rpc?: RpcProviderOptions;
11
+ }
30
12
  export declare class Provider implements ProviderInterface {
31
- baseUrl: string;
32
- feederGatewayUrl: string;
33
- gatewayUrl: string;
34
- chainId: StarknetChainId;
35
- constructor(optionsOrProvider?: ProviderOptions | ProviderInterface);
36
- protected static getNetworkFromName(
37
- name: NetworkName
38
- ): 'https://alpha-mainnet.starknet.io' | 'https://alpha4.starknet.io';
39
- protected static getChainIdFromBaseUrl(baseUrl: string): StarknetChainId;
40
- private getFetchUrl;
41
- private getFetchMethod;
42
- private getQueryString;
43
- private getHeaders;
44
- protected fetchEndpoint<T extends keyof Endpoints>(
45
- endpoint: T,
46
- ...[query, request]: Endpoints[T]['QUERY'] extends never
47
- ? Endpoints[T]['REQUEST'] extends never
48
- ? []
49
- : [undefined, Endpoints[T]['REQUEST']]
50
- : Endpoints[T]['REQUEST'] extends never
51
- ? [Endpoints[T]['QUERY']]
52
- : [Endpoints[T]['QUERY'], Endpoints[T]['REQUEST']]
53
- ): Promise<Endpoints[T]['RESPONSE']>;
54
- /**
55
- * Gets the smart contract address on the goerli testnet.
56
- *
57
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L13-L15)
58
- * @returns starknet smart contract addresses
59
- */
60
- getContractAddresses(): Promise<GetContractAddressesResponse>;
61
- /**
62
- * Calls a function on the StarkNet contract.
63
- *
64
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L25-L39)
65
- *
66
- * @param invokeTransaction - transaction to be invoked
67
- * @param blockHash
68
- * @param blockNumber
69
- * @returns the result of the function on the smart contract.
70
- */
71
- callContract(
72
- { contractAddress, entrypoint, calldata }: Call,
73
- {
74
- blockIdentifier,
75
- }?: {
76
- blockIdentifier?: BlockIdentifier;
77
- }
78
- ): Promise<CallContractResponse>;
79
- /**
80
- * Gets the block information
81
- *
82
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L41-L53)
83
- *
84
- * @param blockHash
85
- * @param blockNumber
86
- * @returns the block object { block_number, previous_block_number, state_root, status, timestamp, transaction_receipts, transactions }
87
- */
88
- getBlock(blockIdentifier?: BlockIdentifier): Promise<GetBlockResponse>;
89
- /**
90
- * Gets the code of the deployed contract.
91
- *
92
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L55-L68)
93
- *
94
- * @param contractAddress
95
- * @param blockHash
96
- * @param blockNumber
97
- * @returns Bytecode and ABI of compiled contract
98
- */
99
- getCode(contractAddress: string, blockIdentifier?: BlockIdentifier): Promise<GetCodeResponse>;
100
- /**
101
- * Gets the contract's storage variable at a specific key.
102
- *
103
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/fc97bdd8322a7df043c87c371634b26c15ed6cee/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L70-L85)
104
- *
105
- * @param contractAddress
106
- * @param key - from getStorageVarAddress('<STORAGE_VARIABLE_NAME>') (WIP)
107
- * @param blockHash
108
- * @param blockNumber
109
- * @returns the value of the storage variable
110
- */
111
- getStorageAt(
112
- contractAddress: string,
113
- key: BigNumberish,
114
- blockIdentifier?: BlockIdentifier
115
- ): Promise<object>;
116
- /**
117
- * Gets the status of a transaction.
118
- *
119
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L48-L52)
120
- *
121
- * @param txHash
122
- * @returns the transaction status object { block_number, tx_status: NOT_RECEIVED | RECEIVED | PENDING | REJECTED | ACCEPTED_ONCHAIN }
123
- */
124
- getTransactionStatus(txHash: BigNumberish): Promise<GetTransactionStatusResponse>;
125
- /**
126
- * Gets the transaction receipt from a tx hash.
127
- *
128
- * [Reference] (https://github.com/starkware-libs/cairo-lang/blob/167b28bcd940fd25ea3816204fa882a0b0a49603/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L183)
129
- *
130
- * @param txHash
131
- * @returns the transaction receipt object
132
- */
133
- getTransactionReceipt(txHash: BigNumberish): Promise<TransactionReceiptResponse>;
134
- /**
135
- * Gets the transaction information from a tx id.
136
- *
137
- * [Reference](https://github.com/starkware-libs/cairo-lang/blob/f464ec4797361b6be8989e36e02ec690e74ef285/src/starkware/starknet/services/api/feeder_gateway/feeder_gateway_client.py#L54-L58)
138
- *
139
- * @param txHash
140
- * @returns the transacton object { transaction_id, status, transaction, block_number?, block_number?, transaction_index?, transaction_failure_reason? }
141
- */
142
- getTransaction(txHash: BigNumberish): Promise<GetTransactionResponse>;
143
- /**
144
- * Gets the transaction trace from a tx id.
145
- *
146
- *
147
- * @param txHash
148
- * @returns the transaction trace
149
- */
150
- getTransactionTrace(txHash: BigNumberish): Promise<GetTransactionTraceResponse>;
151
- /**
152
- * Declare a given compiled contract (json) on starknet
153
- *
154
- * @param contract - a json object containing the compiled contract
155
- * @returns a confirmation of sending a transaction on the starknet contract
156
- */
157
- declareContract(payload: DeclareContractPayload): Promise<AddTransactionResponse>;
158
- /**
159
- * Deploys a given compiled contract (json) to starknet
160
- *
161
- * @param contract - a json object containing the compiled contract
162
- * @param address - (optional, defaults to a random address) the address where the contract should be deployed (alpha)
163
- * @returns a confirmation of sending a transaction on the starknet contract
164
- */
165
- deployContract(payload: DeployContractPayload, _abi?: Abi): Promise<AddTransactionResponse>;
166
- /**
167
- * Invokes a function on starknet
168
- * @deprecated This method wont be supported as soon as fees are mandatory
169
- *
170
- * @param invocation
171
- * @param _abi - (optional) signature to send along
172
- * @returns response from addTransaction
173
- */
174
- invokeFunction(invocation: Invocation, _abi?: Abi): Promise<AddTransactionResponse>;
175
- waitForTransaction(txHash: BigNumberish, retryInterval?: number): Promise<void>;
176
- /**
177
- * @deprecated use `waitForTransaction` instead
178
- */
179
- waitForTx(txHash: BigNumberish, retryInterval?: number): Promise<void>;
13
+ private provider;
14
+ constructor(providerOrOptions?: ProviderOptions | ProviderInterface);
15
+ get chainId(): StarknetChainId;
16
+ getBlock(blockIdentifier?: BlockIdentifier): Promise<GetBlockResponse>;
17
+ getClassAt(contractAddress: string, blockIdentifier?: BlockIdentifier): Promise<ContractClass>;
18
+ getEstimateFee(invocation: Invocation, blockIdentifier?: BlockIdentifier, invocationDetails?: InvocationsDetails): Promise<EstimateFeeResponse>;
19
+ getStorageAt(contractAddress: string, key: BigNumberish, blockTagOrHash?: BlockTag | BigNumberish): Promise<BigNumberish>;
20
+ getTransaction(txHash: BigNumberish): Promise<GetTransactionResponse>;
21
+ getTransactionReceipt(txHash: BigNumberish): Promise<GetTransactionReceiptResponse>;
22
+ callContract(request: Call, blockIdentifier?: BlockIdentifier): Promise<CallContractResponse>;
23
+ invokeFunction(functionInvocation: Invocation, details: InvocationsDetails): Promise<InvokeFunctionResponse>;
24
+ deployContract(payload: DeployContractPayload): Promise<DeployContractResponse>;
25
+ declareContract(payload: DeclareContractPayload): Promise<DeclareContractResponse>;
26
+ waitForTransaction(txHash: BigNumberish, retryInterval?: number): Promise<void>;
180
27
  }
181
- export {};