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
@@ -0,0 +1,127 @@
1
+ import {
2
+ CallContractResponse,
3
+ DeclareContractResponse,
4
+ DeployContractResponse,
5
+ EstimateFeeResponse,
6
+ GetBlockResponse,
7
+ GetTransactionReceiptResponse,
8
+ GetTransactionResponse,
9
+ InvokeFunctionResponse,
10
+ } from '../../types';
11
+ import { Sequencer } from '../../types/api';
12
+ import { toBN } from '../number';
13
+ import { ResponseParser } from '.';
14
+
15
+ export class SequencerAPIResponseParser extends ResponseParser {
16
+ public parseGetBlockResponse(res: Sequencer.GetBlockResponse): GetBlockResponse {
17
+ return {
18
+ accepted_time: res.timestamp,
19
+ block_hash: res.block_hash,
20
+ block_number: res.block_number,
21
+ gas_price: res.gas_price,
22
+ new_root: res.state_root,
23
+ old_root: undefined,
24
+ parent_hash: res.parent_block_hash,
25
+ sequencer: res.sequencer_address,
26
+ status: res.status,
27
+ transactions: Object.values(res.transactions)
28
+ .map((value) => 'transaction_hash' in value && value.transaction_hash)
29
+ .filter(Boolean) as Array<string>,
30
+ };
31
+ }
32
+
33
+ public parseGetTransactionResponse(
34
+ res: Sequencer.GetTransactionResponse
35
+ ): GetTransactionResponse {
36
+ return {
37
+ calldata: 'calldata' in res.transaction ? (res.transaction.calldata as Array<string>) : [],
38
+ contract_address:
39
+ 'contract_address' in res.transaction ? res.transaction.contract_address : undefined,
40
+ contract_class:
41
+ 'contract_class' in res.transaction ? (res.transaction.contract_class as any) : undefined,
42
+ entry_point_selector:
43
+ 'entry_point_selector' in res.transaction
44
+ ? res.transaction.entry_point_selector
45
+ : undefined,
46
+ max_fee: 'max_fee' in res.transaction ? (res.transaction.max_fee as string) : undefined,
47
+ nonce: res.transaction.nonce as string,
48
+ sender_address:
49
+ 'sender_address' in res.transaction
50
+ ? (res.transaction.sender_address as string)
51
+ : undefined,
52
+ signature: 'signature' in res.transaction ? res.transaction.signature : undefined,
53
+ transaction_hash:
54
+ 'transaction_hash' in res.transaction ? res.transaction.transaction_hash : undefined,
55
+ version: 'version' in res.transaction ? (res.transaction.version as string) : undefined,
56
+ };
57
+ }
58
+
59
+ public parseGetTransactionReceiptResponse(
60
+ res: Sequencer.TransactionReceiptResponse
61
+ ): GetTransactionReceiptResponse {
62
+ return {
63
+ transaction_hash: res.transaction_hash,
64
+ actual_fee: 'actual_fee' in res ? res.actual_fee : undefined,
65
+ status: res.status,
66
+ status_data: undefined,
67
+ messages_sent: res.l2_to_l1_messages as any, // TODO: parse
68
+ events: res.events as any,
69
+ l1_origin_message: undefined,
70
+ };
71
+ }
72
+
73
+ public parseFeeEstimateResponse(res: Sequencer.EstimateFeeResponse): EstimateFeeResponse {
74
+ if ('overall_fee' in res) {
75
+ let gasInfo = {};
76
+
77
+ try {
78
+ gasInfo = {
79
+ gas_consumed: toBN(res.gas_usage),
80
+ gas_price: toBN(res.gas_price),
81
+ };
82
+ } catch {
83
+ // do nothing
84
+ }
85
+
86
+ return {
87
+ overall_fee: toBN(res.overall_fee),
88
+ ...gasInfo,
89
+ };
90
+ }
91
+ return {
92
+ overall_fee: toBN(res.amount),
93
+ };
94
+ }
95
+
96
+ public parseCallContractResponse(res: Sequencer.CallContractResponse): CallContractResponse {
97
+ return {
98
+ result: res.result,
99
+ };
100
+ }
101
+
102
+ public parseInvokeFunctionResponse(
103
+ res: Sequencer.AddTransactionResponse
104
+ ): InvokeFunctionResponse {
105
+ return {
106
+ transaction_hash: res.transaction_hash,
107
+ };
108
+ }
109
+
110
+ public parseDeployContractResponse(
111
+ res: Sequencer.AddTransactionResponse
112
+ ): DeployContractResponse {
113
+ return {
114
+ transaction_hash: res.transaction_hash,
115
+ contract_address: res.address as string,
116
+ };
117
+ }
118
+
119
+ public parseDeclareContractResponse(
120
+ res: Sequencer.AddTransactionResponse
121
+ ): DeclareContractResponse {
122
+ return {
123
+ transaction_hash: res.transaction_hash,
124
+ class_hash: res.class_hash as string,
125
+ };
126
+ }
127
+ }
@@ -1,13 +1,11 @@
1
1
  import BN from 'bn.js';
2
-
3
2
  import { BlockIdentifier } from '../provider/utils';
4
3
  import { BigNumberish } from '../utils/number';
5
- export interface EstimateFee {
6
- amount: BN;
7
- unit: string;
8
- suggestedMaxFee: BN;
4
+ import { EstimateFeeResponse } from './provider';
5
+ export interface EstimateFee extends EstimateFeeResponse {
6
+ suggestedMaxFee: BN;
9
7
  }
10
8
  export interface EstimateFeeDetails {
11
- nonce?: BigNumberish;
12
- blockIdentifier?: BlockIdentifier;
9
+ nonce?: BigNumberish;
10
+ blockIdentifier?: BlockIdentifier;
13
11
  }
package/types/account.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,16 @@
1
+ import { BigNumberish } from '../../utils/number';
2
+ import { Signature } from '../lib';
3
+ export declare type RawArgs = {
4
+ [inputName: string]: string | string[] | {
5
+ type: 'struct';
6
+ [k: string]: BigNumberish;
7
+ };
8
+ };
9
+ export declare type Calldata = string[];
10
+ export declare type Overrides = {
11
+ maxFee?: BigNumberish;
12
+ nonce?: BigNumberish;
13
+ signature?: Signature;
14
+ };
15
+ export * from './sequencer';
16
+ export * from './rpc';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./sequencer"), exports);
18
+ __exportStar(require("./rpc"), exports);
@@ -0,0 +1,221 @@
1
+ import { StarknetChainId } from '../../constants';
2
+ import { Status } from '../lib';
3
+ export declare namespace RPC {
4
+ export type Response = {
5
+ id: number;
6
+ result: any;
7
+ jsonrpc: string;
8
+ error?: {
9
+ code: string;
10
+ message: string;
11
+ };
12
+ };
13
+ export type AddTransactionResponse = {
14
+ transaction_hash: string;
15
+ };
16
+ export type GetClassResponse = {
17
+ program: string;
18
+ entry_point_by_type: any;
19
+ };
20
+ export type DeclareResponse = {
21
+ transaction_hash: string;
22
+ class_hash: string;
23
+ };
24
+ export type EstimateFeeResponse = {
25
+ overall_fee: number;
26
+ gas_consumed: number;
27
+ gas_price: number;
28
+ };
29
+ export type GetBlockResponse = {
30
+ block_hash: string;
31
+ parent_hash: string;
32
+ block_number: number;
33
+ status: Status;
34
+ sequencer: string;
35
+ new_root: string;
36
+ old_root: string;
37
+ accepted_time: number;
38
+ gas_price: string;
39
+ transactions: string[];
40
+ };
41
+ export type GetCodeResponse = {
42
+ bytecode: string[];
43
+ abi: string;
44
+ };
45
+ export type GetStorageAtResponse = string;
46
+ export type GetTransactionReceiptResponse = {
47
+ txn_hash: string;
48
+ actual_fee: string;
49
+ status: Status;
50
+ status_data: string;
51
+ messages_sent: Array<MessageToL1>;
52
+ l1_origin_message: MessageToL2;
53
+ events: Array<StarknetEvent>;
54
+ };
55
+ interface CommonTransactionProperties {
56
+ txn_hash: string;
57
+ max_fee: string;
58
+ version: string;
59
+ nonce: string;
60
+ signature: Array<string>;
61
+ }
62
+ export interface InvokeTransactionResponse extends CommonTransactionProperties {
63
+ contract_address?: string;
64
+ entry_point_selector?: string;
65
+ calldata?: Array<string>;
66
+ }
67
+ export interface DeclareTransactionResponse extends CommonTransactionProperties {
68
+ contract_class?: GetClassResponse;
69
+ sender_address?: string;
70
+ }
71
+ export type GetTransactionResponse = InvokeTransactionResponse & DeclareTransactionResponse;
72
+ export type GetTransactionCountResponse = number;
73
+ export type GetBlockNumberResponse = number;
74
+ export type GetSyncingStatsResponse = {
75
+ starting_block_hash: string;
76
+ starting_block_num: string;
77
+ current_block_hash: string;
78
+ current_block_num: string;
79
+ highest_block_hash: string;
80
+ highest_block_num: string;
81
+ } | boolean;
82
+ export type EventFilter = {
83
+ fromBlock: string;
84
+ toBlock: string;
85
+ address: string;
86
+ keys: string[];
87
+ page_size: number;
88
+ page_number: number;
89
+ };
90
+ export type GetEventsResponse = {
91
+ events: StarknetEmittedEvent[];
92
+ page_number: number;
93
+ is_last_page: number;
94
+ };
95
+ export type DeployContractResponse = {
96
+ transaction_hash: string;
97
+ contract_address: string;
98
+ };
99
+ export type StarknetEvent = {
100
+ from_address: string;
101
+ keys: string[];
102
+ data: string[];
103
+ };
104
+ export type StarknetEmittedEvent = {
105
+ event: StarknetEvent;
106
+ block_hash: string;
107
+ block_number: number;
108
+ transaction_hash: string;
109
+ };
110
+ export type MessageToL1 = {
111
+ to_address: string;
112
+ payload: string[];
113
+ };
114
+ export type MessageToL2 = {
115
+ from_address: string;
116
+ payload: string[];
117
+ };
118
+ export type Methods = {
119
+ starknet_getBlockByHash: {
120
+ QUERY: never;
121
+ REQUEST: any[];
122
+ RESPONSE: GetBlockResponse;
123
+ };
124
+ starknet_getBlockByNumber: {
125
+ QUERY: never;
126
+ REQUEST: any[];
127
+ RESPONSE: GetBlockResponse;
128
+ };
129
+ starknet_getStorageAt: {
130
+ QUERY: never;
131
+ REQUEST: any[];
132
+ RESPONSE: GetStorageAtResponse;
133
+ };
134
+ starknet_getTransactionByHash: {
135
+ QUERY: never;
136
+ REQUEST: any[];
137
+ RESPONSE: GetTransactionResponse;
138
+ };
139
+ starknet_getTransactionByBlockHashAndIndex: {
140
+ QUERY: never;
141
+ REQUEST: any[];
142
+ RESPONSE: GetTransactionResponse;
143
+ };
144
+ starknet_getTransactionByBlockNumberAndIndex: {
145
+ QUERY: never;
146
+ REQUEST: any[];
147
+ RESPONSE: GetTransactionResponse;
148
+ };
149
+ starknet_getTransactionReceipt: {
150
+ QUERY: never;
151
+ REQUEST: any[];
152
+ RESPONSE: GetTransactionReceiptResponse;
153
+ };
154
+ starknet_getBlockTransactionCountByHash: {
155
+ QUERY: never;
156
+ REQUEST: any[];
157
+ RESPONSE: GetTransactionCountResponse;
158
+ };
159
+ starknet_getBlockTransactionCountByNumber: {
160
+ QUERY: never;
161
+ REQUEST: any[];
162
+ RESPONSE: GetTransactionCountResponse;
163
+ };
164
+ starknet_getCode: {
165
+ QUERY: never;
166
+ REQUEST: any[];
167
+ RESPONSE: GetCodeResponse;
168
+ };
169
+ starknet_call: {
170
+ QUERY: never;
171
+ REQUEST: any[];
172
+ RESPONSE: string[];
173
+ };
174
+ starknet_estimateFee: {
175
+ QUERY: never;
176
+ REQUEST: any[];
177
+ RESPONSE: EstimateFeeResponse;
178
+ };
179
+ starknet_blockNumber: {
180
+ QUERY: never;
181
+ REQUEST: any[];
182
+ RESPONSE: GetBlockNumberResponse;
183
+ };
184
+ starknet_chainId: {
185
+ QUERY: never;
186
+ REQUEST: any[];
187
+ RESPONSE: StarknetChainId;
188
+ };
189
+ starknet_syncing: {
190
+ QUERY: never;
191
+ REQUEST: any[];
192
+ RESPONSE: GetSyncingStatsResponse;
193
+ };
194
+ starknet_getEvents: {
195
+ QUERY: never;
196
+ REQUEST: any[];
197
+ RESPONSE: GetEventsResponse;
198
+ };
199
+ starknet_addInvokeTransaction: {
200
+ QUERY: never;
201
+ REQUEST: any[];
202
+ RESPONSE: AddTransactionResponse;
203
+ };
204
+ starknet_addDeployTransaction: {
205
+ QUERY: never;
206
+ REQUEST: any[];
207
+ RESPONSE: DeployContractResponse;
208
+ };
209
+ starknet_addDeclareTransaction: {
210
+ QUERY: never;
211
+ REQUEST: any[];
212
+ RESPONSE: DeclareResponse;
213
+ };
214
+ starknet_getClassAt: {
215
+ QUERY: never;
216
+ REQUEST: any[];
217
+ RESPONSE: any;
218
+ };
219
+ };
220
+ export {};
221
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,289 @@
1
+ import BN from 'bn.js';
2
+ import { BlockIdentifier } from '../../provider/utils';
3
+ import { BigNumberish } from '../../utils/number';
4
+ import { Abi, BlockNumber, EntryPointType, RawCalldata, Signature, Status, TransactionStatus } from '../lib';
5
+ import { ContractClass } from '../provider';
6
+ export declare type GetTransactionStatusResponse = {
7
+ tx_status: Status;
8
+ block_hash?: string;
9
+ tx_failure_reason?: {
10
+ code: string;
11
+ error_message: string;
12
+ };
13
+ };
14
+ export declare type GetContractAddressesResponse = {
15
+ Starknet: string;
16
+ GpsStatementVerifier: string;
17
+ };
18
+ export declare type InvokeFunctionTrace = {
19
+ caller_address: string;
20
+ contract_address: string;
21
+ code_address: string;
22
+ selector: string;
23
+ calldata: RawCalldata;
24
+ result: Array<any>;
25
+ execution_resources: ExecutionResources;
26
+ internal_call: Array<InvokeFunctionTrace>;
27
+ events: Array<any>;
28
+ messages: Array<any>;
29
+ };
30
+ export declare type ExecutionResources = {
31
+ n_steps: number;
32
+ builtin_instance_counter: {
33
+ pedersen_builtin: number;
34
+ range_check_builtin: number;
35
+ bitwise_builtin: number;
36
+ output_builtin: number;
37
+ ecdsa_builtin: number;
38
+ ec_op_builtin?: number;
39
+ };
40
+ n_memory_holes: number;
41
+ };
42
+ export declare type GetCodeResponse = {
43
+ bytecode: string[];
44
+ abi: Abi;
45
+ };
46
+ export declare type GetTransactionTraceResponse = {
47
+ function_invocation: {
48
+ caller_address: string;
49
+ contract_address: string;
50
+ code_address: string;
51
+ selector: string;
52
+ calldata: RawArgs;
53
+ result: Array<any>;
54
+ execution_resources: ExecutionResources;
55
+ internal_call: Array<any>;
56
+ events: Array<any>;
57
+ messages: Array<any>;
58
+ };
59
+ signature: Signature;
60
+ };
61
+ export declare type RawArgs = {
62
+ [inputName: string]: string | string[] | {
63
+ type: 'struct';
64
+ [k: string]: BigNumberish;
65
+ };
66
+ };
67
+ export declare namespace Sequencer {
68
+ type DeclareTransaction = {
69
+ type: 'DECLARE';
70
+ contract_class: ContractClass;
71
+ nonce: BigNumberish;
72
+ sender_address: BigNumberish;
73
+ signature: Signature;
74
+ };
75
+ type DeployTransaction = {
76
+ type: 'DEPLOY';
77
+ contract_definition: ContractClass;
78
+ contract_address_salt: BigNumberish;
79
+ constructor_calldata: string[];
80
+ nonce?: BigNumberish;
81
+ };
82
+ type InvokeFunctionTransaction = {
83
+ type: 'INVOKE_FUNCTION';
84
+ contract_address: string;
85
+ signature?: Signature;
86
+ entry_point_type?: EntryPointType;
87
+ entry_point_selector: string;
88
+ calldata?: RawCalldata;
89
+ nonce?: BigNumberish;
90
+ max_fee?: BigNumberish;
91
+ version?: BigNumberish;
92
+ };
93
+ type Transaction = DeclareTransaction | DeployTransaction | InvokeFunctionTransaction;
94
+ type AddTransactionResponse = {
95
+ transaction_hash: string;
96
+ code?: TransactionStatus;
97
+ address?: string;
98
+ class_hash?: string;
99
+ };
100
+ interface InvokeFunctionTransactionResponse extends InvokeFunctionTransaction {
101
+ transaction_hash: string;
102
+ }
103
+ type TransactionResponse = DeclareTransaction | DeployTransaction | InvokeFunctionTransactionResponse;
104
+ type SuccessfulTransactionResponse = {
105
+ status: Status;
106
+ transaction: TransactionResponse;
107
+ block_hash: string;
108
+ block_number: BlockNumber;
109
+ transaction_index: number;
110
+ };
111
+ type FailedTransactionResponse = {
112
+ status: 'REJECTED';
113
+ transaction_failure_reason: {
114
+ code: string;
115
+ error_message: string;
116
+ };
117
+ transaction: TransactionResponse;
118
+ };
119
+ type GetTransactionResponse = SuccessfulTransactionResponse | FailedTransactionResponse;
120
+ type TransactionReceiptResponse = SuccessfulTransactionReceiptResponse | FailedTransactionReceiptResponse;
121
+ type SuccessfulTransactionReceiptResponse = {
122
+ status: Status;
123
+ transaction_hash: string;
124
+ transaction_index: number;
125
+ block_hash: string;
126
+ block_number: BlockNumber;
127
+ l2_to_l1_messages: string[];
128
+ events: string[];
129
+ actual_fee: string;
130
+ execution_resources: ExecutionResources;
131
+ };
132
+ type FailedTransactionReceiptResponse = {
133
+ status: 'REJECTED';
134
+ transaction_failure_reason: {
135
+ code: string;
136
+ error_message: string;
137
+ };
138
+ transaction_hash: string;
139
+ l2_to_l1_messages: string[];
140
+ events: string[];
141
+ };
142
+ type GetBlockResponse = {
143
+ block_number: number;
144
+ state_root: string;
145
+ block_hash: string;
146
+ transactions: {
147
+ [txHash: string]: TransactionResponse;
148
+ };
149
+ timestamp: number;
150
+ transaction_receipts: {
151
+ [txHash: string]: {
152
+ block_hash: string;
153
+ transaction_hash: string;
154
+ l2_to_l1_messages: {
155
+ to_address: string;
156
+ payload: string[];
157
+ from_address: string;
158
+ }[];
159
+ block_number: BlockNumber;
160
+ status: Status;
161
+ transaction_index: number;
162
+ };
163
+ };
164
+ parent_block_hash: string;
165
+ status: Status;
166
+ gas_price: string;
167
+ sequencer_address: string;
168
+ };
169
+ type CallContractTransaction = Omit<InvokeFunctionTransaction, 'type' | 'entry_point_type' | 'nonce'>;
170
+ type CallContractResponse = {
171
+ result: string[];
172
+ };
173
+ type EstimateFeeResponse = {
174
+ overall_fee: number;
175
+ gas_price: number;
176
+ gas_usage: number;
177
+ } | {
178
+ amount: BN;
179
+ unit: string;
180
+ };
181
+ type Endpoints = {
182
+ get_contract_addresses: {
183
+ QUERY: never;
184
+ REQUEST: never;
185
+ RESPONSE: GetContractAddressesResponse;
186
+ };
187
+ add_transaction: {
188
+ QUERY: never;
189
+ REQUEST: Transaction;
190
+ RESPONSE: AddTransactionResponse;
191
+ };
192
+ get_transaction: {
193
+ QUERY: {
194
+ transactionHash: string;
195
+ };
196
+ REQUEST: never;
197
+ RESPONSE: GetTransactionResponse;
198
+ };
199
+ get_transaction_status: {
200
+ QUERY: {
201
+ transactionHash: string;
202
+ };
203
+ REQUEST: never;
204
+ RESPONSE: GetTransactionStatusResponse;
205
+ };
206
+ get_transaction_trace: {
207
+ QUERY: {
208
+ transactionHash: string;
209
+ };
210
+ REQUEST: never;
211
+ RESPONSE: GetTransactionTraceResponse;
212
+ };
213
+ get_transaction_receipt: {
214
+ QUERY: {
215
+ transactionHash: string;
216
+ };
217
+ REQUEST: never;
218
+ RESPONSE: TransactionReceiptResponse;
219
+ };
220
+ get_storage_at: {
221
+ QUERY: {
222
+ contractAddress: string;
223
+ key: BigNumberish;
224
+ blockIdentifier: BlockIdentifier;
225
+ };
226
+ REQUEST: never;
227
+ RESPONSE: string;
228
+ };
229
+ get_code: {
230
+ QUERY: {
231
+ contractAddress: string;
232
+ blockIdentifier: BlockIdentifier;
233
+ };
234
+ REQUEST: never;
235
+ RESPONSE: GetCodeResponse;
236
+ };
237
+ get_block: {
238
+ QUERY: {
239
+ blockIdentifier: BlockIdentifier;
240
+ };
241
+ REQUEST: never;
242
+ RESPONSE: GetBlockResponse;
243
+ };
244
+ call_contract: {
245
+ QUERY: {
246
+ blockIdentifier: BlockIdentifier;
247
+ };
248
+ REQUEST: CallContractTransaction;
249
+ RESPONSE: CallContractResponse;
250
+ };
251
+ estimate_fee: {
252
+ QUERY: {
253
+ blockIdentifier: BlockIdentifier;
254
+ };
255
+ REQUEST: CallContractTransaction;
256
+ RESPONSE: EstimateFeeResponse;
257
+ };
258
+ get_class_by_hash: {
259
+ QUERY: {
260
+ classHash: string;
261
+ };
262
+ REQUEST: never;
263
+ RESPONSE: any;
264
+ };
265
+ get_class_hash_at: {
266
+ QUERY: {
267
+ contractAddress: string;
268
+ blockIdentifier?: BlockIdentifier;
269
+ };
270
+ REQUEST: never;
271
+ RESPONSE: string;
272
+ };
273
+ get_state_update: {
274
+ QUERY: {
275
+ blockHash: string;
276
+ };
277
+ REQUEST: never;
278
+ RESPONSE: any;
279
+ };
280
+ get_full_contract: {
281
+ QUERY: {
282
+ contractAddress: string;
283
+ blockIdentifier?: BlockIdentifier;
284
+ };
285
+ REQUEST: never;
286
+ RESPONSE: any;
287
+ };
288
+ };
289
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });