@tatumio/flow 2.0.1-alpha.237

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,443 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flowTxService = exports.FLOW_MAINNET_ADDRESSES = exports.FLOW_TESTNET_ADDRESSES = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const elliptic = (0, tslib_1.__importStar)(require("elliptic"));
6
+ const fcl = (0, tslib_1.__importStar)(require("@onflow/fcl"));
7
+ const types = (0, tslib_1.__importStar)(require("@onflow/types"));
8
+ const util_encode_key_1 = require("@onflow/util-encode-key");
9
+ const sha3_1 = (0, tslib_1.__importDefault)(require("sha3"));
10
+ const shared_core_1 = require("@tatumio/shared-core");
11
+ const flow_tx_templates_1 = require("./flow.tx.templates");
12
+ const flow_sdk_wallet_1 = require("./flow.sdk.wallet");
13
+ const flow_blockchain_1 = require("./flow.blockchain");
14
+ const flow_sdk_errors_1 = require("../flow.sdk.errors");
15
+ const shared_abstract_sdk_1 = require("@tatumio/shared-abstract-sdk");
16
+ exports.FLOW_TESTNET_ADDRESSES = {
17
+ FlowToken: '0x7e60df042a9c0868',
18
+ FungibleToken: '0x9a0766d93b6608b7',
19
+ FUSD: '0xe223d8a629e49c68',
20
+ TatumMultiNFT: '0x87fe4ebd0cddde06',
21
+ };
22
+ exports.FLOW_MAINNET_ADDRESSES = {
23
+ FlowToken: '0x1654653399040a61',
24
+ FungibleToken: '0xf233dcee88fe0abe',
25
+ FUSD: '0x3c5959b568896393',
26
+ TatumMultiNFT: '0x354e6721564ccd2c',
27
+ };
28
+ const flowTxService = (args) => {
29
+ const flowSdkWallet = (0, flow_sdk_wallet_1.flowWallet)();
30
+ const flowSdkBlockchain = (0, flow_blockchain_1.flowBlockchain)(args);
31
+ const txTemplates = (0, flow_tx_templates_1.flowTxTemplates)();
32
+ const sign = (pk, msg) => {
33
+ const keyPair = new elliptic.ec('secp256k1').keyFromPrivate(pk);
34
+ const signature = keyPair.sign(new sha3_1.default(256).update(msg).digest());
35
+ const r = signature.r.toArrayLike(Buffer, 'be', 32);
36
+ const s = signature.s.toArrayLike(Buffer, 'be', 32);
37
+ return Buffer.concat([r, s]).toString('hex');
38
+ };
39
+ const getSigner = (pk, address, keyId = 0) => {
40
+ return {
41
+ signer: (account) => {
42
+ return Object.assign(Object.assign({}, account), { tempId: `${address}-${keyId}`, addr: fcl.sansPrefix(address), keyId: Number(keyId), signingFunction: (data) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
43
+ return {
44
+ addr: fcl.withPrefix(address),
45
+ keyId: Number(keyId),
46
+ signature: sign(pk, Buffer.from(data.message, 'hex')),
47
+ };
48
+ }) });
49
+ },
50
+ };
51
+ };
52
+ const getApiSigner = (isPayer) => {
53
+ const keyHash = Date.now();
54
+ const signer = (account) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
55
+ const { address, keyId } = yield flowSdkBlockchain.getSignKey(isPayer);
56
+ if (!isPayer) {
57
+ process.env[`FLOW_PROPOSAL_KEY_${keyHash}`] = `${keyId}`;
58
+ }
59
+ return Object.assign(Object.assign({}, account), { tempId: `${address}-${keyId}`, addr: fcl.sansPrefix(address), keyId, signingFunction: (data) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
60
+ return {
61
+ addr: fcl.withPrefix(address),
62
+ keyId: Number(keyId),
63
+ signature: (yield flowSdkBlockchain.signWithKey(data.message, isPayer)).signature,
64
+ };
65
+ }) });
66
+ });
67
+ return { signer, keyHash: `FLOW_PROPOSAL_KEY_${keyHash}` };
68
+ };
69
+ return {
70
+ sign,
71
+ getSigner,
72
+ getApiSigner,
73
+ /**
74
+ * Create account on the FLOW network. It automatically creates 100 0-weight proposal keys, which are managed by Tatum API - index 1-100.
75
+ * Main 1000 weight authorizer key is stored as a first one on index 0.
76
+ * @param testnet if we use testnet or not
77
+ * @param publicKey public key to assign to address as authorizer (1000 weight) key
78
+ * @param signerAddress address of the authorizer creator of the address on the chain
79
+ * @param signerPrivateKey private key of the authorizer creator of the address on the chain
80
+ * @param proposer function to obtain proposer key from
81
+ * @param payer function to obtain payer key from
82
+ */
83
+ createAccountFromPublicKey: (testnet, publicKey, signerAddress, signerPrivateKey, proposer, payer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
84
+ var _a;
85
+ const code = txTemplates.prepareCreateAccountWithFUSDFromPublicKeyTxTemplate(testnet);
86
+ const encodedPublicKey = (0, util_encode_key_1.encodeKey)(publicKey, util_encode_key_1.ECDSA_secp256k1, util_encode_key_1.SHA3_256, 1000);
87
+ const args = [{ type: 'String', value: encodedPublicKey }];
88
+ const auth = getSigner(signerPrivateKey, signerAddress).signer;
89
+ const { signer: proposalSigner, keyHash } = proposer ? proposer(false) : getApiSigner(false);
90
+ const result = yield _sendTransaction(testnet, {
91
+ code,
92
+ args,
93
+ proposer: proposer ? proposer(false) : proposalSigner,
94
+ authorizations: [auth],
95
+ payer: payer ? payer(true) : getApiSigner(true).signer,
96
+ keyHash,
97
+ });
98
+ return {
99
+ txId: result.id,
100
+ address: (_a = result.events.find((e) => e.type === 'flow.AccountCreated')) === null || _a === void 0 ? void 0 : _a.data.address,
101
+ };
102
+ }),
103
+ /**
104
+ * Add public key to existing blockchain address with defined weight
105
+ * @param testnet
106
+ * @param publicKey key to add
107
+ * @param signerAddress address of the authorizer key
108
+ * @param signerPrivateKey key of the authorize key
109
+ * @param weight defaults to 1000 - weight of the key
110
+ * @param proposer function to obtain proposer key from
111
+ * @param payer function to obtain payer key from
112
+ */
113
+ addPublicKeyToAccount: (testnet, publicKey, signerAddress, signerPrivateKey, weight = 0, proposer, payer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
114
+ const code = txTemplates.prepareAddPublicKeyToAccountTxTemplate();
115
+ const encodedPublicKey = (0, util_encode_key_1.encodeKey)(publicKey, util_encode_key_1.ECDSA_secp256k1, util_encode_key_1.SHA3_256, weight);
116
+ const args = [{ type: 'String', value: encodedPublicKey }];
117
+ const auth = getSigner(signerPrivateKey, signerAddress).signer;
118
+ const { signer: proposalSigner, keyHash } = proposer ? proposer(false) : getApiSigner(false);
119
+ const result = yield _sendTransaction(testnet, {
120
+ code,
121
+ args,
122
+ proposer: proposer ? proposer(false) : proposalSigner,
123
+ authorizations: [auth],
124
+ keyHash,
125
+ payer: payer ? payer(true) : getApiSigner(true).signer,
126
+ });
127
+ return { txId: result.id, address: result.events[0].data.address };
128
+ }),
129
+ getNftMetadata: (testnet, account, id, contractAddress) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
130
+ const code = txTemplates.metadataNftTokenScript(testnet);
131
+ const args = [
132
+ { type: 'Address', value: account },
133
+ { type: 'UInt64', value: id },
134
+ { type: 'String', value: contractAddress },
135
+ ];
136
+ return sendScript(testnet, code, args);
137
+ }),
138
+ getNftTokenByAddress: (testnet, account, tokenType) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
139
+ const code = txTemplates.tokenByAddressNftTokenScript(testnet);
140
+ const args = [
141
+ { type: 'Address', value: account },
142
+ { type: 'String', value: tokenType },
143
+ ];
144
+ return sendScript(testnet, code, args);
145
+ }),
146
+ /**
147
+ * Send Flow NFT mint token transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
148
+ * This operation is irreversible.
149
+ * @param testnet
150
+ * @param body content of the transaction to broadcast
151
+ * @param proposer function to obtain proposer key from
152
+ * @param payer function to obtain payer key from
153
+ * @returns txId id of the transaction in the blockchain
154
+ */
155
+ sendNftMintToken: (testnet, body, proposer, payer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
156
+ var _b;
157
+ const bodyWithChain = Object.assign(Object.assign({}, body), { chain: shared_core_1.Blockchain.FLOW });
158
+ const code = txTemplates.mintNftTokenTxTemplate(testnet);
159
+ const { url, contractAddress: tokenType, to, account } = bodyWithChain;
160
+ const args = [
161
+ { type: 'Address', value: to },
162
+ { type: 'String', value: url },
163
+ { type: 'String', value: tokenType },
164
+ ];
165
+ const pk = yield getPrivateKey(bodyWithChain);
166
+ if (!pk)
167
+ throw new flow_sdk_errors_1.FlowSdkError(shared_abstract_sdk_1.SdkErrorCode.FLOW_MISSING_PRIVATE_KEY);
168
+ const auth = getSigner(pk, account).signer;
169
+ const { signer: proposalSigner, keyHash } = proposer ? proposer(false) : getApiSigner(false);
170
+ const result = yield _sendTransaction(testnet, {
171
+ code,
172
+ args,
173
+ proposer: proposer ? proposer(false) : proposalSigner,
174
+ authorizations: [auth],
175
+ keyHash,
176
+ payer: payer ? payer(true) : getApiSigner(true).signer,
177
+ });
178
+ return {
179
+ txId: result.id,
180
+ tokenId: `${(_b = result.events.find((e) => e.type.includes('TatumMultiNFT.Minted'))) === null || _b === void 0 ? void 0 : _b.data.id}`,
181
+ };
182
+ }),
183
+ /**
184
+ * Send Flow NFT mint multiple tokens transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
185
+ * This operation is irreversible.
186
+ * @param testnet
187
+ * @param body content of the transaction to broadcast
188
+ * @param proposer function to obtain proposer key from
189
+ * @param payer function to obtain payer key from
190
+ * @returns txId id of the transaction in the blockchain
191
+ */
192
+ sendNftMintMultipleToken: (testnet, body, proposer, payer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
193
+ const bodyWithChain = Object.assign(Object.assign({}, body), { chain: shared_core_1.Blockchain.FLOW });
194
+ const code = txTemplates.mintMultipleNftTokenTxTemplate(testnet);
195
+ const { url, contractAddress: tokenType, to, account } = bodyWithChain;
196
+ const args = [
197
+ { type: 'Array', subType: 'Address', value: to },
198
+ {
199
+ type: 'Array',
200
+ subType: 'String',
201
+ value: url,
202
+ },
203
+ { type: 'String', value: tokenType },
204
+ ];
205
+ const pk = yield getPrivateKey(bodyWithChain);
206
+ if (!pk)
207
+ throw new flow_sdk_errors_1.FlowSdkError(shared_abstract_sdk_1.SdkErrorCode.FLOW_MISSING_PRIVATE_KEY);
208
+ const { signer: proposalSigner, keyHash } = proposer ? proposer(false) : getApiSigner(false);
209
+ const auth = getSigner(pk, account).signer;
210
+ const result = yield _sendTransaction(testnet, {
211
+ code,
212
+ args,
213
+ proposer: proposer ? proposer(false) : proposalSigner,
214
+ authorizations: [auth],
215
+ payer: payer ? payer(true) : getApiSigner(true).signer,
216
+ keyHash,
217
+ });
218
+ return {
219
+ txId: result.id,
220
+ tokenId: result.events
221
+ .filter((e) => e.type.includes('TatumMultiNFT.Minted'))
222
+ .map((e) => e.data.id),
223
+ };
224
+ }),
225
+ /**
226
+ * Send Flow NFT transfer token transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
227
+ * This operation is irreversible.
228
+ * @param testnet
229
+ * @param body content of the transaction to broadcast
230
+ * @param proposer function to obtain proposer key from
231
+ * @param payer function to obtain payer key from
232
+ * @returns {txId: string, events: any[]} id of the transaction in the blockchain and events this tx produced
233
+ */
234
+ sendNftTransferToken: (testnet, body, proposer, payer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
235
+ const bodyWithChain = Object.assign(Object.assign({}, body), { chain: shared_core_1.Blockchain.FLOW });
236
+ const code = txTemplates.transferNftTokenTxTemplate(testnet);
237
+ const { tokenId, to, account } = bodyWithChain;
238
+ const args = [
239
+ { type: 'Address', value: to },
240
+ { type: 'UInt64', value: tokenId },
241
+ ];
242
+ const pk = yield getPrivateKey(bodyWithChain);
243
+ if (!pk)
244
+ throw new flow_sdk_errors_1.FlowSdkError(shared_abstract_sdk_1.SdkErrorCode.FLOW_MISSING_PRIVATE_KEY);
245
+ const { signer: proposalSigner, keyHash } = proposer ? proposer(false) : getApiSigner(false);
246
+ const auth = getSigner(pk, account).signer;
247
+ const result = yield _sendTransaction(testnet, {
248
+ code,
249
+ args,
250
+ proposer: proposer ? proposer(false) : proposalSigner,
251
+ authorizations: [auth],
252
+ payer: payer ? payer(true) : getApiSigner(true).signer,
253
+ keyHash,
254
+ });
255
+ return { txId: result.id };
256
+ }),
257
+ /**
258
+ * Send Flow NFT burn token transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
259
+ * This operation is irreversible.
260
+ * @param testnet
261
+ * @param body content of the transaction to broadcast
262
+ * @param proposer function to obtain proposer key from
263
+ * @param payer function to obtain payer key from
264
+ * @returns txId id of the transaction in the blockchain
265
+ */
266
+ sendNftBurnToken: (testnet, body, proposer, payer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
267
+ const bodyWithChain = Object.assign(Object.assign({}, body), { chain: shared_core_1.Blockchain.FLOW });
268
+ const code = txTemplates.burnNftTokenTxTemplate(testnet);
269
+ const { tokenId, contractAddress: tokenType, account } = bodyWithChain;
270
+ const args = [
271
+ { type: 'UInt64', value: tokenId },
272
+ { type: 'String', value: tokenType },
273
+ ];
274
+ const pk = yield getPrivateKey(bodyWithChain);
275
+ if (!pk)
276
+ throw new flow_sdk_errors_1.FlowSdkError(shared_abstract_sdk_1.SdkErrorCode.FLOW_MISSING_PRIVATE_KEY);
277
+ const { signer: proposalSigner, keyHash } = proposer ? proposer(false) : getApiSigner(false);
278
+ const auth = getSigner(pk, account).signer;
279
+ const result = yield _sendTransaction(testnet, {
280
+ code,
281
+ args,
282
+ proposer: proposer ? proposer(false) : proposalSigner,
283
+ authorizations: [auth],
284
+ payer: payer ? payer(true) : getApiSigner(true).signer,
285
+ keyHash,
286
+ });
287
+ return { txId: result.id };
288
+ }),
289
+ /**
290
+ * Send custom transaction to the FLOW network
291
+ * @param testnet
292
+ * @param body content of the transaction to broadcast
293
+ * @param proposer function to obtain proposer key from
294
+ * @param payer function to obtain payer key from
295
+ * @returns txId id of the transaction in the blockchain
296
+ */
297
+ sendCustomTransaction: (testnet, body, proposer, payer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
298
+ const pk = yield getPrivateKey(body);
299
+ if (!pk)
300
+ throw new flow_sdk_errors_1.FlowSdkError(shared_abstract_sdk_1.SdkErrorCode.FLOW_MISSING_PRIVATE_KEY);
301
+ const auth = getSigner(pk, body.account).signer;
302
+ const { signer: proposalSigner, keyHash } = proposer ? proposer(false) : getApiSigner(false);
303
+ const result = yield _sendTransaction(testnet, {
304
+ code: body.transaction,
305
+ args: body.args,
306
+ proposer: proposer ? proposer(false) : proposalSigner,
307
+ authorizations: [auth],
308
+ keyHash,
309
+ payer: payer ? payer(true) : getApiSigner(true).signer,
310
+ });
311
+ return { txId: result.id, events: result.events };
312
+ }),
313
+ /**
314
+ * Send FLOW or FUSD from account to account.
315
+ * @param testnet
316
+ * @param body content of the transaction to broadcast
317
+ * @param proposer function to obtain proposer key from
318
+ * @param payer function to obtain payer key from
319
+ * @returns txId id of the transaction in the blockchain
320
+ */
321
+ sendTransaction: (testnet, body, proposer, payer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
322
+ let tokenAddress;
323
+ let tokenName;
324
+ let tokenStorage;
325
+ if (body.currency === shared_core_1.Blockchain.FLOW) {
326
+ tokenAddress = testnet ? exports.FLOW_TESTNET_ADDRESSES.FlowToken : exports.FLOW_MAINNET_ADDRESSES.FlowToken;
327
+ tokenName = 'FlowToken';
328
+ tokenStorage = 'flowToken';
329
+ }
330
+ else {
331
+ tokenAddress = testnet ? exports.FLOW_TESTNET_ADDRESSES.FUSD : exports.FLOW_MAINNET_ADDRESSES.FUSD;
332
+ tokenName = 'FUSD';
333
+ tokenStorage = 'fusd';
334
+ }
335
+ const code = txTemplates.prepareTransferTxTemplate(testnet, tokenAddress, tokenName, tokenStorage);
336
+ const args = [
337
+ { value: parseFloat(body.amount).toFixed(8), type: 'UFix64' },
338
+ { value: body.to, type: 'Address' },
339
+ ];
340
+ const pk = yield getPrivateKey(body);
341
+ if (!pk)
342
+ throw new flow_sdk_errors_1.FlowSdkError(shared_abstract_sdk_1.SdkErrorCode.FLOW_MISSING_PRIVATE_KEY);
343
+ const { signer: proposalSigner, keyHash } = proposer ? proposer(false) : getApiSigner(false);
344
+ const auth = getSigner(pk, body.account).signer;
345
+ const result = yield _sendTransaction(testnet, {
346
+ code,
347
+ args,
348
+ proposer: proposer ? proposer(false) : proposalSigner,
349
+ authorizations: [auth],
350
+ payer: payer ? payer(true) : getApiSigner(true).signer,
351
+ keyHash,
352
+ });
353
+ return { txId: result.id };
354
+ }),
355
+ };
356
+ function _sendTransaction(testnet, { code, args, proposer, authorizations, payer, keyHash }) {
357
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
358
+ fcl.config().put('accessNode.api', networkUrl(testnet));
359
+ let response;
360
+ try {
361
+ response = yield fcl.send([
362
+ fcl.transaction(code),
363
+ fcl.args(args.map((arg) => fcl.arg(UInt64ArgValue(arg), ArrayArgValue(arg)))),
364
+ fcl.proposer(proposer),
365
+ fcl.authorizations(authorizations),
366
+ fcl.payer(payer),
367
+ fcl.limit(1000),
368
+ ]);
369
+ }
370
+ catch (e) {
371
+ try {
372
+ if (keyHash) {
373
+ yield flowSdkBlockchain.broadcast('', undefined, proposalKey(keyHash));
374
+ delete process.env[keyHash];
375
+ }
376
+ }
377
+ catch (_) {
378
+ throw new flow_sdk_errors_1.FlowSdkError(_);
379
+ }
380
+ throw new flow_sdk_errors_1.FlowSdkError(e);
381
+ }
382
+ const { transactionId } = response;
383
+ try {
384
+ const { error, events } = yield fcl.tx(response).onceSealed();
385
+ if (error) {
386
+ throw new flow_sdk_errors_1.FlowSdkError(error);
387
+ }
388
+ return {
389
+ id: transactionId,
390
+ events,
391
+ };
392
+ }
393
+ catch (e) {
394
+ throw new flow_sdk_errors_1.FlowSdkError(e);
395
+ }
396
+ finally {
397
+ if (keyHash) {
398
+ yield flowSdkBlockchain.broadcast(transactionId, undefined, proposalKey(keyHash));
399
+ delete process.env[keyHash];
400
+ }
401
+ }
402
+ });
403
+ }
404
+ function getPrivateKey(body) {
405
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
406
+ const { mnemonic, index, privateKey } = body;
407
+ if (privateKey) {
408
+ return privateKey;
409
+ }
410
+ else {
411
+ if (mnemonic && index && index >= 0) {
412
+ return flowSdkWallet.generatePrivateKeyFromMnemonic(mnemonic, index);
413
+ }
414
+ else
415
+ throw new flow_sdk_errors_1.FlowSdkError(shared_abstract_sdk_1.SdkErrorCode.FLOW_MISSING_MNEMONIC);
416
+ }
417
+ });
418
+ }
419
+ function sendScript(testnet, code, args) {
420
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
421
+ fcl.config().put('accessNode.api', networkUrl(testnet));
422
+ const response = yield fcl.send([
423
+ fcl.script(code),
424
+ fcl.args(args.map((arg) => fcl.arg(UInt64ArgValue(arg), types[arg.type]))),
425
+ ]);
426
+ return fcl.decode(response);
427
+ });
428
+ }
429
+ function proposalKey(keyHash) {
430
+ return keyHash ? parseInt(process.env[keyHash] || '0') : undefined;
431
+ }
432
+ function networkUrl(testnet) {
433
+ return testnet ? 'https://access-testnet.onflow.org' : 'https://access-mainnet-beta.onflow.org';
434
+ }
435
+ function UInt64ArgValue(arg) {
436
+ return arg.type === 'UInt64' ? parseInt(arg.value) : arg.value;
437
+ }
438
+ function ArrayArgValue(arg) {
439
+ return arg.type === 'Array' ? types[arg.type](types[arg.subType]) : types[arg.type];
440
+ }
441
+ };
442
+ exports.flowTxService = flowTxService;
443
+ //# sourceMappingURL=flow.tx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.tx.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/flow/src/lib/services/flow.tx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const flowTxTemplates: () => {
2
+ deployNftTokenTypeWithMinterTxTemplate: (testnet: boolean) => string;
3
+ metadataNftTokenScript: (testnet: boolean) => string;
4
+ tokenByAddressNftTokenScript: (testnet: boolean) => string;
5
+ mintNftTokenTxTemplate: (testnet: boolean) => string;
6
+ mintMultipleNftTokenTxTemplate: (testnet: boolean) => string;
7
+ burnNftTokenTxTemplate: (testnet: boolean) => string;
8
+ transferNftTokenTxTemplate: (testnet: boolean) => string;
9
+ prepareAddPublicKeyToAccountTxTemplate: () => string;
10
+ prepareTransferTxTemplate: (testnet: boolean, tokenAddress: string, tokenName: string, tokenStorage: string) => string;
11
+ prepareCreateAccountWithFUSDFromPublicKeyTxTemplate: (testnet: boolean) => string;
12
+ };