Skip to content

Commit 909b1ed

Browse files
authored
feat: deploy ETH warp route between plumetestnet and sepolia (#3285)
### Description PlumeTestnet <> Sepolia (Synthetic vs Native) ### Drive-by changes Added artifacts to core deployment for sepolia for adding plume which I missed in the original core deployment PR. ### Related issues - fixes https://github.com/hyperlane-xyz/issues/issues/1014 ### Backward compatibility Yes ### Testing Manual
1 parent c47ebdb commit 909b1ed

File tree

9 files changed

+2073
-2296
lines changed

9 files changed

+2073
-2296
lines changed

rust/config/testnet4_config.json

Lines changed: 261 additions & 559 deletions
Large diffs are not rendered by default.

typescript/infra/config/environments/testnet4/core/verification.json

Lines changed: 1582 additions & 1570 deletions
Large diffs are not rendered by default.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"plumetestnet": {
3+
"router": "0xD356C996277eFb7f75Ee8bd61b31cC781A12F54f"
4+
},
5+
"sepolia": {
6+
"router": "0xd99eA1D8b9542D35252504DDd59EDe8C43FB15fd"
7+
}
8+
}

typescript/infra/config/environments/testnet4/warp/verification.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,21 @@
1212
"constructorArguments": "00000000000000000000000049cfd6ef774acab14814d699e3f7ee36fdfba932",
1313
"isProxy": false
1414
}
15+
],
16+
"plumetestnet": [
17+
{
18+
"name": "HypERC20",
19+
"address": "0xD356C996277eFb7f75Ee8bd61b31cC781A12F54f",
20+
"constructorArguments": "000000000000000000000000000000000000000000000000000000000000001200000000000000000000000033db966328ea213b0f76ef96ca368ab37779f065",
21+
"isProxy": false
22+
}
23+
],
24+
"sepolia": [
25+
{
26+
"name": "HypNative",
27+
"address": "0xd99eA1D8b9542D35252504DDd59EDe8C43FB15fd",
28+
"constructorArguments": "000000000000000000000000ffaef09b3cd11d9b20d1a19becca54eec2884766",
29+
"isProxy": false
30+
}
1531
]
1632
}

typescript/infra/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"asn1.js": "5.4.1",
2323
"aws-kms-ethers-signer": "^0.1.3",
2424
"dotenv": "^10.0.0",
25+
"json-stable-stringify": "^1.1.1",
2526
"prom-client": "^14.0.1",
2627
"prompts": "^2.4.2",
2728
"yargs": "^17.7.2"
@@ -30,6 +31,7 @@
3031
"@nomiclabs/hardhat-ethers": "^2.2.1",
3132
"@nomiclabs/hardhat-waffle": "^2.0.6",
3233
"@types/chai": "^4.2.21",
34+
"@types/json-stable-stringify": "^1.0.36",
3335
"@types/mocha": "^10.0.1",
3436
"@types/node": "^16.9.1",
3537
"@types/prompts": "^2.0.14",

typescript/infra/scripts/deploy.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,20 +82,25 @@ async function main() {
8282
multiProvider,
8383
);
8484
const routerConfig = core.getRouterConfig(envConfig.owners);
85-
const inevm = {
86-
...routerConfig.inevm,
85+
const plumetestnet = {
86+
...routerConfig.plumetestnet,
8787
type: TokenType.synthetic,
88+
name: 'Wrapped Ether',
89+
symbol: 'WETH',
90+
decimals: 18,
91+
totalSupply: '0',
8892
};
89-
const ethereum = {
90-
...routerConfig.ethereum,
91-
type: TokenType.collateral,
92-
token: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
93-
hook: '0xb87AC8EA4533AE017604E44470F7c1E550AC6F10', // aggregation of IGP and Merkle, arbitrary config not supported for now
94-
interchainSecurityModule: aggregationIsm('inevm', Contexts.Hyperlane),
93+
const sepolia = {
94+
...routerConfig.sepolia,
95+
type: TokenType.native,
96+
interchainSecurityModule: aggregationIsm(
97+
'plumetestnet',
98+
Contexts.Hyperlane,
99+
),
95100
};
96101
config = {
97-
inevm,
98-
ethereum,
102+
plumetestnet,
103+
sepolia,
99104
};
100105
deployer = new HypERC20Deployer(multiProvider, ismFactory);
101106
} else if (module === Modules.INTERCHAIN_GAS_PAYMASTER) {

typescript/infra/src/utils/utils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as asn1 from 'asn1.js';
33
import { exec } from 'child_process';
44
import { ethers } from 'ethers';
55
import fs from 'fs';
6+
import stringify from 'json-stable-stringify';
67
import path from 'path';
78
import { parse as yamlParse } from 'yaml';
89

@@ -179,7 +180,7 @@ export function writeJsonAtPath(filepath: string, obj: any) {
179180
if (!fs.existsSync(dir)) {
180181
fs.mkdirSync(dir, { recursive: true });
181182
}
182-
fs.writeFileSync(filepath, JSON.stringify(obj, null, 2) + '\n');
183+
fs.writeFileSync(filepath, stringify(obj, { space: ' ' }) + '\n');
183184
}
184185

185186
export function writeJSON(directory: string, filename: string, obj: any) {

typescript/sdk/src/consts/environments/testnet.json

Lines changed: 159 additions & 156 deletions
Large diffs are not rendered by default.

yarn.lock

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4354,6 +4354,7 @@ __metadata:
43544354
"@safe-global/protocol-kit": "npm:^1.2.0"
43554355
"@solana/web3.js": "npm:^1.78.0"
43564356
"@types/chai": "npm:^4.2.21"
4357+
"@types/json-stable-stringify": "npm:^1.0.36"
43574358
"@types/mocha": "npm:^10.0.1"
43584359
"@types/node": "npm:^16.9.1"
43594360
"@types/prompts": "npm:^2.0.14"
@@ -4366,6 +4367,7 @@ __metadata:
43664367
ethereum-waffle: "npm:^4.0.10"
43674368
ethers: "npm:^5.7.2"
43684369
hardhat: "npm:^2.19.0"
4370+
json-stable-stringify: "npm:^1.1.1"
43694371
mocha: "npm:^10.2.0"
43704372
prettier: "npm:^2.8.8"
43714373
prom-client: "npm:^14.0.1"
@@ -5985,6 +5987,13 @@ __metadata:
59855987
languageName: node
59865988
linkType: hard
59875989

5990+
"@types/json-stable-stringify@npm:^1.0.36":
5991+
version: 1.0.36
5992+
resolution: "@types/json-stable-stringify@npm:1.0.36"
5993+
checksum: 765b07589e11a3896c3d06bb9e3a9be681e7edd95adf27370df0647a91bd2bfcfaf0e091fd4a13729343b388973f73f7e789d6cc62ab988240518a2d27c4a4e2
5994+
languageName: node
5995+
linkType: hard
5996+
59885997
"@types/keyv@npm:^3.1.1, @types/keyv@npm:^3.1.4":
59895998
version: 3.1.4
59905999
resolution: "@types/keyv@npm:3.1.4"
@@ -11917,6 +11926,18 @@ __metadata:
1191711926
languageName: node
1191811927
linkType: hard
1191911928

11929+
"json-stable-stringify@npm:^1.1.1":
11930+
version: 1.1.1
11931+
resolution: "json-stable-stringify@npm:1.1.1"
11932+
dependencies:
11933+
call-bind: "npm:^1.0.5"
11934+
isarray: "npm:^2.0.5"
11935+
jsonify: "npm:^0.0.1"
11936+
object-keys: "npm:^1.1.1"
11937+
checksum: 60853c1f63451319b5c7953465a555aa816cf84e60e3ca36b6c05225d8fdc4615127fb4ecb92f9f5ad880c552ab8cbae9a519f78b995e7788d6d89e57afafdeb
11938+
languageName: node
11939+
linkType: hard
11940+
1192011941
"json-stringify-safe@npm:^5.0.1, json-stringify-safe@npm:~5.0.1":
1192111942
version: 5.0.1
1192211943
resolution: "json-stringify-safe@npm:5.0.1"
@@ -11961,6 +11982,13 @@ __metadata:
1196111982
languageName: node
1196211983
linkType: hard
1196311984

11985+
"jsonify@npm:^0.0.1":
11986+
version: 0.0.1
11987+
resolution: "jsonify@npm:0.0.1"
11988+
checksum: 7b86b6f4518582ff1d8b7624ed6c6277affd5246445e864615dbdef843a4057ac58587684faf129ea111eeb80e01c15f0a4d9d03820eb3f3985fa67e81b12398
11989+
languageName: node
11990+
linkType: hard
11991+
1196411992
"jsonparse@npm:^1.2.0":
1196511993
version: 1.3.1
1196611994
resolution: "jsonparse@npm:1.3.1"

0 commit comments

Comments
 (0)