@getomnichain/omnichain 0.6.2 → 0.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 (145) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/cjs/chain_ids.js +2 -2
  3. package/dist/cjs/chain_ids.js.map +1 -1
  4. package/dist/cjs/errors.js +6 -0
  5. package/dist/cjs/errors.js.map +1 -1
  6. package/dist/cjs/index.js +1 -1
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/ton/index.js +12 -0
  9. package/dist/cjs/ton/index.js.map +1 -1
  10. package/dist/cjs/ton/ton_address.js +72 -14
  11. package/dist/cjs/ton/ton_address.js.map +1 -1
  12. package/dist/cjs/ton/ton_asset.js +21 -0
  13. package/dist/cjs/ton/ton_asset.js.map +1 -0
  14. package/dist/cjs/ton/ton_assets.js +10 -0
  15. package/dist/cjs/ton/ton_assets.js.map +1 -0
  16. package/dist/cjs/ton/ton_chain.js +483 -0
  17. package/dist/cjs/ton/ton_chain.js.map +1 -0
  18. package/dist/cjs/ton/ton_chains.js +21 -0
  19. package/dist/cjs/ton/ton_chains.js.map +1 -0
  20. package/dist/cjs/ton/ton_jetton_metadata.js +107 -0
  21. package/dist/cjs/ton/ton_jetton_metadata.js.map +1 -0
  22. package/dist/cjs/ton/ton_messages.js +174 -0
  23. package/dist/cjs/ton/ton_messages.js.map +1 -0
  24. package/dist/cjs/ton/ton_provider.js +456 -0
  25. package/dist/cjs/ton/ton_provider.js.map +1 -0
  26. package/dist/cjs/ton/ton_tonapi.js +243 -0
  27. package/dist/cjs/ton/ton_tonapi.js.map +1 -0
  28. package/dist/cjs/ton/ton_toncenter.js +252 -0
  29. package/dist/cjs/ton/ton_toncenter.js.map +1 -0
  30. package/dist/cjs/ton/ton_transaction_status.js +231 -0
  31. package/dist/cjs/ton/ton_transaction_status.js.map +1 -0
  32. package/dist/cjs/ton/ton_transactions.js +107 -0
  33. package/dist/cjs/ton/ton_transactions.js.map +1 -0
  34. package/dist/cjs/ton/ton_wallet.js +285 -0
  35. package/dist/cjs/ton/ton_wallet.js.map +1 -0
  36. package/dist/cjs/tron/index.js +1 -0
  37. package/dist/cjs/tron/index.js.map +1 -1
  38. package/dist/cjs/tron/tron_chain.js +88 -45
  39. package/dist/cjs/tron/tron_chain.js.map +1 -1
  40. package/dist/cjs/tron/tron_memo.js +17 -0
  41. package/dist/cjs/tron/tron_memo.js.map +1 -0
  42. package/dist/cjs/tron/tron_raw_data.js +213 -0
  43. package/dist/cjs/tron/tron_raw_data.js.map +1 -0
  44. package/dist/cjs/tron/tron_transaction_builder.js +34 -13
  45. package/dist/cjs/tron/tron_transaction_builder.js.map +1 -1
  46. package/dist/cjs/tron/tron_transaction_status.js +10 -7
  47. package/dist/cjs/tron/tron_transaction_status.js.map +1 -1
  48. package/dist/cjs/tron/tron_transactions.js +1 -1
  49. package/dist/cjs/tron/tron_transactions.js.map +1 -1
  50. package/dist/esm/chain_ids.js +2 -2
  51. package/dist/esm/chain_ids.js.map +1 -1
  52. package/dist/esm/errors.d.ts +3 -0
  53. package/dist/esm/errors.d.ts.map +1 -1
  54. package/dist/esm/errors.js +5 -0
  55. package/dist/esm/errors.js.map +1 -1
  56. package/dist/esm/index.d.ts +1 -1
  57. package/dist/esm/index.d.ts.map +1 -1
  58. package/dist/esm/index.js +1 -1
  59. package/dist/esm/index.js.map +1 -1
  60. package/dist/esm/ton/index.d.ts +12 -0
  61. package/dist/esm/ton/index.d.ts.map +1 -1
  62. package/dist/esm/ton/index.js +12 -0
  63. package/dist/esm/ton/index.js.map +1 -1
  64. package/dist/esm/ton/ton_address.d.ts +26 -2
  65. package/dist/esm/ton/ton_address.d.ts.map +1 -1
  66. package/dist/esm/ton/ton_address.js +70 -14
  67. package/dist/esm/ton/ton_address.js.map +1 -1
  68. package/dist/esm/ton/ton_asset.d.ts +12 -0
  69. package/dist/esm/ton/ton_asset.d.ts.map +1 -0
  70. package/dist/esm/ton/ton_asset.js +17 -0
  71. package/dist/esm/ton/ton_asset.js.map +1 -0
  72. package/dist/esm/ton/ton_assets.d.ts +6 -0
  73. package/dist/esm/ton/ton_assets.d.ts.map +1 -0
  74. package/dist/esm/ton/ton_assets.js +7 -0
  75. package/dist/esm/ton/ton_assets.js.map +1 -0
  76. package/dist/esm/ton/ton_chain.d.ts +205 -0
  77. package/dist/esm/ton/ton_chain.d.ts.map +1 -0
  78. package/dist/esm/ton/ton_chain.js +479 -0
  79. package/dist/esm/ton/ton_chain.js.map +1 -0
  80. package/dist/esm/ton/ton_chains.d.ts +11 -0
  81. package/dist/esm/ton/ton_chains.d.ts.map +1 -0
  82. package/dist/esm/ton/ton_chains.js +18 -0
  83. package/dist/esm/ton/ton_chains.js.map +1 -0
  84. package/dist/esm/ton/ton_jetton_metadata.d.ts +36 -0
  85. package/dist/esm/ton/ton_jetton_metadata.d.ts.map +1 -0
  86. package/dist/esm/ton/ton_jetton_metadata.js +103 -0
  87. package/dist/esm/ton/ton_jetton_metadata.js.map +1 -0
  88. package/dist/esm/ton/ton_messages.d.ts +133 -0
  89. package/dist/esm/ton/ton_messages.d.ts.map +1 -0
  90. package/dist/esm/ton/ton_messages.js +159 -0
  91. package/dist/esm/ton/ton_messages.js.map +1 -0
  92. package/dist/esm/ton/ton_provider.d.ts +261 -0
  93. package/dist/esm/ton/ton_provider.d.ts.map +1 -0
  94. package/dist/esm/ton/ton_provider.js +432 -0
  95. package/dist/esm/ton/ton_provider.js.map +1 -0
  96. package/dist/esm/ton/ton_tonapi.d.ts +39 -0
  97. package/dist/esm/ton/ton_tonapi.d.ts.map +1 -0
  98. package/dist/esm/ton/ton_tonapi.js +239 -0
  99. package/dist/esm/ton/ton_tonapi.js.map +1 -0
  100. package/dist/esm/ton/ton_toncenter.d.ts +25 -0
  101. package/dist/esm/ton/ton_toncenter.d.ts.map +1 -0
  102. package/dist/esm/ton/ton_toncenter.js +248 -0
  103. package/dist/esm/ton/ton_toncenter.js.map +1 -0
  104. package/dist/esm/ton/ton_transaction_status.d.ts +116 -0
  105. package/dist/esm/ton/ton_transaction_status.d.ts.map +1 -0
  106. package/dist/esm/ton/ton_transaction_status.js +226 -0
  107. package/dist/esm/ton/ton_transaction_status.js.map +1 -0
  108. package/dist/esm/ton/ton_transactions.d.ts +54 -0
  109. package/dist/esm/ton/ton_transactions.d.ts.map +1 -0
  110. package/dist/esm/ton/ton_transactions.js +100 -0
  111. package/dist/esm/ton/ton_transactions.js.map +1 -0
  112. package/dist/esm/ton/ton_wallet.d.ts +134 -0
  113. package/dist/esm/ton/ton_wallet.d.ts.map +1 -0
  114. package/dist/esm/ton/ton_wallet.js +278 -0
  115. package/dist/esm/ton/ton_wallet.js.map +1 -0
  116. package/dist/esm/tron/index.d.ts +1 -0
  117. package/dist/esm/tron/index.d.ts.map +1 -1
  118. package/dist/esm/tron/index.js +1 -0
  119. package/dist/esm/tron/index.js.map +1 -1
  120. package/dist/esm/tron/tron_chain.d.ts +13 -1
  121. package/dist/esm/tron/tron_chain.d.ts.map +1 -1
  122. package/dist/esm/tron/tron_chain.js +89 -46
  123. package/dist/esm/tron/tron_chain.js.map +1 -1
  124. package/dist/esm/tron/tron_memo.d.ts +2 -0
  125. package/dist/esm/tron/tron_memo.d.ts.map +1 -0
  126. package/dist/esm/tron/tron_memo.js +14 -0
  127. package/dist/esm/tron/tron_memo.js.map +1 -0
  128. package/dist/esm/tron/tron_raw_data.d.ts +4 -0
  129. package/dist/esm/tron/tron_raw_data.d.ts.map +1 -0
  130. package/dist/esm/tron/tron_raw_data.js +209 -0
  131. package/dist/esm/tron/tron_raw_data.js.map +1 -0
  132. package/dist/esm/tron/tron_transaction_builder.d.ts +4 -0
  133. package/dist/esm/tron/tron_transaction_builder.d.ts.map +1 -1
  134. package/dist/esm/tron/tron_transaction_builder.js +34 -13
  135. package/dist/esm/tron/tron_transaction_builder.js.map +1 -1
  136. package/dist/esm/tron/tron_transaction_status.d.ts +16 -2
  137. package/dist/esm/tron/tron_transaction_status.d.ts.map +1 -1
  138. package/dist/esm/tron/tron_transaction_status.js +10 -7
  139. package/dist/esm/tron/tron_transaction_status.js.map +1 -1
  140. package/dist/esm/tron/tron_transactions.js +1 -1
  141. package/dist/esm/tron/tron_transactions.js.map +1 -1
  142. package/docs/README.md +2 -1
  143. package/docs/ton.md +164 -0
  144. package/docs/tron.md +21 -11
  145. package/package.json +5 -1
@@ -0,0 +1,261 @@
1
+ import { type Cell, type Message } from '@ton/core';
2
+ import { ChainError, type ChainErrorKind, type ChainErrorMeta } from '../errors.ts';
3
+ export type TonAccountStatus = 'nonexist' | 'uninit' | 'active' | 'frozen';
4
+ export interface TonAccountState {
5
+ status: TonAccountStatus;
6
+ /** Nanotons. */
7
+ balance: bigint;
8
+ /** Base64 code hash; `null` until deployed. */
9
+ codeHash: string | null;
10
+ }
11
+ export interface TonTraceMessage {
12
+ /** Raw address; `null` for an external message's missing side. */
13
+ source: string | null;
14
+ destination: string | null;
15
+ value: bigint;
16
+ /** The forward fee the message still carries (paid by its sender on top of `value`). */
17
+ fwdFee: bigint;
18
+ bounce: boolean;
19
+ bounced: boolean;
20
+ /** The body's first 32 bits, when it has them. */
21
+ opcode: number | null;
22
+ /**
23
+ * The sender's logical time when it created the message; `null` for an
24
+ * external-in message. Unique per sender, so (source, createdLt) names one
25
+ * message across the trace.
26
+ */
27
+ createdLt: bigint | null;
28
+ body: Cell | null;
29
+ }
30
+ export interface TonTraceTransaction {
31
+ /** Lowercase hex. */
32
+ hash: string;
33
+ /** The transaction whose outgoing message this one received; `null` for the root. */
34
+ parent: string | null;
35
+ /** Canonical raw address. */
36
+ account: string;
37
+ /**
38
+ * Compute and action phases succeeded and no action was skipped. A compute
39
+ * phase skipped because the account has no code yet (a plain transfer to an
40
+ * undeployed address) counts as success. A W5 external request sends every
41
+ * message with "ignore errors", so a message it could not send is skipped
42
+ * with the action phase still reporting success — `skippedActions` is the
43
+ * only sign, and it fails the transaction.
44
+ */
45
+ success: boolean;
46
+ /** Actions the action phase skipped (messages not sent). */
47
+ skippedActions: number;
48
+ aborted: boolean;
49
+ computeExitCode: number | null;
50
+ actionResultCode: number | null;
51
+ /** Nanotons. */
52
+ totalFees: bigint;
53
+ origStatus: TonAccountStatus;
54
+ endStatus: TonAccountStatus;
55
+ inMsg: TonTraceMessage | null;
56
+ outMsgs: TonTraceMessage[];
57
+ /** The masterchain block that references this transaction's block; `null` until it is final (or emulated). */
58
+ mcSeqno: number | null;
59
+ /** Unix seconds. */
60
+ utime: number;
61
+ }
62
+ export interface TonTrace {
63
+ /** No message of the trace is still in flight. */
64
+ complete: boolean;
65
+ /** Root (the external message's transaction) first, then breadth-first. */
66
+ transactions: TonTraceTransaction[];
67
+ }
68
+ /**
69
+ * The reads and writes TonChain needs, implemented by TON Center v3 and TonAPI.
70
+ * Each normalizes its replies to these types, so a caller cannot tell which
71
+ * provider answered.
72
+ */
73
+ export interface TonProvider {
74
+ readonly name: string;
75
+ getAccountState(address: string): Promise<TonAccountState>;
76
+ /**
77
+ * The wallet's seqno, read live by running its get-method: 0 only on the
78
+ * provider's explicit answer that the account has no code. Throws when it
79
+ * cannot be read; never reads a failure as 0.
80
+ */
81
+ getSeqno(address: string): Promise<number>;
82
+ getJettonWalletAddress(jettonMaster: string, owner: string): Promise<string>;
83
+ /** 0 for a jetton wallet that is not deployed. */
84
+ getJettonBalance(jettonWallet: string): Promise<bigint>;
85
+ /** A jetton master's TEP-64 content cell (`get_jetton_data`); `InvalidTokenIdentifier` for anything that is not a jetton master. */
86
+ getJettonContent(jettonMaster: string): Promise<Cell>;
87
+ /** A deployed jetton wallet's balance, owner and master (`get_wallet_data`); `null` when it has no code. */
88
+ getJettonWalletData(jettonWallet: string): Promise<TonJettonWalletData | null>;
89
+ sendBoc(boc: string): Promise<void>;
90
+ /** By the normalized external-message hash (hex); `null` while the provider has not seen it. */
91
+ getTrace(hash: string): Promise<TonTrace | null>;
92
+ /** Emulates the whole trace of an external message, ignoring its signature. */
93
+ emulate(boc: string): Promise<TonTrace>;
94
+ /** The latest masterchain block the provider has applied: its seqno and generation time (unix seconds). */
95
+ getMasterchainHead(): Promise<TonMasterchainHead>;
96
+ }
97
+ export interface TonJettonWalletData {
98
+ balance: bigint;
99
+ /** Raw. */
100
+ owner: string;
101
+ /** Raw. */
102
+ jettonMaster: string;
103
+ }
104
+ export interface TonMasterchainHead {
105
+ seqno: number;
106
+ utime: number;
107
+ }
108
+ /**
109
+ * A provider failure. `retryable` is true only for failures that say nothing
110
+ * about the answer (transport, timeout, 429, 5xx); the fallback retries those
111
+ * and nothing else.
112
+ */
113
+ export declare class TonProviderError extends ChainError {
114
+ readonly retryable: boolean;
115
+ constructor(kind: ChainErrorKind, message: string, retryable: boolean, meta?: ChainErrorMeta, cause?: Error);
116
+ }
117
+ /**
118
+ * A broadcast whose outcome is unknown: a provider failed without an answer,
119
+ * so the message may have reached the network even if another provider then
120
+ * refused it (a refusal can mean it was already accepted). Read the status of
121
+ * `meta.txHash`, or wait until the request is expired, before signing again.
122
+ */
123
+ export declare class TonBroadcastUncertainError extends TonProviderError {
124
+ constructor(message: string, meta?: ChainErrorMeta, cause?: Error);
125
+ }
126
+ /**
127
+ * TON Center v3 first; TonAPI only when TON Center fails without an answer.
128
+ *
129
+ * A definite answer from the primary (not found, a refused emulation, a
130
+ * refused broadcast) is final. A broadcast retried on the fallback sends the
131
+ * same BOC: the wallet's seqno makes a second landing impossible.
132
+ */
133
+ export declare class TonFallbackProvider implements TonProvider {
134
+ private readonly primary;
135
+ private readonly fallback;
136
+ private readonly onFallback;
137
+ readonly name: string;
138
+ constructor(primary: TonProvider, fallback: TonProvider | null, onFallback?: (method: string, err: TonProviderError) => void);
139
+ getAccountState(address: string): Promise<TonAccountState>;
140
+ getSeqno(address: string): Promise<number>;
141
+ getJettonWalletAddress(jettonMaster: string, owner: string): Promise<string>;
142
+ getJettonBalance(jettonWallet: string): Promise<bigint>;
143
+ getJettonContent(jettonMaster: string): Promise<Cell>;
144
+ getJettonWalletData(jettonWallet: string): Promise<TonJettonWalletData | null>;
145
+ /**
146
+ * A refusal is definite only when no provider failed before it: once one
147
+ * failed without an answer, the message may already be in flight, and a
148
+ * later refusal may be the network rejecting a duplicate.
149
+ */
150
+ sendBoc(boc: string): Promise<void>;
151
+ getTrace(hash: string): Promise<TonTrace | null>;
152
+ emulate(boc: string): Promise<TonTrace>;
153
+ getMasterchainHead(): Promise<TonMasterchainHead>;
154
+ /**
155
+ * Runs several reads on one provider throughout: the primary, or — when any
156
+ * of them fails without an answer — all of them again on the fallback. Reads
157
+ * that must see the chain at one point never mix providers that lag
158
+ * differently.
159
+ */
160
+ onOneProvider<T>(method: string, run: (provider: TonProvider) => Promise<T>): Promise<T>;
161
+ private call;
162
+ }
163
+ export interface TonHttpEndpoint {
164
+ url: string;
165
+ apiKey: string;
166
+ timeoutMs?: number;
167
+ }
168
+ /** One JSON request; maps every failure to a {@link TonProviderError}. Returns `null` on a 404. */
169
+ export declare function tonHttpJson(provider: string, endpoint: TonHttpEndpoint, path: string, init: {
170
+ method?: 'GET' | 'POST';
171
+ body?: unknown;
172
+ headers: Record<string, string>;
173
+ }): Promise<unknown | null>;
174
+ /**
175
+ * The reply to a broadcast, read for what the lite server said rather than
176
+ * the HTTP status (both answers come as HTTP 500 from TON Center, and from
177
+ * TonAPI as 500 or 406):
178
+ * - "duplicate message": the network already has this exact message, so the
179
+ * broadcast succeeded;
180
+ * - "cannot apply external message": the wallet does not accept it now. On a
181
+ * seqno check (W5 133, v3r2 / v4r2 33) this is `NonceTooLow` — this
182
+ * message or another with its seqno already landed, so read the status
183
+ * before signing again; on a v3r2 / v4r2 expiry (35, 36), or a refusal "before
184
+ * smart-contract execution" (an account that cannot pay to run it), it may
185
+ * have landed earlier, so it is `BroadcastUncertain`; any other refusal is
186
+ * a definite `BroadcastRejected`.
187
+ */
188
+ export declare function tonBroadcastReply(provider: string, reply: Promise<unknown>): Promise<unknown>;
189
+ /** The `error` field some replies carry with a 2xx status. */
190
+ export declare function errorMessageOf(payload: unknown): string | null;
191
+ export declare function asRecord(value: unknown, what: string): Record<string, unknown>;
192
+ export declare function asBigInt(value: unknown, what: string): bigint;
193
+ /** A required integer field; a reply without one says nothing definite, so the fallback is asked. */
194
+ export declare function asRequiredInteger(value: unknown, what: string): number;
195
+ /** A required object field; a reply without one says nothing definite, so the fallback is asked. */
196
+ export declare function asRequiredRecord(value: unknown, what: string): Record<string, unknown>;
197
+ /** A get-method stack entry that is a cell or slice: TON Center gives base64 (`value`), TonAPI hex (`cell`). */
198
+ export declare function stackCellOf(item: unknown, what: string): Cell;
199
+ /** `get_wallet_data`'s stack — balance, owner, master, code — as both providers give it. */
200
+ export declare function jettonWalletDataOf(stack: unknown): TonJettonWalletData;
201
+ /** A required boolean field; see {@link asRequiredRecord}. */
202
+ export declare function asRequiredBoolean(value: unknown, what: string): boolean;
203
+ /** A transaction's phases as the chain recorded them, the part of it the judgment reads. */
204
+ export interface TonTransactionPhases {
205
+ /** Why the compute phase was skipped (`no_state`: the account has no code yet), or `null` when it ran. */
206
+ computeSkipped: string | null;
207
+ /** Whether a compute phase that ran succeeded. */
208
+ computeSuccess: boolean;
209
+ computeExitCode: number | null;
210
+ /** The action phase; it runs exactly when the compute phase ran and succeeded. */
211
+ action: {
212
+ success: boolean;
213
+ resultCode: number;
214
+ skippedActions: number;
215
+ } | null;
216
+ aborted: boolean;
217
+ }
218
+ /**
219
+ * A transaction succeeds when its compute phase succeeded — or was skipped
220
+ * only because the account has no code yet — and its action phase, if any,
221
+ * succeeded without skipping a message. Phases that cannot be what the chain
222
+ * recorded (a successful compute phase without an action phase) are a
223
+ * malformed reply, never a success.
224
+ */
225
+ export declare function tonTransactionOutcome(phases: TonTransactionPhases): Pick<TonTraceTransaction, 'success' | 'skippedActions' | 'aborted' | 'computeExitCode' | 'actionResultCode'>;
226
+ /** An account's status as the provider stated it; anything else says nothing definite. */
227
+ export declare function asStatedAccountStatus(value: unknown): TonAccountStatus;
228
+ export declare function asAccountStatus(value: unknown): TonAccountStatus;
229
+ /** A decoded message in the trace form (raw addresses, opcode from the body). */
230
+ export declare function tonTraceMessageOf(message: Message): TonTraceMessage;
231
+ /**
232
+ * Checks a trace before anything is judged from it. On TON every internal
233
+ * message produces a transaction where it lands, so a provider's trace must
234
+ * hold together:
235
+ * - one root (the first transaction); every other transaction has a parent in
236
+ * the trace and an incoming message. A trace still running may lack a
237
+ * parent, the root included;
238
+ * - every internal message sent names its source and `created_lt`;
239
+ * - every incoming message is one its parent sent: same source, `created_lt`,
240
+ * destination and value;
241
+ * - in a complete trace, every internal message sent has the transaction
242
+ * that received it.
243
+ * A trace that breaks any of these is the provider's error, not the chain's:
244
+ * the error is retryable, so the fallback provider is asked instead, and no
245
+ * gap is ever read as an undelivered message.
246
+ */
247
+ export declare function assertTraceConsistent(source: string, trace: TonTrace): TonTrace;
248
+ /**
249
+ * The trace a provider returned for `hash` must be that message's: its root
250
+ * received an external message whose normalized hash is `hash`. A trace still
251
+ * running may not hold its root yet.
252
+ */
253
+ export declare function assertTraceOf(source: string, hash: string, trace: TonTrace): TonTrace;
254
+ /**
255
+ * Refuses anything but a transaction id as the SDK gives it — the normalized
256
+ * external-message hash, 64 lowercase hex characters. A base64 hash or a typo
257
+ * would otherwise find no trace, and "no trace" counts as "never landed".
258
+ */
259
+ export declare function assertTonTxHash(hash: string): string;
260
+ export declare function definiteError(kind: ChainErrorKind, message: string): TonProviderError;
261
+ //# sourceMappingURL=ton_provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton_provider.d.ts","sourceRoot":"","sources":["../../../ton/ton_provider.ts"],"names":[],"mappings":"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"}