Skip to content

Commit 6a8ebb4

Browse files
Feat: Add XRPLEVM with ts-ignore (#687)
1 parent e366fa7 commit 6a8ebb4

File tree

1 file changed

+42
-38
lines changed

1 file changed

+42
-38
lines changed

evm/ts/src/nttWithExecutor.ts

Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,58 +2,62 @@ import {
22
nativeChainIds,
33
toChainId,
44
type Network,
5-
} from "@wormhole-foundation/sdk-base";
5+
} from '@wormhole-foundation/sdk-base';
66
import {
77
type AccountAddress,
88
type ChainAddress,
99
type ChainsConfig,
1010
Contracts,
1111
UnsignedTransaction,
12-
} from "@wormhole-foundation/sdk-definitions";
13-
import { Ntt, NttWithExecutor } from "@wormhole-foundation/sdk-definitions-ntt";
12+
} from '@wormhole-foundation/sdk-definitions';
13+
import { Ntt, NttWithExecutor } from '@wormhole-foundation/sdk-definitions-ntt';
1414
import {
1515
EvmPlatform,
1616
type EvmPlatformType,
1717
type EvmChains,
1818
EvmAddress,
19-
} from "@wormhole-foundation/sdk-evm";
20-
import { Provider, Interface } from "ethers";
21-
import { EvmNtt } from "./ntt.js";
19+
} from '@wormhole-foundation/sdk-evm';
20+
import { Provider, Interface } from 'ethers';
21+
import { EvmNtt } from './ntt.js';
2222

2323
const nttManagerWithExecutorAddresses: Partial<
2424
Record<Network, Partial<Record<EvmChains, string>>>
2525
> = {
2626
Mainnet: {
27-
Arbitrum: "0x0Af42A597b0C201D4dcf450DcD0c06d55ddC1C77",
28-
Avalanche: "0x4e9Af03fbf1aa2b79A2D4babD3e22e09f18Bb8EE",
29-
Base: "0x83216747fC21b86173D800E2960c0D5395de0F30",
30-
Berachain: "0x0a2AF374Cc9CCCbB0Acc4E34B20b9d02a0f08c30",
31-
Bsc: "0x39B57Dd9908F8be02CfeE283b67eA1303Bc29fe1",
32-
Celo: "0x3d69869fcB9e1CD1F4020b637fb8256030BAc8fC",
33-
Ethereum: "0xD2D9c936165a85F27a5a7e07aFb974D022B89463",
34-
HyperEVM: "0x431017B1718b86898C7590fFcCC380DEf0456393",
35-
Linea: "0xEAa5AddB5b8939Eb73F7faF46e193EefECaF13E9",
36-
Mezo: "0x484b5593BbB90383f94FB299470F09427cf6cfE2",
37-
Moonbeam: "0x1365593C8bae71a55e48E105a2Bb76d5928c7DE3",
38-
Optimism: "0x85C0129bE5226C9F0Cf4e419D2fefc1c3FCa25cF",
39-
Plume: "0x6Eb53371f646788De6B4D0225a4Ed1d9267188AD",
40-
Polygon: "0x6762157b73941e36cEd0AEf54614DdE545d0F990",
41-
Scroll: "0x055625d48968f99409244E8c3e03FbE73B235a62",
42-
Sonic: "0xaCa00703bb87F31D6F9fCcc963548b48FA46DfeB",
43-
Unichain: "0x607723D6353Dae3ef62B7B277Cfabd0F4bc6CB4C",
44-
Worldchain: "0x66b1644400D51e104272337226De3EF1A820eC79",
27+
Arbitrum: '0x0Af42A597b0C201D4dcf450DcD0c06d55ddC1C77',
28+
Avalanche: '0x4e9Af03fbf1aa2b79A2D4babD3e22e09f18Bb8EE',
29+
Base: '0x83216747fC21b86173D800E2960c0D5395de0F30',
30+
Berachain: '0x0a2AF374Cc9CCCbB0Acc4E34B20b9d02a0f08c30',
31+
Bsc: '0x39B57Dd9908F8be02CfeE283b67eA1303Bc29fe1',
32+
Celo: '0x3d69869fcB9e1CD1F4020b637fb8256030BAc8fC',
33+
Ethereum: '0xD2D9c936165a85F27a5a7e07aFb974D022B89463',
34+
HyperEVM: '0x431017B1718b86898C7590fFcCC380DEf0456393',
35+
Linea: '0xEAa5AddB5b8939Eb73F7faF46e193EefECaF13E9',
36+
Mezo: '0x484b5593BbB90383f94FB299470F09427cf6cfE2',
37+
Moonbeam: '0x1365593C8bae71a55e48E105a2Bb76d5928c7DE3',
38+
Optimism: '0x85C0129bE5226C9F0Cf4e419D2fefc1c3FCa25cF',
39+
Plume: '0x6Eb53371f646788De6B4D0225a4Ed1d9267188AD',
40+
Polygon: '0x6762157b73941e36cEd0AEf54614DdE545d0F990',
41+
Scroll: '0x055625d48968f99409244E8c3e03FbE73B235a62',
42+
Sonic: '0xaCa00703bb87F31D6F9fCcc963548b48FA46DfeB',
43+
Unichain: '0x607723D6353Dae3ef62B7B277Cfabd0F4bc6CB4C',
44+
Worldchain: '0x66b1644400D51e104272337226De3EF1A820eC79',
45+
// @ts-ignore
46+
XRPLEVM: '0x6bBd1ff3bB303F88835A714EE3241bF45DE26d29',
4547
},
4648
Testnet: {
47-
ArbitrumSepolia: "0xd048170F1ECB8D47E499D3459aC379DA023E2C1B",
48-
Avalanche: "0x4e9Af03fbf1aa2b79A2D4babD3e22e09f18Bb8EE",
49-
BaseSepolia: "0x5845E08d890E21687F7Ebf7CbAbD360cD91c6245",
50-
OptimismSepolia: "0xaDB1C56D363FF5A75260c3bd27dd7C1fC8421EF5",
51-
Sepolia: "0x54DD7080aE169DD923fE56d0C4f814a0a17B8f41",
52-
Seievm: "0x3F2D6441C7a59Dfe80f8e14142F9E28F6D440445",
53-
Converge: "0x3d8c26b67BDf630FBB44F09266aFA735F1129197",
54-
Plume: "0x6Eb53371f646788De6B4D0225a4Ed1d9267188AD",
55-
Monad: "0x93FE94Ad887a1B04DBFf1f736bfcD1698D4cfF66",
56-
Celo: "0x3d69869fcB9e1CD1F4020b637fb8256030BAc8fC",
49+
ArbitrumSepolia: '0xd048170F1ECB8D47E499D3459aC379DA023E2C1B',
50+
Avalanche: '0x4e9Af03fbf1aa2b79A2D4babD3e22e09f18Bb8EE',
51+
BaseSepolia: '0x5845E08d890E21687F7Ebf7CbAbD360cD91c6245',
52+
OptimismSepolia: '0xaDB1C56D363FF5A75260c3bd27dd7C1fC8421EF5',
53+
Sepolia: '0x54DD7080aE169DD923fE56d0C4f814a0a17B8f41',
54+
Seievm: '0x3F2D6441C7a59Dfe80f8e14142F9E28F6D440445',
55+
Converge: '0x3d8c26b67BDf630FBB44F09266aFA735F1129197',
56+
Plume: '0x6Eb53371f646788De6B4D0225a4Ed1d9267188AD',
57+
Monad: '0x93FE94Ad887a1B04DBFf1f736bfcD1698D4cfF66',
58+
Celo: '0x3d69869fcB9e1CD1F4020b637fb8256030BAc8fC',
59+
// @ts-ignore
60+
XRPLEVM: '0xcDD9d7C759b29680f7a516d0058de8293b2AC7b1',
5761
},
5862
};
5963

@@ -150,13 +154,13 @@ export class EvmNttWithExecutor<N extends Network, C extends EvmChains>
150154
amount
151155
);
152156

153-
yield ntt.createUnsignedTx(txReq, "Ntt.Approve");
157+
yield ntt.createUnsignedTx(txReq, 'Ntt.Approve');
154158
}
155159

156160
// ABI for the INttManagerWithExecutor transfer function
157161
// TODO: type safety. typechain brings in so much boilerplate code and is soft deprecated. Use Viem instead?
158162
const abi = [
159-
"function transfer(address nttManager, uint256 amount, uint16 recipientChain, bytes32 recipientAddress, bytes32 refundAddress, bytes encodedInstructions, (uint256 value, address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64 msgId)",
163+
'function transfer(address nttManager, uint256 amount, uint16 recipientChain, bytes32 recipientAddress, bytes32 refundAddress, bytes encodedInstructions, (uint256 value, address refundAddress, bytes signedQuote, bytes instructions) executorArgs, (uint16 dbps, address payee) feeArgs) external payable returns (uint64 msgId)',
160164
];
161165

162166
const iface = new Interface(abi);
@@ -181,7 +185,7 @@ export class EvmNttWithExecutor<N extends Network, C extends EvmChains>
181185
payee: quote.referrer.address.toString(),
182186
};
183187

184-
const data = iface.encodeFunctionData("transfer", [
188+
const data = iface.encodeFunctionData('transfer', [
185189
nttManager,
186190
amount,
187191
recipientChain,
@@ -198,7 +202,7 @@ export class EvmNttWithExecutor<N extends Network, C extends EvmChains>
198202
value: quote.estimatedCost + deliveryPrice,
199203
};
200204

201-
yield ntt.createUnsignedTx(txReq, "NttWithExecutor.transfer");
205+
yield ntt.createUnsignedTx(txReq, 'NttWithExecutor.transfer');
202206
}
203207

204208
async estimateMsgValueAndGasLimit(

0 commit comments

Comments
 (0)