@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.
- package/package.json +28 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +5 -0
- package/src/index.js.map +1 -0
- package/src/lib/services/tron.custodial.d.ts +59 -0
- package/src/lib/services/tron.custodial.js +131 -0
- package/src/lib/services/tron.custodial.js.map +1 -0
- package/src/lib/services/tron.record.d.ts +17 -0
- package/src/lib/services/tron.record.js +24 -0
- package/src/lib/services/tron.record.js.map +1 -0
- package/src/lib/services/tron.trc10.d.ts +39 -0
- package/src/lib/services/tron.trc10.js +105 -0
- package/src/lib/services/tron.trc10.js.map +1 -0
- package/src/lib/services/tron.trc20.d.ts +45 -0
- package/src/lib/services/tron.trc20.js +133 -0
- package/src/lib/services/tron.trc20.js.map +1 -0
- package/src/lib/services/tron.trc721.d.ts +127 -0
- package/src/lib/services/tron.trc721.js +396 -0
- package/src/lib/services/tron.trc721.js.map +1 -0
- package/src/lib/services/tron.tx.d.ts +150 -0
- package/src/lib/services/tron.tx.js +236 -0
- package/src/lib/services/tron.tx.js.map +1 -0
- package/src/lib/services/tron.utils.d.ts +1 -0
- package/src/lib/services/tron.utils.js +82 -0
- package/src/lib/services/tron.utils.js.map +1 -0
- package/src/lib/services/tron.wallet.d.ts +49 -0
- package/src/lib/services/tron.wallet.js +76 -0
- package/src/lib/services/tron.wallet.js.map +1 -0
- package/src/lib/services/tron.web.d.ts +5 -0
- package/src/lib/services/tron.web.js +27 -0
- package/src/lib/services/tron.web.js.map +1 -0
- package/src/lib/tron.sdk.d.ts +230 -0
- package/src/lib/tron.sdk.js +25 -0
- 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
package/src/index.js.map
ADDED
@@ -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":";;;;AAAA,oDAM4B;AAC5B,6EAAoC;AAGpC,SAAS,gCAAgC,CACvC,KAAmE;IAEnE,OAAQ,KAAwC,CAAC,WAAW,KAAK,SAAS,CAAA;AAC5E,CAAC;AAED,MAAM,wBAAwB,GAAG,CAC/B,IAAkE,EAClE,OAAiB,EACjB,SAAkB,EAClB,QAAiB,EACjB,EAAE;IACF,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAE1C,MAAM,gBAAgB,GACpB,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,CAAC,MAAM,kCAAqB,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhG,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;KAC9C;IAED,IAAI,gCAAgC,CAAC,IAAI,CAAC,EAAE;QAC1C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAClD,EAAE,EACF,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAC3E,OAAO,EACP,IAAI,CAAC,IAAI,CACV,CAAA;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;KAC1B;SAAM;QACL,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAClD,EAAE,EACF,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAC3E,OAAO,EACP,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAC3E,CAAA;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;KACtE;AACH,CAAC,CAAA,CAAA;AAED,SAAS,8BAA8B,CACrC,KAA+D;IAE/D,OAAQ,KAAsC,CAAC,WAAW,KAAK,SAAS,CAAA;AAC1E,CAAC;AAED,MAAM,8BAA8B,GAAG,CACrC,IAA8D,EAC9D,OAAiB,EACjB,QAAiB,EACjB,EAAE;IACF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAE5E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAE1C,MAAM,iBAAiB,GAAG;QACxB,IAAI;QACJ,YAAY;QACZ,WAAW;QACX,GAAG;QACH,WAAW,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrF,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QAC7B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;QAC5B,aAAa,EAAE,CAAC;QAChB,kBAAkB,EAAE,CAAC;QACrB,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,QAAQ;KACpB,CAAA;IAED,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpF,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;KAC1B;SAAM;QACL,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,WAAW,CACpD,iBAAiB,EACjB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CACnD,CAAA;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;KACtE;AACH,CAAC,CAAA,CAAA;AAEM,MAAM,SAAS,GAAG,CAAC,IAA2B,EAAE,EAAE;IACvD,OAAO;QACL,OAAO,EAAE;YACP;;;;;;eAMG;YACH,iBAAiB,EAAE,CACjB,IAAkE,EAClE,SAAkB,EAClB,QAAiB,EACjB,EAAE,+DAAC,OAAA,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA,GAAA;YACtE;;;;eAIG;YACH,uBAAuB,EAAE,CACvB,IAA8D,EAC9D,QAAiB,EACjB,EAAE,+DAAC,OAAA,8BAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA,GAAA;SAClE;QACD,IAAI,EAAE;YACJ;;;;;;eAMG;YACH,iBAAiB,EAAE,CACjB,IAAkE,EAClE,SAAkB,EAClB,QAAiB,EACjB,EAAE;gBACF,OAAA,kCAAqB,CAAC,aAAa,CAAC;oBAClC,MAAM,EAAE,MAAM,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;oBAC/E,0CAA0C;iBAC3C,CAAC,CAAA;cAAA;YACJ;;;;;eAKG;YACH,uBAAuB,EAAE,CACvB,IAA8D,EAC9D,QAAiB,EACjB,EAAE;gBACF,OAAA,kCAAqB,CAAC,aAAa,CAAC;oBAClC,MAAM,EAAE,MAAM,8BAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;oBAC1E,0CAA0C;iBAC3C,CAAC,CAAA;cAAA;SACL;KACF,CAAA;AACH,CAAC,CAAA;AA1DY,QAAA,SAAS,aA0DrB"}
|
@@ -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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"}
|