@tatumio/flow 2.0.1-alpha.237

Sign up to get free protection for your applications and to get access to all the features.
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
+ };