@hyperlane-xyz/sdk 8.8.1 → 8.9.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/dist/block-explorer/etherscan.d.ts +41 -0
- package/dist/block-explorer/etherscan.d.ts.map +1 -0
- package/dist/block-explorer/etherscan.js +53 -0
- package/dist/block-explorer/etherscan.js.map +1 -0
- package/dist/ccip/HyperlaneCCIPDeployer.d.ts +18 -0
- package/dist/ccip/HyperlaneCCIPDeployer.d.ts.map +1 -0
- package/dist/ccip/HyperlaneCCIPDeployer.js +122 -0
- package/dist/ccip/HyperlaneCCIPDeployer.js.map +1 -0
- package/dist/ccip/consts.d.ts +24 -0
- package/dist/ccip/consts.d.ts.map +1 -0
- package/dist/ccip/consts.js +691 -0
- package/dist/ccip/consts.js.map +1 -0
- package/dist/ccip/utils.d.ts +46 -0
- package/dist/ccip/utils.d.ts.map +1 -0
- package/dist/ccip/utils.js +95 -0
- package/dist/ccip/utils.js.map +1 -0
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +27 -9
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/contracts/contracts.d.ts +2 -2
- package/dist/contracts/contracts.d.ts.map +1 -1
- package/dist/contracts/contracts.js +4 -13
- package/dist/contracts/contracts.js.map +1 -1
- package/dist/core/HyperlaneRelayer.d.ts +43 -3
- package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
- package/dist/core/types.d.ts +3558 -2040
- package/dist/core/types.d.ts.map +1 -1
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +4 -0
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/verify/utils.d.ts.map +1 -1
- package/dist/deploy/verify/utils.js +3 -9
- package/dist/deploy/verify/utils.js.map +1 -1
- package/dist/hook/EvmHookModule.d.ts +12 -4
- package/dist/hook/EvmHookModule.d.ts.map +1 -1
- package/dist/hook/EvmHookModule.hardhat-test.js +2 -106
- package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
- package/dist/hook/EvmHookModule.js +38 -10
- package/dist/hook/EvmHookModule.js.map +1 -1
- package/dist/hook/EvmHookReader.d.ts +7 -1
- package/dist/hook/EvmHookReader.d.ts.map +1 -1
- package/dist/hook/EvmHookReader.js +69 -4
- package/dist/hook/EvmHookReader.js.map +1 -1
- package/dist/hook/EvmHookReader.test.js +50 -1
- package/dist/hook/EvmHookReader.test.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts +4 -2
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +34 -5
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/hook/contracts.d.ts +4 -1
- package/dist/hook/contracts.d.ts.map +1 -1
- package/dist/hook/contracts.js +4 -1
- package/dist/hook/contracts.js.map +1 -1
- package/dist/hook/types.d.ts +2012 -3
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/hook/types.js +28 -0
- package/dist/hook/types.js.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/ism/EvmIsmModule.d.ts +4 -2
- package/dist/ism/EvmIsmModule.d.ts.map +1 -1
- package/dist/ism/EvmIsmModule.hardhat-test.js +10 -71
- package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
- package/dist/ism/EvmIsmModule.js +4 -4
- package/dist/ism/EvmIsmModule.js.map +1 -1
- package/dist/ism/EvmIsmReader.d.ts +1 -0
- package/dist/ism/EvmIsmReader.d.ts.map +1 -1
- package/dist/ism/EvmIsmReader.js +45 -7
- package/dist/ism/EvmIsmReader.js.map +1 -1
- package/dist/ism/EvmIsmReader.test.js +4 -1
- package/dist/ism/EvmIsmReader.test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +9 -4
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +15 -0
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +43 -4
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/metadata/builder.d.ts.map +1 -1
- package/dist/ism/metadata/builder.js +1 -0
- package/dist/ism/metadata/builder.js.map +1 -1
- package/dist/ism/metadata/routing.d.ts.map +1 -1
- package/dist/ism/metadata/routing.js +8 -2
- package/dist/ism/metadata/routing.js.map +1 -1
- package/dist/ism/types.d.ts +34 -5
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +15 -0
- package/dist/ism/types.js.map +1 -1
- package/dist/ism/utils.d.ts.map +1 -1
- package/dist/ism/utils.js +30 -2
- package/dist/ism/utils.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +276 -276
- package/dist/metadata/deploymentArtifacts.d.ts +2 -2
- package/dist/router/types.d.ts +129 -9
- package/dist/router/types.d.ts.map +1 -1
- package/dist/test/testUtils.d.ts +8 -0
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +191 -1
- package/dist/test/testUtils.js.map +1 -1
- package/dist/token/EvmERC20WarpModule.d.ts +4 -1
- package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpModule.js +12 -8
- package/dist/token/EvmERC20WarpModule.js.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.d.ts +4 -3
- package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +72 -3
- package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.js +84 -15
- package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +49 -15
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +152 -42
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +19 -0
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/checker.d.ts +4 -1
- package/dist/token/checker.d.ts.map +1 -1
- package/dist/token/checker.js +33 -5
- package/dist/token/checker.js.map +1 -1
- package/dist/token/config.d.ts +1 -0
- package/dist/token/config.d.ts.map +1 -1
- package/dist/token/config.js +1 -0
- package/dist/token/config.js.map +1 -1
- package/dist/token/configUtils.d.ts +10 -0
- package/dist/token/configUtils.d.ts.map +1 -0
- package/dist/token/configUtils.js +48 -0
- package/dist/token/configUtils.js.map +1 -0
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.hardhat-test.js +69 -6
- package/dist/token/deploy.hardhat-test.js.map +1 -1
- package/dist/token/deploy.js +6 -4
- package/dist/token/deploy.js.map +1 -1
- package/dist/token/types.d.ts +1333 -220
- package/dist/token/types.d.ts.map +1 -1
- package/dist/token/types.js +117 -2
- package/dist/token/types.js.map +1 -1
- package/dist/token/xerc20.d.ts +13 -0
- package/dist/token/xerc20.d.ts.map +1 -0
- package/dist/token/xerc20.js +174 -0
- package/dist/token/xerc20.js.map +1 -0
- package/dist/warp/types.d.ts +14 -14
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/token/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAEL,cAAc,EAEd,uBAAuB,
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/token/checker.ts"],"names":[],"mappings":"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"}
|
package/dist/token/config.d.ts
CHANGED
|
@@ -15,4 +15,5 @@ export declare enum TokenType {
|
|
|
15
15
|
nativeScaled = "nativeScaled"
|
|
16
16
|
}
|
|
17
17
|
export declare const gasOverhead: (tokenType: TokenType) => number;
|
|
18
|
+
export declare const NON_ZERO_SENDER_ADDRESS = "0x0000000000000000000000000000000000000001";
|
|
18
19
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/token/config.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,YAAY,iBAAiB;CAC9B;AAED,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAUlD,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/token/config.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,YAAY,iBAAiB;CAC9B;AAED,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAUlD,CAAC;AAEF,eAAO,MAAM,uBAAuB,+CACU,CAAC"}
|
package/dist/token/config.js
CHANGED
package/dist/token/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/token/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAeX;AAfD,WAAY,SAAS;IACnB,oCAAuB,CAAA;IACvB,gDAAmC,CAAA;IACnC,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,sCAAyB,CAAA;IACzB,gDAAmC,CAAA;IACnC,4DAA+C,CAAA;IAC/C,8BAAiB,CAAA;IACjB,4CAA+B,CAAA;IAC/B,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,4CAA+B,CAAA;IAC/B,8BAAiB,CAAA;IACjB,0CAA6B,CAAA;AAC/B,CAAC,EAfW,SAAS,KAAT,SAAS,QAepB;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAU,EAAE;IAC1D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,aAAa,CAAC;QAC7B,KAAK,SAAS,CAAC,SAAS;YACtB,OAAO,KAAM,CAAC;QAChB,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO,KAAM,CAAC;QAChB;YACE,OAAO,KAAM,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/token/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAeX;AAfD,WAAY,SAAS;IACnB,oCAAuB,CAAA;IACvB,gDAAmC,CAAA;IACnC,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,sCAAyB,CAAA;IACzB,gDAAmC,CAAA;IACnC,4DAA+C,CAAA;IAC/C,8BAAiB,CAAA;IACjB,4CAA+B,CAAA;IAC/B,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,4CAA+B,CAAA;IAC/B,8BAAiB,CAAA;IACjB,0CAA6B,CAAA;AAC/B,CAAC,EAfW,SAAS,KAAT,SAAS,QAepB;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAU,EAAE;IAC1D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,aAAa,CAAC;QAC7B,KAAK,SAAS,CAAC,SAAS;YACtB,OAAO,KAAM,CAAC;QAChB,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO,KAAM,CAAC;QAChB;YACE,OAAO,KAAM,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAClC,4CAA4C,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Address } from '@hyperlane-xyz/utils';
|
|
2
|
+
import { MultiProvider } from '../providers/MultiProvider.js';
|
|
3
|
+
import { DestinationGas, RemoteRouters } from '../router/types.js';
|
|
4
|
+
import { ChainMap } from '../types.js';
|
|
5
|
+
import { WarpCoreConfig } from '../warp/types.js';
|
|
6
|
+
import { WarpRouteDeployConfig } from './types.js';
|
|
7
|
+
export declare function getDefaultRemoteRouterAndDestinationGasConfig(multiProvider: MultiProvider, chain: string, deployedRoutersAddresses: ChainMap<Address>, warpDeployConfig: WarpRouteDeployConfig): [RemoteRouters, DestinationGas];
|
|
8
|
+
export declare function getRouterAddressesFromWarpCoreConfig(warpCoreConfig: WarpCoreConfig): ChainMap<Address>;
|
|
9
|
+
export declare function expandWarpDeployConfig(multiProvider: MultiProvider, warpDeployConfig: WarpRouteDeployConfig, deployedRoutersAddresses: ChainMap<Address>): Promise<WarpRouteDeployConfig>;
|
|
10
|
+
//# sourceMappingURL=configUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configUtils.d.ts","sourceRoot":"","sources":["../../src/token/configUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAU,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAYnD,wBAAgB,6CAA6C,CAC3D,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,MAAM,EACb,wBAAwB,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3C,gBAAgB,EAAE,qBAAqB,GACtC,CAAC,aAAa,EAAE,cAAc,CAAC,CAmBjC;AAED,wBAAgB,oCAAoC,CAClD,cAAc,EAAE,cAAc,GAC7B,QAAQ,CAAC,OAAO,CAAC,CAOnB;AAED,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,qBAAqB,EACvC,wBAAwB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAC1C,OAAO,CAAC,qBAAqB,CAAC,CA2BhC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { zeroAddress } from 'viem';
|
|
2
|
+
import { objMap } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { gasOverhead } from './config.js';
|
|
4
|
+
import { HypERC20Deployer } from './deploy.js';
|
|
5
|
+
/**
|
|
6
|
+
* Gets gas configuration for a chain
|
|
7
|
+
*/
|
|
8
|
+
const getGasConfig = (warpDeployConfig, chain) => warpDeployConfig[chain].gas?.toString() ||
|
|
9
|
+
gasOverhead(warpDeployConfig[chain].type).toString();
|
|
10
|
+
export function getDefaultRemoteRouterAndDestinationGasConfig(multiProvider, chain, deployedRoutersAddresses, warpDeployConfig) {
|
|
11
|
+
const remoteRouters = {};
|
|
12
|
+
const destinationGas = {};
|
|
13
|
+
const otherChains = multiProvider
|
|
14
|
+
.getRemoteChains(chain)
|
|
15
|
+
.filter((c) => Object.keys(deployedRoutersAddresses).includes(c));
|
|
16
|
+
for (const otherChain of otherChains) {
|
|
17
|
+
const domainId = multiProvider.getDomainId(otherChain);
|
|
18
|
+
remoteRouters[domainId] = {
|
|
19
|
+
address: deployedRoutersAddresses[otherChain],
|
|
20
|
+
};
|
|
21
|
+
destinationGas[domainId] = getGasConfig(warpDeployConfig, otherChain);
|
|
22
|
+
}
|
|
23
|
+
return [remoteRouters, destinationGas];
|
|
24
|
+
}
|
|
25
|
+
export function getRouterAddressesFromWarpCoreConfig(warpCoreConfig) {
|
|
26
|
+
return Object.fromEntries(warpCoreConfig.tokens.map((token) => [
|
|
27
|
+
token.chainName,
|
|
28
|
+
token.addressOrDenom,
|
|
29
|
+
]));
|
|
30
|
+
}
|
|
31
|
+
export async function expandWarpDeployConfig(multiProvider, warpDeployConfig, deployedRoutersAddresses) {
|
|
32
|
+
const derivedTokenMetadata = await HypERC20Deployer.deriveTokenMetadata(multiProvider, warpDeployConfig);
|
|
33
|
+
return objMap(warpDeployConfig, (chain, config) => {
|
|
34
|
+
const [remoteRouters, destinationGas] = getDefaultRemoteRouterAndDestinationGasConfig(multiProvider, chain, deployedRoutersAddresses, warpDeployConfig);
|
|
35
|
+
return {
|
|
36
|
+
// Default Expansion
|
|
37
|
+
...derivedTokenMetadata,
|
|
38
|
+
remoteRouters,
|
|
39
|
+
destinationGas,
|
|
40
|
+
hook: zeroAddress,
|
|
41
|
+
interchainSecurityModule: zeroAddress,
|
|
42
|
+
proxyAdmin: { owner: config.owner },
|
|
43
|
+
// User-specified config takes precedence
|
|
44
|
+
...config,
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=configUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configUtils.js","sourceRoot":"","sources":["../../src/token/configUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAW,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAOvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C;;GAEG;AACH,MAAM,YAAY,GAAG,CACnB,gBAAuC,EACvC,KAAa,EACL,EAAE,CACV,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE;IACvC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEvD,MAAM,UAAU,6CAA6C,CAC3D,aAA4B,EAC5B,KAAa,EACb,wBAA2C,EAC3C,gBAAuC;IAEvC,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,MAAM,cAAc,GAAmB,EAAE,CAAC;IAE1C,MAAM,WAAW,GAAG,aAAa;SAC9B,eAAe,CAAC,KAAK,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEvD,aAAa,CAAC,QAAQ,CAAC,GAAG;YACxB,OAAO,EAAE,wBAAwB,CAAC,UAAU,CAAC;SAC9C,CAAC;QAEF,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,cAA8B;IAE9B,OAAO,MAAM,CAAC,WAAW,CACvB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,cAAc;KACrB,CAAC,CACkB,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,aAA4B,EAC5B,gBAAuC,EACvC,wBAA2C;IAE3C,MAAM,oBAAoB,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CACrE,aAAa,EACb,gBAAgB,CACjB,CAAC;IACF,OAAO,MAAM,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChD,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GACnC,6CAA6C,CAC3C,aAAa,EACb,KAAK,EACL,wBAAwB,EACxB,gBAAgB,CACjB,CAAC;QAEJ,OAAO;YACL,oBAAoB;YACpB,GAAG,oBAAoB;YACvB,aAAa;YACb,cAAc;YACd,IAAI,EAAE,WAAW;YACjB,wBAAwB,EAAE,WAAW;YACrC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;YAEnC,yCAAyC;YACzC,GAAG,MAAM;SACV,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EAKf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EAEb,qBAAqB,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EAKf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EAEb,qBAAqB,EAOtB,MAAM,YAAY,CAAC;AAEpB,uBAAe,aAAa,CAC1B,SAAS,SAAS,cAAc,CAChC,SAAQ,iBAAiB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBAExD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,gBAAgB,UAAQ;IAUpB,eAAe,CACnB,CAAC,EAAE,SAAS,EACZ,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,GAAG,CAAC;IAkBT,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,GAAG,CAAC;WAuBF,mBAAmB,CAC9B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IA4E/B,MAAM,CAAC,SAAS,EAAE,qBAAqB;;;;CAmB9C;AAED,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;gBAElE,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,gBAAgB,UAAQ;IAY1B,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,SAAS;IASnE,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,iBAAiB;IAKxE,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAGzD;AAED,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;gBAEpE,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB;IAWrC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,SAAS;IASpE,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,kBAAkB;IAKzE,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAGzD"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
+
import { ethers } from 'ethers';
|
|
2
3
|
import hre from 'hardhat';
|
|
3
|
-
import { ERC20Test__factory } from '@hyperlane-xyz/core';
|
|
4
|
+
import { ERC20Test__factory, ProxyAdmin__factory, TransparentUpgradeableProxy__factory, XERC20Test__factory, } from '@hyperlane-xyz/core';
|
|
4
5
|
import { objMap } from '@hyperlane-xyz/utils';
|
|
5
6
|
import { TestChainName } from '../consts/testChains.js';
|
|
6
7
|
import { TestCoreDeployer } from '../core/TestCoreDeployer.js';
|
|
7
8
|
import { HyperlaneProxyFactoryDeployer } from '../deploy/HyperlaneProxyFactoryDeployer.js';
|
|
9
|
+
import { ViolationType } from '../deploy/types.js';
|
|
8
10
|
import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
|
|
9
11
|
import { MultiProvider } from '../providers/MultiProvider.js';
|
|
10
12
|
import { EvmERC20WarpRouteReader } from './EvmERC20WarpRouteReader.js';
|
|
13
|
+
import { HypERC20App } from './app.js';
|
|
14
|
+
import { HypERC20Checker } from './checker.js';
|
|
11
15
|
import { TokenType } from './config.js';
|
|
12
16
|
import { HypERC20Deployer } from './deploy.js';
|
|
13
17
|
const chain = TestChainName.test1;
|
|
@@ -18,6 +22,9 @@ describe('TokenDeployer', async () => {
|
|
|
18
22
|
let coreApp;
|
|
19
23
|
let config;
|
|
20
24
|
let token;
|
|
25
|
+
let xerc20;
|
|
26
|
+
let erc20;
|
|
27
|
+
let admin;
|
|
21
28
|
before(async () => {
|
|
22
29
|
[signer] = await hre.ethers.getSigners();
|
|
23
30
|
multiProvider = MultiProvider.createTestMultiProvider({ signer });
|
|
@@ -34,17 +41,73 @@ describe('TokenDeployer', async () => {
|
|
|
34
41
|
totalSupply: '100000',
|
|
35
42
|
...c,
|
|
36
43
|
}));
|
|
37
|
-
const { name, decimals, symbol, totalSupply } = config[chain];
|
|
38
|
-
const contract = await new ERC20Test__factory(signer).deploy(name, symbol, totalSupply, decimals);
|
|
39
|
-
token = contract.address;
|
|
40
44
|
});
|
|
41
45
|
beforeEach(async () => {
|
|
46
|
+
const { name, decimals, symbol, totalSupply } = config[chain];
|
|
47
|
+
const implementation = await new XERC20Test__factory(signer).deploy(name, symbol, totalSupply, decimals);
|
|
48
|
+
admin = await new ProxyAdmin__factory(signer).deploy();
|
|
49
|
+
const proxy = await new TransparentUpgradeableProxy__factory(signer).deploy(implementation.address, admin.address, XERC20Test__factory.createInterface().encodeFunctionData('initialize'));
|
|
50
|
+
token = proxy.address;
|
|
51
|
+
xerc20 = XERC20Test__factory.connect(token, signer);
|
|
52
|
+
erc20 = await new ERC20Test__factory(signer).deploy(name, symbol, totalSupply, decimals);
|
|
42
53
|
deployer = new HypERC20Deployer(multiProvider);
|
|
43
54
|
});
|
|
44
55
|
it('deploys', async () => {
|
|
45
56
|
await deployer.deploy(config);
|
|
46
57
|
});
|
|
47
|
-
for (const type of [
|
|
58
|
+
for (const type of [
|
|
59
|
+
TokenType.collateral,
|
|
60
|
+
TokenType.synthetic,
|
|
61
|
+
TokenType.XERC20,
|
|
62
|
+
]) {
|
|
63
|
+
const token = () => {
|
|
64
|
+
switch (type) {
|
|
65
|
+
case TokenType.XERC20:
|
|
66
|
+
return xerc20.address;
|
|
67
|
+
case TokenType.collateral:
|
|
68
|
+
return erc20.address;
|
|
69
|
+
default:
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
describe('HypERC20Checker', async () => {
|
|
74
|
+
let checker;
|
|
75
|
+
beforeEach(async () => {
|
|
76
|
+
config[chain] = {
|
|
77
|
+
...config[chain],
|
|
78
|
+
type,
|
|
79
|
+
// @ts-ignore
|
|
80
|
+
token: token(),
|
|
81
|
+
};
|
|
82
|
+
const contractsMap = await deployer.deploy(config);
|
|
83
|
+
const app = new HypERC20App(contractsMap, multiProvider);
|
|
84
|
+
checker = new HypERC20Checker(multiProvider, app, config);
|
|
85
|
+
});
|
|
86
|
+
it(`should have no violations on clean deploy of ${type}`, async () => {
|
|
87
|
+
await checker.check();
|
|
88
|
+
checker.expectEmpty();
|
|
89
|
+
});
|
|
90
|
+
it(`should check owner of collateral`, async () => {
|
|
91
|
+
if (type !== TokenType.XERC20) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
await xerc20.transferOwnership(ethers.Wallet.createRandom().address);
|
|
95
|
+
await checker.check();
|
|
96
|
+
checker.expectViolations({
|
|
97
|
+
[ViolationType.Owner]: 1,
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
it(`should check owner of collateral proxyAdmin`, async () => {
|
|
101
|
+
if (type !== TokenType.XERC20) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
await admin.transferOwnership(ethers.Wallet.createRandom().address);
|
|
105
|
+
await checker.check();
|
|
106
|
+
checker.expectViolations({
|
|
107
|
+
[ViolationType.Owner]: 1,
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
});
|
|
48
111
|
describe('ERC20WarpRouterReader', async () => {
|
|
49
112
|
let reader;
|
|
50
113
|
let routerAddress;
|
|
@@ -56,7 +119,7 @@ describe('TokenDeployer', async () => {
|
|
|
56
119
|
...config[chain],
|
|
57
120
|
type,
|
|
58
121
|
// @ts-ignore
|
|
59
|
-
token:
|
|
122
|
+
token: token(),
|
|
60
123
|
};
|
|
61
124
|
const warpRoute = await deployer.deploy(config);
|
|
62
125
|
routerAddress = warpRoute[chain][type].address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.hardhat-test.js","sourceRoot":"","sources":["../../src/token/deploy.hardhat-test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"deploy.hardhat-test.js","sourceRoot":"","sources":["../../src/token/deploy.hardhat-test.ts"],"names":[],"mappings":"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"}
|
package/dist/token/deploy.js
CHANGED
|
@@ -4,7 +4,7 @@ import { assert, objKeys, objMap, rootLogger } from '@hyperlane-xyz/utils';
|
|
|
4
4
|
import { GasRouterDeployer } from '../router/GasRouterDeployer.js';
|
|
5
5
|
import { TokenType, gasOverhead } from './config.js';
|
|
6
6
|
import { hypERC20contracts, hypERC20factories, hypERC721contracts, hypERC721factories, } from './contracts.js';
|
|
7
|
-
import { TokenMetadataSchema, isCollateralTokenConfig, isNativeTokenConfig, isSyntheticRebaseTokenConfig, isSyntheticTokenConfig, isTokenMetadata, } from './types.js';
|
|
7
|
+
import { TokenMetadataSchema, isCollateralTokenConfig, isNativeTokenConfig, isSyntheticRebaseTokenConfig, isSyntheticTokenConfig, isTokenMetadata, isXERC20TokenConfig, } from './types.js';
|
|
8
8
|
class TokenDeployer extends GasRouterDeployer {
|
|
9
9
|
constructor(multiProvider, factories, loggerName, ismFactory, contractVerifier, concurrentDeploy = false) {
|
|
10
10
|
super(multiProvider, factories, {
|
|
@@ -15,7 +15,7 @@ class TokenDeployer extends GasRouterDeployer {
|
|
|
15
15
|
}); // factories not used in deploy
|
|
16
16
|
}
|
|
17
17
|
async constructorArgs(_, config) {
|
|
18
|
-
if (isCollateralTokenConfig(config)) {
|
|
18
|
+
if (isCollateralTokenConfig(config) || isXERC20TokenConfig(config)) {
|
|
19
19
|
return [config.token, config.mailbox];
|
|
20
20
|
}
|
|
21
21
|
else if (isNativeTokenConfig(config)) {
|
|
@@ -41,7 +41,9 @@ class TokenDeployer extends GasRouterDeployer {
|
|
|
41
41
|
// TransferOwnership will happen later in RouterDeployer
|
|
42
42
|
signer,
|
|
43
43
|
];
|
|
44
|
-
if (isCollateralTokenConfig(config) ||
|
|
44
|
+
if (isCollateralTokenConfig(config) ||
|
|
45
|
+
isXERC20TokenConfig(config) ||
|
|
46
|
+
isNativeTokenConfig(config)) {
|
|
45
47
|
return defaultArgs;
|
|
46
48
|
}
|
|
47
49
|
else if (isSyntheticTokenConfig(config)) {
|
|
@@ -70,7 +72,7 @@ class TokenDeployer extends GasRouterDeployer {
|
|
|
70
72
|
});
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
|
-
if (isCollateralTokenConfig(config)) {
|
|
75
|
+
if (isCollateralTokenConfig(config) || isXERC20TokenConfig(config)) {
|
|
74
76
|
const provider = multiProvider.getProvider(chain);
|
|
75
77
|
if (config.isNft) {
|
|
76
78
|
const erc721 = ERC721Enumerable__factory.connect(config.token, provider);
|
package/dist/token/deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EACL,cAAc,EACd,yBAAyB,EAEzB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAM3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAIL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,mBAAmB,EAEnB,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"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"}
|