wative-core 1.2.1 → 2.2.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.
- package/CHANGELOG.md +136 -0
- package/LICENSE +55 -0
- package/README.md +496 -0
- package/dist/artifacts/evm/index.cjs +1 -0
- package/dist/artifacts/evm/index.d.cts +6 -0
- package/dist/artifacts/evm/index.d.ts +6 -0
- package/dist/artifacts/evm/index.js +1 -0
- package/dist/artifacts/svm/index.cjs +1 -0
- package/dist/artifacts/svm/index.d.cts +9 -0
- package/dist/artifacts/svm/index.d.ts +9 -0
- package/dist/artifacts/svm/index.js +1 -0
- package/dist/container-provider-C59yqd5Z.d.ts +48 -0
- package/dist/container-provider-i614LDE1.d.cts +48 -0
- package/dist/evm-BLml33LX.d.cts +34 -0
- package/dist/evm-DTzqGlL6.d.ts +34 -0
- package/dist/file-sink-B73MuigK.d.cts +44 -0
- package/dist/file-sink-LS4hyXXi.d.ts +44 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +194 -0
- package/dist/index.d.ts +194 -0
- package/dist/index.js +1 -0
- package/dist/index.node.cjs +1 -0
- package/dist/index.node.d.cts +6 -0
- package/dist/index.node.d.ts +6 -0
- package/dist/index.node.js +1 -0
- package/dist/node/index.cjs +1 -0
- package/dist/node/index.d.cts +7 -0
- package/dist/node/index.d.ts +7 -0
- package/dist/node/index.js +1 -0
- package/dist/svm-CCzqNAWM.d.cts +59 -0
- package/dist/svm-DieFbh9k.d.ts +59 -0
- package/dist/workspace-CamTHxso.d.cts +737 -0
- package/dist/workspace-CamTHxso.d.ts +737 -0
- package/package.json +85 -37
- package/tests/01-quick-start.test.cjs +37 -0
- package/tests/02-hd-account.test.cjs +71 -0
- package/tests/03-pk-account.test.cjs +59 -0
- package/tests/04-network-management.test.cjs +94 -0
- package/tests/05-asset-management.test.cjs +117 -0
- package/tests/06-address-signing.test.cjs +55 -0
- package/tests/07-custom-provider.test.cjs +164 -0
- package/tests/08-persistence.test.cjs +105 -0
- package/tests/09-workspace-filter.test.cjs +84 -0
- package/tests/10-default-network.test.cjs +70 -0
- package/tests/11-subpath-imports.test.cjs +21 -0
- package/tests/12-logger.test.cjs +44 -0
- package/tests/13-workspace-config.test.cjs +43 -0
- package/tests/14-esm-runtime.test.mjs +81 -0
- package/tests/15-package-resolution.test.cjs +76 -0
- package/tests/16-known-answer-vectors.test.cjs +141 -0
- package/tests/17-locked-state.test.cjs +162 -0
- package/tests/README.md +72 -0
- package/lib/account.d.ts +0 -69
- package/lib/index.d.ts +0 -6
- package/lib/index.esm.js +0 -1
- package/lib/index.umd.js +0 -1
- package/lib/mnemonic.d.ts +0 -3
- package/lib/utils.d.ts +0 -21
- package/src/account.ts +0 -749
- package/src/index.ts +0 -11
- package/src/mnemonic.ts +0 -2084
- package/src/utils.ts +0 -132
|
@@ -0,0 +1,737 @@
|
|
|
1
|
+
interface AssetInitObject {
|
|
2
|
+
id: AssetId;
|
|
3
|
+
symbol: string;
|
|
4
|
+
name: string;
|
|
5
|
+
decimals: number;
|
|
6
|
+
network: Network;
|
|
7
|
+
contractAddress?: string | null;
|
|
8
|
+
displayDecimals?: number;
|
|
9
|
+
displayStatus?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare class Asset {
|
|
12
|
+
readonly id: AssetId;
|
|
13
|
+
readonly contractAddress: string | null;
|
|
14
|
+
readonly native: boolean;
|
|
15
|
+
symbol: string;
|
|
16
|
+
name: string;
|
|
17
|
+
decimals: number;
|
|
18
|
+
displayDecimals: number;
|
|
19
|
+
displayStatus: boolean;
|
|
20
|
+
readonly network: Network;
|
|
21
|
+
constructor(init: AssetInitObject);
|
|
22
|
+
constructor(id: AssetId, symbol: string, name: string, decimals: number, network: Network, contractAddress?: string | null);
|
|
23
|
+
}
|
|
24
|
+
interface AssetBalance {
|
|
25
|
+
readonly assetId: AssetId;
|
|
26
|
+
readonly raw: bigint;
|
|
27
|
+
readonly decimals: number;
|
|
28
|
+
readonly displayStatus: boolean;
|
|
29
|
+
readonly fetchedAt: number;
|
|
30
|
+
}
|
|
31
|
+
interface AssetCollection extends ReadonlyArray<Asset> {
|
|
32
|
+
byId(id: AssetId): Asset | null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
interface NetworkInit {
|
|
36
|
+
slug: Slug;
|
|
37
|
+
name: string;
|
|
38
|
+
chainId: ChainId;
|
|
39
|
+
rpcUrl: string;
|
|
40
|
+
nativeCurrency: {
|
|
41
|
+
name: string;
|
|
42
|
+
symbol: string;
|
|
43
|
+
decimals: number;
|
|
44
|
+
};
|
|
45
|
+
multicallAddress?: string;
|
|
46
|
+
color?: string;
|
|
47
|
+
vm: ChainVM;
|
|
48
|
+
}
|
|
49
|
+
declare class Network {
|
|
50
|
+
readonly slug: Slug;
|
|
51
|
+
readonly name: string;
|
|
52
|
+
readonly chainId: ChainId;
|
|
53
|
+
readonly rpcUrl: string;
|
|
54
|
+
readonly nativeCurrency: {
|
|
55
|
+
name: string;
|
|
56
|
+
symbol: string;
|
|
57
|
+
decimals: number;
|
|
58
|
+
};
|
|
59
|
+
readonly multicallAddress?: string;
|
|
60
|
+
readonly color?: string;
|
|
61
|
+
readonly vm: ChainVM;
|
|
62
|
+
|
|
63
|
+
get symbol(): string;
|
|
64
|
+
|
|
65
|
+
readonly assets: readonly Asset[];
|
|
66
|
+
|
|
67
|
+
save(): Promise<void>;
|
|
68
|
+
|
|
69
|
+
readonly _workspace?: Workspace;
|
|
70
|
+
constructor(init: NetworkInit);
|
|
71
|
+
constructor(name: string, chainId: number, rpcUrl: string, nativeCurrency?: {
|
|
72
|
+
name: string;
|
|
73
|
+
symbol: string;
|
|
74
|
+
decimals: number;
|
|
75
|
+
}, color?: string);
|
|
76
|
+
static readonly Ethereum: Network;
|
|
77
|
+
static readonly Base: Network;
|
|
78
|
+
static readonly BnbChain: Network;
|
|
79
|
+
static readonly Arbitrum: Network;
|
|
80
|
+
static readonly ArbitrumSepolia: Network;
|
|
81
|
+
static readonly Optimism: Network;
|
|
82
|
+
static readonly Sepolia: Network;
|
|
83
|
+
static readonly Solana: Network;
|
|
84
|
+
static readonly SolanaTestnet: Network;
|
|
85
|
+
static readonly SolanaDevnet: Network;
|
|
86
|
+
static builtin(slug: Slug): Network | null;
|
|
87
|
+
static all(): readonly Network[];
|
|
88
|
+
static isBuiltinSlug(slug: Slug): boolean;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
interface NetworkCollection extends ReadonlyArray<Network> {
|
|
92
|
+
add(network: Network): Promise<Network>;
|
|
93
|
+
drop(network: Network): Promise<void>;
|
|
94
|
+
|
|
95
|
+
update(network: Network): Promise<Network>;
|
|
96
|
+
bySlug(slug: Slug): Network | null;
|
|
97
|
+
byChainId(id: ChainId): Network | null;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
type Brand<T, B extends string> = T & {
|
|
101
|
+
readonly __brand: B;
|
|
102
|
+
};
|
|
103
|
+
type Slug = Brand<string, "Slug">;
|
|
104
|
+
type EvmAddress = Brand<string, "EvmAddress">;
|
|
105
|
+
type SvmAddress = Brand<string, "SvmAddress">;
|
|
106
|
+
type SuiAddress = Brand<string, "SuiAddress">;
|
|
107
|
+
type ChainId = Brand<number, "ChainId">;
|
|
108
|
+
type AssetId = Brand<number, "AssetId">;
|
|
109
|
+
type ChainVM = "evm" | "svm" | "sui";
|
|
110
|
+
|
|
111
|
+
type NetworkLike = Network | ChainId | string;
|
|
112
|
+
|
|
113
|
+
interface Settling<T> {
|
|
114
|
+
readonly settled: boolean;
|
|
115
|
+
readonly value: T | null;
|
|
116
|
+
confirm(): Promise<T>;
|
|
117
|
+
abort(): void;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
type RecordType = "CONFIG" | "ACCOUNTS" | "NETWORK" | "ASSET" | "LOG";
|
|
121
|
+
|
|
122
|
+
type ContainerState = "empty" | "workspace" | "foreign";
|
|
123
|
+
interface RecordInit<T> {
|
|
124
|
+
readonly provider: Provider;
|
|
125
|
+
readonly recordType: RecordType;
|
|
126
|
+
readonly encrypted?: Uint8Array;
|
|
127
|
+
readonly value?: T;
|
|
128
|
+
readonly password?: string;
|
|
129
|
+
readonly decrypt?: (ciphertext: Uint8Array, password: string) => Uint8Array;
|
|
130
|
+
readonly persist?: (value: T, password: string) => Promise<void>;
|
|
131
|
+
}
|
|
132
|
+
declare class Record$1<T> {
|
|
133
|
+
#private;
|
|
134
|
+
readonly slug: Slug;
|
|
135
|
+
readonly path: string;
|
|
136
|
+
constructor(slug: Slug, path: string, init?: RecordInit<T>);
|
|
137
|
+
get locked(): boolean;
|
|
138
|
+
get value(): T;
|
|
139
|
+
|
|
140
|
+
unlock(password: string): this;
|
|
141
|
+
|
|
142
|
+
save(): Promise<void>;
|
|
143
|
+
}
|
|
144
|
+
declare abstract class Provider {
|
|
145
|
+
#private;
|
|
146
|
+
readonly rootDescriptor: string;
|
|
147
|
+
protected constructor(rootDescriptor: string);
|
|
148
|
+
protected abstract _exist(path: string): boolean | Promise<boolean>;
|
|
149
|
+
protected abstract _listItems(path: string): string[] | Promise<string[]>;
|
|
150
|
+
protected abstract _read(path: string): Uint8Array | Promise<Uint8Array>;
|
|
151
|
+
protected abstract _write(path: string, data: Uint8Array): void | Promise<void>;
|
|
152
|
+
protected abstract _remove(path: string): void | Promise<void>;
|
|
153
|
+
protected abstract _ensureDir(path: string): void | Promise<void>;
|
|
154
|
+
abstract unlockContainer(password: string): Promise<boolean>;
|
|
155
|
+
abstract lockContainer(): Promise<void>;
|
|
156
|
+
abstract isContainerUnlocked(): boolean;
|
|
157
|
+
|
|
158
|
+
inspectContainer(): Promise<ContainerState>;
|
|
159
|
+
abstract loadRecord<T>(type: RecordType, slug?: Slug): Promise<Record$1<T>>;
|
|
160
|
+
abstract loadRecords<T>(type: RecordType): Promise<ReadonlyArray<Record$1<T>>>;
|
|
161
|
+
abstract writeRecord<T>(type: RecordType, slug: Slug, value: T): Promise<void>;
|
|
162
|
+
abstract dropRecord(type: RecordType, slug: Slug): Promise<void>;
|
|
163
|
+
|
|
164
|
+
initialize(): Promise<void>;
|
|
165
|
+
|
|
166
|
+
passwordTanren(userInputPassword: string, salt: Uint8Array): Uint8Array;
|
|
167
|
+
abstract close(): Promise<void>;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
type WativeErrorCode = "WORKSPACE_LOCKED" | "ACCOUNT_LOCKED" | "RECORD_LOCKED" | "BAD_PASSWORD" | "WEAK_PASSWORD" | "RECORD_NOT_FOUND" | "PROVIDER_IO" | "PERMISSION_DENIED" | "DISK_FULL" | "PARAMETER_ERROR" | "DECRYPT_FAILED" | "ENCRYPT_FAILED" | "ALGORITHM_IRREVERSIBLE" | "INVALID_MNEMONIC" | "INVALID_PRIVATE_KEY" | "UNSUPPORTED_NETWORK" | "TX_BUILD_FAILED" | "TX_SIGN_FAILED" | "TX_SUBMIT_FAILED" | "TX_TIMEOUT" | "TX_DROPPED" | "RPC_UNREACHABLE" | "STORAGE_NOT_DURABLE" | "UNSUPPORTED_OP";
|
|
171
|
+
interface WativeErrorOpts {
|
|
172
|
+
readonly cause?: unknown;
|
|
173
|
+
readonly details?: Record<string, unknown>;
|
|
174
|
+
}
|
|
175
|
+
declare class WativeError extends Error {
|
|
176
|
+
readonly code: WativeErrorCode;
|
|
177
|
+
readonly cause?: unknown;
|
|
178
|
+
readonly details?: Record<string, unknown>;
|
|
179
|
+
constructor(code: WativeErrorCode, message: string, opts?: WativeErrorOpts);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
type TransactionStatus = "draft" | "signed" | "submitted" | "pending" | "mined" | "confirmed" | "finalized" | "failed" | "dropped" | "timeout";
|
|
183
|
+
|
|
184
|
+
declare const EvmTxType: {
|
|
185
|
+
readonly Legacy: 0;
|
|
186
|
+
readonly AccessList: 1;
|
|
187
|
+
readonly Eip1559: 2;
|
|
188
|
+
};
|
|
189
|
+
type EvmTxType = typeof EvmTxType[keyof typeof EvmTxType];
|
|
190
|
+
interface EvmTxBuildParams {
|
|
191
|
+
to: string;
|
|
192
|
+
value?: bigint;
|
|
193
|
+
data?: string;
|
|
194
|
+
nonce?: number;
|
|
195
|
+
gasLimit?: bigint;
|
|
196
|
+
gasPrice?: bigint;
|
|
197
|
+
maxFeePerGas?: bigint;
|
|
198
|
+
maxPriorityFeePerGas?: bigint;
|
|
199
|
+
type?: EvmTxType;
|
|
200
|
+
chainId?: ChainId;
|
|
201
|
+
rpcUrl?: string;
|
|
202
|
+
accessList?: ReadonlyArray<{
|
|
203
|
+
address: string;
|
|
204
|
+
storageKeys: ReadonlyArray<string>;
|
|
205
|
+
}>;
|
|
206
|
+
}
|
|
207
|
+
interface SvmTxBuildParams {
|
|
208
|
+
recipient: string;
|
|
209
|
+
amount: bigint;
|
|
210
|
+
tokenMint?: string;
|
|
211
|
+
tokenProgram?: string;
|
|
212
|
+
computeUnitLimit?: number;
|
|
213
|
+
computeUnitPrice?: bigint;
|
|
214
|
+
recentBlockhash?: string;
|
|
215
|
+
feePayer?: string;
|
|
216
|
+
rpcUrl?: string;
|
|
217
|
+
instructions?: ReadonlyArray<unknown>;
|
|
218
|
+
addressLookupTables?: ReadonlyArray<string>;
|
|
219
|
+
memo?: string;
|
|
220
|
+
}
|
|
221
|
+
interface Transaction {
|
|
222
|
+
readonly vm: ChainVM;
|
|
223
|
+
readonly status: TransactionStatus;
|
|
224
|
+
sign(): Promise<this> | this;
|
|
225
|
+
send(): TransactionTracker;
|
|
226
|
+
simulate(): Promise<SimulationResult>;
|
|
227
|
+
}
|
|
228
|
+
interface SimulationResult {
|
|
229
|
+
readonly success: boolean;
|
|
230
|
+
readonly error?: string;
|
|
231
|
+
readonly logs?: ReadonlyArray<string>;
|
|
232
|
+
readonly returnData?: string;
|
|
233
|
+
readonly gasUsed?: bigint;
|
|
234
|
+
readonly computeUnitsConsumed?: number;
|
|
235
|
+
readonly raw: unknown;
|
|
236
|
+
}
|
|
237
|
+
interface TransactionStateChange {
|
|
238
|
+
readonly previous: TransactionStatus;
|
|
239
|
+
readonly next: TransactionStatus;
|
|
240
|
+
readonly at: number;
|
|
241
|
+
readonly reason?: string;
|
|
242
|
+
readonly hash?: string;
|
|
243
|
+
readonly blockNumber?: number;
|
|
244
|
+
readonly confirmations?: number;
|
|
245
|
+
}
|
|
246
|
+
interface TransactionReceipt {
|
|
247
|
+
readonly hash: string;
|
|
248
|
+
readonly vm: ChainVM;
|
|
249
|
+
readonly blockNumber: number | null;
|
|
250
|
+
readonly blockHash: string | null;
|
|
251
|
+
readonly index: number | null;
|
|
252
|
+
readonly success: boolean;
|
|
253
|
+
readonly gasUsed?: bigint;
|
|
254
|
+
readonly effectiveGasPrice?: bigint;
|
|
255
|
+
readonly fee?: bigint;
|
|
256
|
+
readonly logs?: ReadonlyArray<unknown>;
|
|
257
|
+
readonly revertReason?: string;
|
|
258
|
+
readonly raw: unknown;
|
|
259
|
+
}
|
|
260
|
+
interface TransactionTracker extends Settling<TransactionReceipt> {
|
|
261
|
+
readonly hash: string | null;
|
|
262
|
+
readonly status: TransactionStatus;
|
|
263
|
+
readonly history: ReadonlyArray<TransactionStateChange>;
|
|
264
|
+
readonly receipt: TransactionReceipt | null;
|
|
265
|
+
whenSubmitted(): Promise<string>;
|
|
266
|
+
whenMined(): Promise<TransactionReceipt>;
|
|
267
|
+
whenConfirmed(blocks?: number): Promise<TransactionReceipt>;
|
|
268
|
+
whenFinalized(): Promise<TransactionReceipt>;
|
|
269
|
+
on(event: "change", listener: (c: TransactionStateChange) => void): () => void;
|
|
270
|
+
on(event: "confirmed", listener: (r: TransactionReceipt) => void): () => void;
|
|
271
|
+
on(event: "failed", listener: (e: WativeError) => void): () => void;
|
|
272
|
+
}
|
|
273
|
+
declare class EvmTransaction implements Transaction {
|
|
274
|
+
#private;
|
|
275
|
+
readonly vm: "evm";
|
|
276
|
+
from: EvmAddress;
|
|
277
|
+
to: string;
|
|
278
|
+
value: bigint;
|
|
279
|
+
data: string;
|
|
280
|
+
chainId: ChainId;
|
|
281
|
+
type: EvmTxType;
|
|
282
|
+
nonce?: number;
|
|
283
|
+
gasPrice?: bigint;
|
|
284
|
+
maxFeePerGas?: bigint;
|
|
285
|
+
maxPriorityFeePerGas?: bigint;
|
|
286
|
+
gasLimit?: bigint;
|
|
287
|
+
rpcUrl?: string;
|
|
288
|
+
accessList?: ReadonlyArray<{
|
|
289
|
+
address: string;
|
|
290
|
+
storageKeys: ReadonlyArray<string>;
|
|
291
|
+
}>;
|
|
292
|
+
|
|
293
|
+
_address?: Address;
|
|
294
|
+
constructor(init: {
|
|
295
|
+
from: EvmAddress;
|
|
296
|
+
to: string;
|
|
297
|
+
value: bigint;
|
|
298
|
+
chainId: ChainId;
|
|
299
|
+
data?: string;
|
|
300
|
+
type?: EvmTxType;
|
|
301
|
+
nonce?: number;
|
|
302
|
+
gasPrice?: bigint;
|
|
303
|
+
maxFeePerGas?: bigint;
|
|
304
|
+
maxPriorityFeePerGas?: bigint;
|
|
305
|
+
gasLimit?: bigint;
|
|
306
|
+
rpcUrl?: string;
|
|
307
|
+
accessList?: ReadonlyArray<{
|
|
308
|
+
address: string;
|
|
309
|
+
storageKeys: ReadonlyArray<string>;
|
|
310
|
+
}>;
|
|
311
|
+
address?: Address;
|
|
312
|
+
});
|
|
313
|
+
constructor(from: EvmAddress, to: string, value: bigint, data?: string, opts?: {
|
|
314
|
+
chainId?: ChainId;
|
|
315
|
+
type?: EvmTxType;
|
|
316
|
+
nonce?: number;
|
|
317
|
+
gasPrice?: bigint;
|
|
318
|
+
maxFeePerGas?: bigint;
|
|
319
|
+
maxPriorityFeePerGas?: bigint;
|
|
320
|
+
gasLimit?: bigint;
|
|
321
|
+
rpcUrl?: string;
|
|
322
|
+
accessList?: ReadonlyArray<{
|
|
323
|
+
address: string;
|
|
324
|
+
storageKeys: ReadonlyArray<string>;
|
|
325
|
+
}>;
|
|
326
|
+
address?: Address;
|
|
327
|
+
});
|
|
328
|
+
get status(): TransactionStatus;
|
|
329
|
+
sign(): Promise<this>;
|
|
330
|
+
send(): TransactionTracker;
|
|
331
|
+
|
|
332
|
+
simulate(): Promise<SimulationResult>;
|
|
333
|
+
|
|
334
|
+
get rawTransaction(): string | null;
|
|
335
|
+
get hash(): string | null;
|
|
336
|
+
|
|
337
|
+
toRawTx(): EvmRawTx;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
interface EvmRawTx {
|
|
341
|
+
from: string;
|
|
342
|
+
to: string;
|
|
343
|
+
value: bigint;
|
|
344
|
+
data: string;
|
|
345
|
+
type: EvmTxType;
|
|
346
|
+
chainId: ChainId;
|
|
347
|
+
nonce?: number;
|
|
348
|
+
gasPrice?: bigint;
|
|
349
|
+
maxFeePerGas?: bigint;
|
|
350
|
+
maxPriorityFeePerGas?: bigint;
|
|
351
|
+
rpcUrl?: string;
|
|
352
|
+
gasLimit?: bigint;
|
|
353
|
+
accessList?: ReadonlyArray<{
|
|
354
|
+
address: string;
|
|
355
|
+
storageKeys: ReadonlyArray<string>;
|
|
356
|
+
}>;
|
|
357
|
+
}
|
|
358
|
+
declare class SvmTransaction implements Transaction {
|
|
359
|
+
#private;
|
|
360
|
+
readonly vm: "svm";
|
|
361
|
+
from: SvmAddress;
|
|
362
|
+
recipient: string;
|
|
363
|
+
amount: bigint;
|
|
364
|
+
tokenMint?: string;
|
|
365
|
+
tokenProgram?: string;
|
|
366
|
+
computeUnitLimit?: number;
|
|
367
|
+
computeUnitPrice?: bigint;
|
|
368
|
+
recentBlockhash?: string;
|
|
369
|
+
feePayer?: string;
|
|
370
|
+
rpcUrl?: string;
|
|
371
|
+
instructions?: ReadonlyArray<unknown>;
|
|
372
|
+
addressLookupTables?: ReadonlyArray<string>;
|
|
373
|
+
memo?: string;
|
|
374
|
+
|
|
375
|
+
_address?: Address;
|
|
376
|
+
constructor(init: {
|
|
377
|
+
from: SvmAddress;
|
|
378
|
+
recipient: string;
|
|
379
|
+
amount: bigint;
|
|
380
|
+
tokenMint?: string;
|
|
381
|
+
tokenProgram?: string;
|
|
382
|
+
computeUnitLimit?: number;
|
|
383
|
+
computeUnitPrice?: bigint;
|
|
384
|
+
recentBlockhash?: string;
|
|
385
|
+
feePayer?: string;
|
|
386
|
+
rpcUrl?: string;
|
|
387
|
+
instructions?: ReadonlyArray<unknown>;
|
|
388
|
+
addressLookupTables?: ReadonlyArray<string>;
|
|
389
|
+
memo?: string;
|
|
390
|
+
address?: Address;
|
|
391
|
+
});
|
|
392
|
+
constructor(from: SvmAddress, recipient: string, amount: bigint, opts?: {
|
|
393
|
+
tokenMint?: string;
|
|
394
|
+
tokenProgram?: string;
|
|
395
|
+
computeUnitLimit?: number;
|
|
396
|
+
computeUnitPrice?: bigint;
|
|
397
|
+
recentBlockhash?: string;
|
|
398
|
+
feePayer?: string;
|
|
399
|
+
rpcUrl?: string;
|
|
400
|
+
instructions?: ReadonlyArray<unknown>;
|
|
401
|
+
addressLookupTables?: ReadonlyArray<string>;
|
|
402
|
+
memo?: string;
|
|
403
|
+
address?: Address;
|
|
404
|
+
});
|
|
405
|
+
get status(): TransactionStatus;
|
|
406
|
+
sign(): Promise<this>;
|
|
407
|
+
send(): TransactionTracker;
|
|
408
|
+
simulate(): Promise<SimulationResult>;
|
|
409
|
+
get hash(): string | null;
|
|
410
|
+
|
|
411
|
+
toRawTx(): Promise<unknown>;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
interface AddressInit {
|
|
415
|
+
publicKey: EvmAddress | SvmAddress | SuiAddress;
|
|
416
|
+
vm: ChainVM;
|
|
417
|
+
network: Network;
|
|
418
|
+
ciphertext: string;
|
|
419
|
+
assets?: Asset[];
|
|
420
|
+
wallet: Wallet;
|
|
421
|
+
}
|
|
422
|
+
declare class Address {
|
|
423
|
+
#private;
|
|
424
|
+
readonly publicKey: EvmAddress | SvmAddress | SuiAddress;
|
|
425
|
+
readonly vm: ChainVM;
|
|
426
|
+
readonly network: Network;
|
|
427
|
+
readonly assets: AssetCollection;
|
|
428
|
+
|
|
429
|
+
readonly _ciphertext: string;
|
|
430
|
+
constructor(init: AddressInit);
|
|
431
|
+
|
|
432
|
+
toString(): string;
|
|
433
|
+
|
|
434
|
+
_setPlaintextPrivateKey(pk: string | null): void;
|
|
435
|
+
|
|
436
|
+
_dumpPrivateKey(): string;
|
|
437
|
+
|
|
438
|
+
signMessageEncoded(message: string, encoding: "personal_sign" | "raw" | "ed25519"): {
|
|
439
|
+
signature: string;
|
|
440
|
+
messageHash: string;
|
|
441
|
+
};
|
|
442
|
+
|
|
443
|
+
signTypedData(typedData: unknown, chainId: number | bigint): {
|
|
444
|
+
signature: string;
|
|
445
|
+
domainSeparator: string;
|
|
446
|
+
structHash: string;
|
|
447
|
+
};
|
|
448
|
+
signMessage(message: string): string;
|
|
449
|
+
buildTransaction(params: EvmTxBuildParams): EvmTransaction;
|
|
450
|
+
buildTransaction(params: SvmTxBuildParams): SvmTransaction;
|
|
451
|
+
|
|
452
|
+
signTransaction(transaction: Transaction): Transaction;
|
|
453
|
+
|
|
454
|
+
sendTransaction(transaction: Transaction): TransactionTracker;
|
|
455
|
+
|
|
456
|
+
simulateTransaction(transaction: Transaction): Promise<SimulationResult>;
|
|
457
|
+
refreshBalances(displayedOnly?: boolean): Settling<readonly AssetBalance[]>;
|
|
458
|
+
refreshBalances(network: NetworkLike, displayedOnly?: boolean): Settling<readonly AssetBalance[]>;
|
|
459
|
+
refreshBalances(assetId: AssetId): Settling<AssetBalance>;
|
|
460
|
+
readonly _wallet: Wallet;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
interface WalletInit {
|
|
464
|
+
id: number;
|
|
465
|
+
tags?: string[];
|
|
466
|
+
addresses?: Address[];
|
|
467
|
+
lastBalanceUpdateTime?: number;
|
|
468
|
+
account: Account;
|
|
469
|
+
}
|
|
470
|
+
declare class Wallet {
|
|
471
|
+
#private;
|
|
472
|
+
readonly id: number;
|
|
473
|
+
lastBalanceUpdateTime?: number;
|
|
474
|
+
constructor(init: WalletInit);
|
|
475
|
+
get addresses(): ReadonlyArray<Address>;
|
|
476
|
+
|
|
477
|
+
_addAddress(address: Address): void;
|
|
478
|
+
_setAddresses(addresses: Address[]): void;
|
|
479
|
+
get evm(): Address | null;
|
|
480
|
+
get svm(): Address | null;
|
|
481
|
+
get sui(): Address | null;
|
|
482
|
+
|
|
483
|
+
toJson(): ReadonlyArray<{
|
|
484
|
+
vm: ChainVM;
|
|
485
|
+
publicKey: string;
|
|
486
|
+
network: {
|
|
487
|
+
slug: Slug;
|
|
488
|
+
chainId: ChainId;
|
|
489
|
+
name: string;
|
|
490
|
+
};
|
|
491
|
+
}>;
|
|
492
|
+
get tags(): readonly string[];
|
|
493
|
+
hasTag(tag: string): boolean;
|
|
494
|
+
addTag(tag: string): Promise<void>;
|
|
495
|
+
removeTag(tag: string): Promise<void>;
|
|
496
|
+
clearTags(): Promise<void>;
|
|
497
|
+
|
|
498
|
+
dumpPrivateKey(vm: ChainVM): string;
|
|
499
|
+
drop(): Promise<void>;
|
|
500
|
+
readonly _account: Account;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
type AccountOrgType = "HD" | "PK";
|
|
504
|
+
interface PersistedAccount {
|
|
505
|
+
slug: string;
|
|
506
|
+
displayName: string;
|
|
507
|
+
organizationType: AccountOrgType;
|
|
508
|
+
encryptionAlgorithm: string;
|
|
509
|
+
signature: string;
|
|
510
|
+
hasOwnPassword: boolean;
|
|
511
|
+
defaultNetworkSlug: string;
|
|
512
|
+
ppCiphertext?: string;
|
|
513
|
+
disabledSlots?: ReadonlyArray<{
|
|
514
|
+
from: number;
|
|
515
|
+
to: number;
|
|
516
|
+
}>;
|
|
517
|
+
wallets: PersistedWallet[];
|
|
518
|
+
}
|
|
519
|
+
interface PersistedWallet {
|
|
520
|
+
id: number;
|
|
521
|
+
tags: string[];
|
|
522
|
+
lastBalanceUpdateTime?: number;
|
|
523
|
+
addresses: PersistedAddress[];
|
|
524
|
+
}
|
|
525
|
+
interface PersistedAddress {
|
|
526
|
+
publicKey: string;
|
|
527
|
+
vm: ChainVM;
|
|
528
|
+
networkSlug: string;
|
|
529
|
+
ciphertext: string;
|
|
530
|
+
}
|
|
531
|
+
interface AccountConstructorInit {
|
|
532
|
+
workspace: Workspace;
|
|
533
|
+
data: PersistedAccount;
|
|
534
|
+
}
|
|
535
|
+
declare class Account {
|
|
536
|
+
#private;
|
|
537
|
+
readonly slug: Slug;
|
|
538
|
+
displayName: string;
|
|
539
|
+
readonly organizationType: AccountOrgType;
|
|
540
|
+
encryptionAlgorithm: string;
|
|
541
|
+
signature: string;
|
|
542
|
+
ppCiphertext?: string;
|
|
543
|
+
disabledSlots?: ReadonlyArray<{
|
|
544
|
+
from: number;
|
|
545
|
+
to: number;
|
|
546
|
+
}>;
|
|
547
|
+
readonly hasOwnPassword: boolean;
|
|
548
|
+
readonly _workspace: Workspace;
|
|
549
|
+
readonly wallets: WalletCollection;
|
|
550
|
+
constructor(init: AccountConstructorInit);
|
|
551
|
+
get locked(): boolean;
|
|
552
|
+
get defaultNetwork(): Slug;
|
|
553
|
+
|
|
554
|
+
set defaultNetwork(value: NetworkLike);
|
|
555
|
+
setDefaultNetwork(value: NetworkLike): Promise<void>;
|
|
556
|
+
rename(displayName: string): Promise<void>;
|
|
557
|
+
setDisplayName(displayName: string): Promise<void>;
|
|
558
|
+
setDisabledAddressNos(addressNos: ReadonlyArray<number>): Promise<void>;
|
|
559
|
+
setDisabledSlots(slots: ReadonlyArray<{
|
|
560
|
+
from: number;
|
|
561
|
+
to: number;
|
|
562
|
+
}>): Promise<void>;
|
|
563
|
+
|
|
564
|
+
tryUnlock(password?: string): Promise<this>;
|
|
565
|
+
|
|
566
|
+
lock(): void;
|
|
567
|
+
|
|
568
|
+
resetPassword(oldPassword: string, newPassword: string): Promise<this>;
|
|
569
|
+
|
|
570
|
+
checkPassword(password: string): Promise<boolean>;
|
|
571
|
+
|
|
572
|
+
dumpMnemonic(): string;
|
|
573
|
+
|
|
574
|
+
deriveWallets(count: number): Promise<{
|
|
575
|
+
before: number;
|
|
576
|
+
after: number;
|
|
577
|
+
}>;
|
|
578
|
+
|
|
579
|
+
sliceWallets(fromIndex: number): Promise<{
|
|
580
|
+
before: number;
|
|
581
|
+
after: number;
|
|
582
|
+
dropped: number;
|
|
583
|
+
}>;
|
|
584
|
+
importPrivateKey(pk: string, vm: ChainVM): Promise<Wallet>;
|
|
585
|
+
drop(): Promise<void>;
|
|
586
|
+
|
|
587
|
+
filterAddress(network: NetworkLike, addr?: string): Address | null;
|
|
588
|
+
filterAddress(network: NetworkLike | undefined, addr: string): Address | null;
|
|
589
|
+
toPersisted(): PersistedAccount;
|
|
590
|
+
|
|
591
|
+
_persist(): Promise<void>;
|
|
592
|
+
|
|
593
|
+
_persistInternal(): Promise<void>;
|
|
594
|
+
|
|
595
|
+
_dropWallet(wallet: Wallet): Promise<void>;
|
|
596
|
+
|
|
597
|
+
_enqueueMutation<T>(fn: () => Promise<T>): Promise<T>;
|
|
598
|
+
}
|
|
599
|
+
interface AccountCollection extends ReadonlyArray<Account> {
|
|
600
|
+
create(displayName: string, password: string, secret: string, defaultNetwork?: NetworkLike, opts?: {
|
|
601
|
+
kind?: AccountOrgType;
|
|
602
|
+
hasOwnPassword?: boolean;
|
|
603
|
+
}): Promise<Account>;
|
|
604
|
+
add(account: Account): Promise<Account>;
|
|
605
|
+
drop(account: Account): Promise<void>;
|
|
606
|
+
bySlug(slug: Slug): Account | null;
|
|
607
|
+
}
|
|
608
|
+
interface WalletCollection extends ReadonlyArray<Wallet> {
|
|
609
|
+
add(wallet: Wallet): Promise<Wallet>;
|
|
610
|
+
drop(wallet: Wallet): Promise<void>;
|
|
611
|
+
byId(id: number): Wallet | null;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
declare function newMnemonic(): string;
|
|
615
|
+
|
|
616
|
+
type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal";
|
|
617
|
+
type SinkConfig = {
|
|
618
|
+
kind: "console";
|
|
619
|
+
color?: boolean;
|
|
620
|
+
minLevel?: LogLevel;
|
|
621
|
+
} | {
|
|
622
|
+
kind: "file";
|
|
623
|
+
dir: string;
|
|
624
|
+
filePrefix?: string;
|
|
625
|
+
maxFileSize?: number;
|
|
626
|
+
maxFiles?: number;
|
|
627
|
+
minLevel?: LogLevel;
|
|
628
|
+
};
|
|
629
|
+
interface LoggerConfig {
|
|
630
|
+
minLevel: LogLevel;
|
|
631
|
+
sinks: SinkConfig[];
|
|
632
|
+
captureStackOn?: ReadonlyArray<LogLevel>;
|
|
633
|
+
}
|
|
634
|
+
interface LogRecord {
|
|
635
|
+
readonly timestamp: number;
|
|
636
|
+
readonly level: LogLevel;
|
|
637
|
+
readonly logger: string;
|
|
638
|
+
readonly message: string;
|
|
639
|
+
readonly context?: Readonly<Record<string, unknown>>;
|
|
640
|
+
readonly error?: {
|
|
641
|
+
name: string;
|
|
642
|
+
message: string;
|
|
643
|
+
stack?: string;
|
|
644
|
+
};
|
|
645
|
+
}
|
|
646
|
+
interface LogSink {
|
|
647
|
+
write(record: LogRecord): void;
|
|
648
|
+
flush?(): Promise<void>;
|
|
649
|
+
close?(): Promise<void>;
|
|
650
|
+
}
|
|
651
|
+
declare class ConsoleSink implements LogSink {
|
|
652
|
+
#private;
|
|
653
|
+
constructor(opts?: {
|
|
654
|
+
color?: boolean;
|
|
655
|
+
minLevel?: LogLevel;
|
|
656
|
+
});
|
|
657
|
+
write(record: LogRecord): void;
|
|
658
|
+
}
|
|
659
|
+
interface LoggerOwner {
|
|
660
|
+
onLoggerConfigChange(next: LoggerConfig): Promise<void>;
|
|
661
|
+
}
|
|
662
|
+
interface LoggerSharedState {
|
|
663
|
+
config: LoggerConfig;
|
|
664
|
+
sinks: LogSink[];
|
|
665
|
+
owner: LoggerOwner;
|
|
666
|
+
}
|
|
667
|
+
declare class Logger {
|
|
668
|
+
#private;
|
|
669
|
+
readonly namespace: string;
|
|
670
|
+
constructor(namespace: string, config: LoggerConfig, owner: LoggerOwner);
|
|
671
|
+
constructor(namespace: string, shared: LoggerSharedState);
|
|
672
|
+
get level(): LogLevel;
|
|
673
|
+
get sinks(): readonly LogSink[];
|
|
674
|
+
get config(): LoggerConfig;
|
|
675
|
+
setLevel(level: LogLevel): Promise<void>;
|
|
676
|
+
setSinks(configs: SinkConfig[]): Promise<void>;
|
|
677
|
+
trace(msg: string, ctx?: Readonly<Record<string, unknown>>): void;
|
|
678
|
+
debug(msg: string, ctx?: Readonly<Record<string, unknown>>): void;
|
|
679
|
+
info(msg: string, ctx?: Readonly<Record<string, unknown>>): void;
|
|
680
|
+
warn(msg: string, ctx?: Readonly<Record<string, unknown>>): void;
|
|
681
|
+
error(msg: string, err?: unknown, ctx?: Readonly<Record<string, unknown>>): void;
|
|
682
|
+
fatal(msg: string, err?: unknown, ctx?: Readonly<Record<string, unknown>>): void;
|
|
683
|
+
child(subNamespace: string): Logger;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
interface WorkspaceConfig {
|
|
687
|
+
businessTimezone?: string;
|
|
688
|
+
readonly [key: string]: unknown;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
interface OpenOptions {
|
|
692
|
+
|
|
693
|
+
provider?: Provider;
|
|
694
|
+
|
|
695
|
+
path?: string;
|
|
696
|
+
|
|
697
|
+
password?: string;
|
|
698
|
+
}
|
|
699
|
+
declare class Workspace {
|
|
700
|
+
#private;
|
|
701
|
+
accounts: AccountCollection;
|
|
702
|
+
networks: NetworkCollection;
|
|
703
|
+
|
|
704
|
+
_enqueueNetworkMutation<T>(fn: () => Promise<T>): Promise<T>;
|
|
705
|
+
private constructor();
|
|
706
|
+
get locked(): boolean;
|
|
707
|
+
get rootDescriptor(): string;
|
|
708
|
+
|
|
709
|
+
static open(providerOrRoot?: Provider | string | OpenOptions, password?: string, create?: boolean): Promise<Workspace>;
|
|
710
|
+
unlock(password: string): Promise<this>;
|
|
711
|
+
|
|
712
|
+
lock(): Promise<void>;
|
|
713
|
+
|
|
714
|
+
_getPassword(): string;
|
|
715
|
+
get config(): WorkspaceConfig;
|
|
716
|
+
getConfig(): Promise<WorkspaceConfig>;
|
|
717
|
+
setBusinessTimezone(timezone: string): Promise<void>;
|
|
718
|
+
|
|
719
|
+
get logger(): Logger;
|
|
720
|
+
filter(query: string, objective: "Wallet"): Wallet | null;
|
|
721
|
+
filter(query: string, objective: "Address"): Address | null;
|
|
722
|
+
filter(query: string, objective: "Account"): Account | null;
|
|
723
|
+
filter(query: string, objective: "Asset"): Asset | null;
|
|
724
|
+
|
|
725
|
+
assets(network: NetworkLike): Promise<readonly Asset[]>;
|
|
726
|
+
|
|
727
|
+
addAsset(asset: Asset): Promise<Asset>;
|
|
728
|
+
|
|
729
|
+
dropAsset(id: AssetId): Promise<void>;
|
|
730
|
+
|
|
731
|
+
_findUserAssetOnNetwork(slug: Slug): {
|
|
732
|
+
id: number;
|
|
733
|
+
symbol: string;
|
|
734
|
+
} | null;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
export { Account as A, type SvmAddress as B, type ChainId as C, SvmTransaction as D, type EvmAddress as E, type SvmTxBuildParams as F, type TransactionReceipt as G, type TransactionStateChange as H, type TransactionStatus as I, type TransactionTracker as J, type WalletCollection as K, type LogLevel as L, WativeError as M, Network as N, type WativeErrorCode as O, Provider as P, type WativeErrorOpts as Q, Record$1 as R, type Settling as S, type Transaction as T, Workspace as U, type WorkspaceConfig as V, Wallet as W, newMnemonic as X, type ContainerState as Y, type AccountCollection as a, type AccountOrgType as b, Address as c, Asset as d, type AssetBalance as e, type AssetCollection as f, type AssetId as g, type AssetInitObject as h, type ChainVM as i, ConsoleSink as j, type EvmRawTx as k, EvmTransaction as l, type EvmTxBuildParams as m, EvmTxType as n, type LogRecord as o, type LogSink as p, Logger as q, type LoggerConfig as r, type NetworkCollection as s, type NetworkInit as t, type NetworkLike as u, type RecordInit as v, type RecordType as w, type SimulationResult as x, type SinkConfig as y, type Slug as z };
|