@hyperlane-xyz/tron-sdk 21.0.0
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/LICENSE.md +195 -0
- package/README.md +47 -0
- package/dist/abi/DomainRoutingIsm.json +240 -0
- package/dist/abi/ERC20.json +293 -0
- package/dist/abi/ERC20Test.json +365 -0
- package/dist/abi/HypERC20.json +920 -0
- package/dist/abi/HypERC20Collateral.json +1556 -0
- package/dist/abi/HypNative.json +1561 -0
- package/dist/abi/IERC20.json +190 -0
- package/dist/abi/IInterchainSecurityModule.json +44 -0
- package/dist/abi/IPostDispatchHook.json +81 -0
- package/dist/abi/InterchainGasPaymaster.json +518 -0
- package/dist/abi/Mailbox.json +686 -0
- package/dist/abi/MerkleTreeHook.json +375 -0
- package/dist/abi/NoopIsm.json +57 -0
- package/dist/abi/PausableHook.json +199 -0
- package/dist/abi/ProxyAdmin.json +156 -0
- package/dist/abi/StaticMerkleRootMultisigIsm.json +100 -0
- package/dist/abi/StaticMessageIdMultisigIsm.json +100 -0
- package/dist/abi/StorageGasOracle.json +205 -0
- package/dist/abi/TransparentUpgradeableProxy.json +81 -0
- package/dist/abi/ValidatorAnnounce.json +299 -0
- package/dist/clients/protocol.d.ts +17 -0
- package/dist/clients/protocol.d.ts.map +1 -0
- package/dist/clients/protocol.js +40 -0
- package/dist/clients/protocol.js.map +1 -0
- package/dist/clients/provider.d.ts +67 -0
- package/dist/clients/provider.d.ts.map +1 -0
- package/dist/clients/provider.js +558 -0
- package/dist/clients/provider.js.map +1 -0
- package/dist/clients/signer.d.ts +46 -0
- package/dist/clients/signer.d.ts.map +1 -0
- package/dist/clients/signer.js +561 -0
- package/dist/clients/signer.js.map +1 -0
- package/dist/hook/hook-query.d.ts +41 -0
- package/dist/hook/hook-query.d.ts.map +1 -0
- package/dist/hook/hook-query.js +79 -0
- package/dist/hook/hook-query.js.map +1 -0
- package/dist/hook/hook-tx.d.ts +39 -0
- package/dist/hook/hook-tx.d.ts.map +1 -0
- package/dist/hook/hook-tx.js +95 -0
- package/dist/hook/hook-tx.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/ism/ism-query.d.ts +70 -0
- package/dist/ism/ism-query.d.ts.map +1 -0
- package/dist/ism/ism-query.js +137 -0
- package/dist/ism/ism-query.js.map +1 -0
- package/dist/ism/ism-tx.d.ts +67 -0
- package/dist/ism/ism-tx.d.ts.map +1 -0
- package/dist/ism/ism-tx.js +110 -0
- package/dist/ism/ism-tx.js.map +1 -0
- package/dist/tests/1_interchain_security.e2e-test.d.ts +2 -0
- package/dist/tests/1_interchain_security.e2e-test.d.ts.map +1 -0
- package/dist/tests/1_interchain_security.e2e-test.js +172 -0
- package/dist/tests/1_interchain_security.e2e-test.js.map +1 -0
- package/dist/tests/2_core.e2e-test.d.ts +2 -0
- package/dist/tests/2_core.e2e-test.d.ts.map +1 -0
- package/dist/tests/2_core.e2e-test.js +117 -0
- package/dist/tests/2_core.e2e-test.js.map +1 -0
- package/dist/tests/3_post_dispatch.e2e-test.d.ts +2 -0
- package/dist/tests/3_post_dispatch.e2e-test.d.ts.map +1 -0
- package/dist/tests/3_post_dispatch.e2e-test.js +116 -0
- package/dist/tests/3_post_dispatch.e2e-test.js.map +1 -0
- package/dist/tests/4_warp.e2e-test.d.ts +2 -0
- package/dist/tests/4_warp.e2e-test.d.ts.map +1 -0
- package/dist/tests/4_warp.e2e-test.js +304 -0
- package/dist/tests/4_warp.e2e-test.js.map +1 -0
- package/dist/tests/index.e2e-test.d.ts +5 -0
- package/dist/tests/index.e2e-test.d.ts.map +1 -0
- package/dist/tests/index.e2e-test.js +6 -0
- package/dist/tests/index.e2e-test.js.map +1 -0
- package/dist/utils/index.d.ts +24 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +71 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/types.d.ts +94 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +13 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
import { TronWeb } from 'tronweb';
|
|
2
|
+
import { AltVM } from '@hyperlane-xyz/provider-sdk';
|
|
3
|
+
import { assert, ensure0x, sleep, strip0x } from '@hyperlane-xyz/utils';
|
|
4
|
+
import ERC20Abi from '../abi/ERC20.json' with { type: 'json' };
|
|
5
|
+
import HypERC20Abi from '../abi/HypERC20.json' with { type: 'json' };
|
|
6
|
+
import HypERC20CollateralAbi from '../abi/HypERC20Collateral.json' with { type: 'json' };
|
|
7
|
+
import HypNativeAbi from '../abi/HypNative.json' with { type: 'json' };
|
|
8
|
+
import IERC20Abi from '../abi/IERC20.json' with { type: 'json' };
|
|
9
|
+
import MailboxAbi from '../abi/Mailbox.json' with { type: 'json' };
|
|
10
|
+
import MerkleTreeHookAbi from '../abi/MerkleTreeHook.json' with { type: 'json' };
|
|
11
|
+
import PausableHookAbi from '../abi/PausableHook.json' with { type: 'json' };
|
|
12
|
+
import ProxyAdminAbi from '../abi/ProxyAdmin.json' with { type: 'json' };
|
|
13
|
+
import ValidatorAnnounceAbi from '../abi/ValidatorAnnounce.json' with { type: 'json' };
|
|
14
|
+
import { getHookType, getIgpHookConfig, getMerkleTreeHookConfig, } from '../hook/hook-query.js';
|
|
15
|
+
import { getCreateIgpTx, getRemoveIgpDestinationGasConfigTx, getSetIgpDestinationGasConfigTx, getSetIgpOwnerTx, } from '../hook/hook-tx.js';
|
|
16
|
+
import { getIsmType, getMerkleRootMultisigIsmConfig, getMessageIdMultisigIsmConfig, getNoopIsmConfig, getRoutingIsmConfig, } from '../ism/ism-query.js';
|
|
17
|
+
import { getCreateMerkleRootMultisigIsmImplementationTx, getCreateMessageIdMultisigIsmImplementationTx, getCreateRoutingIsmTx, getCreateTestIsmTx, getRemoveRoutingIsmRouteTx, getSetRoutingIsmOwnerTx, getSetRoutingIsmRouteTx, } from '../ism/ism-tx.js';
|
|
18
|
+
import { EIP1967_ADMIN_SLOT, TRON_EMPTY_ADDRESS, createDeploymentTransaction, decodeRevertReason, } from '../utils/index.js';
|
|
19
|
+
import { TronHookTypes, TronIsmTypes, } from '../utils/types.js';
|
|
20
|
+
export class TronProvider {
|
|
21
|
+
rpcUrls;
|
|
22
|
+
tronweb;
|
|
23
|
+
static async connect(rpcUrls) {
|
|
24
|
+
assert(rpcUrls.length > 0, `got no rpcUrls`);
|
|
25
|
+
const { privateKey } = new TronWeb({
|
|
26
|
+
fullHost: rpcUrls[0],
|
|
27
|
+
}).createRandom();
|
|
28
|
+
return new TronProvider(rpcUrls, strip0x(privateKey));
|
|
29
|
+
}
|
|
30
|
+
constructor(rpcUrls, privateKey) {
|
|
31
|
+
this.rpcUrls = rpcUrls;
|
|
32
|
+
if (!privateKey) {
|
|
33
|
+
privateKey = new TronWeb({
|
|
34
|
+
fullHost: rpcUrls[0],
|
|
35
|
+
}).createRandom().privateKey;
|
|
36
|
+
}
|
|
37
|
+
this.tronweb = new TronWeb({
|
|
38
|
+
fullHost: this.rpcUrls[0],
|
|
39
|
+
privateKey: strip0x(privateKey),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async waitForTransaction(txid, timeout = 30000) {
|
|
43
|
+
const start = Date.now();
|
|
44
|
+
while (Date.now() - start < timeout) {
|
|
45
|
+
const info = await this.tronweb.trx.getTransactionInfo(txid);
|
|
46
|
+
if (info && info.id) {
|
|
47
|
+
const result = info.receipt?.result;
|
|
48
|
+
if (result === 'SUCCESS') {
|
|
49
|
+
return info;
|
|
50
|
+
}
|
|
51
|
+
if (result === 'REVERT' || result === 'FAILED') {
|
|
52
|
+
let revertReason = 'Unknown Error';
|
|
53
|
+
if (info.resMessage) {
|
|
54
|
+
revertReason = this.tronweb.toUtf8(info.resMessage);
|
|
55
|
+
}
|
|
56
|
+
else if (info.contractResult && info.contractResult[0]) {
|
|
57
|
+
revertReason = decodeRevertReason(info.contractResult[0], this.tronweb);
|
|
58
|
+
}
|
|
59
|
+
throw new Error(`Tron Transaction Failed: ${revertReason} (txid: ${txid})`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
await sleep(2000);
|
|
63
|
+
}
|
|
64
|
+
throw new Error(`Transaction timed out: ${txid}`);
|
|
65
|
+
}
|
|
66
|
+
async getProxyAdmin(proxyAddress) {
|
|
67
|
+
let proxyAdmin = undefined;
|
|
68
|
+
try {
|
|
69
|
+
const response = await this.tronweb.fullNode.request('jsonrpc', {
|
|
70
|
+
jsonrpc: '2.0',
|
|
71
|
+
method: 'eth_getStorageAt',
|
|
72
|
+
params: [
|
|
73
|
+
ensure0x(this.tronweb.address.toHex(proxyAddress)),
|
|
74
|
+
EIP1967_ADMIN_SLOT,
|
|
75
|
+
'latest',
|
|
76
|
+
],
|
|
77
|
+
id: 1,
|
|
78
|
+
}, 'POST');
|
|
79
|
+
const ethAddress = strip0x(response.result).slice(-40);
|
|
80
|
+
const tronHex = '41' + ethAddress;
|
|
81
|
+
const proxyAdminAddress = this.tronweb.address.fromHex(tronHex);
|
|
82
|
+
const proxyAdminContract = this.tronweb.contract(ProxyAdminAbi.abi, proxyAdminAddress);
|
|
83
|
+
proxyAdmin = {
|
|
84
|
+
address: proxyAdminAddress,
|
|
85
|
+
owner: this.tronweb.address.fromHex(await proxyAdminContract.owner().call()),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// If query fails, leave proxyAdmin empty
|
|
90
|
+
}
|
|
91
|
+
return proxyAdmin;
|
|
92
|
+
}
|
|
93
|
+
// ### QUERY BASE ###
|
|
94
|
+
async isHealthy() {
|
|
95
|
+
const block = await this.tronweb.trx.getCurrentBlock();
|
|
96
|
+
return block.block_header.raw_data.number > 0;
|
|
97
|
+
}
|
|
98
|
+
getRpcUrls() {
|
|
99
|
+
return this.rpcUrls;
|
|
100
|
+
}
|
|
101
|
+
async getHeight() {
|
|
102
|
+
const block = await this.tronweb.trx.getCurrentBlock();
|
|
103
|
+
return block.block_header.raw_data.number;
|
|
104
|
+
}
|
|
105
|
+
async getBalance(req) {
|
|
106
|
+
if (req.denom && req.denom !== 'SUN') {
|
|
107
|
+
const erc20 = this.tronweb.contract(IERC20Abi.abi, req.denom);
|
|
108
|
+
const balance = await erc20.balanceOf(req.address).call();
|
|
109
|
+
return BigInt(balance);
|
|
110
|
+
}
|
|
111
|
+
const balance = await this.tronweb.trx.getBalance(req.address);
|
|
112
|
+
return BigInt(balance);
|
|
113
|
+
}
|
|
114
|
+
async getTotalSupply(req) {
|
|
115
|
+
if (req.denom) {
|
|
116
|
+
const erc20 = this.tronweb.contract(IERC20Abi.abi, req.denom);
|
|
117
|
+
const supply = await erc20.totalSupply().call();
|
|
118
|
+
return BigInt(supply);
|
|
119
|
+
}
|
|
120
|
+
throw new Error(`Native TRX has no total supply`);
|
|
121
|
+
}
|
|
122
|
+
async estimateTransactionFee(req) {
|
|
123
|
+
const ENERGY_MULTIPLIER = 1.5;
|
|
124
|
+
const value = req.transaction.raw_data.contract[0].parameter.value;
|
|
125
|
+
const contractAddress = value.contract_address;
|
|
126
|
+
const issuerAddress = value.owner_address;
|
|
127
|
+
const callValue = value.call_value || 0;
|
|
128
|
+
const { result, energy_required } = await this.tronweb.transactionBuilder.estimateEnergy(contractAddress, '', {
|
|
129
|
+
input: value.data,
|
|
130
|
+
callValue,
|
|
131
|
+
}, [], issuerAddress);
|
|
132
|
+
if (!result.result) {
|
|
133
|
+
throw new Error(`energy estimation failed for txid ${req.transaction.txID}`);
|
|
134
|
+
}
|
|
135
|
+
const energyPriceData = await this.tronweb.trx.getEnergyPrices();
|
|
136
|
+
const [_, energyPrice] = energyPriceData.split(',').at(-1).split(':');
|
|
137
|
+
const bandwidthPriceData = await this.tronweb.trx.getBandwidthPrices();
|
|
138
|
+
const [__, bandwidthPrice] = bandwidthPriceData
|
|
139
|
+
.split(',')
|
|
140
|
+
.at(-1)
|
|
141
|
+
.split(':');
|
|
142
|
+
const txSize = BigInt(req.transaction.raw_data_hex.length / 2 + 134); // Signature + Result + Protobuf
|
|
143
|
+
const energy = BigInt(Math.ceil(energy_required * ENERGY_MULTIPLIER));
|
|
144
|
+
const energyFee = energy * BigInt(energyPrice);
|
|
145
|
+
const bandwidthFee = txSize * BigInt(bandwidthPrice);
|
|
146
|
+
const totalFeeSun = energyFee + bandwidthFee;
|
|
147
|
+
return {
|
|
148
|
+
gasUnits: energy,
|
|
149
|
+
gasPrice: parseInt(energyPrice),
|
|
150
|
+
fee: totalFeeSun,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
// ### QUERY CORE ###
|
|
154
|
+
async getMailbox(req) {
|
|
155
|
+
const mailbox = this.tronweb.contract(MailboxAbi.abi, req.mailboxAddress);
|
|
156
|
+
const defaultIsm = this.tronweb.address.fromHex(await mailbox.defaultIsm().call());
|
|
157
|
+
const defaultHook = this.tronweb.address.fromHex(await mailbox.defaultHook().call());
|
|
158
|
+
const requiredHook = this.tronweb.address.fromHex(await mailbox.requiredHook().call());
|
|
159
|
+
const proxyAdmin = await this.getProxyAdmin(req.mailboxAddress);
|
|
160
|
+
return {
|
|
161
|
+
address: req.mailboxAddress,
|
|
162
|
+
owner: this.tronweb.address.fromHex(await mailbox.owner().call()),
|
|
163
|
+
localDomain: Number(await mailbox.localDomain().call()),
|
|
164
|
+
defaultIsm: defaultIsm === req.mailboxAddress ? '' : defaultIsm,
|
|
165
|
+
defaultHook: defaultHook === req.mailboxAddress ? '' : defaultHook,
|
|
166
|
+
requiredHook: requiredHook === req.mailboxAddress ? '' : requiredHook,
|
|
167
|
+
nonce: Number(await mailbox.nonce().call()),
|
|
168
|
+
proxyAdmin,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
async isMessageDelivered(req) {
|
|
172
|
+
const mailbox = this.tronweb.contract(MailboxAbi.abi, req.mailboxAddress);
|
|
173
|
+
return mailbox.delivered(req.messageId).call();
|
|
174
|
+
}
|
|
175
|
+
async getIsmType(req) {
|
|
176
|
+
const ismType = await getIsmType(this.tronweb, req.ismAddress);
|
|
177
|
+
switch (ismType) {
|
|
178
|
+
case TronIsmTypes.MERKLE_ROOT_MULTISIG: {
|
|
179
|
+
return AltVM.IsmType.MERKLE_ROOT_MULTISIG;
|
|
180
|
+
}
|
|
181
|
+
case TronIsmTypes.MESSAGE_ID_MULTISIG: {
|
|
182
|
+
return AltVM.IsmType.MESSAGE_ID_MULTISIG;
|
|
183
|
+
}
|
|
184
|
+
case TronIsmTypes.ROUTING_ISM: {
|
|
185
|
+
return AltVM.IsmType.ROUTING;
|
|
186
|
+
}
|
|
187
|
+
case TronIsmTypes.NOOP_ISM: {
|
|
188
|
+
return AltVM.IsmType.TEST_ISM;
|
|
189
|
+
}
|
|
190
|
+
default:
|
|
191
|
+
throw new Error(`Unknown ISM ModuleType: ${ismType}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async getMessageIdMultisigIsm(req) {
|
|
195
|
+
return getMessageIdMultisigIsmConfig(this.tronweb, req.ismAddress);
|
|
196
|
+
}
|
|
197
|
+
async getMerkleRootMultisigIsm(req) {
|
|
198
|
+
return getMerkleRootMultisigIsmConfig(this.tronweb, req.ismAddress);
|
|
199
|
+
}
|
|
200
|
+
async getRoutingIsm(req) {
|
|
201
|
+
return getRoutingIsmConfig(this.tronweb, req.ismAddress);
|
|
202
|
+
}
|
|
203
|
+
async getNoopIsm(req) {
|
|
204
|
+
return getNoopIsmConfig(this.tronweb, req.ismAddress);
|
|
205
|
+
}
|
|
206
|
+
async getHookType(req) {
|
|
207
|
+
const hookType = await getHookType(this.tronweb, req.hookAddress);
|
|
208
|
+
switch (hookType) {
|
|
209
|
+
case TronHookTypes.MERKLE_TREE: {
|
|
210
|
+
return AltVM.HookType.MERKLE_TREE;
|
|
211
|
+
}
|
|
212
|
+
case TronHookTypes.INTERCHAIN_GAS_PAYMASTER: {
|
|
213
|
+
return AltVM.HookType.INTERCHAIN_GAS_PAYMASTER;
|
|
214
|
+
}
|
|
215
|
+
default:
|
|
216
|
+
throw new Error(`Unknown ISM ModuleType: ${hookType}`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async getInterchainGasPaymasterHook(req) {
|
|
220
|
+
return getIgpHookConfig(this.tronweb, req.hookAddress);
|
|
221
|
+
}
|
|
222
|
+
async getMerkleTreeHook(req) {
|
|
223
|
+
return getMerkleTreeHookConfig(this.tronweb, req.hookAddress);
|
|
224
|
+
}
|
|
225
|
+
async getNoopHook(req) {
|
|
226
|
+
const contract = this.tronweb.contract(PausableHookAbi.abi, req.hookAddress);
|
|
227
|
+
const hookType = await contract.hookType().call();
|
|
228
|
+
assert(Number(hookType) === 7, `hook type does not equal PAUSABLE_HOOK`);
|
|
229
|
+
return {
|
|
230
|
+
address: req.hookAddress,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
// ### QUERY WARP ###
|
|
234
|
+
async getToken(req) {
|
|
235
|
+
const contract = this.tronweb.contract(HypNativeAbi.abi, req.tokenAddress);
|
|
236
|
+
const ismAddress = this.tronweb.address.fromHex(await contract.interchainSecurityModule().call());
|
|
237
|
+
const hookAddress = this.tronweb.address.fromHex(await contract.hook().call());
|
|
238
|
+
const denom = this.tronweb.address.fromHex(await contract.token().call());
|
|
239
|
+
let tokenType = AltVM.TokenType.native;
|
|
240
|
+
if (denom === TRON_EMPTY_ADDRESS) {
|
|
241
|
+
tokenType = AltVM.TokenType.native;
|
|
242
|
+
}
|
|
243
|
+
else if (denom === req.tokenAddress) {
|
|
244
|
+
tokenType = AltVM.TokenType.synthetic;
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
tokenType = AltVM.TokenType.collateral;
|
|
248
|
+
}
|
|
249
|
+
const token = {
|
|
250
|
+
address: req.tokenAddress,
|
|
251
|
+
owner: this.tronweb.address.fromHex(await contract.owner().call()),
|
|
252
|
+
tokenType,
|
|
253
|
+
mailboxAddress: this.tronweb.address.fromHex(await contract.mailbox().call()),
|
|
254
|
+
ismAddress: ismAddress === TRON_EMPTY_ADDRESS ? '' : ismAddress,
|
|
255
|
+
hookAddress: hookAddress === TRON_EMPTY_ADDRESS ? '' : hookAddress,
|
|
256
|
+
denom: denom === TRON_EMPTY_ADDRESS ? '' : denom,
|
|
257
|
+
name: '',
|
|
258
|
+
symbol: '',
|
|
259
|
+
decimals: 0,
|
|
260
|
+
proxyAdmin: await this.getProxyAdmin(req.tokenAddress),
|
|
261
|
+
};
|
|
262
|
+
if (tokenType === AltVM.TokenType.native) {
|
|
263
|
+
return token;
|
|
264
|
+
}
|
|
265
|
+
const erc20 = this.tronweb.contract(ERC20Abi.abi, denom);
|
|
266
|
+
token.name = await erc20.name().call();
|
|
267
|
+
token.symbol = await erc20.symbol().call();
|
|
268
|
+
token.decimals = Number(await erc20.decimals().call());
|
|
269
|
+
return token;
|
|
270
|
+
}
|
|
271
|
+
async getRemoteRouters(req) {
|
|
272
|
+
const contract = this.tronweb.contract(HypNativeAbi.abi, req.tokenAddress);
|
|
273
|
+
const remoteRouters = [];
|
|
274
|
+
const domainIds = await contract.domains().call();
|
|
275
|
+
for (const domainId of domainIds) {
|
|
276
|
+
const { gasLimit } = await contract.destinationGas(domainId).call();
|
|
277
|
+
remoteRouters.push({
|
|
278
|
+
receiverDomainId: Number(domainId),
|
|
279
|
+
receiverAddress: await contract.routers(domainId).call(),
|
|
280
|
+
gas: gasLimit.toString(),
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
return {
|
|
284
|
+
address: req.tokenAddress,
|
|
285
|
+
remoteRouters,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
async getBridgedSupply(req) {
|
|
289
|
+
const { tokenType, denom } = await this.getToken({
|
|
290
|
+
tokenAddress: req.tokenAddress,
|
|
291
|
+
});
|
|
292
|
+
switch (tokenType) {
|
|
293
|
+
case AltVM.TokenType.native: {
|
|
294
|
+
return this.getBalance({
|
|
295
|
+
address: req.tokenAddress,
|
|
296
|
+
denom: '',
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
case AltVM.TokenType.synthetic: {
|
|
300
|
+
return this.getTotalSupply({
|
|
301
|
+
denom: req.tokenAddress,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
case AltVM.TokenType.collateral: {
|
|
305
|
+
return this.getBalance({
|
|
306
|
+
address: req.tokenAddress,
|
|
307
|
+
denom,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
default: {
|
|
311
|
+
throw new Error(`Unknown token type ${tokenType}`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
async quoteRemoteTransfer(req) {
|
|
316
|
+
assert(req.recipient, `Tron quote remote transfer needs the recipient`);
|
|
317
|
+
assert(req.amount, `Tron quote remote transfer needs the amount`);
|
|
318
|
+
const contract = this.tronweb.contract(HypNativeAbi.abi, req.tokenAddress);
|
|
319
|
+
const { quotes } = await contract
|
|
320
|
+
.quoteTransferRemote(req.destinationDomainId, req.recipient, req.amount)
|
|
321
|
+
.call();
|
|
322
|
+
if (!quotes.length) {
|
|
323
|
+
return {
|
|
324
|
+
denom: '',
|
|
325
|
+
amount: BigInt(0),
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
const denom = this.tronweb.address.fromHex(quotes[0].token);
|
|
329
|
+
return {
|
|
330
|
+
denom: denom === TRON_EMPTY_ADDRESS ? '' : denom,
|
|
331
|
+
amount: quotes[0].amount,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
// ### GET CORE TXS ###
|
|
335
|
+
async getCreateMailboxTransaction(req) {
|
|
336
|
+
return createDeploymentTransaction(this.tronweb, MailboxAbi, req.signer, [
|
|
337
|
+
req.domainId,
|
|
338
|
+
]);
|
|
339
|
+
}
|
|
340
|
+
async getSetDefaultIsmTransaction(req) {
|
|
341
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.mailboxAddress, 'setDefaultIsm(address)', {}, [
|
|
342
|
+
{
|
|
343
|
+
type: 'address',
|
|
344
|
+
value: req.ismAddress,
|
|
345
|
+
},
|
|
346
|
+
], this.tronweb.address.toHex(req.signer));
|
|
347
|
+
return transaction;
|
|
348
|
+
}
|
|
349
|
+
async getSetDefaultHookTransaction(req) {
|
|
350
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.mailboxAddress, 'setDefaultHook(address)', {}, [
|
|
351
|
+
{
|
|
352
|
+
type: 'address',
|
|
353
|
+
value: req.hookAddress,
|
|
354
|
+
},
|
|
355
|
+
], this.tronweb.address.toHex(req.signer));
|
|
356
|
+
return transaction;
|
|
357
|
+
}
|
|
358
|
+
async getSetRequiredHookTransaction(req) {
|
|
359
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.mailboxAddress, 'setRequiredHook(address)', {}, [
|
|
360
|
+
{
|
|
361
|
+
type: 'address',
|
|
362
|
+
value: req.hookAddress,
|
|
363
|
+
},
|
|
364
|
+
], this.tronweb.address.toHex(req.signer));
|
|
365
|
+
return transaction;
|
|
366
|
+
}
|
|
367
|
+
async getSetMailboxOwnerTransaction(req) {
|
|
368
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.mailboxAddress, 'transferOwnership(address)', {}, [
|
|
369
|
+
{
|
|
370
|
+
type: 'address',
|
|
371
|
+
value: req.newOwner,
|
|
372
|
+
},
|
|
373
|
+
], this.tronweb.address.toHex(req.signer));
|
|
374
|
+
return transaction;
|
|
375
|
+
}
|
|
376
|
+
async getCreateMerkleRootMultisigIsmTransaction(req) {
|
|
377
|
+
return getCreateMerkleRootMultisigIsmImplementationTx(this.tronweb, req.signer);
|
|
378
|
+
}
|
|
379
|
+
async getCreateMessageIdMultisigIsmTransaction(req) {
|
|
380
|
+
return getCreateMessageIdMultisigIsmImplementationTx(this.tronweb, req.signer);
|
|
381
|
+
}
|
|
382
|
+
async getCreateRoutingIsmTransaction(req) {
|
|
383
|
+
return getCreateRoutingIsmTx(this.tronweb, req.signer);
|
|
384
|
+
}
|
|
385
|
+
async getSetRoutingIsmRouteTransaction(req) {
|
|
386
|
+
return getSetRoutingIsmRouteTx(this.tronweb, req.signer, {
|
|
387
|
+
ismAddress: req.ismAddress,
|
|
388
|
+
domainIsm: req.route,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
async getRemoveRoutingIsmRouteTransaction(req) {
|
|
392
|
+
return getRemoveRoutingIsmRouteTx(this.tronweb, req.signer, {
|
|
393
|
+
ismAddress: req.ismAddress,
|
|
394
|
+
domainId: req.domainId,
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
async getSetRoutingIsmOwnerTransaction(req) {
|
|
398
|
+
return getSetRoutingIsmOwnerTx(this.tronweb, req.signer, {
|
|
399
|
+
ismAddress: req.ismAddress,
|
|
400
|
+
newOwner: req.newOwner,
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
async getCreateNoopIsmTransaction(req) {
|
|
404
|
+
return getCreateTestIsmTx(this.tronweb, req.signer);
|
|
405
|
+
}
|
|
406
|
+
async getCreateMerkleTreeHookTransaction(req) {
|
|
407
|
+
return createDeploymentTransaction(this.tronweb, MerkleTreeHookAbi, req.signer, [req.mailboxAddress]);
|
|
408
|
+
}
|
|
409
|
+
async getCreateInterchainGasPaymasterHookTransaction(req) {
|
|
410
|
+
return getCreateIgpTx(this.tronweb, req.signer);
|
|
411
|
+
}
|
|
412
|
+
async getSetInterchainGasPaymasterHookOwnerTransaction(req) {
|
|
413
|
+
return getSetIgpOwnerTx(this.tronweb, req.signer, {
|
|
414
|
+
igpAddress: req.hookAddress,
|
|
415
|
+
newOwner: req.newOwner,
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
async getSetDestinationGasConfigTransaction(req) {
|
|
419
|
+
return getSetIgpDestinationGasConfigTx(this.tronweb, req.signer, {
|
|
420
|
+
igpAddress: req.hookAddress,
|
|
421
|
+
destinationGasConfigs: [
|
|
422
|
+
{
|
|
423
|
+
remoteDomainId: req.destinationGasConfig.remoteDomainId,
|
|
424
|
+
gasOverhead: req.destinationGasConfig.gasOverhead,
|
|
425
|
+
},
|
|
426
|
+
],
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
async getRemoveDestinationGasConfigTransaction(req) {
|
|
430
|
+
return getRemoveIgpDestinationGasConfigTx(this.tronweb, req.signer, {
|
|
431
|
+
igpAddress: req.hookAddress,
|
|
432
|
+
remoteDomainIds: [req.remoteDomainId],
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
async getCreateNoopHookTransaction(req) {
|
|
436
|
+
return createDeploymentTransaction(this.tronweb, PausableHookAbi, req.signer, []);
|
|
437
|
+
}
|
|
438
|
+
async getCreateValidatorAnnounceTransaction(req) {
|
|
439
|
+
return createDeploymentTransaction(this.tronweb, ValidatorAnnounceAbi, req.signer, [req.mailboxAddress]);
|
|
440
|
+
}
|
|
441
|
+
async getCreateProxyAdminTransaction(req) {
|
|
442
|
+
return createDeploymentTransaction(this.tronweb, ProxyAdminAbi, req.signer, []);
|
|
443
|
+
}
|
|
444
|
+
async getSetProxyAdminOwnerTransaction(req) {
|
|
445
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.proxyAdminAddress, 'transferOwnership(address)', {}, [
|
|
446
|
+
{
|
|
447
|
+
type: 'address',
|
|
448
|
+
value: req.newOwner,
|
|
449
|
+
},
|
|
450
|
+
], this.tronweb.address.toHex(req.signer));
|
|
451
|
+
return transaction;
|
|
452
|
+
}
|
|
453
|
+
// ### GET WARP TXS ###
|
|
454
|
+
async getCreateNativeTokenTransaction(req) {
|
|
455
|
+
return createDeploymentTransaction(this.tronweb, HypNativeAbi, req.signer, [
|
|
456
|
+
1,
|
|
457
|
+
req.mailboxAddress,
|
|
458
|
+
]);
|
|
459
|
+
}
|
|
460
|
+
async getCreateCollateralTokenTransaction(req) {
|
|
461
|
+
return createDeploymentTransaction(this.tronweb, HypERC20CollateralAbi, req.signer, [req.collateralDenom, 1, req.mailboxAddress]);
|
|
462
|
+
}
|
|
463
|
+
async getCreateSyntheticTokenTransaction(req) {
|
|
464
|
+
return createDeploymentTransaction(this.tronweb, HypERC20Abi, req.signer, [
|
|
465
|
+
req.decimals,
|
|
466
|
+
1,
|
|
467
|
+
req.mailboxAddress,
|
|
468
|
+
]);
|
|
469
|
+
}
|
|
470
|
+
async getSetTokenOwnerTransaction(req) {
|
|
471
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.tokenAddress, 'transferOwnership(address)', {}, [
|
|
472
|
+
{
|
|
473
|
+
type: 'address',
|
|
474
|
+
value: req.newOwner,
|
|
475
|
+
},
|
|
476
|
+
], this.tronweb.address.toHex(req.signer));
|
|
477
|
+
return transaction;
|
|
478
|
+
}
|
|
479
|
+
async getSetTokenIsmTransaction(req) {
|
|
480
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.tokenAddress, 'setInterchainSecurityModule(address)', {}, [
|
|
481
|
+
{
|
|
482
|
+
type: 'address',
|
|
483
|
+
value: req.ismAddress || '',
|
|
484
|
+
},
|
|
485
|
+
], this.tronweb.address.toHex(req.signer));
|
|
486
|
+
return transaction;
|
|
487
|
+
}
|
|
488
|
+
async getSetTokenHookTransaction(req) {
|
|
489
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.tokenAddress, 'setHook(address)', {}, [
|
|
490
|
+
{
|
|
491
|
+
type: 'address',
|
|
492
|
+
value: req.hookAddress || '',
|
|
493
|
+
},
|
|
494
|
+
], this.tronweb.address.toHex(req.signer));
|
|
495
|
+
return transaction;
|
|
496
|
+
}
|
|
497
|
+
async getEnrollRemoteRouterTransaction(req) {
|
|
498
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.tokenAddress, 'enrollRemoteRouter(uint32,bytes32)', {}, [
|
|
499
|
+
{
|
|
500
|
+
type: 'uint32',
|
|
501
|
+
value: req.remoteRouter.receiverDomainId,
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
type: 'bytes32',
|
|
505
|
+
value: ensure0x(req.remoteRouter.receiverAddress),
|
|
506
|
+
},
|
|
507
|
+
], this.tronweb.address.toHex(req.signer));
|
|
508
|
+
return transaction;
|
|
509
|
+
}
|
|
510
|
+
async getUnenrollRemoteRouterTransaction(req) {
|
|
511
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.tokenAddress, 'unenrollRemoteRouter(uint32)', {}, [
|
|
512
|
+
{
|
|
513
|
+
type: 'uint32',
|
|
514
|
+
value: req.receiverDomainId,
|
|
515
|
+
},
|
|
516
|
+
], this.tronweb.address.toHex(req.signer));
|
|
517
|
+
return transaction;
|
|
518
|
+
}
|
|
519
|
+
async getTransferTransaction(req) {
|
|
520
|
+
if (req.denom) {
|
|
521
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.denom, 'transfer(address,uint256)', {}, [
|
|
522
|
+
{
|
|
523
|
+
type: 'address',
|
|
524
|
+
value: [req.recipient],
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
type: 'uint256',
|
|
528
|
+
value: [req.amount],
|
|
529
|
+
},
|
|
530
|
+
], this.tronweb.address.toHex(req.signer));
|
|
531
|
+
return transaction;
|
|
532
|
+
}
|
|
533
|
+
return this.tronweb.transactionBuilder.sendTrx(req.recipient, parseInt(req.amount), req.signer);
|
|
534
|
+
}
|
|
535
|
+
async getRemoteTransferTransaction(req) {
|
|
536
|
+
const { tokenType } = await this.getToken({
|
|
537
|
+
tokenAddress: req.tokenAddress,
|
|
538
|
+
});
|
|
539
|
+
const { transaction } = await this.tronweb.transactionBuilder.triggerSmartContract(req.tokenAddress, 'transferRemote(uint32,bytes32,uint256)', {
|
|
540
|
+
callValue: tokenType === AltVM.TokenType.native ? Number(req.amount) : 0,
|
|
541
|
+
}, [
|
|
542
|
+
{
|
|
543
|
+
type: 'uint32',
|
|
544
|
+
value: req.destinationDomainId,
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
type: 'bytes32',
|
|
548
|
+
value: ensure0x(req.recipient),
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
type: 'uint256',
|
|
552
|
+
value: req.amount,
|
|
553
|
+
},
|
|
554
|
+
], this.tronweb.address.toHex(req.signer));
|
|
555
|
+
return transaction;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/clients/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TronWeb } from 'tronweb';
|
|
2
|
+
import { AltVM } from '@hyperlane-xyz/provider-sdk';
|
|
3
|
+
import { TronReceipt, TronTransaction } from '../utils/types.js';
|
|
4
|
+
import { TronProvider } from './provider.js';
|
|
5
|
+
export declare class TronSigner extends TronProvider implements AltVM.ISigner<TronTransaction, TronReceipt> {
|
|
6
|
+
static connectWithSigner(rpcUrls: string[], privateKey: string, extraParams?: Record<string, any>): Promise<AltVM.ISigner<TronTransaction, TronReceipt>>;
|
|
7
|
+
protected constructor(rpcUrls: string[], privateKey: string);
|
|
8
|
+
getSignerAddress(): string;
|
|
9
|
+
getTronweb(): TronWeb;
|
|
10
|
+
supportsTransactionBatching(): boolean;
|
|
11
|
+
transactionToPrintableJson(transaction: TronTransaction): Promise<object>;
|
|
12
|
+
sendAndConfirmTransaction(transaction: TronTransaction): Promise<TronReceipt>;
|
|
13
|
+
sendAndConfirmBatchTransactions(_transactions: TronTransaction[]): Promise<TronReceipt>;
|
|
14
|
+
createMailbox(req: Omit<AltVM.ReqCreateMailbox, 'signer'>): Promise<AltVM.ResCreateMailbox>;
|
|
15
|
+
setDefaultIsm(req: Omit<AltVM.ReqSetDefaultIsm, 'signer'>): Promise<AltVM.ResSetDefaultIsm>;
|
|
16
|
+
setDefaultHook(req: Omit<AltVM.ReqSetDefaultHook, 'signer'>): Promise<AltVM.ResSetDefaultHook>;
|
|
17
|
+
setRequiredHook(req: Omit<AltVM.ReqSetRequiredHook, 'signer'>): Promise<AltVM.ResSetRequiredHook>;
|
|
18
|
+
setMailboxOwner(req: Omit<AltVM.ReqSetMailboxOwner, 'signer'>): Promise<AltVM.ResSetMailboxOwner>;
|
|
19
|
+
createMerkleRootMultisigIsm(req: Omit<AltVM.ReqCreateMerkleRootMultisigIsm, 'signer'>): Promise<AltVM.ResCreateMerkleRootMultisigIsm>;
|
|
20
|
+
createMessageIdMultisigIsm(req: Omit<AltVM.ReqCreateMessageIdMultisigIsm, 'signer'>): Promise<AltVM.ResCreateMessageIdMultisigIsm>;
|
|
21
|
+
createRoutingIsm(req: Omit<AltVM.ReqCreateRoutingIsm, 'signer'>): Promise<AltVM.ResCreateRoutingIsm>;
|
|
22
|
+
setRoutingIsmRoute(req: Omit<AltVM.ReqSetRoutingIsmRoute, 'signer'>): Promise<AltVM.ResSetRoutingIsmRoute>;
|
|
23
|
+
removeRoutingIsmRoute(req: Omit<AltVM.ReqRemoveRoutingIsmRoute, 'signer'>): Promise<AltVM.ResRemoveRoutingIsmRoute>;
|
|
24
|
+
setRoutingIsmOwner(req: Omit<AltVM.ReqSetRoutingIsmOwner, 'signer'>): Promise<AltVM.ResSetRoutingIsmOwner>;
|
|
25
|
+
createNoopIsm(req: Omit<AltVM.ReqCreateNoopIsm, 'signer'>): Promise<AltVM.ResCreateNoopIsm>;
|
|
26
|
+
createMerkleTreeHook(req: Omit<AltVM.ReqCreateMerkleTreeHook, 'signer'>): Promise<AltVM.ResCreateMerkleTreeHook>;
|
|
27
|
+
createInterchainGasPaymasterHook(req: Omit<AltVM.ReqCreateInterchainGasPaymasterHook, 'signer'>): Promise<AltVM.ResCreateInterchainGasPaymasterHook>;
|
|
28
|
+
setInterchainGasPaymasterHookOwner(req: Omit<AltVM.ReqSetInterchainGasPaymasterHookOwner, 'signer'>): Promise<AltVM.ResSetInterchainGasPaymasterHookOwner>;
|
|
29
|
+
setDestinationGasConfig(req: Omit<AltVM.ReqSetDestinationGasConfig, 'signer'>): Promise<AltVM.ResSetDestinationGasConfig>;
|
|
30
|
+
removeDestinationGasConfig(req: Omit<AltVM.ReqRemoveDestinationGasConfig, 'signer'>): Promise<AltVM.ResRemoveDestinationGasConfig>;
|
|
31
|
+
createNoopHook(req: Omit<AltVM.ReqCreateNoopHook, 'signer'>): Promise<AltVM.ResCreateNoopHook>;
|
|
32
|
+
createValidatorAnnounce(req: Omit<AltVM.ReqCreateValidatorAnnounce, 'signer'>): Promise<AltVM.ResCreateValidatorAnnounce>;
|
|
33
|
+
createProxyAdmin(req: Omit<AltVM.ReqCreateProxyAdmin, 'signer'>): Promise<AltVM.ResCreateProxyAdmin>;
|
|
34
|
+
setProxyAdminOwner(req: Omit<AltVM.ReqSetProxyAdminOwner, 'signer'>): Promise<AltVM.ResSetProxyAdminOwner>;
|
|
35
|
+
createNativeToken(req: Omit<AltVM.ReqCreateNativeToken, 'signer'>): Promise<AltVM.ResCreateNativeToken>;
|
|
36
|
+
createCollateralToken(req: Omit<AltVM.ReqCreateCollateralToken, 'signer'>): Promise<AltVM.ResCreateCollateralToken>;
|
|
37
|
+
createSyntheticToken(req: Omit<AltVM.ReqCreateSyntheticToken, 'signer'>): Promise<AltVM.ResCreateSyntheticToken>;
|
|
38
|
+
setTokenOwner(req: Omit<AltVM.ReqSetTokenOwner, 'signer'>): Promise<AltVM.ResSetTokenOwner>;
|
|
39
|
+
setTokenIsm(req: Omit<AltVM.ReqSetTokenIsm, 'signer'>): Promise<AltVM.ResSetTokenIsm>;
|
|
40
|
+
setTokenHook(req: Omit<AltVM.ReqSetTokenHook, 'signer'>): Promise<AltVM.ResSetTokenHook>;
|
|
41
|
+
enrollRemoteRouter(req: Omit<AltVM.ReqEnrollRemoteRouter, 'signer'>): Promise<AltVM.ResEnrollRemoteRouter>;
|
|
42
|
+
unenrollRemoteRouter(req: Omit<AltVM.ReqUnenrollRemoteRouter, 'signer'>): Promise<AltVM.ResUnenrollRemoteRouter>;
|
|
43
|
+
transfer(req: Omit<AltVM.ReqTransfer, 'signer'>): Promise<AltVM.ResTransfer>;
|
|
44
|
+
remoteTransfer(req: Omit<AltVM.ReqRemoteTransfer, 'signer'>): Promise<AltVM.ResRemoteTransfer>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/clients/signer.ts"],"names":[],"mappings":"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"}
|