@tatumio/tron 2.0.1-alpha.231

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.
Files changed (34) hide show
  1. package/package.json +28 -0
  2. package/src/index.d.ts +1 -0
  3. package/src/index.js +5 -0
  4. package/src/index.js.map +1 -0
  5. package/src/lib/services/tron.custodial.d.ts +59 -0
  6. package/src/lib/services/tron.custodial.js +131 -0
  7. package/src/lib/services/tron.custodial.js.map +1 -0
  8. package/src/lib/services/tron.record.d.ts +17 -0
  9. package/src/lib/services/tron.record.js +24 -0
  10. package/src/lib/services/tron.record.js.map +1 -0
  11. package/src/lib/services/tron.trc10.d.ts +39 -0
  12. package/src/lib/services/tron.trc10.js +105 -0
  13. package/src/lib/services/tron.trc10.js.map +1 -0
  14. package/src/lib/services/tron.trc20.d.ts +45 -0
  15. package/src/lib/services/tron.trc20.js +133 -0
  16. package/src/lib/services/tron.trc20.js.map +1 -0
  17. package/src/lib/services/tron.trc721.d.ts +127 -0
  18. package/src/lib/services/tron.trc721.js +396 -0
  19. package/src/lib/services/tron.trc721.js.map +1 -0
  20. package/src/lib/services/tron.tx.d.ts +150 -0
  21. package/src/lib/services/tron.tx.js +236 -0
  22. package/src/lib/services/tron.tx.js.map +1 -0
  23. package/src/lib/services/tron.utils.d.ts +1 -0
  24. package/src/lib/services/tron.utils.js +82 -0
  25. package/src/lib/services/tron.utils.js.map +1 -0
  26. package/src/lib/services/tron.wallet.d.ts +49 -0
  27. package/src/lib/services/tron.wallet.js +76 -0
  28. package/src/lib/services/tron.wallet.js.map +1 -0
  29. package/src/lib/services/tron.web.d.ts +5 -0
  30. package/src/lib/services/tron.web.js +27 -0
  31. package/src/lib/services/tron.web.js.map +1 -0
  32. package/src/lib/tron.sdk.d.ts +230 -0
  33. package/src/lib/tron.sdk.js +25 -0
  34. package/src/lib/tron.sdk.js.map +1 -0
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@tatumio/tron",
3
+ "version": "2.0.1-alpha.231",
4
+ "type": "commonjs",
5
+ "license": "MIT",
6
+ "main": "./src/index.js",
7
+ "typings": "./src/index.d.ts",
8
+ "dependencies": {
9
+ "@tatumio/shared-testing-common": "2.0.1-alpha.231",
10
+ "@tatumio/shared-blockchain-abstract": "2.0.1-alpha.231",
11
+ "@tatumio/api-client": "2.0.1-alpha.231",
12
+ "axios": "^0.24.0",
13
+ "form-data": "^4.0.0",
14
+ "@tatumio/shared-core": "2.0.1-alpha.231",
15
+ "@tatumio/shared-abstract-sdk": "2.0.1-alpha.231",
16
+ "bignumber.js": "^9.0.2",
17
+ "@tatumio/shared-blockchain-evm-based": "2.0.1-alpha.231",
18
+ "ethereumjs-wallet": "^1.0.2",
19
+ "bip39": "^3.0.2",
20
+ "web3": "^1.7.0",
21
+ "web3-core": "^1.7.0",
22
+ "@harmony-js/crypto": "^0.1.56",
23
+ "bip32": "^2.0.5",
24
+ "bitcoinjs-lib": "^5.2.0",
25
+ "tronweb": "^4.1.0"
26
+ },
27
+ "peerDependencies": {}
28
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './lib/tron.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/tron.sdk"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/blockchain/tron/src/index.ts"],"names":[],"mappings":";;;AAAA,8DAA8B"}
@@ -0,0 +1,59 @@
1
+ import { GenerateCustodialWalletTron, GenerateCustodialWalletTronKMS, TransferCustodialWalletBatchTron, TransferCustodialWalletBatchTronKMS, TransferCustodialWalletTron, TransferCustodialWalletTronKMS } from '@tatumio/api-client';
2
+ import { ITronWeb } from './tron.web';
3
+ export declare const tronCustodial: (args: {
4
+ tronWeb: ITronWeb;
5
+ }) => {
6
+ prepare: {
7
+ /**
8
+ * This method is @Deprecated. Use @link{prepareCustodialWalletBatch} instead
9
+ * Generate new smart contract based custodial wallet. This wallet is able to receive any type of assets, btu transaction costs connected to the withdrawal
10
+ * of assets is covered by the deployer.
11
+ * @param body request data
12
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
13
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
14
+ */
15
+ custodialWallet: (body: GenerateCustodialWalletTron | GenerateCustodialWalletTronKMS, provider?: string) => Promise<string>;
16
+ /**
17
+ * Prepare signed transaction from the custodial SC wallet.
18
+ * @param testnet chain to work with
19
+ * @param body request data
20
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
21
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
22
+ */
23
+ transferFromCustodialWallet: (body: TransferCustodialWalletTron | TransferCustodialWalletTronKMS, getContractDecimals: (contractAddress: string, provider?: string, testnet?: boolean) => Promise<number>, provider?: string, decimals?: number, testnet?: boolean) => Promise<string>;
24
+ /**
25
+ * Prepare signed batch transaction from the custodial SC wallet.
26
+ * @param testnet chain to work with
27
+ * @param body request data
28
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
29
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
30
+ */
31
+ batchTransferFromCustodialWallet: (body: TransferCustodialWalletBatchTron | TransferCustodialWalletBatchTronKMS, getContractDecimals: (contractAddress: string, provider?: string, testnet?: boolean) => Promise<number>, provider?: string, decimals?: number, testnet?: boolean) => Promise<string>;
32
+ };
33
+ send: {
34
+ /**
35
+ * Generate new smart contract based custodial wallet. This wallet is able to receive any type of assets, btu transaction costs connected to the withdrawal
36
+ * of assets is covered by the deployer.
37
+ * @param body request data
38
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
39
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
40
+ */
41
+ custodialWallet: (body: GenerateCustodialWalletTron | GenerateCustodialWalletTronKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
42
+ /**
43
+ * Send signed transaction from the custodial SC wallet.
44
+ * @param testnet chain to work with
45
+ * @param body request data
46
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
47
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
48
+ */
49
+ transferFromCustodialWallet: (body: TransferCustodialWalletTron | TransferCustodialWalletTronKMS, getContractDecimals: (contractAddress: string, provider?: string, testnet?: boolean) => Promise<number>, provider?: string, decimals?: number, testnet?: boolean) => Promise<import("@tatumio/api-client").TransactionHash>;
50
+ /**
51
+ * Send signed batch transaction from the custodial SC wallet.
52
+ * @param testnet chain to work with
53
+ * @param body request data
54
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
55
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
56
+ */
57
+ batchTransferFromCustodialWallet: (body: TransferCustodialWalletBatchTron | TransferCustodialWalletBatchTronKMS, getContractDecimals: (contractAddress: string, provider?: string, testnet?: boolean) => Promise<number>, provider?: string, decimals?: number, testnet?: boolean) => Promise<import("@tatumio/api-client").TransactionHash>;
58
+ };
59
+ };
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tronCustodial = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const api_client_1 = require("@tatumio/api-client");
6
+ const tron_tx_1 = require("./tron.tx");
7
+ const shared_blockchain_evm_based_1 = require("@tatumio/shared-blockchain-evm-based");
8
+ const bignumber_js_1 = (0, tslib_1.__importDefault)(require("bignumber.js"));
9
+ const NATIVE_ASSET_CONTRACT_TYPE = 3;
10
+ const NON_FUNGIBLE_TOKEN_CONTRACT_TYPE = 1;
11
+ const FUNGIBLE_TOKEN_CONTRACT_TYPE = 0;
12
+ const prepareTransferFromCustodialWallet = (body, getContractDecimals, tronWeb, provider, decimals = 18, testnet = false) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
13
+ var _a, _b;
14
+ const methodName = 'transfer';
15
+ let tokenId = new bignumber_js_1.default((_a = body.tokenId) !== null && _a !== void 0 ? _a : 0);
16
+ let amount = new bignumber_js_1.default((_b = body.amount) !== null && _b !== void 0 ? _b : 0);
17
+ if (body.contractType === NATIVE_ASSET_CONTRACT_TYPE) {
18
+ amount = amount.multipliedBy(new bignumber_js_1.default(10).pow(decimals));
19
+ }
20
+ else if (body.contractType === FUNGIBLE_TOKEN_CONTRACT_TYPE) {
21
+ tokenId = new bignumber_js_1.default(0);
22
+ if (!body.tokenAddress) {
23
+ throw new Error('No tokenAddress specified which is needed for FUNGIBLE_TOKEN_CONTRACT_TYPE');
24
+ }
25
+ amount = amount.multipliedBy(new bignumber_js_1.default(10).pow(yield getContractDecimals(body.tokenAddress, provider, testnet)));
26
+ }
27
+ const params = Object.assign(Object.assign({}, body), { methodName, contractAddress: body.custodialAddress, methodABI: shared_blockchain_evm_based_1.CustodialFullTokenWallet.abi.find((abi) => abi.name === methodName), params: [
28
+ body.tokenAddress || '0x000000000000000000000000000000000000dEaD',
29
+ body.contractType,
30
+ body.recipient,
31
+ `0x${amount.toString(16)}`,
32
+ `0x${new bignumber_js_1.default(tokenId).toString(16)}`,
33
+ ] });
34
+ return (0, tron_tx_1.tronTx)({ tronWeb }).prepare.smartContractInvocation(params, provider);
35
+ });
36
+ const prepareBatchTransferFromCustodialWallet = (body, getContractDecimals, tronWeb, provider, decimals = 6, testnet = false) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
37
+ const methodName = 'transferBatch';
38
+ const amounts = [];
39
+ const tokenIds = [];
40
+ for (let i = 0; i < body.contractType.length; i++) {
41
+ let amount = new bignumber_js_1.default(body.amount ? body.amount[i] : 0);
42
+ let tokenId = new bignumber_js_1.default(body.tokenId ? body.tokenId[i] : 0);
43
+ if (body.contractType[i] === NATIVE_ASSET_CONTRACT_TYPE) {
44
+ amount = amount.multipliedBy(new bignumber_js_1.default(10).pow(decimals));
45
+ }
46
+ else if (body.contractType[i] === NON_FUNGIBLE_TOKEN_CONTRACT_TYPE) {
47
+ amount = new bignumber_js_1.default(0);
48
+ }
49
+ else if (body.contractType[i] === FUNGIBLE_TOKEN_CONTRACT_TYPE && body.tokenAddress) {
50
+ tokenId = new bignumber_js_1.default(0);
51
+ amount = amount.multipliedBy(new bignumber_js_1.default(10).pow(yield getContractDecimals(body.tokenAddress[i], provider, testnet)));
52
+ }
53
+ amounts.push(`0x${amount.toString(16)}`);
54
+ tokenIds.push(`0x${tokenId.toString(16)}`);
55
+ }
56
+ const params = Object.assign(Object.assign({}, body), { amount: undefined, methodName, contractAddress: body.custodialAddress, methodABI: shared_blockchain_evm_based_1.CustodialFullTokenWallet.abi.find((abi) => abi.name === methodName), params: [
57
+ (body.tokenAddress || []).map((t) => (t === '0' ? '0x000000000000000000000000000000000000dEaD' : t)),
58
+ body.contractType,
59
+ body.recipient,
60
+ amounts,
61
+ tokenIds,
62
+ ] });
63
+ return (0, tron_tx_1.tronTx)({ tronWeb }).prepare.smartContractInvocation(params, provider);
64
+ });
65
+ const tronCustodial = (args) => {
66
+ return {
67
+ prepare: {
68
+ /**
69
+ * This method is @Deprecated. Use @link{prepareCustodialWalletBatch} instead
70
+ * Generate new smart contract based custodial wallet. This wallet is able to receive any type of assets, btu transaction costs connected to the withdrawal
71
+ * of assets is covered by the deployer.
72
+ * @param body request data
73
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
74
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
75
+ */
76
+ custodialWallet: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return (0, tron_tx_1.tronTx)(args).prepare.generateCustodialWalletSignedTransaction(body, provider); }),
77
+ /**
78
+ * Prepare signed transaction from the custodial SC wallet.
79
+ * @param testnet chain to work with
80
+ * @param body request data
81
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
82
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
83
+ */
84
+ transferFromCustodialWallet: (body, getContractDecimals, provider, decimals = 18, testnet = false) => prepareTransferFromCustodialWallet(body, getContractDecimals, args.tronWeb, provider, decimals, testnet),
85
+ /**
86
+ * Prepare signed batch transaction from the custodial SC wallet.
87
+ * @param testnet chain to work with
88
+ * @param body request data
89
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
90
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
91
+ */
92
+ batchTransferFromCustodialWallet: (body, getContractDecimals, provider, decimals = 6, testnet = false) => prepareBatchTransferFromCustodialWallet(body, getContractDecimals, args.tronWeb, provider, decimals, testnet),
93
+ },
94
+ send: {
95
+ /**
96
+ * Generate new smart contract based custodial wallet. This wallet is able to receive any type of assets, btu transaction costs connected to the withdrawal
97
+ * of assets is covered by the deployer.
98
+ * @param body request data
99
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
100
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
101
+ */
102
+ custodialWallet: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return (0, tron_tx_1.tronTx)(args).send.generateCustodialWalletSignedTransaction(body, provider); }),
103
+ /**
104
+ * Send signed transaction from the custodial SC wallet.
105
+ * @param testnet chain to work with
106
+ * @param body request data
107
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
108
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
109
+ */
110
+ transferFromCustodialWallet: (body, getContractDecimals, provider, decimals = 18, testnet = false) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
111
+ return api_client_1.BlockchainTronService.tronBroadcast({
112
+ txData: yield prepareTransferFromCustodialWallet(body, getContractDecimals, args.tronWeb, provider, decimals, testnet),
113
+ });
114
+ }),
115
+ /**
116
+ * Send signed batch transaction from the custodial SC wallet.
117
+ * @param testnet chain to work with
118
+ * @param body request data
119
+ * @param provider optional provider to enter. if not present, Tatum Web3 will be used.
120
+ * @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
121
+ */
122
+ batchTransferFromCustodialWallet: (body, getContractDecimals, provider, decimals = 6, testnet = false) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
123
+ return api_client_1.BlockchainTronService.tronBroadcast({
124
+ txData: yield prepareBatchTransferFromCustodialWallet(body, getContractDecimals, args.tronWeb, provider, decimals, testnet),
125
+ });
126
+ }),
127
+ },
128
+ };
129
+ };
130
+ exports.tronCustodial = tronCustodial;
131
+ //# sourceMappingURL=tron.custodial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron.custodial.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/tron/src/lib/services/tron.custodial.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { CancelablePromise } from '@tatumio/api-client';
2
+ export declare const tronRecord: () => {
3
+ /**
4
+ * Get log record
5
+ * <h4>1 credit per API call.</h4><br/><p>Gets log data from blockchain.</p>
6
+ * @param chain The blockchain to get the log record from
7
+ * @param id ID of the log record / transaction on the blockchain
8
+ * @returns any OK
9
+ * @throws ApiError
10
+ */
11
+ getLog(id: string): CancelablePromise<{
12
+ /**
13
+ * Data stored in the record.
14
+ */
15
+ data: string;
16
+ }>;
17
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tronRecord = void 0;
4
+ const api_client_1 = require("@tatumio/api-client");
5
+ const shared_core_1 = require("@tatumio/shared-core");
6
+ const tronRecord = () => {
7
+ return {
8
+ /**
9
+ * Get log record
10
+ * <h4>1 credit per API call.</h4><br/><p>Gets log data from blockchain.</p>
11
+ * @param chain The blockchain to get the log record from
12
+ * @param id ID of the log record / transaction on the blockchain
13
+ * @returns any OK
14
+ * @throws ApiError
15
+ */
16
+ getLog(id) {
17
+ // TODO: Open API bug
18
+ // @ts-ignore
19
+ return api_client_1.BlockchainRecordService.getLog(shared_core_1.Blockchain.TRON, id);
20
+ },
21
+ };
22
+ };
23
+ exports.tronRecord = tronRecord;
24
+ //# sourceMappingURL=tron.record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron.record.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/tron/src/lib/services/tron.record.ts"],"names":[],"mappings":";;;AAAA,oDAAgF;AAChF,sDAAiD;AAE1C,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,OAAO;QACL;;;;;;;WAOG;QACH,MAAM,CAAC,EAAU;YAMf,qBAAqB;YACrB,aAAa;YACb,OAAO,oCAAuB,CAAC,MAAM,CAAC,wBAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC5D,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AArBY,QAAA,UAAU,cAqBtB"}
@@ -0,0 +1,39 @@
1
+ import { CreateTronTrc10Blockchain, CreateTronTrc10BlockchainKMS, TransferTronTrc10Blockchain, TransferTronTrc10BlockchainKMS } from '@tatumio/api-client';
2
+ import { ITronWeb } from './tron.web';
3
+ export declare const tronTrc10: (args: {
4
+ tronWeb: ITronWeb;
5
+ }) => {
6
+ prepare: {
7
+ /**
8
+ * Sign Tron TRC10 transaction with private keys locally. Nothing is broadcast to the blockchain.
9
+ * @param testnet mainnet or testnet version
10
+ * @param body content of the transaction to broadcast
11
+ * @param precision
12
+ * @returns transaction data to be broadcast to blockchain.
13
+ */
14
+ signedTransaction: (body: TransferTronTrc10Blockchain | TransferTronTrc10BlockchainKMS, precision?: number, provider?: string) => Promise<string>;
15
+ /**
16
+ * Sign create Tron TRC10 transaction with private keys locally. Nothing is broadcast to the blockchain.
17
+ * @param body content of the transaction to broadcast
18
+ * @returns transaction data to be broadcast to blockchain.
19
+ */
20
+ createSignedTransaction: (body: CreateTronTrc10Blockchain | CreateTronTrc10BlockchainKMS, provider?: string) => Promise<string>;
21
+ };
22
+ send: {
23
+ /**
24
+ * Send Tron TRC10 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
25
+ * This operation is irreversible.
26
+ * @param testnet mainnet or testnet version
27
+ * @param body content of the transaction to broadcast
28
+ * @returns transaction id of the transaction in the blockchain
29
+ */
30
+ signedTransaction: (body: TransferTronTrc10Blockchain | TransferTronTrc10BlockchainKMS, precision?: number, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
31
+ /**
32
+ * Create Tron TRC10 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
33
+ * This operation is irreversible.
34
+ * @param body content of the transaction to broadcast
35
+ * @returns transaction id of the transaction in the blockchain
36
+ */
37
+ createSignedTransaction: (body: CreateTronTrc10Blockchain | CreateTronTrc10BlockchainKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
38
+ };
39
+ };
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tronTrc10 = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const api_client_1 = require("@tatumio/api-client");
6
+ const bignumber_js_1 = (0, tslib_1.__importDefault)(require("bignumber.js"));
7
+ function isTransferTronTrc10BlockchainKMS(input) {
8
+ return input.signatureId !== undefined;
9
+ }
10
+ const prepareSignedTransaction = (body, tronWeb, precision, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
11
+ const { to, tokenId, amount } = body;
12
+ const client = tronWeb.getClient(provider);
13
+ const definedPrecision = precision !== null && precision !== void 0 ? precision : (yield api_client_1.BlockchainTronService.tronTrc10Detail(Number.parseInt(tokenId))).precision;
14
+ if (!definedPrecision) {
15
+ throw new Error('Unable to obtain precision');
16
+ }
17
+ if (isTransferTronTrc10BlockchainKMS(body)) {
18
+ const tx = yield client.transactionBuilder.sendToken(to, new bignumber_js_1.default(amount).multipliedBy(new bignumber_js_1.default(10).pow(definedPrecision)), tokenId, body.from);
19
+ return JSON.stringify(tx);
20
+ }
21
+ else {
22
+ const tx = yield client.transactionBuilder.sendToken(to, new bignumber_js_1.default(amount).multipliedBy(new bignumber_js_1.default(10).pow(definedPrecision)), tokenId, client.address.fromHex(client.address.fromPrivateKey(body.fromPrivateKey)));
23
+ return JSON.stringify(yield client.trx.sign(tx, body.fromPrivateKey));
24
+ }
25
+ });
26
+ function isCreateTronTrc10BlockchainKMS(input) {
27
+ return input.signatureId !== undefined;
28
+ }
29
+ const prepareCreateSignedTransaction = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
30
+ const { name, abbreviation, description, url, totalSupply, decimals } = body;
31
+ const client = tronWeb.getClient(provider);
32
+ const createTokenParams = {
33
+ name,
34
+ abbreviation,
35
+ description,
36
+ url,
37
+ totalSupply: new bignumber_js_1.default(totalSupply).multipliedBy(new bignumber_js_1.default(10).pow(decimals)),
38
+ trxRatio: 1,
39
+ tokenRatio: 1,
40
+ saleStart: Date.now() + 60000,
41
+ saleEnd: Date.now() + 100000,
42
+ freeBandwidth: 0,
43
+ freeBandwidthLimit: 0,
44
+ frozenAmount: 0,
45
+ frozenDuration: 0,
46
+ precision: decimals,
47
+ };
48
+ if (isCreateTronTrc10BlockchainKMS(body)) {
49
+ const tx = yield client.transactionBuilder.createToken(createTokenParams, body.from);
50
+ return JSON.stringify(tx);
51
+ }
52
+ else {
53
+ const tx = yield client.transactionBuilder.createToken(createTokenParams, client.address.fromPrivateKey(body.fromPrivateKey));
54
+ return JSON.stringify(yield client.trx.sign(tx, body.fromPrivateKey));
55
+ }
56
+ });
57
+ const tronTrc10 = (args) => {
58
+ return {
59
+ prepare: {
60
+ /**
61
+ * Sign Tron TRC10 transaction with private keys locally. Nothing is broadcast to the blockchain.
62
+ * @param testnet mainnet or testnet version
63
+ * @param body content of the transaction to broadcast
64
+ * @param precision
65
+ * @returns transaction data to be broadcast to blockchain.
66
+ */
67
+ signedTransaction: (body, precision, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareSignedTransaction(body, args.tronWeb, precision, provider); }),
68
+ /**
69
+ * Sign create Tron TRC10 transaction with private keys locally. Nothing is broadcast to the blockchain.
70
+ * @param body content of the transaction to broadcast
71
+ * @returns transaction data to be broadcast to blockchain.
72
+ */
73
+ createSignedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareCreateSignedTransaction(body, args.tronWeb, provider); }),
74
+ },
75
+ send: {
76
+ /**
77
+ * Send Tron TRC10 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
78
+ * This operation is irreversible.
79
+ * @param testnet mainnet or testnet version
80
+ * @param body content of the transaction to broadcast
81
+ * @returns transaction id of the transaction in the blockchain
82
+ */
83
+ signedTransaction: (body, precision, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
84
+ return api_client_1.BlockchainTronService.tronBroadcast({
85
+ txData: yield prepareSignedTransaction(body, args.tronWeb, precision, provider),
86
+ // TODO: SignatureID is missing in OpenApi
87
+ });
88
+ }),
89
+ /**
90
+ * Create Tron TRC10 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
91
+ * This operation is irreversible.
92
+ * @param body content of the transaction to broadcast
93
+ * @returns transaction id of the transaction in the blockchain
94
+ */
95
+ createSignedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
96
+ return api_client_1.BlockchainTronService.tronBroadcast({
97
+ txData: yield prepareCreateSignedTransaction(body, args.tronWeb, provider),
98
+ // TODO: SignatureID is missing in OpenApi
99
+ });
100
+ }),
101
+ },
102
+ };
103
+ };
104
+ exports.tronTrc10 = tronTrc10;
105
+ //# sourceMappingURL=tron.trc10.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron.trc10.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/tron/src/lib/services/tron.trc10.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { CreateTronTrc20Blockchain, CreateTronTrc20BlockchainKMS, TransferTronTrc20Blockchain, TransferTronTrc20BlockchainKMS } from '@tatumio/api-client';
2
+ import { ITronWeb } from './tron.web';
3
+ export declare const tronTrc20: (args: {
4
+ tronWeb: ITronWeb;
5
+ }) => {
6
+ /**
7
+ * Get TRC20 balance for the given tron address.
8
+ * @param address the address whose balance is returned
9
+ * @param contractAddress the TRC20 contract address
10
+ * @param provider
11
+ */
12
+ getAccountTrc20Address: (address: string, contractAddress: string, provider?: string) => Promise<any>;
13
+ getTrc20ContractDecimals: (contractAddress: string, provider?: string) => Promise<any>;
14
+ prepare: {
15
+ /**
16
+ * Sign create Tron TRC20 transaction with private keys locally. Nothing is broadcast to the blockchain.
17
+ * @param body content of the transaction to broadcast
18
+ * @returns transaction data to be broadcast to blockchain.
19
+ */
20
+ signedTransaction: (body: TransferTronTrc20Blockchain | TransferTronTrc20BlockchainKMS, provider?: string) => Promise<string>;
21
+ /**
22
+ * Prepare create Tron TRC20 transaction for KMS. Nothing is broadcast to the blockchain.
23
+ * @param body content of the transaction to broadcast
24
+ * @param provider
25
+ * @returns transaction data to be broadcast to blockchain.
26
+ */
27
+ createSignedTransaction: (body: CreateTronTrc20Blockchain | CreateTronTrc20BlockchainKMS, provider?: string) => Promise<string>;
28
+ };
29
+ send: {
30
+ /**
31
+ * Send Tron TRC20 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
32
+ * This operation is irreversible.
33
+ * @param body content of the transaction to broadcast
34
+ * @returns transaction id of the transaction in the blockchain
35
+ */
36
+ signedTransaction: (body: TransferTronTrc20Blockchain | TransferTronTrc20BlockchainKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
37
+ /**
38
+ * Create Tron TRC20 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
39
+ * This operation is irreversible.
40
+ * @param body content of the transaction to broadcast
41
+ * @returns transaction id of the transaction in the blockchain
42
+ */
43
+ createSignedTransaction: (body: CreateTronTrc20Blockchain | CreateTronTrc20BlockchainKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
44
+ };
45
+ };
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tronTrc20 = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const api_client_1 = require("@tatumio/api-client");
6
+ const bignumber_js_1 = (0, tslib_1.__importDefault)(require("bignumber.js"));
7
+ const shared_blockchain_evm_based_1 = require("@tatumio/shared-blockchain-evm-based");
8
+ function isTransferTronTrc20BlockchainKMS(input) {
9
+ return input.signatureId !== undefined;
10
+ }
11
+ const prepareSignedTransaction = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
12
+ const { to, tokenAddress, amount, feeLimit } = body;
13
+ const client = tronWeb.getClient(provider);
14
+ client.setAddress(tokenAddress);
15
+ const contractInstance = yield client.contract().at(tokenAddress);
16
+ const decimals = yield contractInstance.decimals().call();
17
+ const tokenAddressHex = client.address.toHex(tokenAddress);
18
+ const methodName = 'transfer(address,uint256)';
19
+ const params = [
20
+ { type: 'address', value: client.address.toHex(to) },
21
+ {
22
+ type: 'uint256',
23
+ value: `0x${new bignumber_js_1.default(amount).multipliedBy(new bignumber_js_1.default(10).pow(decimals)).toString(16)}`,
24
+ },
25
+ ];
26
+ const feeLimitSun = client.toSun(feeLimit);
27
+ if (isTransferTronTrc20BlockchainKMS(body)) {
28
+ const { transaction } = yield client.transactionBuilder.triggerSmartContract(tokenAddressHex, methodName, {
29
+ feeLimit: feeLimitSun,
30
+ from: body.from,
31
+ }, params, body.from);
32
+ return JSON.stringify(transaction);
33
+ }
34
+ else {
35
+ const { transaction } = yield client.transactionBuilder.triggerSmartContract(tokenAddressHex, methodName, {
36
+ feeLimit: feeLimitSun,
37
+ from: client.address.fromHex(client.address.fromPrivateKey(body.fromPrivateKey)),
38
+ }, params, client.address.fromHex(client.address.fromPrivateKey(body.fromPrivateKey)));
39
+ return JSON.stringify(yield client.trx.sign(transaction, body.fromPrivateKey));
40
+ }
41
+ });
42
+ function isCreateTronTrc20BlockchainKMS(input) {
43
+ return input.signatureId !== undefined;
44
+ }
45
+ const prepareCreateSignedTransaction = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
46
+ const { name, decimals, recipient, symbol, totalSupply } = body;
47
+ const client = tronWeb.getClient(provider);
48
+ const params = {
49
+ feeLimit: 1000000000,
50
+ callValue: 0,
51
+ userFeePercentage: 100,
52
+ originEnergyLimit: 1,
53
+ abi: JSON.stringify(shared_blockchain_evm_based_1.Trc20Token.abi),
54
+ bytecode: shared_blockchain_evm_based_1.Trc20Token.bytecode,
55
+ parameters: [name, symbol, decimals, client.address.toHex(recipient), totalSupply],
56
+ name,
57
+ };
58
+ if (isCreateTronTrc20BlockchainKMS(body)) {
59
+ const tx = yield client.transactionBuilder.createSmartContract(params, body.from);
60
+ return JSON.stringify(tx);
61
+ }
62
+ else {
63
+ const tx = yield client.transactionBuilder.createSmartContract(params, client.address.fromPrivateKey(body.fromPrivateKey));
64
+ return JSON.stringify(yield client.trx.sign(tx, body.fromPrivateKey));
65
+ }
66
+ });
67
+ const tronTrc20 = (args) => {
68
+ return {
69
+ // TODO: return any?
70
+ /**
71
+ * Get TRC20 balance for the given tron address.
72
+ * @param address the address whose balance is returned
73
+ * @param contractAddress the TRC20 contract address
74
+ * @param provider
75
+ */
76
+ getAccountTrc20Address: (address, contractAddress, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
77
+ const client = args.tronWeb.getClient(provider);
78
+ client.setAddress(contractAddress);
79
+ const contractInstance = yield client.contract().at(contractAddress);
80
+ return contractInstance.balanceOf(address).call();
81
+ }),
82
+ // TODO: return any?
83
+ getTrc20ContractDecimals: (contractAddress, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
84
+ const client = args.tronWeb.getClient(provider);
85
+ client.setAddress(contractAddress);
86
+ const contractInstance = yield client.contract().at(contractAddress);
87
+ return contractInstance.decimals().call();
88
+ }),
89
+ prepare: {
90
+ /**
91
+ * Sign create Tron TRC20 transaction with private keys locally. Nothing is broadcast to the blockchain.
92
+ * @param body content of the transaction to broadcast
93
+ * @returns transaction data to be broadcast to blockchain.
94
+ */
95
+ signedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareSignedTransaction(body, args.tronWeb, provider); }),
96
+ /**
97
+ * Prepare create Tron TRC20 transaction for KMS. Nothing is broadcast to the blockchain.
98
+ * @param body content of the transaction to broadcast
99
+ * @param provider
100
+ * @returns transaction data to be broadcast to blockchain.
101
+ */
102
+ createSignedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareCreateSignedTransaction(body, args.tronWeb, provider); }),
103
+ },
104
+ send: {
105
+ /**
106
+ * Send Tron TRC20 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
107
+ * This operation is irreversible.
108
+ * @param body content of the transaction to broadcast
109
+ * @returns transaction id of the transaction in the blockchain
110
+ */
111
+ signedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
112
+ return api_client_1.BlockchainTronService.tronBroadcast({
113
+ txData: yield prepareSignedTransaction(body, args.tronWeb, provider),
114
+ // TODO: SignatureID is missing in OpenApi
115
+ });
116
+ }),
117
+ /**
118
+ * Create Tron TRC20 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
119
+ * This operation is irreversible.
120
+ * @param body content of the transaction to broadcast
121
+ * @returns transaction id of the transaction in the blockchain
122
+ */
123
+ createSignedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
124
+ return api_client_1.BlockchainTronService.tronBroadcast({
125
+ txData: yield prepareCreateSignedTransaction(body, args.tronWeb, provider),
126
+ // TODO: SignatureID is missing in OpenApi
127
+ });
128
+ }),
129
+ },
130
+ };
131
+ };
132
+ exports.tronTrc20 = tronTrc20;
133
+ //# sourceMappingURL=tron.trc20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron.trc20.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/tron/src/lib/services/tron.trc20.ts"],"names":[],"mappings":"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"}