@tatumio/tron 2.0.1-alpha.231
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -0,0 +1,150 @@
|
|
1
|
+
import { CallSmartContractMethod, CallSmartContractMethodKMS, FreezeTron, FreezeTronKMS, GenerateCustodialWalletTron, GenerateCustodialWalletTronKMS, GenerateMarketplaceTron, GenerateMarketplaceTronKMS, TransferTronBlockchain, TransferTronBlockchainKMS } from '@tatumio/api-client';
|
2
|
+
import { ITronWeb } from './tron.web';
|
3
|
+
export declare const tronTx: (args: {
|
4
|
+
tronWeb: ITronWeb;
|
5
|
+
}) => {
|
6
|
+
trc10: {
|
7
|
+
prepare: {
|
8
|
+
signedTransaction: (body: import("@tatumio/api-client").TransferTronTrc10Blockchain | import("@tatumio/api-client").TransferTronTrc10BlockchainKMS, precision?: number, provider?: string) => Promise<string>;
|
9
|
+
createSignedTransaction: (body: import("@tatumio/api-client").CreateTronTrc10Blockchain | import("@tatumio/api-client").CreateTronTrc10BlockchainKMS, provider?: string) => Promise<string>;
|
10
|
+
};
|
11
|
+
send: {
|
12
|
+
signedTransaction: (body: import("@tatumio/api-client").TransferTronTrc10Blockchain | import("@tatumio/api-client").TransferTronTrc10BlockchainKMS, precision?: number, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
13
|
+
createSignedTransaction: (body: import("@tatumio/api-client").CreateTronTrc10Blockchain | import("@tatumio/api-client").CreateTronTrc10BlockchainKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
14
|
+
};
|
15
|
+
};
|
16
|
+
trc20: {
|
17
|
+
getAccountTrc20Address: (address: string, contractAddress: string, provider?: string) => Promise<any>;
|
18
|
+
getTrc20ContractDecimals: (contractAddress: string, provider?: string) => Promise<any>;
|
19
|
+
prepare: {
|
20
|
+
signedTransaction: (body: import("@tatumio/api-client").TransferTronTrc20Blockchain | import("@tatumio/api-client").TransferTronTrc20BlockchainKMS, provider?: string) => Promise<string>;
|
21
|
+
createSignedTransaction: (body: import("@tatumio/api-client").CreateTronTrc20Blockchain | import("@tatumio/api-client").CreateTronTrc20BlockchainKMS, provider?: string) => Promise<string>;
|
22
|
+
};
|
23
|
+
send: {
|
24
|
+
signedTransaction: (body: import("@tatumio/api-client").TransferTronTrc20Blockchain | import("@tatumio/api-client").TransferTronTrc20BlockchainKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
25
|
+
createSignedTransaction: (body: import("@tatumio/api-client").CreateTronTrc20Blockchain | import("@tatumio/api-client").CreateTronTrc20BlockchainKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
26
|
+
};
|
27
|
+
};
|
28
|
+
trc721: {
|
29
|
+
prepare: {
|
30
|
+
deploySignedTransaction: (body: (import("@tatumio/api-client").DeployNftTronKMS & {
|
31
|
+
from: string;
|
32
|
+
}) | import("@tatumio/api-client").DeployNftTron, provider?: string) => Promise<string>;
|
33
|
+
mintCashbackSignedTransaction: (body: (import("@tatumio/api-client").MintNftKMSTron & {
|
34
|
+
from: string;
|
35
|
+
}) | import("@tatumio/api-client").MintNftTron, provider?: string) => Promise<string>;
|
36
|
+
mintSignedTransaction: (body: (import("@tatumio/api-client").MintNftKMSTron & {
|
37
|
+
from: string;
|
38
|
+
}) | import("@tatumio/api-client").MintNftTron, provider?: string) => Promise<string>;
|
39
|
+
transferSignedTransaction: (body: (import("@tatumio/api-client").TransferNftKMSTron & {
|
40
|
+
from: string;
|
41
|
+
}) | import("@tatumio/api-client").TransferNftTron, provider?: string) => Promise<string>;
|
42
|
+
burnSignedTransaction: (body: (import("@tatumio/api-client").BurnNftKMSTron & {
|
43
|
+
from: string;
|
44
|
+
}) | import("@tatumio/api-client").BurnNftTron, provider?: string) => Promise<string>;
|
45
|
+
mintMultipleSignedTransaction: (body: (import("@tatumio/api-client").MintMultipleNftKMSTron & {
|
46
|
+
from: string;
|
47
|
+
}) | import("@tatumio/api-client").MintMultipleNftTron, provider?: string) => Promise<string>;
|
48
|
+
updateCashbackValueForAuthorSignedTransaction: (body: (import("@tatumio/api-client").UpdateCashbackValueForAuthorNftKMSTron & {
|
49
|
+
from: string;
|
50
|
+
}) | import("@tatumio/api-client").UpdateCashbackValueForAuthorNftTron, provider?: string) => Promise<string>;
|
51
|
+
};
|
52
|
+
send: {
|
53
|
+
deploySignedTransaction: (body: (import("@tatumio/api-client").DeployNftTronKMS & {
|
54
|
+
from: string;
|
55
|
+
}) | import("@tatumio/api-client").DeployNftTron, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
56
|
+
mintCashbackSignedTransaction: (body: (import("@tatumio/api-client").MintNftKMSTron & {
|
57
|
+
from: string;
|
58
|
+
}) | import("@tatumio/api-client").MintNftTron, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
59
|
+
mintSignedTransaction: (body: (import("@tatumio/api-client").MintNftKMSTron & {
|
60
|
+
from: string;
|
61
|
+
}) | import("@tatumio/api-client").MintNftTron, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
62
|
+
transferSignedTransaction: (body: (import("@tatumio/api-client").TransferNftKMSTron & {
|
63
|
+
from: string;
|
64
|
+
}) | import("@tatumio/api-client").TransferNftTron, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
65
|
+
burnSignedTransaction: (body: (import("@tatumio/api-client").BurnNftKMSTron & {
|
66
|
+
from: string;
|
67
|
+
}) | import("@tatumio/api-client").BurnNftTron, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
68
|
+
mintMultipleSignedTransaction: (body: (import("@tatumio/api-client").MintMultipleNftKMSTron & {
|
69
|
+
from: string;
|
70
|
+
}) | import("@tatumio/api-client").MintMultipleNftTron, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
71
|
+
updateCashbackValueForAuthorSignedTransaction: (body: (import("@tatumio/api-client").UpdateCashbackValueForAuthorNftKMSTron & {
|
72
|
+
from: string;
|
73
|
+
}) | import("@tatumio/api-client").UpdateCashbackValueForAuthorNftTron, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
74
|
+
};
|
75
|
+
};
|
76
|
+
prepare: {
|
77
|
+
/**
|
78
|
+
* Sign Tron transaction with private keys locally. Nothing is broadcast to the blockchain.
|
79
|
+
* @param body content of the transaction to broadcast
|
80
|
+
* @param provider
|
81
|
+
* @returns transaction data to be broadcast to blockchain.
|
82
|
+
*/
|
83
|
+
signedTransaction: (body: TransferTronBlockchain | TransferTronBlockchainKMS, provider?: string) => Promise<string>;
|
84
|
+
/**
|
85
|
+
* Sign Tron Freeze balance transaction with private keys locally. Nothing is broadcast to the blockchain.
|
86
|
+
* @param body content of the transaction to broadcast
|
87
|
+
* @param provider optional provider to enter. if not present, Tatum provider will be used.
|
88
|
+
* @returns transaction data to be broadcast to blockchain.
|
89
|
+
*/
|
90
|
+
freezeTransaction: (body: FreezeTron | FreezeTronKMS, provider?: string) => Promise<string>;
|
91
|
+
/**
|
92
|
+
* Sign Tron custodial transfer transaction with private keys locally. Nothing is broadcast to the blockchain.
|
93
|
+
* @param body content of the transaction to broadcast
|
94
|
+
* @param provider
|
95
|
+
* @returns transaction data to be broadcast to blockchain.
|
96
|
+
*/
|
97
|
+
smartContractInvocation: (body: CallSmartContractMethod | CallSmartContractMethodKMS, provider?: string) => Promise<string>;
|
98
|
+
/**
|
99
|
+
* Sign Tron custodial transfer batch transaction with private keys locally. Nothing is broadcast to the blockchain.
|
100
|
+
* @param body content of the transaction to broadcast
|
101
|
+
* @param provider
|
102
|
+
* @returns transaction data to be broadcast to blockchain.
|
103
|
+
*/
|
104
|
+
custodialTransferBatch: (body: CallSmartContractMethod | CallSmartContractMethodKMS, provider?: string) => Promise<string>;
|
105
|
+
/**
|
106
|
+
* Sign Tron generate custodial wallet transaction with private keys locally. Nothing is broadcast to the blockchain.
|
107
|
+
* @param body content of the transaction to broadcast
|
108
|
+
* @param provider
|
109
|
+
* @returns transaction data to be broadcast to blockchain.
|
110
|
+
*/
|
111
|
+
generateCustodialWalletSignedTransaction: (body: GenerateCustodialWalletTron | GenerateCustodialWalletTronKMS, provider?: string) => Promise<string>;
|
112
|
+
/**
|
113
|
+
* Sign TRON deploy new smart contract for NFT marketplace transaction. Smart contract enables marketplace operator to create new listing for NFT (ERC-721/1155).
|
114
|
+
* @param body request data
|
115
|
+
* @param provider optional provider to enter. if not present, Tatum provider will be used.
|
116
|
+
* @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
|
117
|
+
*/
|
118
|
+
deployMarketplaceListingSignedTransaction: (body: GenerateMarketplaceTron | GenerateMarketplaceTronKMS, tronWeb: ITronWeb, provider?: string) => Promise<string>;
|
119
|
+
};
|
120
|
+
send: {
|
121
|
+
/**
|
122
|
+
* Send Tron transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
|
123
|
+
* This operation is irreversible.
|
124
|
+
* @param body content of the transaction to broadcast
|
125
|
+
* @returns transaction id of the transaction in the blockchain
|
126
|
+
*/
|
127
|
+
signedTransaction: (body: TransferTronBlockchain | TransferTronBlockchainKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
128
|
+
/**
|
129
|
+
* Send Tron Freeze balance transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
|
130
|
+
* This operation is irreversible.
|
131
|
+
* @param body content of the transaction to broadcast
|
132
|
+
* @returns transaction id of the transaction in the blockchain
|
133
|
+
*/
|
134
|
+
freezeTransaction: (body: FreezeTron | FreezeTronKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
135
|
+
/**
|
136
|
+
* Send Tron generate custodial wallet transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
|
137
|
+
* This operation is irreversible.
|
138
|
+
* @param body content of the transaction to broadcast
|
139
|
+
* @returns transaction id of the transaction in the blockchain
|
140
|
+
*/
|
141
|
+
generateCustodialWalletSignedTransaction: (body: GenerateCustodialWalletTron | GenerateCustodialWalletTronKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
142
|
+
/**
|
143
|
+
* Deploy new smart contract for NFT marketplace logic. Smart contract enables marketplace operator to create new listing for NFT (ERC-721/1155).
|
144
|
+
* @param body request data
|
145
|
+
* @param provider optional provider to enter. if not present, Tatum provider will be used.
|
146
|
+
* @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
|
147
|
+
*/
|
148
|
+
deployMarketplaceListingSignedTransaction: (body: GenerateMarketplaceTron | GenerateMarketplaceTronKMS, tronWeb: ITronWeb, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
149
|
+
};
|
150
|
+
};
|
@@ -0,0 +1,236 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.tronTx = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const api_client_1 = require("@tatumio/api-client");
|
6
|
+
const shared_blockchain_evm_based_1 = require("@tatumio/shared-blockchain-evm-based");
|
7
|
+
const tron_trc10_1 = require("./tron.trc10");
|
8
|
+
const tron_trc20_1 = require("./tron.trc20");
|
9
|
+
const tron_trc721_1 = require("./tron.trc721");
|
10
|
+
function isTransferTronBlockchainKMS(input) {
|
11
|
+
return input.signatureId !== undefined;
|
12
|
+
}
|
13
|
+
const prepareSignedTransaction = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
14
|
+
const { to, amount } = body;
|
15
|
+
const client = tronWeb.getClient(provider);
|
16
|
+
if (isTransferTronBlockchainKMS(body)) {
|
17
|
+
const tx = yield client.transactionBuilder.sendTrx(to, client.toSun(amount), body.from);
|
18
|
+
return JSON.stringify(tx);
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
const tx = yield client.transactionBuilder.sendTrx(to, client.toSun(amount), client.address.fromHex(client.address.fromPrivateKey(body.fromPrivateKey)));
|
22
|
+
return JSON.stringify(yield client.trx.sign(tx, body.fromPrivateKey));
|
23
|
+
}
|
24
|
+
});
|
25
|
+
function isFreezeTronKMS(input) {
|
26
|
+
return input.signatureId !== undefined;
|
27
|
+
}
|
28
|
+
const prepareFreezeTransaction = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
29
|
+
const { receiver, amount, resource, duration } = body;
|
30
|
+
const client = tronWeb.getClient(provider);
|
31
|
+
if (isFreezeTronKMS(body)) {
|
32
|
+
const tx = yield client.transactionBuilder.freezeBalance(client.toSun(parseFloat(amount)), duration, resource, body.from, receiver);
|
33
|
+
return JSON.stringify(tx);
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
const tx = yield client.transactionBuilder.freezeBalance(client.toSun(parseFloat(amount)), duration, resource, client.address.fromHex(client.address.fromPrivateKey(body.fromPrivateKey)), receiver);
|
37
|
+
return JSON.stringify(yield client.trx.sign(tx, body.fromPrivateKey));
|
38
|
+
}
|
39
|
+
});
|
40
|
+
function isCallSmartContractMethodKMS(input) {
|
41
|
+
return input.signatureId !== undefined;
|
42
|
+
}
|
43
|
+
const prepareSmartContractInvocation = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
44
|
+
var _a;
|
45
|
+
const { amount, contractAddress, methodName, params } = body;
|
46
|
+
const client = tronWeb.getClient(provider);
|
47
|
+
client.setAddress(contractAddress);
|
48
|
+
const contractAddressHex = client.address.toHex(contractAddress);
|
49
|
+
const sender = isCallSmartContractMethodKMS(body)
|
50
|
+
? body.signatureId
|
51
|
+
: client.address.fromHex(client.address.fromPrivateKey(body.fromPrivateKey));
|
52
|
+
const { transaction } = yield client.transactionBuilder.triggerSmartContract(contractAddressHex, methodName, {
|
53
|
+
feeLimit: client.toSun((_a = body.fee) === null || _a === void 0 ? void 0 : _a.gasLimit),
|
54
|
+
from: sender,
|
55
|
+
callValue: client.toSun(amount || 0),
|
56
|
+
}, params, sender);
|
57
|
+
if (isCallSmartContractMethodKMS(body)) {
|
58
|
+
return JSON.stringify(transaction);
|
59
|
+
}
|
60
|
+
return JSON.stringify(yield client.trx.sign(transaction, body.fromPrivateKey));
|
61
|
+
});
|
62
|
+
const prepareCustodialTransferBatch = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
63
|
+
const { contractAddress, fee } = body;
|
64
|
+
const client = tronWeb.getClient(provider);
|
65
|
+
client.setAddress(contractAddress);
|
66
|
+
const contractAddressHex = client.address.toHex(contractAddress);
|
67
|
+
const sender = isCallSmartContractMethodKMS(body)
|
68
|
+
? body.signatureId
|
69
|
+
: client.address.fromHex(client.address.fromPrivateKey(body.fromPrivateKey));
|
70
|
+
const methodName = 'transferBatch(address[],uint256[],address[],uint256[],uint256[])';
|
71
|
+
const { transaction } = yield client.transactionBuilder.triggerSmartContract(contractAddressHex, methodName, {
|
72
|
+
feeLimit: client.toSun(fee === null || fee === void 0 ? void 0 : fee.gasLimit),
|
73
|
+
from: sender,
|
74
|
+
}, [
|
75
|
+
{ type: 'address[]', value: body.params[0].map(client.address.toHex) },
|
76
|
+
{ type: 'uint256[]', value: body.params[1] },
|
77
|
+
{ type: 'address[]', value: body.params[2].map(client.address.toHex) },
|
78
|
+
{ type: 'uint256[]', value: body.params[3] },
|
79
|
+
{ type: 'uint256[]', value: body.params[4] },
|
80
|
+
], sender);
|
81
|
+
if (isCallSmartContractMethodKMS(body)) {
|
82
|
+
return JSON.stringify(transaction);
|
83
|
+
}
|
84
|
+
return JSON.stringify(yield client.trx.sign(transaction, body.fromPrivateKey));
|
85
|
+
});
|
86
|
+
function isGenerateCustodialWalletTronKMS(input) {
|
87
|
+
return input.signatureId !== undefined;
|
88
|
+
}
|
89
|
+
const prepareGenerateCustodialWalletSignedTransaction = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
90
|
+
const client = tronWeb.getClient(provider);
|
91
|
+
// TODO: implement obtainCustodialAddressType
|
92
|
+
const { abi, code } = {};
|
93
|
+
const sender = isGenerateCustodialWalletTronKMS(body)
|
94
|
+
? body.from
|
95
|
+
: client.address.fromPrivateKey(body.fromPrivateKey);
|
96
|
+
const tx = yield client.transactionBuilder.createSmartContract({
|
97
|
+
feeLimit: client.toSun(body.feeLimit || 100),
|
98
|
+
callValue: 0,
|
99
|
+
userFeePercentage: 100,
|
100
|
+
originEnergyLimit: 1,
|
101
|
+
abi: JSON.stringify(abi),
|
102
|
+
bytecode: code,
|
103
|
+
parameters: [],
|
104
|
+
name: 'CustodialWallet',
|
105
|
+
}, sender);
|
106
|
+
if (isGenerateCustodialWalletTronKMS(body)) {
|
107
|
+
return JSON.stringify(tx);
|
108
|
+
}
|
109
|
+
return JSON.stringify(yield client.trx.sign(tx, body.fromPrivateKey));
|
110
|
+
});
|
111
|
+
function isGenerateMarketplaceTronKMS(input) {
|
112
|
+
return input.signatureId !== undefined;
|
113
|
+
}
|
114
|
+
const prepareDeployMarketplaceListingSignedTransaction = (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
115
|
+
const client = tronWeb.getClient(provider);
|
116
|
+
const sender = isGenerateMarketplaceTronKMS(body)
|
117
|
+
? body.from
|
118
|
+
: client.address.fromPrivateKey(body.fromPrivateKey);
|
119
|
+
const tx = yield client.transactionBuilder.createSmartContract({
|
120
|
+
feeLimit: client.toSun(body.feeLimit || 300),
|
121
|
+
callValue: 0,
|
122
|
+
userFeePercentage: 100,
|
123
|
+
originEnergyLimit: 1,
|
124
|
+
abi: JSON.stringify(shared_blockchain_evm_based_1.ListingSmartContract.abi),
|
125
|
+
bytecode: shared_blockchain_evm_based_1.ListingSmartContract.bytecode,
|
126
|
+
parameters: [body.marketplaceFee, body.feeRecipient],
|
127
|
+
name: 'CustodialWallet',
|
128
|
+
}, sender);
|
129
|
+
if (isGenerateMarketplaceTronKMS(body)) {
|
130
|
+
return JSON.stringify(tx);
|
131
|
+
}
|
132
|
+
return JSON.stringify(yield client.trx.sign(tx, body.fromPrivateKey));
|
133
|
+
});
|
134
|
+
const tronTx = (args) => {
|
135
|
+
return {
|
136
|
+
trc10: (0, tron_trc10_1.tronTrc10)(args),
|
137
|
+
trc20: (0, tron_trc20_1.tronTrc20)(args),
|
138
|
+
trc721: (0, tron_trc721_1.tronTrc721)(args),
|
139
|
+
prepare: {
|
140
|
+
/**
|
141
|
+
* Sign Tron transaction with private keys locally. Nothing is broadcast to the blockchain.
|
142
|
+
* @param body content of the transaction to broadcast
|
143
|
+
* @param provider
|
144
|
+
* @returns transaction data to be broadcast to blockchain.
|
145
|
+
*/
|
146
|
+
signedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareSignedTransaction(body, args.tronWeb, provider); }),
|
147
|
+
/**
|
148
|
+
* Sign Tron Freeze balance transaction with private keys locally. Nothing is broadcast to the blockchain.
|
149
|
+
* @param body content of the transaction to broadcast
|
150
|
+
* @param provider optional provider to enter. if not present, Tatum provider will be used.
|
151
|
+
* @returns transaction data to be broadcast to blockchain.
|
152
|
+
*/
|
153
|
+
freezeTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareFreezeTransaction(body, args.tronWeb, provider); }),
|
154
|
+
/**
|
155
|
+
* Sign Tron custodial transfer transaction with private keys locally. Nothing is broadcast to the blockchain.
|
156
|
+
* @param body content of the transaction to broadcast
|
157
|
+
* @param provider
|
158
|
+
* @returns transaction data to be broadcast to blockchain.
|
159
|
+
*/
|
160
|
+
smartContractInvocation: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareSmartContractInvocation(body, args.tronWeb, provider); }),
|
161
|
+
/**
|
162
|
+
* Sign Tron custodial transfer batch transaction with private keys locally. Nothing is broadcast to the blockchain.
|
163
|
+
* @param body content of the transaction to broadcast
|
164
|
+
* @param provider
|
165
|
+
* @returns transaction data to be broadcast to blockchain.
|
166
|
+
*/
|
167
|
+
custodialTransferBatch: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareCustodialTransferBatch(body, args.tronWeb, provider); }),
|
168
|
+
/**
|
169
|
+
* Sign Tron generate custodial wallet transaction with private keys locally. Nothing is broadcast to the blockchain.
|
170
|
+
* @param body content of the transaction to broadcast
|
171
|
+
* @param provider
|
172
|
+
* @returns transaction data to be broadcast to blockchain.
|
173
|
+
*/
|
174
|
+
generateCustodialWalletSignedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareGenerateCustodialWalletSignedTransaction(body, args.tronWeb, provider); }),
|
175
|
+
/**
|
176
|
+
* Sign TRON deploy new smart contract for NFT marketplace transaction. Smart contract enables marketplace operator to create new listing for NFT (ERC-721/1155).
|
177
|
+
* @param body request data
|
178
|
+
* @param provider optional provider to enter. if not present, Tatum provider will be used.
|
179
|
+
* @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
|
180
|
+
*/
|
181
|
+
deployMarketplaceListingSignedTransaction: (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareDeployMarketplaceListingSignedTransaction(body, args.tronWeb, provider); }),
|
182
|
+
},
|
183
|
+
send: {
|
184
|
+
/**
|
185
|
+
* Send Tron transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
|
186
|
+
* This operation is irreversible.
|
187
|
+
* @param body content of the transaction to broadcast
|
188
|
+
* @returns transaction id of the transaction in the blockchain
|
189
|
+
*/
|
190
|
+
signedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
191
|
+
return api_client_1.BlockchainTronService.tronBroadcast({
|
192
|
+
txData: yield prepareSignedTransaction(body, args.tronWeb, provider),
|
193
|
+
// TODO: SignatureID is missing in OpenApi
|
194
|
+
});
|
195
|
+
}),
|
196
|
+
/**
|
197
|
+
* Send Tron Freeze balance transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
|
198
|
+
* This operation is irreversible.
|
199
|
+
* @param body content of the transaction to broadcast
|
200
|
+
* @returns transaction id of the transaction in the blockchain
|
201
|
+
*/
|
202
|
+
freezeTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
203
|
+
return api_client_1.BlockchainTronService.tronBroadcast({
|
204
|
+
txData: yield prepareFreezeTransaction(body, args.tronWeb, provider),
|
205
|
+
// TODO: SignatureID is missing in OpenApi
|
206
|
+
});
|
207
|
+
}),
|
208
|
+
/**
|
209
|
+
* Send Tron generate custodial wallet transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
|
210
|
+
* This operation is irreversible.
|
211
|
+
* @param body content of the transaction to broadcast
|
212
|
+
* @returns transaction id of the transaction in the blockchain
|
213
|
+
*/
|
214
|
+
generateCustodialWalletSignedTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
215
|
+
return api_client_1.BlockchainTronService.tronBroadcast({
|
216
|
+
txData: yield prepareGenerateCustodialWalletSignedTransaction(body, args.tronWeb, provider),
|
217
|
+
// TODO: SignatureID is missing in OpenApi
|
218
|
+
});
|
219
|
+
}),
|
220
|
+
/**
|
221
|
+
* Deploy new smart contract for NFT marketplace logic. Smart contract enables marketplace operator to create new listing for NFT (ERC-721/1155).
|
222
|
+
* @param body request data
|
223
|
+
* @param provider optional provider to enter. if not present, Tatum provider will be used.
|
224
|
+
* @returns {txId: string} Transaction ID of the operation, or signatureID in case of Tatum KMS
|
225
|
+
*/
|
226
|
+
deployMarketplaceListingSignedTransaction: (body, tronWeb, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
227
|
+
return api_client_1.BlockchainTronService.tronBroadcast({
|
228
|
+
txData: yield prepareDeployMarketplaceListingSignedTransaction(body, args.tronWeb, provider),
|
229
|
+
// TODO: SignatureID is missing in OpenApi
|
230
|
+
});
|
231
|
+
}),
|
232
|
+
},
|
233
|
+
};
|
234
|
+
};
|
235
|
+
exports.tronTx = tronTx;
|
236
|
+
//# sourceMappingURL=tron.tx.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tron.tx.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/tron/src/lib/services/tron.tx.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const generateAddress: (publicKey: Buffer) => string;
|
@@ -0,0 +1,82 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.generateAddress = void 0;
|
4
|
+
const elliptic_1 = require("elliptic");
|
5
|
+
const js_sha3_1 = require("js-sha3");
|
6
|
+
const hexChar2byte = (c) => {
|
7
|
+
let d = 0;
|
8
|
+
if (c >= 'A' && c <= 'F')
|
9
|
+
d = c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;
|
10
|
+
else if (c >= 'a' && c <= 'f')
|
11
|
+
d = c.charCodeAt(0) - 'a'.charCodeAt(0) + 10;
|
12
|
+
else if (c >= '0' && c <= '9')
|
13
|
+
d = c.charCodeAt(0) - '0'.charCodeAt(0);
|
14
|
+
return d;
|
15
|
+
};
|
16
|
+
const isHexChar = (c) => {
|
17
|
+
if ((c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f') || (c >= '0' && c <= '9')) {
|
18
|
+
return 1;
|
19
|
+
}
|
20
|
+
return 0;
|
21
|
+
};
|
22
|
+
// TODO: should return Uint8Array
|
23
|
+
const hexStr2byteArray = (str) => {
|
24
|
+
const byteArray = [];
|
25
|
+
let d = 0;
|
26
|
+
let j = 0;
|
27
|
+
let k = 0;
|
28
|
+
for (let i = 0; i < str.length; i++) {
|
29
|
+
const c = str.charAt(i);
|
30
|
+
if (isHexChar(c)) {
|
31
|
+
d <<= 4;
|
32
|
+
d += hexChar2byte(c);
|
33
|
+
j++;
|
34
|
+
if (0 === j % 2) {
|
35
|
+
byteArray[k++] = d;
|
36
|
+
d = 0;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
return byteArray;
|
41
|
+
};
|
42
|
+
// @ts-ignore
|
43
|
+
const byte2hexStr = (byte) => {
|
44
|
+
const hexByteMap = '0123456789ABCDEF';
|
45
|
+
let str = '';
|
46
|
+
str += hexByteMap.charAt(byte >> 4);
|
47
|
+
str += hexByteMap.charAt(byte & 0x0f);
|
48
|
+
return str;
|
49
|
+
};
|
50
|
+
const byteArray2hexStr = (byteArray) => {
|
51
|
+
let str = '';
|
52
|
+
for (const byte of byteArray) {
|
53
|
+
str += byte2hexStr(byte);
|
54
|
+
}
|
55
|
+
return str;
|
56
|
+
};
|
57
|
+
const computeAddress = (pubBytes) => {
|
58
|
+
if (pubBytes.length === 65)
|
59
|
+
pubBytes = pubBytes.slice(1);
|
60
|
+
const hash = (0, js_sha3_1.keccak_256)(pubBytes).toString();
|
61
|
+
const addressHex = '41' + hash.substring(24);
|
62
|
+
return hexStr2byteArray(addressHex);
|
63
|
+
};
|
64
|
+
const generatePubKey = (bytes) => {
|
65
|
+
const ec = new elliptic_1.ec('secp256k1');
|
66
|
+
const key = ec.keyFromPublic(bytes, 'bytes');
|
67
|
+
const pubkey = key.getPublic();
|
68
|
+
const x = pubkey.getX();
|
69
|
+
const y = pubkey.getY();
|
70
|
+
let xHex = x.toString('hex');
|
71
|
+
while (xHex.length < 64) {
|
72
|
+
xHex = '0' + xHex;
|
73
|
+
}
|
74
|
+
let yHex = y.toString('hex');
|
75
|
+
while (yHex.length < 64) {
|
76
|
+
yHex = '0' + yHex;
|
77
|
+
}
|
78
|
+
return '04' + xHex + yHex;
|
79
|
+
};
|
80
|
+
const generateAddress = (publicKey) => byteArray2hexStr(computeAddress(hexStr2byteArray(generatePubKey(publicKey))));
|
81
|
+
exports.generateAddress = generateAddress;
|
82
|
+
//# sourceMappingURL=tron.utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tron.utils.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/tron/src/lib/services/tron.utils.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import { TronWallet } from '@tatumio/api-client';
|
2
|
+
import { ITronWeb } from './tron.web';
|
3
|
+
export declare const tronWallet: (args: {
|
4
|
+
tronWeb: ITronWeb;
|
5
|
+
}) => {
|
6
|
+
/**
|
7
|
+
* Generate Tron wallet
|
8
|
+
* @returns mnemonic for the wallet
|
9
|
+
*/
|
10
|
+
generateBlockchainWallet: (mnem: string) => Promise<TronWallet>;
|
11
|
+
/**
|
12
|
+
* Generate wallet
|
13
|
+
* @param mnemonic optional mnemonic seed to use. If not present, new one will be generated
|
14
|
+
* @returns wallet or a combination of address and private key
|
15
|
+
*/
|
16
|
+
generateWallet(mnemonic?: string): Promise<TronWallet>;
|
17
|
+
/**
|
18
|
+
* Generate address
|
19
|
+
* @param xpub extended public key to generate address from
|
20
|
+
* @param i derivation index of address to generate. Up to 2^31 addresses can be generated.
|
21
|
+
* @returns blockchain address
|
22
|
+
*/
|
23
|
+
generateAddressFromXPub(xpub: string, i: number): string;
|
24
|
+
/**
|
25
|
+
* Generate private key from mnemonic seed
|
26
|
+
* @param mnemonic mnemonic to generate private key from
|
27
|
+
* @param i derivation index of private key to generate.
|
28
|
+
* @returns blockchain private key to the address
|
29
|
+
*/
|
30
|
+
generatePrivateKeyFromMnemonic(mnemonic: string, i: number): Promise<string>;
|
31
|
+
/**
|
32
|
+
* Generate address from private key
|
33
|
+
* @param privateKey private key to use
|
34
|
+
* @returns blockchain private key to the address
|
35
|
+
*/
|
36
|
+
generateAddressFromPrivatekey(privateKey: string): string;
|
37
|
+
custodial: {
|
38
|
+
prepare: {
|
39
|
+
custodialWallet: (body: import("@tatumio/api-client").GenerateCustodialWalletTron | import("@tatumio/api-client").GenerateCustodialWalletTronKMS, provider?: string) => Promise<string>;
|
40
|
+
transferFromCustodialWallet: (body: import("@tatumio/api-client").TransferCustodialWalletTron | import("@tatumio/api-client").TransferCustodialWalletTronKMS, getContractDecimals: (contractAddress: string, provider?: string, testnet?: boolean) => Promise<number>, provider?: string, decimals?: number, testnet?: boolean) => Promise<string>;
|
41
|
+
batchTransferFromCustodialWallet: (body: import("@tatumio/api-client").TransferCustodialWalletBatchTron | import("@tatumio/api-client").TransferCustodialWalletBatchTronKMS, getContractDecimals: (contractAddress: string, provider?: string, testnet?: boolean) => Promise<number>, provider?: string, decimals?: number, testnet?: boolean) => Promise<string>;
|
42
|
+
};
|
43
|
+
send: {
|
44
|
+
custodialWallet: (body: import("@tatumio/api-client").GenerateCustodialWalletTron | import("@tatumio/api-client").GenerateCustodialWalletTronKMS, provider?: string) => Promise<import("@tatumio/api-client").TransactionHash>;
|
45
|
+
transferFromCustodialWallet: (body: import("@tatumio/api-client").TransferCustodialWalletTron | import("@tatumio/api-client").TransferCustodialWalletTronKMS, getContractDecimals: (contractAddress: string, provider?: string, testnet?: boolean) => Promise<number>, provider?: string, decimals?: number, testnet?: boolean) => Promise<import("@tatumio/api-client").TransactionHash>;
|
46
|
+
batchTransferFromCustodialWallet: (body: import("@tatumio/api-client").TransferCustodialWalletBatchTron | import("@tatumio/api-client").TransferCustodialWalletBatchTronKMS, getContractDecimals: (contractAddress: string, provider?: string, testnet?: boolean) => Promise<number>, provider?: string, decimals?: number, testnet?: boolean) => Promise<import("@tatumio/api-client").TransactionHash>;
|
47
|
+
};
|
48
|
+
};
|
49
|
+
};
|
@@ -0,0 +1,76 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.tronWallet = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const shared_core_1 = require("@tatumio/shared-core");
|
6
|
+
const bip32_1 = require("bip32");
|
7
|
+
const bip39_1 = require("bip39");
|
8
|
+
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
9
|
+
const tron_utils_1 = require("./tron.utils");
|
10
|
+
// tronweb lib dont have any typings (not even in @types)
|
11
|
+
// @ts-ignore
|
12
|
+
const tronweb_1 = (0, tslib_1.__importDefault)(require("tronweb"));
|
13
|
+
const tron_custodial_1 = require("./tron.custodial");
|
14
|
+
const generateBlockchainWallet = (mnem) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
15
|
+
const w = bitcoinjs_lib_1.bip32.fromSeed(yield (0, bip39_1.mnemonicToSeed)(mnem));
|
16
|
+
const bip32Interface = w.derivePath(shared_core_1.DERIVATION_PATH[shared_core_1.Blockchain.TRON]);
|
17
|
+
return {
|
18
|
+
mnemonic: mnem,
|
19
|
+
xpub: bip32Interface.publicKey.toString('hex') + bip32Interface.chainCode.toString('hex'),
|
20
|
+
};
|
21
|
+
});
|
22
|
+
const tronWallet = (args) => {
|
23
|
+
return {
|
24
|
+
/**
|
25
|
+
* Generate Tron wallet
|
26
|
+
* @returns mnemonic for the wallet
|
27
|
+
*/
|
28
|
+
generateBlockchainWallet,
|
29
|
+
/**
|
30
|
+
* Generate wallet
|
31
|
+
* @param mnemonic optional mnemonic seed to use. If not present, new one will be generated
|
32
|
+
* @returns wallet or a combination of address and private key
|
33
|
+
*/
|
34
|
+
generateWallet(mnemonic) {
|
35
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
36
|
+
return generateBlockchainWallet(mnemonic !== null && mnemonic !== void 0 ? mnemonic : (0, bip39_1.generateMnemonic)(256));
|
37
|
+
});
|
38
|
+
},
|
39
|
+
/**
|
40
|
+
* Generate address
|
41
|
+
* @param xpub extended public key to generate address from
|
42
|
+
* @param i derivation index of address to generate. Up to 2^31 addresses can be generated.
|
43
|
+
* @returns blockchain address
|
44
|
+
*/
|
45
|
+
generateAddressFromXPub(xpub, i) {
|
46
|
+
const w = (0, bip32_1.fromPublicKey)(Buffer.from(xpub.slice(0, 66), 'hex'), Buffer.from(xpub.slice(-64), 'hex'));
|
47
|
+
return tronweb_1.default.address.fromHex((0, tron_utils_1.generateAddress)(w.derive(i).publicKey));
|
48
|
+
},
|
49
|
+
/**
|
50
|
+
* Generate private key from mnemonic seed
|
51
|
+
* @param mnemonic mnemonic to generate private key from
|
52
|
+
* @param i derivation index of private key to generate.
|
53
|
+
* @returns blockchain private key to the address
|
54
|
+
*/
|
55
|
+
generatePrivateKeyFromMnemonic(mnemonic, i) {
|
56
|
+
var _a, _b;
|
57
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
58
|
+
return ((_b = (_a = (0, bip32_1.fromSeed)(yield (0, bip39_1.mnemonicToSeed)(mnemonic))
|
59
|
+
.derivePath(shared_core_1.DERIVATION_PATH[shared_core_1.Blockchain.TRON])
|
60
|
+
.derive(i)
|
61
|
+
.privateKey) === null || _a === void 0 ? void 0 : _a.toString('hex')) !== null && _b !== void 0 ? _b : '');
|
62
|
+
});
|
63
|
+
},
|
64
|
+
/**
|
65
|
+
* Generate address from private key
|
66
|
+
* @param privateKey private key to use
|
67
|
+
* @returns blockchain private key to the address
|
68
|
+
*/
|
69
|
+
generateAddressFromPrivatekey(privateKey) {
|
70
|
+
return tronweb_1.default.address.fromPrivateKey(privateKey);
|
71
|
+
},
|
72
|
+
custodial: (0, tron_custodial_1.tronCustodial)(args),
|
73
|
+
};
|
74
|
+
};
|
75
|
+
exports.tronWallet = tronWallet;
|
76
|
+
//# sourceMappingURL=tron.wallet.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tron.wallet.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/tron/src/lib/services/tron.wallet.ts"],"names":[],"mappings":";;;;AACA,sDAAkE;AAClE,iCAA+C;AAC/C,iCAAwD;AACxD,iDAAqC;AACrC,6CAA8C;AAE9C,yDAAyD;AACzD,aAAa;AACb,mEAA6B;AAC7B,qDAAgD;AAGhD,MAAM,wBAAwB,GAAG,CAAO,IAAY,EAAuB,EAAE;IAC3E,MAAM,CAAC,GAAG,qBAAK,CAAC,QAAQ,CAAC,MAAM,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,CAAC,CAAC,UAAU,CAAC,6BAAe,CAAC,wBAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAErE,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC1F,CAAA;AACH,CAAC,CAAA,CAAA;AAEM,MAAM,UAAU,GAAG,CAAC,IAA2B,EAAE,EAAE;IACxD,OAAO;QACL;;;WAGG;QACH,wBAAwB;QACxB;;;;WAIG;QACG,cAAc,CAAC,QAAiB;;gBACpC,OAAO,wBAAwB,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAA,wBAAgB,EAAC,GAAG,CAAC,CAAC,CAAA;YACpE,CAAC;SAAA;QACD;;;;;WAKG;QACH,uBAAuB,CAAC,IAAY,EAAE,CAAS;YAC7C,MAAM,CAAC,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;YACnG,OAAO,iBAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAA,4BAAe,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QACxE,CAAC;QACD;;;;;WAKG;QACG,8BAA8B,CAAC,QAAgB,EAAE,CAAS;;;gBAC9D,OAAO,CACL,MAAA,MAAA,IAAA,gBAAQ,EAAC,MAAM,IAAA,sBAAc,EAAC,QAAQ,CAAC,CAAC;qBACrC,UAAU,CAAC,6BAAe,CAAC,wBAAU,CAAC,IAAI,CAAC,CAAC;qBAC5C,MAAM,CAAC,CAAC,CAAC;qBACT,UAAU,0CAAE,QAAQ,CAAC,KAAK,CAAC,mCAAI,EAAE,CACrC,CAAA;;SACF;QACD;;;;WAIG;QACH,6BAA6B,CAAC,UAAkB;YAC9C,OAAO,iBAAO,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QACnD,CAAC;QACD,SAAS,EAAE,IAAA,8BAAa,EAAC,IAAI,CAAC;KAC/B,CAAA;AACH,CAAC,CAAA;AAjDY,QAAA,UAAU,cAiDtB"}
|