@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.
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@tatumio/flow",
3
+ "version": "2.0.1-alpha.237",
4
+ "license": "MIT",
5
+ "main": "./src/index.js",
6
+ "typings": "./src/index.d.ts",
7
+ "dependencies": {
8
+ "@tatumio/shared-testing-common": "2.0.1-alpha.237",
9
+ "@tatumio/shared-blockchain-abstract": "2.0.1-alpha.237",
10
+ "@tatumio/api-client": "2.0.1-alpha.237",
11
+ "axios": "^0.25.0",
12
+ "form-data": "^4.0.0",
13
+ "@tatumio/shared-core": "2.0.1-alpha.237",
14
+ "@tatumio/shared-abstract-sdk": "2.0.1-alpha.237",
15
+ "bignumber.js": "^9.0.2",
16
+ "dedent-js": "^1.0.1",
17
+ "bip32": "^2.0.5",
18
+ "bip39": "^3.0.2",
19
+ "hdkey": "^2.0.1",
20
+ "@onflow/fcl": "^0.0.78",
21
+ "@onflow/util-encode-key": "^0.0.2",
22
+ "sha3": "^2.1.4"
23
+ },
24
+ "peerDependencies": {}
25
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './lib/flow.sdk';
package/src/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./lib/flow.sdk"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/blockchain/flow/src/index.ts"],"names":[],"mappings":";;;AAAA,8DAA8B"}
@@ -0,0 +1,11 @@
1
+ export declare enum FlowTxType {
2
+ CREATE_ACCOUNT = 0,
3
+ ADD_PK_TO_ACCOUNT = 1,
4
+ TRANSFER = 2,
5
+ DEPLOY_NFT = 3,
6
+ MINT_NFT = 4,
7
+ MINT_MULTIPLE_NFT = 5,
8
+ BURN_NFT = 6,
9
+ TRANSFER_NFT = 7,
10
+ CUSTOM_TX = 8
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlowTxType = void 0;
4
+ var FlowTxType;
5
+ (function (FlowTxType) {
6
+ FlowTxType[FlowTxType["CREATE_ACCOUNT"] = 0] = "CREATE_ACCOUNT";
7
+ FlowTxType[FlowTxType["ADD_PK_TO_ACCOUNT"] = 1] = "ADD_PK_TO_ACCOUNT";
8
+ FlowTxType[FlowTxType["TRANSFER"] = 2] = "TRANSFER";
9
+ FlowTxType[FlowTxType["DEPLOY_NFT"] = 3] = "DEPLOY_NFT";
10
+ FlowTxType[FlowTxType["MINT_NFT"] = 4] = "MINT_NFT";
11
+ FlowTxType[FlowTxType["MINT_MULTIPLE_NFT"] = 5] = "MINT_MULTIPLE_NFT";
12
+ FlowTxType[FlowTxType["BURN_NFT"] = 6] = "BURN_NFT";
13
+ FlowTxType[FlowTxType["TRANSFER_NFT"] = 7] = "TRANSFER_NFT";
14
+ FlowTxType[FlowTxType["CUSTOM_TX"] = 8] = "CUSTOM_TX";
15
+ })(FlowTxType = exports.FlowTxType || (exports.FlowTxType = {}));
16
+ //# sourceMappingURL=flow.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.constants.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/flow/src/lib/flow.constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAUX;AAVD,WAAY,UAAU;IACpB,+DAAc,CAAA;IACd,qEAAiB,CAAA;IACjB,mDAAQ,CAAA;IACR,uDAAU,CAAA;IACV,mDAAQ,CAAA;IACR,qEAAiB,CAAA;IACjB,mDAAQ,CAAA;IACR,2DAAY,CAAA;IACZ,qDAAS,CAAA;AACX,CAAC,EAVW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAUrB"}
@@ -0,0 +1,164 @@
1
+ import { BlockchainFlowService } from '@tatumio/api-client';
2
+ import { SDKArguments } from '@tatumio/shared-abstract-sdk';
3
+ export declare const TatumFlowSDK: (args: SDKArguments) => {
4
+ api: typeof BlockchainFlowService;
5
+ kms: {
6
+ sign(tx: import("@tatumio/shared-core").ChainTransactionKMS, fromPrivateKeys: string[], testnet: boolean): Promise<{
7
+ txId: string;
8
+ address: string;
9
+ } | {
10
+ txId: string;
11
+ }>;
12
+ getAllPending(signatures?: string): import("@tatumio/api-client").CancelablePromise<import("@tatumio/api-client").PendingTransaction[]>;
13
+ get: typeof import("@tatumio/api-client").SecurityKeyManagementSystemService.getPendingTransactionToSign;
14
+ complete: typeof import("@tatumio/api-client").SecurityKeyManagementSystemService.completePendingSignature;
15
+ delete: typeof import("@tatumio/api-client").SecurityKeyManagementSystemService.deletePendingTransactionToSign;
16
+ };
17
+ wallet: import("@tatumio/shared-blockchain-abstract").SdkWithWalletFunctions;
18
+ transaction: {
19
+ sign: (pk: string, msg: Buffer) => string;
20
+ getSigner: (pk: string, address: string, keyId?: number) => {
21
+ signer: (account: any) => any;
22
+ };
23
+ getApiSigner: (isPayer: boolean) => {
24
+ signer: (account: any) => Promise<any>;
25
+ keyHash: string;
26
+ };
27
+ createAccountFromPublicKey: (testnet: boolean, publicKey: string, signerAddress: string, signerPrivateKey: string, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
28
+ txId: string;
29
+ address: string;
30
+ }>;
31
+ addPublicKeyToAccount: (testnet: boolean, publicKey: string, signerAddress: string, signerPrivateKey: string, weight?: number, proposer?: (args: any) => any, payer?: (args: any) => any) => Promise<{
32
+ txId: string;
33
+ address: string;
34
+ }>;
35
+ getNftMetadata: (testnet: boolean, account: string, id: string, contractAddress: string) => Promise<any>;
36
+ getNftTokenByAddress: (testnet: boolean, account: string, tokenType: string) => Promise<any>;
37
+ sendNftMintToken: (testnet: boolean, body: import("@tatumio/shared-core").ChainFlowMintNft, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
38
+ txId: string;
39
+ tokenId: string;
40
+ }>;
41
+ sendNftMintMultipleToken: (testnet: boolean, body: import("@tatumio/shared-core").ChainFlowMintMultipleNft, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
42
+ txId: string;
43
+ tokenId: number[];
44
+ }>;
45
+ sendNftTransferToken: (testnet: boolean, body: import("@tatumio/shared-core").ChainFlowTransferNft, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
46
+ txId: string;
47
+ }>;
48
+ sendNftBurnToken: (testnet: boolean, body: import("@tatumio/shared-core").ChainFlowBurnNft, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
49
+ txId: string;
50
+ }>;
51
+ sendCustomTransaction: (testnet: boolean, body: import("@tatumio/shared-core").TransferFlowCustomTx, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
52
+ txId: string;
53
+ events: any[];
54
+ }>;
55
+ sendTransaction: (testnet: boolean, body: import("@tatumio/shared-core").TransferFlow, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
56
+ txId: string;
57
+ }>;
58
+ };
59
+ nft: {
60
+ deployNFTSmartContract: typeof import("@tatumio/api-client").BlockchainNftService.nftDeployErc721;
61
+ mintNFT: typeof import("@tatumio/api-client").BlockchainNftService.nftMintErc721;
62
+ transferNFT: typeof import("@tatumio/api-client").BlockchainNftService.nftTransferErc721;
63
+ mintMultipleNFTs: typeof import("@tatumio/api-client").BlockchainNftService.nftMintMultipleErc721;
64
+ burnNFT: typeof import("@tatumio/api-client").BlockchainNftService.nftBurnErc721;
65
+ getNFTTransaction: typeof import("@tatumio/api-client").BlockchainNftService.nftGetTransactErc721;
66
+ getNFTAccountBalance: typeof import("@tatumio/api-client").BlockchainNftService.nftGetBalanceErc721;
67
+ getNFTMetadataURI: typeof import("@tatumio/api-client").BlockchainNftService.nftGetMetadataErc721;
68
+ };
69
+ blockchain: {
70
+ getCurrentBlock: typeof BlockchainFlowService.flowGetBlockChainInfo;
71
+ getBlock: typeof BlockchainFlowService.flowGetBlock;
72
+ getAccount: typeof BlockchainFlowService.flowGetAccount;
73
+ getTransaction: typeof BlockchainFlowService.flowGetRawTransaction;
74
+ };
75
+ offchain: {
76
+ depositAddress: {
77
+ checkExists: (address: string, index?: number) => Promise<import("@tatumio/api-client").Account>;
78
+ create: typeof import("@tatumio/api-client").OffChainAccountService.generateDepositAddress;
79
+ createMultiple: typeof import("@tatumio/api-client").OffChainAccountService.generateDepositAddressesBatch;
80
+ assign: typeof import("@tatumio/api-client").OffChainAccountService.assignAddress;
81
+ remove: typeof import("@tatumio/api-client").OffChainAccountService.removeAddress;
82
+ getByAccount: typeof import("@tatumio/api-client").OffChainAccountService.getAllDepositAddresses;
83
+ };
84
+ withdrawal: {
85
+ getAll: (status?: "InProgress" | "Done" | "Cancelled", pageSize?: number, offset?: number) => Promise<import("@tatumio/api-client").WithdrawalObject[]>;
86
+ broadcast: typeof import("@tatumio/api-client").OffChainWithdrawalService.broadcastBlockchainTransaction;
87
+ create: typeof import("@tatumio/api-client").OffChainWithdrawalService.storeWithdrawal;
88
+ complete: typeof import("@tatumio/api-client").OffChainWithdrawalService.completeWithdrawal;
89
+ };
90
+ storeTokenAddress: typeof import("@tatumio/api-client").OffChainBlockchainService.storeTokenAddress;
91
+ };
92
+ getExchangeRate(basePair?: import("@tatumio/api-client").Fiat): import("@tatumio/api-client").CancelablePromise<import("@tatumio/api-client").ExchangeRate>;
93
+ storage: {
94
+ upload: typeof import("@tatumio/api-client").StorageIpfsService.storeIpfs;
95
+ get: typeof import("@tatumio/api-client").StorageIpfsService.getIpfsData;
96
+ };
97
+ subscriptions: typeof import("@tatumio/api-client").LedgerSubscriptionService;
98
+ ledger: {
99
+ customer: {
100
+ get: typeof import("@tatumio/api-client").LedgerCustomerService.getCustomerByExternalOrInternalId;
101
+ getAll: typeof import("@tatumio/api-client").LedgerCustomerService.findAllCustomers;
102
+ update: typeof import("@tatumio/api-client").LedgerCustomerService.updateCustomer;
103
+ activate: typeof import("@tatumio/api-client").LedgerCustomerService.activateCustomer;
104
+ deactivate: typeof import("@tatumio/api-client").LedgerCustomerService.deactivateCustomer;
105
+ enable: typeof import("@tatumio/api-client").LedgerCustomerService.enableCustomer;
106
+ disable: typeof import("@tatumio/api-client").LedgerCustomerService.disableCustomer;
107
+ };
108
+ orderBook: {
109
+ getHistorical: typeof import("@tatumio/api-client").LedgerOrderBookService.getHistoricalTradesBody;
110
+ getActiveBuyTrades: typeof import("@tatumio/api-client").LedgerOrderBookService.getBuyTradesBody;
111
+ getActiveSellTrades: typeof import("@tatumio/api-client").LedgerOrderBookService.getBuyTradesBody;
112
+ newTrade: typeof import("@tatumio/api-client").LedgerOrderBookService.storeTrade;
113
+ get: typeof import("@tatumio/api-client").LedgerOrderBookService.getTradeById;
114
+ cancel: typeof import("@tatumio/api-client").LedgerOrderBookService.deleteTrade;
115
+ cancelByAccount: typeof import("@tatumio/api-client").LedgerOrderBookService.deleteAccountTrades;
116
+ };
117
+ transaction: {
118
+ send: typeof import("@tatumio/api-client").LedgerTransactionService.sendTransaction;
119
+ sendMultiple: typeof import("@tatumio/api-client").LedgerTransactionService.sendTransactionBatch;
120
+ getAll: typeof import("@tatumio/api-client").LedgerTransactionService.getTransactions;
121
+ getAllByAccount: typeof import("@tatumio/api-client").LedgerTransactionService.getTransactionsByAccountId;
122
+ getAllByCustomer: typeof import("@tatumio/api-client").LedgerTransactionService.getTransactionsByCustomerId;
123
+ getAllByReference: typeof import("@tatumio/api-client").LedgerTransactionService.getTransactionsByReference;
124
+ countByAccount: (filter: import("@tatumio/api-client").TransactionFilter) => any;
125
+ countByCustomer: (filter: import("@tatumio/api-client").TransactionFilterCustomer) => any;
126
+ };
127
+ virtualCurrency: {
128
+ create: typeof import("@tatumio/api-client").LedgerVirtualCurrencyService.createCurrency;
129
+ mint: typeof import("@tatumio/api-client").LedgerVirtualCurrencyService.mintCurrency;
130
+ revoke: typeof import("@tatumio/api-client").LedgerVirtualCurrencyService.revokeCurrency;
131
+ getByName: typeof import("@tatumio/api-client").LedgerVirtualCurrencyService.getCurrency;
132
+ update: typeof import("@tatumio/api-client").LedgerVirtualCurrencyService.updateCurrency;
133
+ };
134
+ blockAmount: {
135
+ block: typeof import("@tatumio/api-client").LedgerAccountService.blockAmount;
136
+ unblock: typeof import("@tatumio/api-client").LedgerAccountService.deleteBlockAmount;
137
+ unblockWithTransaction: typeof import("@tatumio/api-client").LedgerAccountService.unblockAmountWithTransaction;
138
+ };
139
+ account: {
140
+ get: typeof import("@tatumio/api-client").LedgerAccountService.getAccountByAccountId;
141
+ getAll: typeof import("@tatumio/api-client").LedgerAccountService.getAllAccounts;
142
+ getByCustomerId: typeof import("@tatumio/api-client").LedgerAccountService.getAccountsByCustomerId;
143
+ getBalance: typeof import("@tatumio/api-client").LedgerAccountService.getAccountBalance;
144
+ create: typeof import("@tatumio/api-client").LedgerAccountService.createAccount;
145
+ createMultiple: typeof import("@tatumio/api-client").LedgerAccountService.createAccountBatch;
146
+ update: typeof import("@tatumio/api-client").LedgerAccountService.updateAccountByAccountId;
147
+ getBlockedAmountsByAccountId: typeof import("@tatumio/api-client").LedgerAccountService.getBlockAmountById;
148
+ activate: typeof import("@tatumio/api-client").LedgerAccountService.activateAccount;
149
+ deactivate: typeof import("@tatumio/api-client").LedgerAccountService.deactivateAccount;
150
+ freeze: typeof import("@tatumio/api-client").LedgerAccountService.freezeAccount;
151
+ unfreeze: typeof import("@tatumio/api-client").LedgerAccountService.unfreezeAccount;
152
+ generate: (account: import("@tatumio/api-client").CreateAccount, generateNewWalletFn: any, generateNewWallet?: boolean, testnet?: boolean, webhookUrl?: string) => Promise<any>;
153
+ };
154
+ };
155
+ security: {
156
+ checkMaliciousAddress: typeof import("@tatumio/api-client").SecurityAddressService.checkMalicousAddress;
157
+ };
158
+ tatum: {
159
+ getCredits: typeof import("@tatumio/api-client").TatumServiceService.getCredits;
160
+ getVersion: typeof import("@tatumio/api-client").TatumServiceService.getVersion;
161
+ freezeApiKey: typeof import("@tatumio/api-client").TatumServiceService.freezeApiKey;
162
+ unfreezeApiKey: typeof import("@tatumio/api-client").TatumServiceService.unfreezeApiKey;
163
+ };
164
+ };
@@ -0,0 +1,5 @@
1
+ import { SdkError, SdkErrorCode } from '@tatumio/shared-abstract-sdk';
2
+ export declare type FlowSdkErrorCode = SdkErrorCode.FLOW_MISSING_PRIVATE_KEY | SdkErrorCode.FLOW_MISSING_MNEMONIC;
3
+ export declare class FlowSdkError extends SdkError {
4
+ constructor(error: Error | FlowSdkErrorCode);
5
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlowSdkError = void 0;
4
+ const shared_abstract_sdk_1 = require("@tatumio/shared-abstract-sdk");
5
+ class FlowSdkError extends shared_abstract_sdk_1.SdkError {
6
+ constructor(error) {
7
+ if (typeof error === 'string') {
8
+ super({
9
+ code: error,
10
+ });
11
+ }
12
+ else {
13
+ super({
14
+ originalError: error,
15
+ originalErrorAsString: error.name,
16
+ });
17
+ }
18
+ }
19
+ }
20
+ exports.FlowSdkError = FlowSdkError;
21
+ //# sourceMappingURL=flow.sdk.errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.sdk.errors.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/flow/src/lib/flow.sdk.errors.ts"],"names":[],"mappings":";;;AAAA,sEAAqE;AAIrE,MAAa,YAAa,SAAQ,8BAAQ;IACxC,YAAY,KAA+B;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,CAAC;gBACJ,IAAI,EAAE,KAAK;aACZ,CAAC,CAAA;SACH;aAAM;YACL,KAAK,CAAC;gBACJ,aAAa,EAAE,KAAK;gBACpB,qBAAqB,EAAE,KAAK,CAAC,IAAI;aAClC,CAAC,CAAA;SACH;IACH,CAAC;CACF;AAbD,oCAaC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TatumFlowSDK = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const api_client_1 = require("@tatumio/api-client");
6
+ const shared_blockchain_abstract_1 = require("@tatumio/shared-blockchain-abstract");
7
+ const shared_core_1 = require("@tatumio/shared-core");
8
+ const flow_sdk_wallet_1 = require("./services/flow.sdk.wallet");
9
+ const flow_tx_1 = require("./services/flow.tx");
10
+ const flow_kms_1 = require("./services/flow.kms");
11
+ const blockchain = shared_core_1.Blockchain.FLOW;
12
+ const TatumFlowSDK = (args) => {
13
+ const api = api_client_1.BlockchainFlowService;
14
+ const _a = (0, shared_blockchain_abstract_1.abstractBlockchainSdk)(Object.assign(Object.assign({}, args), { blockchain })), { nft } = _a, abstractSdk = (0, tslib_1.__rest)(_a, ["nft"]);
15
+ const { deployNFTSmartContract, mintNFT, transferNFT, mintMultipleNFTs, burnNFT, getNFTTransaction, getNFTAccountBalance, getNFTMetadataURI, } = nft;
16
+ return Object.assign(Object.assign({}, abstractSdk), { api, kms: (0, flow_kms_1.flowKmsService)(Object.assign(Object.assign({}, args), { blockchain })), wallet: (0, flow_sdk_wallet_1.flowWallet)(), transaction: (0, flow_tx_1.flowTxService)(args), nft: {
17
+ deployNFTSmartContract,
18
+ mintNFT,
19
+ transferNFT,
20
+ mintMultipleNFTs,
21
+ burnNFT,
22
+ getNFTTransaction,
23
+ getNFTAccountBalance,
24
+ getNFTMetadataURI,
25
+ }, blockchain: {
26
+ getCurrentBlock: api_client_1.BlockchainFlowService.flowGetBlockChainInfo,
27
+ getBlock: api_client_1.BlockchainFlowService.flowGetBlock,
28
+ getAccount: api_client_1.BlockchainFlowService.flowGetAccount,
29
+ getTransaction: api_client_1.BlockchainFlowService.flowGetRawTransaction,
30
+ } });
31
+ };
32
+ exports.TatumFlowSDK = TatumFlowSDK;
33
+ //# sourceMappingURL=flow.sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.sdk.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/flow/src/lib/flow.sdk.ts"],"names":[],"mappings":";;;;AAAA,oDAA2D;AAC3D,oFAA2E;AAC3E,sDAAiD;AAEjD,gEAAuD;AACvD,gDAAkD;AAClD,kDAAoD;AAEpD,MAAM,UAAU,GAAG,wBAAU,CAAC,IAAI,CAAA;AAE3B,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAE,EAAE;IACjD,MAAM,GAAG,GAAG,kCAAqB,CAAA;IACjC,MAAM,KAA0B,IAAA,kDAAqB,kCAAM,IAAI,KAAE,UAAU,IAAG,EAAxE,EAAE,GAAG,OAAmE,EAA9D,WAAW,2BAArB,OAAuB,CAAiD,CAAA;IAE9E,MAAM,EACJ,sBAAsB,EACtB,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,GAAG,GAAG,CAAA;IAEP,uCACK,WAAW,KACd,GAAG,EACH,GAAG,EAAE,IAAA,yBAAc,kCAAM,IAAI,KAAE,UAAU,IAAG,EAC5C,MAAM,EAAE,IAAA,4BAAU,GAAE,EACpB,WAAW,EAAE,IAAA,uBAAa,EAAC,IAAI,CAAC,EAChC,GAAG,EAAE;YACH,sBAAsB;YACtB,OAAO;YACP,WAAW;YACX,gBAAgB;YAChB,OAAO;YACP,iBAAiB;YACjB,oBAAoB;YACpB,iBAAiB;SAClB,EACD,UAAU,EAAE;YACV,eAAe,EAAE,kCAAqB,CAAC,qBAAqB;YAC5D,QAAQ,EAAE,kCAAqB,CAAC,YAAY;YAC5C,UAAU,EAAE,kCAAqB,CAAC,cAAc;YAChD,cAAc,EAAE,kCAAqB,CAAC,qBAAqB;SAC5D,IACF;AACH,CAAC,CAAA;AAtCY,QAAA,YAAY,gBAsCxB"}
@@ -0,0 +1,14 @@
1
+ import { SDKArguments } from '@tatumio/shared-abstract-sdk';
2
+ export declare const flowBlockchain: (args: SDKArguments) => {
3
+ getSignKey: (isPayer: boolean) => Promise<{
4
+ keyId: number;
5
+ address: string;
6
+ }>;
7
+ signWithKey: (data: string, isPayer: boolean) => Promise<{
8
+ signature: string;
9
+ }>;
10
+ broadcast: (txData: string, signatureId?: string, proposalKey?: number) => Promise<{
11
+ txId: string;
12
+ failed?: boolean;
13
+ }>;
14
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flowBlockchain = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const shared_core_1 = require("@tatumio/shared-core");
6
+ const api_client_1 = require("@tatumio/api-client");
7
+ const baseUrl = () => process.env['TATUM_API_URL'] || api_client_1.TATUM_API_CONSTANTS.URL;
8
+ const headers = (xApiKey) => ({
9
+ headers: {
10
+ 'x-api-key': xApiKey || process.env['TATUM_API_KEY'] || api_client_1.TATUM_API_CONSTANTS.API_KEY,
11
+ 'x-testnet-type': process.env['TESTNET_TYPE'] || 'ethereum-ropsten',
12
+ },
13
+ });
14
+ const post = (xApiKey, url, body) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
15
+ const { data } = yield shared_core_1.httpHelper.post(`${baseUrl()}${url}`, body, headers(xApiKey));
16
+ return data;
17
+ });
18
+ const get = (xApiKey, url) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
19
+ const { data } = yield shared_core_1.httpHelper.get(`${baseUrl()}${url}`, headers(xApiKey));
20
+ return data;
21
+ });
22
+ // Flow specific methods performing internal tasks on the API
23
+ const flowBlockchain = (args) => {
24
+ return {
25
+ getSignKey: (isPayer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return get(args.apiKey, `/v3/flow/proposal/${isPayer}`); }),
26
+ signWithKey: (data, isPayer) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return post(args.apiKey, '/v3/flow/sign', { data, isPayer }); }),
27
+ broadcast: (txData, signatureId, proposalKey) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return post(args.apiKey, '/v3/flow/broadcast', { txData, signatureId, proposalKey }); }),
28
+ };
29
+ };
30
+ exports.flowBlockchain = flowBlockchain;
31
+ //# sourceMappingURL=flow.blockchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.blockchain.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/flow/src/lib/services/flow.blockchain.ts"],"names":[],"mappings":";;;;AAAA,sDAAiD;AACjD,oDAAyD;AAGzD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,gCAAmB,CAAC,GAAG,CAAA;AAE7E,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC;IACpC,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,gCAAmB,CAAC,OAAO;QACnF,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB;KACpE;CACF,CAAC,CAAA;AAEF,MAAM,IAAI,GAAG,CAA+B,OAAe,EAAE,GAAW,EAAE,IAAQ,EAAc,EAAE;IAChG,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,wBAAU,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACpF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA,CAAA;AAED,MAAM,GAAG,GAAG,CAAU,OAAe,EAAE,GAAW,EAAc,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,wBAAU,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7E,OAAO,IAAI,CAAA;AACb,CAAC,CAAA,CAAA;AAED,6DAA6D;AACtD,MAAM,cAAc,GAAG,CAAC,IAAkB,EAAE,EAAE;IACnD,OAAO;QACL,UAAU,EAAE,CAAO,OAAgB,EAA+C,EAAE,+DAClF,OAAA,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,OAAO,EAAE,CAAC,CAAA,GAAA;QAClD,WAAW,EAAE,CAAO,IAAY,EAAE,OAAgB,EAAkC,EAAE,+DACpF,OAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA,GAAA;QACvD,SAAS,EAAE,CACT,MAAc,EACd,WAAoB,EACpB,WAAoB,EACyB,EAAE,+DAC/C,OAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA,GAAA;KAChF,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,cAAc,kBAa1B"}
@@ -0,0 +1,16 @@
1
+ import { Blockchain, ChainTransactionKMS } from '@tatumio/shared-core';
2
+ export declare const flowKmsService: (args: {
3
+ apiKey: string;
4
+ blockchain: Blockchain;
5
+ }) => {
6
+ sign(tx: ChainTransactionKMS, fromPrivateKeys: string[], testnet: boolean): Promise<{
7
+ txId: string;
8
+ address: string;
9
+ } | {
10
+ txId: string;
11
+ }>;
12
+ getAllPending(signatures?: string): import("../../../../../../dist/packages/api-client/src").CancelablePromise<import("../../../../../../dist/packages/api-client/src").PendingTransaction[]>;
13
+ get: typeof import("../../../../../../dist/packages/api-client/src").SecurityKeyManagementSystemService.getPendingTransactionToSign;
14
+ complete: typeof import("../../../../../../dist/packages/api-client/src").SecurityKeyManagementSystemService.completePendingSignature;
15
+ delete: typeof import("../../../../../../dist/packages/api-client/src").SecurityKeyManagementSystemService.deletePendingTransactionToSign;
16
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flowKmsService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const shared_core_1 = require("@tatumio/shared-core");
6
+ const flow_tx_1 = require("./flow.tx");
7
+ const shared_blockchain_abstract_1 = require("@tatumio/shared-blockchain-abstract");
8
+ const flow_constants_1 = require("../flow.constants");
9
+ const flowKmsService = (args) => {
10
+ return Object.assign(Object.assign({}, (0, shared_blockchain_abstract_1.abstractBlockchainKms)(args)), { sign(tx, fromPrivateKeys, testnet) {
11
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
12
+ const txWithChain = Object.assign(Object.assign({}, tx), { chain: shared_core_1.Blockchain.FLOW });
13
+ const { type, body } = JSON.parse(txWithChain.serializedTransaction);
14
+ const txService = (0, flow_tx_1.flowTxService)(args);
15
+ switch (type) {
16
+ case flow_constants_1.FlowTxType.CREATE_ACCOUNT:
17
+ return txService.createAccountFromPublicKey(testnet, body.publicKey, body.account, fromPrivateKeys[0]);
18
+ case flow_constants_1.FlowTxType.ADD_PK_TO_ACCOUNT:
19
+ return txService.addPublicKeyToAccount(testnet, body.publicKey, body.account, fromPrivateKeys[0]);
20
+ case flow_constants_1.FlowTxType.TRANSFER:
21
+ return txService.sendTransaction(testnet, Object.assign(Object.assign({}, body), { privateKey: fromPrivateKeys[0] }));
22
+ case flow_constants_1.FlowTxType.TRANSFER_NFT:
23
+ return txService.sendNftTransferToken(testnet, Object.assign(Object.assign({}, body), { privateKey: fromPrivateKeys[0] }));
24
+ case flow_constants_1.FlowTxType.MINT_NFT:
25
+ return txService.sendNftMintToken(testnet, Object.assign(Object.assign({}, body), { privateKey: fromPrivateKeys[0] }));
26
+ case flow_constants_1.FlowTxType.MINT_MULTIPLE_NFT:
27
+ return txService.sendNftMintMultipleToken(testnet, Object.assign(Object.assign({}, body), { privateKey: fromPrivateKeys[0] }));
28
+ case flow_constants_1.FlowTxType.BURN_NFT:
29
+ return txService.sendNftBurnToken(testnet, Object.assign(Object.assign({}, body), { privateKey: fromPrivateKeys[0] }));
30
+ default:
31
+ return txService.sendCustomTransaction(testnet, Object.assign(Object.assign({}, body), { privateKey: fromPrivateKeys[0] }));
32
+ }
33
+ });
34
+ } });
35
+ };
36
+ exports.flowKmsService = flowKmsService;
37
+ //# sourceMappingURL=flow.kms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.kms.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/flow/src/lib/services/flow.kms.ts"],"names":[],"mappings":";;;;AAAA,sDAAsE;AACtE,uCAAyC;AACzC,oFAA2E;AAC3E,sDAA8C;AAEvC,MAAM,cAAc,GAAG,CAAC,IAAgD,EAAE,EAAE;IACjF,uCACK,IAAA,kDAAqB,EAAC,IAAI,CAAC,KACxB,IAAI,CACR,EAAuB,EACvB,eAAyB,EACzB,OAAgB;;gBAEhB,MAAM,WAAW,mCAAQ,EAAE,KAAE,KAAK,EAAE,wBAAU,CAAC,IAAI,GAAE,CAAA;gBAErD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAiE,IAAI,CAAC,KAAK,CAC7F,WAAW,CAAC,qBAAqB,CAClC,CAAA;gBACD,MAAM,SAAS,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAA;gBACrC,QAAQ,IAAI,EAAE;oBACZ,KAAK,2BAAU,CAAC,cAAc;wBAC5B,OAAO,SAAS,CAAC,0BAA0B,CACzC,OAAO,EACP,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,EACZ,eAAe,CAAC,CAAC,CAAC,CACnB,CAAA;oBACH,KAAK,2BAAU,CAAC,iBAAiB;wBAC/B,OAAO,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;oBACnG,KAAK,2BAAU,CAAC,QAAQ;wBACtB,OAAO,SAAS,CAAC,eAAe,CAAC,OAAO,kCAAO,IAAI,KAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAG,CAAA;oBACxF,KAAK,2BAAU,CAAC,YAAY;wBAC1B,OAAO,SAAS,CAAC,oBAAoB,CAAC,OAAO,kCACxC,IAAI,KACP,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAC9B,CAAA;oBACJ,KAAK,2BAAU,CAAC,QAAQ;wBACtB,OAAO,SAAS,CAAC,gBAAgB,CAAC,OAAO,kCAAO,IAAI,KAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAG,CAAA;oBACzF,KAAK,2BAAU,CAAC,iBAAiB;wBAC/B,OAAO,SAAS,CAAC,wBAAwB,CAAC,OAAO,kCAC5C,IAAI,KACP,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAC9B,CAAA;oBACJ,KAAK,2BAAU,CAAC,QAAQ;wBACtB,OAAO,SAAS,CAAC,gBAAgB,CAAC,OAAO,kCAAO,IAAI,KAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAG,CAAA;oBACzF;wBACE,OAAO,SAAS,CAAC,qBAAqB,CAAC,OAAO,kCACzC,IAAI,KACP,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAC9B,CAAA;iBACL;YACH,CAAC;SAAA,IACF;AACH,CAAC,CAAA;AAhDY,QAAA,cAAc,kBAgD1B"}
@@ -0,0 +1,2 @@
1
+ import { SdkWithWalletFunctions } from '@tatumio/shared-blockchain-abstract';
2
+ export declare const flowWallet: () => SdkWithWalletFunctions;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flowWallet = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const shared_core_1 = require("@tatumio/shared-core");
6
+ const elliptic = (0, tslib_1.__importStar)(require("elliptic"));
7
+ const bip32_1 = require("bip32");
8
+ const bip39_1 = require("bip39");
9
+ const hdkey_1 = (0, tslib_1.__importDefault)(require("hdkey"));
10
+ const flowWallet = () => {
11
+ return {
12
+ generateAddressFromXPub: (xpub, i) => {
13
+ const w = (0, bip32_1.fromBase58)(xpub).derivePath(String(i));
14
+ const s = new elliptic.ec('secp256k1').keyFromPublic(w.publicKey).getPublic().encode('hex', false);
15
+ return s.slice(2);
16
+ },
17
+ generateAddressFromPrivateKey: (privateKey) => {
18
+ const s = new elliptic.ec('secp256k1').keyFromPrivate(privateKey).getPublic().encode('hex', false);
19
+ return s.slice(2);
20
+ },
21
+ generateWallet: (mnemonic) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
22
+ mnemonic || (mnemonic = (0, bip39_1.generateMnemonic)(256));
23
+ const hdwallet = hdkey_1.default.fromMasterSeed(yield (0, bip39_1.mnemonicToSeed)(mnemonic));
24
+ return {
25
+ mnemonic,
26
+ xpub: hdwallet.derive(shared_core_1.DERIVATION_PATH.FLOW).toJSON().xpub,
27
+ };
28
+ }),
29
+ generatePrivateKeyFromMnemonic: (mnemonic, i) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
30
+ const key = (0, bip32_1.fromSeed)(yield (0, bip39_1.mnemonicToSeed)(mnemonic))
31
+ .derivePath(shared_core_1.DERIVATION_PATH.FLOW)
32
+ .derive(i).privateKey;
33
+ if (!key)
34
+ throw new Error('No key generated');
35
+ return new elliptic.ec('secp256k1').keyFromPrivate(key).getPrivate().toString(16);
36
+ }),
37
+ };
38
+ };
39
+ exports.flowWallet = flowWallet;
40
+ //# sourceMappingURL=flow.sdk.wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.sdk.wallet.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/flow/src/lib/services/flow.sdk.wallet.ts"],"names":[],"mappings":";;;;AAAA,sDAAsD;AACtD,gEAAoC;AACpC,iCAA4C;AAC5C,iCAAwD;AACxD,+DAAyB;AAGlB,MAAM,UAAU,GAAG,GAA2B,EAAE;IACrD,OAAO;QACL,uBAAuB,EAAE,CAAC,IAAY,EAAE,CAAS,EAAU,EAAE;YAC3D,MAAM,CAAC,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAClG,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;QACD,6BAA6B,EAAE,CAAC,UAAkB,EAAU,EAAE;YAC5D,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAClG,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;QACD,cAAc,EAAE,CAAO,QAAiB,EAAE,EAAE;YAC1C,QAAQ,KAAR,QAAQ,GAAK,IAAA,wBAAgB,EAAC,GAAG,CAAC,EAAA;YAClC,MAAM,QAAQ,GAAG,eAAK,CAAC,cAAc,CAAC,MAAM,IAAA,sBAAc,EAAC,QAAQ,CAAC,CAAC,CAAA;YACrE,OAAO;gBACL,QAAQ;gBACR,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,6BAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI;aAC1D,CAAA;QACH,CAAC,CAAA;QACD,8BAA8B,EAAE,CAAO,QAAgB,EAAE,CAAS,EAAE,EAAE;YACpE,MAAM,GAAG,GAAG,IAAA,gBAAQ,EAAC,MAAM,IAAA,sBAAc,EAAC,QAAQ,CAAC,CAAC;iBACjD,UAAU,CAAC,6BAAe,CAAC,IAAI,CAAC;iBAChC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;YACvB,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;YAC7C,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACnF,CAAC,CAAA;KACF,CAAA;AACH,CAAC,CAAA;AA3BY,QAAA,UAAU,cA2BtB"}
@@ -0,0 +1,127 @@
1
+ import { ChainFlowBurnNft, ChainFlowMintMultipleNft, ChainFlowMintNft, ChainFlowTransferNft, TransferFlow, TransferFlowCustomTx } from '@tatumio/shared-core';
2
+ import { SDKArguments } from '@tatumio/shared-abstract-sdk';
3
+ export declare const FLOW_TESTNET_ADDRESSES: {
4
+ FlowToken: string;
5
+ FungibleToken: string;
6
+ FUSD: string;
7
+ TatumMultiNFT: string;
8
+ };
9
+ export declare const FLOW_MAINNET_ADDRESSES: {
10
+ FlowToken: string;
11
+ FungibleToken: string;
12
+ FUSD: string;
13
+ TatumMultiNFT: string;
14
+ };
15
+ export declare const flowTxService: (args: SDKArguments) => {
16
+ sign: (pk: string, msg: Buffer) => string;
17
+ getSigner: (pk: string, address: string, keyId?: number) => {
18
+ signer: (account: any) => any;
19
+ };
20
+ getApiSigner: (isPayer: boolean) => {
21
+ signer: (account: any) => Promise<any>;
22
+ keyHash: string;
23
+ };
24
+ /**
25
+ * Create account on the FLOW network. It automatically creates 100 0-weight proposal keys, which are managed by Tatum API - index 1-100.
26
+ * Main 1000 weight authorizer key is stored as a first one on index 0.
27
+ * @param testnet if we use testnet or not
28
+ * @param publicKey public key to assign to address as authorizer (1000 weight) key
29
+ * @param signerAddress address of the authorizer creator of the address on the chain
30
+ * @param signerPrivateKey private key of the authorizer creator of the address on the chain
31
+ * @param proposer function to obtain proposer key from
32
+ * @param payer function to obtain payer key from
33
+ */
34
+ createAccountFromPublicKey: (testnet: boolean, publicKey: string, signerAddress: string, signerPrivateKey: string, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
35
+ txId: string;
36
+ address: string;
37
+ }>;
38
+ /**
39
+ * Add public key to existing blockchain address with defined weight
40
+ * @param testnet
41
+ * @param publicKey key to add
42
+ * @param signerAddress address of the authorizer key
43
+ * @param signerPrivateKey key of the authorize key
44
+ * @param weight defaults to 1000 - weight of the key
45
+ * @param proposer function to obtain proposer key from
46
+ * @param payer function to obtain payer key from
47
+ */
48
+ addPublicKeyToAccount: (testnet: boolean, publicKey: string, signerAddress: string, signerPrivateKey: string, weight?: number, proposer?: (args: any) => any, payer?: (args: any) => any) => Promise<{
49
+ txId: string;
50
+ address: string;
51
+ }>;
52
+ getNftMetadata: (testnet: boolean, account: string, id: string, contractAddress: string) => Promise<any>;
53
+ getNftTokenByAddress: (testnet: boolean, account: string, tokenType: string) => Promise<any>;
54
+ /**
55
+ * Send Flow NFT mint token transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
56
+ * This operation is irreversible.
57
+ * @param testnet
58
+ * @param body content of the transaction to broadcast
59
+ * @param proposer function to obtain proposer key from
60
+ * @param payer function to obtain payer key from
61
+ * @returns txId id of the transaction in the blockchain
62
+ */
63
+ sendNftMintToken: (testnet: boolean, body: ChainFlowMintNft, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
64
+ txId: string;
65
+ tokenId: string;
66
+ }>;
67
+ /**
68
+ * Send Flow NFT mint multiple tokens transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
69
+ * This operation is irreversible.
70
+ * @param testnet
71
+ * @param body content of the transaction to broadcast
72
+ * @param proposer function to obtain proposer key from
73
+ * @param payer function to obtain payer key from
74
+ * @returns txId id of the transaction in the blockchain
75
+ */
76
+ sendNftMintMultipleToken: (testnet: boolean, body: ChainFlowMintMultipleNft, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
77
+ txId: string;
78
+ tokenId: number[];
79
+ }>;
80
+ /**
81
+ * Send Flow NFT transfer token transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
82
+ * This operation is irreversible.
83
+ * @param testnet
84
+ * @param body content of the transaction to broadcast
85
+ * @param proposer function to obtain proposer key from
86
+ * @param payer function to obtain payer key from
87
+ * @returns {txId: string, events: any[]} id of the transaction in the blockchain and events this tx produced
88
+ */
89
+ sendNftTransferToken: (testnet: boolean, body: ChainFlowTransferNft, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
90
+ txId: string;
91
+ }>;
92
+ /**
93
+ * Send Flow NFT burn token transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
94
+ * This operation is irreversible.
95
+ * @param testnet
96
+ * @param body content of the transaction to broadcast
97
+ * @param proposer function to obtain proposer key from
98
+ * @param payer function to obtain payer key from
99
+ * @returns txId id of the transaction in the blockchain
100
+ */
101
+ sendNftBurnToken: (testnet: boolean, body: ChainFlowBurnNft, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
102
+ txId: string;
103
+ }>;
104
+ /**
105
+ * Send custom transaction to the FLOW network
106
+ * @param testnet
107
+ * @param body content of the transaction to broadcast
108
+ * @param proposer function to obtain proposer key from
109
+ * @param payer function to obtain payer key from
110
+ * @returns txId id of the transaction in the blockchain
111
+ */
112
+ sendCustomTransaction: (testnet: boolean, body: TransferFlowCustomTx, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
113
+ txId: string;
114
+ events: any[];
115
+ }>;
116
+ /**
117
+ * Send FLOW or FUSD from account to account.
118
+ * @param testnet
119
+ * @param body content of the transaction to broadcast
120
+ * @param proposer function to obtain proposer key from
121
+ * @param payer function to obtain payer key from
122
+ * @returns txId id of the transaction in the blockchain
123
+ */
124
+ sendTransaction: (testnet: boolean, body: TransferFlow, proposer?: (isPayer: boolean) => any, payer?: (isPayer: boolean) => any) => Promise<{
125
+ txId: string;
126
+ }>;
127
+ };