@bitgo-beta/sdk-coin-xlm 1.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.
@@ -0,0 +1,359 @@
1
+ /// <reference types="node" />
2
+ import * as stellar from 'stellar-sdk';
3
+ import { BaseCoin, BitGoBase, ExtraPrebuildParamsOptions, KeyPair, ParsedTransaction, ParseTransactionOptions, SignTransactionOptions as BaseSignTransactionOptions, TransactionExplanation as BaseTransactionExplanation, TransactionParams as BaseTransactionParams, TransactionPrebuild as BaseTransactionPrebuild, VerifyAddressOptions as BaseVerifyAddressOptions, VerifyTransactionOptions as BaseVerifyTransactionOptions, Wallet } from '@bitgo-beta/sdk-core';
4
+ /**
5
+ * XLM accounts support virtual (muxed) addresses
6
+ * A base address starts with "G" and is tied to the underlying "real" account
7
+ * A muxed address starts with "M" and combines the base address with a 64-bit integer ID in order to provide
8
+ * an alternative to memo ids.
9
+ */
10
+ interface AddressDetails {
11
+ baseAddress: string;
12
+ address: string;
13
+ id?: string;
14
+ memoId?: string | undefined;
15
+ }
16
+ interface Memo {
17
+ type: stellar.MemoType;
18
+ value: string;
19
+ }
20
+ interface InitiateRecoveryOptions {
21
+ userKey: string;
22
+ backupKey: string;
23
+ recoveryDestination: string;
24
+ krsProvider?: string;
25
+ walletPassphrase?: string;
26
+ }
27
+ interface RecoveryOptions extends InitiateRecoveryOptions {
28
+ rootAddress?: string;
29
+ }
30
+ interface RecoveryTransaction {
31
+ tx: string;
32
+ recoveryAmount: number;
33
+ backupKey?: string;
34
+ coin?: string;
35
+ }
36
+ interface BuildOptions {
37
+ wallet?: Wallet;
38
+ recipients?: Record<string, string>[];
39
+ type?: string;
40
+ walletPassphrase?: string;
41
+ [index: string]: unknown;
42
+ }
43
+ interface TransactionPrebuild extends BaseTransactionPrebuild {
44
+ txBase64: string;
45
+ }
46
+ interface SignTransactionOptions extends BaseSignTransactionOptions {
47
+ txPrebuild: TransactionPrebuild;
48
+ prv: string;
49
+ }
50
+ interface HalfSignedTransaction {
51
+ halfSigned: {
52
+ txBase64: string;
53
+ };
54
+ }
55
+ interface SupplementGenerateWalletOptions {
56
+ rootPrivateKey?: string;
57
+ }
58
+ interface ExplainTransactionOptions {
59
+ txBase64: string;
60
+ }
61
+ interface TransactionMemo {
62
+ value?: string;
63
+ type?: string;
64
+ }
65
+ interface TransactionExplanation extends BaseTransactionExplanation {
66
+ memo: TransactionMemo;
67
+ }
68
+ interface VerifyAddressOptions extends BaseVerifyAddressOptions {
69
+ rootAddress: string;
70
+ }
71
+ interface TrustlineOptions {
72
+ token: string;
73
+ action: string;
74
+ limit?: string;
75
+ }
76
+ interface TransactionParams extends BaseTransactionParams {
77
+ trustlines?: TrustlineOptions[];
78
+ }
79
+ interface VerifyTransactionOptions extends BaseVerifyTransactionOptions {
80
+ txParams: TransactionParams;
81
+ }
82
+ export declare class Xlm extends BaseCoin {
83
+ readonly homeDomain: string;
84
+ static readonly tokenPatternSeparator = "-";
85
+ static readonly maxMemoId: string;
86
+ static readonly maxTrustlineLimit: string;
87
+ constructor(bitgo: BitGoBase);
88
+ static createInstance(bitgo: BitGoBase): BaseCoin;
89
+ protected getStellarNetwork(): stellar.Networks;
90
+ /**
91
+ * Factor between the base unit and its smallest subdivison
92
+ */
93
+ getBaseFactor(): number;
94
+ /**
95
+ * Identifier for the blockchain which supports this coin
96
+ */
97
+ getChain(): string;
98
+ /**
99
+ * Identifier for the coin family
100
+ */
101
+ getFamily(): string;
102
+ /**
103
+ * Complete human-readable name of this coin
104
+ */
105
+ getFullName(): string;
106
+ /**
107
+ * Url at which the stellar federation server can be reached
108
+ */
109
+ getFederationServerUrl(): string;
110
+ /**
111
+ * Url at which horizon can be reached
112
+ */
113
+ getHorizonUrl(): string;
114
+ /**
115
+ * Generate a new key pair on the ed25519 curve
116
+ * @param seed
117
+ * @returns generated pub and prv
118
+ */
119
+ generateKeyPair(seed: Buffer): KeyPair;
120
+ /**
121
+ * Get decoded ed25519 public key from raw data
122
+ *
123
+ * @param pub Raw public key
124
+ * @returns Encoded public key
125
+ */
126
+ getPubFromRaw(pub: string): string;
127
+ /**
128
+ * Get decoded ed25519 private key from raw data
129
+ *
130
+ * @param prv Raw private key
131
+ * @returns Encoded private key
132
+ */
133
+ getPrvFromRaw(prv: string): string;
134
+ /**
135
+ * Return boolean indicating whether input is valid public key for the coin.
136
+ *
137
+ * @param pub the pub to be checked
138
+ * @returns is it valid?
139
+ */
140
+ isValidPub(pub: string): boolean;
141
+ /**
142
+ * Return boolean indicating whether input is valid private key for the coin
143
+ *
144
+ * @param prv the prv to be checked
145
+ * @returns is it valid?
146
+ */
147
+ isValidPrv(prv: string): boolean;
148
+ /**
149
+ * Return boolean indicating whether a memo id is valid
150
+ *
151
+ * @param memoId memo id
152
+ * @returns true if memo id is valid
153
+ */
154
+ isValidMemoId(memoId: string): boolean;
155
+ /**
156
+ * Evaluates whether a memo is valid
157
+ *
158
+ * @param value value of the memo
159
+ * @param type type of the memo
160
+ * @returns true if value and type are a valid
161
+ */
162
+ isValidMemo({ value, type }: Memo): boolean;
163
+ /**
164
+ * Create instance of stellar.MuxedAccount from M address
165
+ * See: https://developers.stellar.org/docs/glossary/muxed-accounts
166
+ */
167
+ getMuxedAccount(address: string): stellar.MuxedAccount;
168
+ /**
169
+ * Return boolean indicating whether a muxed address is valid
170
+ * See: https://developers.stellar.org/docs/glossary/muxed-accounts
171
+ *
172
+ * @param address
173
+ * @returns {boolean}
174
+ */
175
+ isValidMuxedAddress(address: string): boolean;
176
+ /**
177
+ * Minimum balance of a 2-of-3 multisig wallet
178
+ * @returns minimum balance in stroops
179
+ */
180
+ getMinimumReserve(): Promise<number>;
181
+ /**
182
+ * Transaction fee for each operation
183
+ * @returns transaction fee in stroops
184
+ */
185
+ getBaseTransactionFee(): Promise<number>;
186
+ /**
187
+ * Process address into address and memo id
188
+ *
189
+ * @param address the address
190
+ * @returns object containing address and memo id
191
+ */
192
+ getAddressDetails(address: string): AddressDetails;
193
+ /**
194
+ * Validate and return address with appended memo id or muxed address
195
+ *
196
+ * @param address address
197
+ * @param memoId memo id
198
+ * @returns address with memo id
199
+ */
200
+ normalizeAddress({ address, memoId }: AddressDetails): string;
201
+ /**
202
+ * Return boolean indicating whether input is valid public key for the coin
203
+ *
204
+ * @param address the pub to be checked
205
+ * @returns is it valid?
206
+ */
207
+ isValidAddress(address: string): boolean;
208
+ /**
209
+ * Return a Stellar Asset in coin:token form (i.e. (t)xlm:<code>-<issuer>)
210
+ * If the asset is XLM, return the chain
211
+ * @param {stellar.Asset} asset - instance of Stellar Asset
212
+ */
213
+ getTokenNameFromStellarAsset(asset: stellar.Asset): string;
214
+ /**
215
+ * Evaluate whether a stellar username has valid format
216
+ * This method is used by the client when a stellar address is being added to a wallet
217
+ * Example of a common stellar username: foo@bar.baz
218
+ * The above example would result in the Stellar address: foo@bar.baz*bitgo.com
219
+ *
220
+ * @param username - stellar username
221
+ * @return true if stellar username is valid
222
+ */
223
+ isValidStellarUsername(username: string): boolean;
224
+ /**
225
+ * Get an instance of FederationServer for BitGo lookups
226
+ *
227
+ * @returns instance of BitGo Federation Server
228
+ */
229
+ getBitGoFederationServer(): stellar.FederationServer;
230
+ /**
231
+ * Perform federation lookups
232
+ * Our federation server handles lookups for bitgo as well as for other federation domains
233
+ *
234
+ * @param {String} [address] - address to look up
235
+ * @param {String} [accountId] - account id to look up
236
+ */
237
+ private federationLookup;
238
+ /**
239
+ * Attempt to resolve a stellar address into a stellar account
240
+ *
241
+ * @param {String} address - stellar address to look for
242
+ */
243
+ federationLookupByName(address: string): Promise<stellar.FederationServer.Record>;
244
+ /**
245
+ * Attempt to resolve an account id into a stellar account
246
+ * Only works for accounts that can be resolved by our federation server
247
+ *
248
+ * @param {String} accountId - stellar account id
249
+ */
250
+ federationLookupByAccountId(accountId: string): Promise<stellar.FederationServer.Record>;
251
+ /**
252
+ * Check if address is a valid XLM address, and then make sure it matches the root address.
253
+ *
254
+ * @param address {String} the address to verify
255
+ * @param rootAddress {String} the wallet's root address
256
+ */
257
+ isWalletAddress({ address, rootAddress }: VerifyAddressOptions): boolean;
258
+ /**
259
+ * Get extra parameters for prebuilding a tx
260
+ * Set empty recipients array in trustline txs
261
+ */
262
+ getExtraPrebuildParams(buildParams: ExtraPrebuildParamsOptions): Promise<BuildOptions>;
263
+ /**
264
+ * @deprecated
265
+ */
266
+ initiateRecovery(params: RecoveryOptions): never;
267
+ /**
268
+ * Builds a funds recovery transaction without BitGo
269
+ * @param params
270
+ * - userKey: [encrypted] Stellar private key
271
+ * - backupKey: [encrypted] Stellar private key, or public key if the private key is held by a KRS provider
272
+ * - walletPassphrase: necessary if one of the private keys is encrypted
273
+ * - rootAddress: base address of the wallet to recover funds from
274
+ * - krsProvider: necessary if backup key is held by KRS
275
+ * - recoveryDestination: target address to send recovered funds to
276
+ */
277
+ recover(params: RecoveryOptions): Promise<RecoveryTransaction>;
278
+ /**
279
+ * Assemble keychain and half-sign prebuilt transaction
280
+ *
281
+ * @param params
282
+ * @param params.txPrebuild {Object} prebuild object returned by platform
283
+ * @param params.prv {String} user prv
284
+ * @returns {Promise<HalfSignedTransaction>}
285
+ */
286
+ signTransaction(params: SignTransactionOptions): Promise<HalfSignedTransaction>;
287
+ /**
288
+ * Extend walletParams with extra params required for generating an XLM wallet
289
+ *
290
+ * Stellar wallets have three keychains on them. Two are generated by the platform, and the last is generated by the user.
291
+ * Initially, we need a root prv to generate the account, which must be distinct from all three keychains on the wallet.
292
+ * If a root prv is not provided, a random one is generated.
293
+ */
294
+ supplementGenerateWallet(walletParams: SupplementGenerateWalletOptions): Promise<SupplementGenerateWalletOptions>;
295
+ /**
296
+ * Sign message with private key
297
+ *
298
+ * @param key
299
+ * @param message
300
+ */
301
+ signMessage(key: KeyPair, message: string | Buffer): Promise<Buffer>;
302
+ /**
303
+ * Verifies if signature for message is valid.
304
+ *
305
+ * @param pub public key
306
+ * @param message signed message
307
+ * @param signature signature to verify
308
+ * @returns true if signature is valid.
309
+ */
310
+ verifySignature(pub: string, message: string | Buffer, signature: Buffer): boolean;
311
+ /**
312
+ * Explain/parse transaction
313
+ * @param params
314
+ */
315
+ explainTransaction(params: ExplainTransactionOptions): Promise<TransactionExplanation>;
316
+ /**
317
+ * Verify that a tx prebuild's operations comply with the original intention
318
+ * @param {stellar.Operation} operations - tx operations
319
+ * @param {TransactionParams} txParams - params used to build the tx
320
+ */
321
+ verifyTrustlineTxOperations(operations: stellar.Operation[], txParams: TransactionParams): void;
322
+ /**
323
+ * Verify that a transaction prebuild complies with the original intention
324
+ *
325
+ * @param options
326
+ * @param options.txPrebuild prebuild object returned by platform
327
+ * @param options.txPrebuild.txBase64 prebuilt transaction encoded as base64 string
328
+ * @param options.wallet wallet object to obtain keys to verify against
329
+ * @param options.verification specifying some verification parameters
330
+ * @param options.verification.disableNetworking Disallow fetching any data from the internet for verification purposes
331
+ * @param options.verification.keychains Pass keychains manually rather than fetching them by id
332
+ */
333
+ verifyTransaction(options: VerifyTransactionOptions): Promise<boolean>;
334
+ /**
335
+ * Derive a hardened child public key from a master key seed using an additional seed for randomness.
336
+ *
337
+ * Due to technical differences between keypairs on the ed25519 curve and the secp256k1 curve,
338
+ * only hardened private key derivation is supported.
339
+ *
340
+ * @param key seed for the master key. Note: Not the public key or encoded private key. This is the raw seed.
341
+ * @param entropySeed random seed which is hashed to generate the derivation path
342
+ */
343
+ deriveKeyWithSeed({ key, seed }: {
344
+ key: string;
345
+ seed: string;
346
+ }): {
347
+ derivationPath: string;
348
+ key: string;
349
+ };
350
+ /**
351
+ * stellar-sdk has two overloads for toXDR, and typescript can't seem to figure out the
352
+ * correct one to use, so we have to be very explicit as to which one we want.
353
+ * @param tx transaction to convert
354
+ */
355
+ protected static txToString: (tx: stellar.Transaction) => string;
356
+ parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
357
+ }
358
+ export {};
359
+ //# sourceMappingURL=xlm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlm.d.ts","sourceRoot":"","sources":["../../src/xlm.ts"],"names":[],"mappings":"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"}