@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.
Files changed (143) hide show
  1. package/dist/block-explorer/etherscan.d.ts +41 -0
  2. package/dist/block-explorer/etherscan.d.ts.map +1 -0
  3. package/dist/block-explorer/etherscan.js +53 -0
  4. package/dist/block-explorer/etherscan.js.map +1 -0
  5. package/dist/ccip/HyperlaneCCIPDeployer.d.ts +18 -0
  6. package/dist/ccip/HyperlaneCCIPDeployer.d.ts.map +1 -0
  7. package/dist/ccip/HyperlaneCCIPDeployer.js +122 -0
  8. package/dist/ccip/HyperlaneCCIPDeployer.js.map +1 -0
  9. package/dist/ccip/consts.d.ts +24 -0
  10. package/dist/ccip/consts.d.ts.map +1 -0
  11. package/dist/ccip/consts.js +691 -0
  12. package/dist/ccip/consts.js.map +1 -0
  13. package/dist/ccip/utils.d.ts +46 -0
  14. package/dist/ccip/utils.d.ts.map +1 -0
  15. package/dist/ccip/utils.js +95 -0
  16. package/dist/ccip/utils.js.map +1 -0
  17. package/dist/consts/multisigIsm.d.ts.map +1 -1
  18. package/dist/consts/multisigIsm.js +27 -9
  19. package/dist/consts/multisigIsm.js.map +1 -1
  20. package/dist/contracts/contracts.d.ts +2 -2
  21. package/dist/contracts/contracts.d.ts.map +1 -1
  22. package/dist/contracts/contracts.js +4 -13
  23. package/dist/contracts/contracts.js.map +1 -1
  24. package/dist/core/HyperlaneRelayer.d.ts +43 -3
  25. package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
  26. package/dist/core/types.d.ts +3558 -2040
  27. package/dist/core/types.d.ts.map +1 -1
  28. package/dist/deploy/proxy.d.ts.map +1 -1
  29. package/dist/deploy/proxy.js +4 -0
  30. package/dist/deploy/proxy.js.map +1 -1
  31. package/dist/deploy/verify/utils.d.ts.map +1 -1
  32. package/dist/deploy/verify/utils.js +3 -9
  33. package/dist/deploy/verify/utils.js.map +1 -1
  34. package/dist/hook/EvmHookModule.d.ts +12 -4
  35. package/dist/hook/EvmHookModule.d.ts.map +1 -1
  36. package/dist/hook/EvmHookModule.hardhat-test.js +2 -106
  37. package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
  38. package/dist/hook/EvmHookModule.js +38 -10
  39. package/dist/hook/EvmHookModule.js.map +1 -1
  40. package/dist/hook/EvmHookReader.d.ts +7 -1
  41. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  42. package/dist/hook/EvmHookReader.js +69 -4
  43. package/dist/hook/EvmHookReader.js.map +1 -1
  44. package/dist/hook/EvmHookReader.test.js +50 -1
  45. package/dist/hook/EvmHookReader.test.js.map +1 -1
  46. package/dist/hook/HyperlaneHookDeployer.d.ts +4 -2
  47. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  48. package/dist/hook/HyperlaneHookDeployer.js +34 -5
  49. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  50. package/dist/hook/contracts.d.ts +4 -1
  51. package/dist/hook/contracts.d.ts.map +1 -1
  52. package/dist/hook/contracts.js +4 -1
  53. package/dist/hook/contracts.js.map +1 -1
  54. package/dist/hook/types.d.ts +2012 -3
  55. package/dist/hook/types.d.ts.map +1 -1
  56. package/dist/hook/types.js +28 -0
  57. package/dist/hook/types.js.map +1 -1
  58. package/dist/index.d.ts +11 -5
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +10 -4
  61. package/dist/index.js.map +1 -1
  62. package/dist/ism/EvmIsmModule.d.ts +4 -2
  63. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  64. package/dist/ism/EvmIsmModule.hardhat-test.js +10 -71
  65. package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
  66. package/dist/ism/EvmIsmModule.js +4 -4
  67. package/dist/ism/EvmIsmModule.js.map +1 -1
  68. package/dist/ism/EvmIsmReader.d.ts +1 -0
  69. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  70. package/dist/ism/EvmIsmReader.js +45 -7
  71. package/dist/ism/EvmIsmReader.js.map +1 -1
  72. package/dist/ism/EvmIsmReader.test.js +4 -1
  73. package/dist/ism/EvmIsmReader.test.js.map +1 -1
  74. package/dist/ism/HyperlaneIsmFactory.d.ts +9 -4
  75. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  76. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +15 -0
  77. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  78. package/dist/ism/HyperlaneIsmFactory.js +43 -4
  79. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  80. package/dist/ism/metadata/builder.d.ts.map +1 -1
  81. package/dist/ism/metadata/builder.js +1 -0
  82. package/dist/ism/metadata/builder.js.map +1 -1
  83. package/dist/ism/metadata/routing.d.ts.map +1 -1
  84. package/dist/ism/metadata/routing.js +8 -2
  85. package/dist/ism/metadata/routing.js.map +1 -1
  86. package/dist/ism/types.d.ts +34 -5
  87. package/dist/ism/types.d.ts.map +1 -1
  88. package/dist/ism/types.js +15 -0
  89. package/dist/ism/types.js.map +1 -1
  90. package/dist/ism/utils.d.ts.map +1 -1
  91. package/dist/ism/utils.js +30 -2
  92. package/dist/ism/utils.js.map +1 -1
  93. package/dist/metadata/agentConfig.d.ts +276 -276
  94. package/dist/metadata/deploymentArtifacts.d.ts +2 -2
  95. package/dist/router/types.d.ts +129 -9
  96. package/dist/router/types.d.ts.map +1 -1
  97. package/dist/test/testUtils.d.ts +8 -0
  98. package/dist/test/testUtils.d.ts.map +1 -1
  99. package/dist/test/testUtils.js +191 -1
  100. package/dist/test/testUtils.js.map +1 -1
  101. package/dist/token/EvmERC20WarpModule.d.ts +4 -1
  102. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  103. package/dist/token/EvmERC20WarpModule.js +12 -8
  104. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  105. package/dist/token/EvmERC20WarpRouteReader.d.ts +4 -3
  106. package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
  107. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +72 -3
  108. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
  109. package/dist/token/EvmERC20WarpRouteReader.js +84 -15
  110. package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
  111. package/dist/token/adapters/EvmTokenAdapter.d.ts +49 -15
  112. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
  113. package/dist/token/adapters/EvmTokenAdapter.js +152 -42
  114. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
  115. package/dist/token/adapters/ITokenAdapter.d.ts +19 -0
  116. package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
  117. package/dist/token/checker.d.ts +4 -1
  118. package/dist/token/checker.d.ts.map +1 -1
  119. package/dist/token/checker.js +33 -5
  120. package/dist/token/checker.js.map +1 -1
  121. package/dist/token/config.d.ts +1 -0
  122. package/dist/token/config.d.ts.map +1 -1
  123. package/dist/token/config.js +1 -0
  124. package/dist/token/config.js.map +1 -1
  125. package/dist/token/configUtils.d.ts +10 -0
  126. package/dist/token/configUtils.d.ts.map +1 -0
  127. package/dist/token/configUtils.js +48 -0
  128. package/dist/token/configUtils.js.map +1 -0
  129. package/dist/token/deploy.d.ts.map +1 -1
  130. package/dist/token/deploy.hardhat-test.js +69 -6
  131. package/dist/token/deploy.hardhat-test.js.map +1 -1
  132. package/dist/token/deploy.js +6 -4
  133. package/dist/token/deploy.js.map +1 -1
  134. package/dist/token/types.d.ts +1333 -220
  135. package/dist/token/types.d.ts.map +1 -1
  136. package/dist/token/types.js +117 -2
  137. package/dist/token/types.js.map +1 -1
  138. package/dist/token/xerc20.d.ts +13 -0
  139. package/dist/token/xerc20.d.ts.map +1 -0
  140. package/dist/token/xerc20.js +174 -0
  141. package/dist/token/xerc20.js.map +1 -0
  142. package/dist/warp/types.d.ts +14 -14
  143. package/package.json +3 -3
@@ -1,12 +1,12 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import { PopulatedTransaction } from 'ethers';
3
- import { ERC20, HypERC20, HypERC20Collateral, HypXERC20, HypXERC20Lockbox, IXERC20 } from '@hyperlane-xyz/core';
3
+ import { ERC20, HypERC20, HypERC20Collateral, HypXERC20, HypXERC20Lockbox, IXERC20, IXERC20VS } from '@hyperlane-xyz/core';
4
4
  import { Address, Domain, Numberish } from '@hyperlane-xyz/utils';
5
5
  import { BaseEvmAdapter } from '../../app/MultiProtocolApp.js';
6
6
  import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider.js';
7
7
  import { ChainName } from '../../types.js';
8
8
  import { TokenMetadata } from '../types.js';
9
- import { IHypTokenAdapter, IHypXERC20Adapter, ITokenAdapter, InterchainGasQuote, TransferParams, TransferRemoteParams } from './ITokenAdapter.js';
9
+ import { IHypTokenAdapter, IHypVSXERC20Adapter, IHypXERC20Adapter, ITokenAdapter, IXERC20VSAdapter, InterchainGasQuote, RateLimitMidPoint, TransferParams, TransferRemoteParams } from './ITokenAdapter.js';
10
10
  export declare const EVM_TRANSFER_REMOTE_GAS_ESTIMATE = 450000n;
11
11
  export declare class EvmNativeTokenAdapter extends BaseEvmAdapter implements ITokenAdapter<PopulatedTransaction> {
12
12
  getBalance(address: Address): Promise<bigint>;
@@ -83,52 +83,86 @@ export declare class EvmHypCollateralFiatAdapter extends EvmHypCollateralAdapter
83
83
  */
84
84
  getBridgedSupply(): Promise<bigint>;
85
85
  }
86
- export declare class EvmHypXERC20LockboxAdapter extends EvmHypCollateralAdapter implements IHypXERC20Adapter<PopulatedTransaction> {
86
+ declare abstract class BaseEvmHypXERC20Adapter<X extends IXERC20 | IXERC20VS> extends EvmHypCollateralAdapter implements IHypXERC20Adapter<PopulatedTransaction> {
87
87
  readonly chainName: ChainName;
88
88
  readonly multiProvider: MultiProtocolProvider;
89
89
  readonly addresses: {
90
90
  token: Address;
91
91
  };
92
- hypXERC20Lockbox: HypXERC20Lockbox;
92
+ readonly hypXERC20: HypXERC20;
93
93
  constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
94
94
  token: Address;
95
95
  });
96
- /**
97
- * Note this may be inaccurate, as this returns the balance
98
- * of the lockbox contract, which may be used by other bridges.
99
- * However this is the best we can do with a simple view call.
100
- */
96
+ protected abstract connectXERC20(xerc20Addr: Address): X;
97
+ getXERC20(): Promise<X>;
101
98
  getBridgedSupply(): Promise<bigint>;
102
99
  getMintLimit(): Promise<bigint>;
103
100
  getMintMaxLimit(): Promise<bigint>;
104
101
  getBurnLimit(): Promise<bigint>;
105
102
  getBurnMaxLimit(): Promise<bigint>;
106
- getXErc20(): Promise<IXERC20>;
107
103
  }
108
- export declare class EvmHypXERC20Adapter extends EvmHypCollateralAdapter implements IHypXERC20Adapter<PopulatedTransaction> {
104
+ declare abstract class BaseEvmHypXERC20LockboxAdapter<X extends IXERC20 | IXERC20VS> extends EvmHypCollateralAdapter implements IHypXERC20Adapter<PopulatedTransaction> {
109
105
  readonly chainName: ChainName;
110
106
  readonly multiProvider: MultiProtocolProvider;
111
107
  readonly addresses: {
112
108
  token: Address;
113
109
  };
114
- hypXERC20: HypXERC20;
110
+ protected readonly hypXERC20Lockbox: HypXERC20Lockbox;
115
111
  constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
116
112
  token: Address;
117
113
  });
118
114
  /**
119
- * Note this may be inaccurate, as this returns the total supply
120
- * of the xERC20 contract, which may be used by other bridges.
115
+ * Note this may be inaccurate, as this returns the balance
116
+ * of the lockbox contract, which may be used by other bridges.
121
117
  * However this is the best we can do with a simple view call.
122
118
  */
123
119
  getBridgedSupply(): Promise<bigint>;
120
+ getXERC20(): Promise<X>;
121
+ protected abstract connectXERC20(xERC20Addr: Address): X;
124
122
  getMintLimit(): Promise<bigint>;
125
123
  getMintMaxLimit(): Promise<bigint>;
126
124
  getBurnLimit(): Promise<bigint>;
127
125
  getBurnMaxLimit(): Promise<bigint>;
128
- getXErc20(): Promise<IXERC20>;
126
+ }
127
+ export declare class EvmHypXERC20LockboxAdapter extends BaseEvmHypXERC20LockboxAdapter<IXERC20> {
128
+ protected connectXERC20(xERC20Addr: Address): IXERC20;
129
+ }
130
+ export declare class EvmHypVSXERC20LockboxAdapter extends BaseEvmHypXERC20LockboxAdapter<IXERC20VS> implements IHypVSXERC20Adapter<PopulatedTransaction> {
131
+ protected connectXERC20(xERC20Addr: Address): IXERC20VS;
132
+ getRateLimits(): Promise<RateLimitMidPoint>;
133
+ populateSetBufferCapTx(newBufferCap: bigint): Promise<PopulatedTransaction>;
134
+ populateSetRateLimitPerSecondTx(newRateLimitPerSecond: bigint): Promise<PopulatedTransaction>;
135
+ populateAddBridgeTx(bufferCap: bigint, rateLimitPerSecond: bigint): Promise<PopulatedTransaction>;
136
+ }
137
+ export declare class EvmHypXERC20Adapter extends BaseEvmHypXERC20Adapter<IXERC20> {
138
+ protected connectXERC20(xerc20Addr: string): IXERC20;
139
+ }
140
+ export declare class EvmHypVSXERC20Adapter extends BaseEvmHypXERC20Adapter<IXERC20VS> implements IHypVSXERC20Adapter<PopulatedTransaction> {
141
+ protected connectXERC20(xerc20Addr: string): IXERC20VS;
142
+ getRateLimits(): Promise<RateLimitMidPoint>;
143
+ populateSetBufferCapTx(newBufferCap: bigint): Promise<PopulatedTransaction>;
144
+ populateSetRateLimitPerSecondTx(newRateLimitPerSecond: bigint): Promise<PopulatedTransaction>;
145
+ populateAddBridgeTx(bufferCap: bigint, rateLimitPerSecond: bigint): Promise<PopulatedTransaction>;
129
146
  }
130
147
  export declare class EvmHypNativeAdapter extends EvmHypCollateralAdapter implements IHypTokenAdapter<PopulatedTransaction> {
131
148
  isApproveRequired(): Promise<boolean>;
132
149
  populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }: TransferRemoteParams): Promise<PopulatedTransaction>;
133
150
  }
151
+ export declare class EvmXERC20VSAdapter extends EvmTokenAdapter implements IXERC20VSAdapter<PopulatedTransaction> {
152
+ readonly chainName: ChainName;
153
+ readonly multiProvider: MultiProtocolProvider;
154
+ readonly addresses: {
155
+ token: Address;
156
+ };
157
+ xERC20VS: IXERC20VS;
158
+ constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
159
+ token: Address;
160
+ });
161
+ getRateLimits(bridge: Address): Promise<RateLimitMidPoint>;
162
+ populateRemoveBridgeTx(bridge: Address): Promise<PopulatedTransaction>;
163
+ populateSetBufferCapTx(bridge: Address, newBufferCap: bigint): Promise<PopulatedTransaction>;
164
+ populateSetRateLimitPerSecondTx(bridge: Address, newRateLimitPerSecond: bigint): Promise<PopulatedTransaction>;
165
+ populateAddBridgeTx(bufferCap: bigint, rateLimitPerSecond: bigint, bridge: Address): Promise<PopulatedTransaction>;
166
+ }
167
+ export {};
134
168
  //# sourceMappingURL=EvmTokenAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmTokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmTokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAa,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EACL,KAAK,EAEL,QAAQ,EACR,kBAAkB,EAGlB,SAAS,EACT,gBAAgB,EAGhB,OAAO,EACP,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,OAAO,EACP,MAAM,EACN,SAAS,EAKV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,gCAAgC,UAAW,CAAC;AAGzD,qBAAa,qBACX,SAAQ,cACR,YAAW,aAAa,CAAC,oBAAoB,CAAC;IAExC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7C,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAKrC,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9D,iBAAiB,CACrB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,SAAS,GACxB,OAAO,CAAC,OAAO,CAAC;IAIb,iBAAiB,CACrB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAI1B,kBAAkB,CAAC,EACvB,aAAa,EACb,SAAS,GACV,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK3C,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAIpD;AAGD,qBAAa,eAAe,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAClD,SAAQ,qBACR,YAAW,aAAa,CAAC,oBAAoB,CAAC;aAK5B,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;aAC7B,eAAe,EAAE,GAAG;IANtC,SAAgB,QAAQ,EAAE,CAAC,CAAC;gBAGV,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,EAC7B,eAAe,GAAE,GAAoB;IASxC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7C,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAUpD,iBAAiB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,OAAO,CAAC;IAKV,iBAAiB,CAAC,EACzB,aAAa,EACb,SAAS,GACV,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAOxC,kBAAkB,CAAC,EAC1B,aAAa,EACb,SAAS,GACV,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAO3C,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAIxC;AAGD,qBAAa,sBACX,SAAQ,eAAe,CAAC,QAAQ,CAChC,YAAW,gBAAgB,CAAC,oBAAoB,CAAC;aAG/B,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;aAC7B,eAAe,EAAE,GAAG;gBAHpB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,EAC7B,eAAe,GAAE,GAAuB;IAK3C,iBAAiB,CAC9B,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,SAAS,GACxB,OAAO,CAAC,OAAO,CAAC;IAInB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcjD,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQ1E,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIzC,sBAAsB,CAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAOxB,wBAAwB,CAAC,EAC7B,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,GACd,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAWxD;AAGD,qBAAa,uBACX,SAAQ,sBACR,YAAW,gBAAgB,CAAC,oBAAoB,CAAC;aAM/B,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;IAN/C,SAAgB,kBAAkB,EAAE,kBAAkB,CAAC;IACvD,SAAS,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;gBAGtB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;cAS/B,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;cAO1C,sBAAsB,IAAI,OAAO,CAAC,eAAe,CAAC;IAMzD,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI/C,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpD,iBAAiB,CACxB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,OAAO,CAAC;IAMV,iBAAiB,CACxB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,oBAAoB,CAAC;IAMvB,kBAAkB,CACzB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,oBAAoB,CAAC;CAKjC;AAED,qBAAa,2BACX,SAAQ,uBACR,YAAW,gBAAgB,CAAC,oBAAoB,CAAC;IAEjD;;;;OAIG;IACY,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAInD;AAED,uBAAe,uBAAuB,CAAC,CAAC,SAAS,OAAO,GAAG,SAAS,CAClE,SAAQ,uBACR,YAAW,iBAAiB,CAAC,oBAAoB,CAAC;aAKhC,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;IAL/C,SAAgB,SAAS,EAAE,SAAS,CAAC;gBAGnB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;IAS/C,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAElD,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC;IAKd,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAO5C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAM/B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAMlC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAM/B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAKzC;AAED,uBAAe,8BAA8B,CAAC,CAAC,SAAS,OAAO,GAAG,SAAS,CACzE,SAAQ,uBACR,YAAW,iBAAiB,CAAC,oBAAoB,CAAC;aAKhC,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;IAL/C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;gBAGpC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;IAU/C;;;;OAIG;IACY,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK5C,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC;IAK7B,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAElD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAM/B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAMlC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAM/B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAKzC;AAGD,qBAAa,0BAA2B,SAAQ,8BAA8B,CAAC,OAAO,CAAC;IACrF,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO;CAGtD;AAED,qBAAa,4BACX,SAAQ,8BAA8B,CAAC,SAAS,CAChD,YAAW,mBAAmB,CAAC,oBAAoB,CAAC;IAEpD,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,SAAS;IAKjD,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAY3C,sBAAsB,CAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAQ1B,+BAA+B,CACnC,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IAQ1B,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,oBAAoB,CAAC;CAQjC;AAGD,qBAAa,mBAAoB,SAAQ,uBAAuB,CAAC,OAAO,CAAC;IACvE,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAGrD;AAED,qBAAa,qBACX,SAAQ,uBAAuB,CAAC,SAAS,CACzC,YAAW,mBAAmB,CAAC,oBAAoB,CAAC;IAEpD,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS;IAIhD,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAa3C,sBAAsB,CAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAQ1B,+BAA+B,CACnC,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IAQ1B,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,oBAAoB,CAAC;CAQjC;AAGD,qBAAa,mBACX,SAAQ,uBACR,YAAW,gBAAgB,CAAC,oBAAoB,CAAC;IAElC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC,wBAAwB,CAAC,EACtC,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,GACd,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAmBxD;AAED,qBAAa,kBACX,SAAQ,eACR,YAAW,gBAAgB,CAAC,oBAAoB,CAAC;aAK/B,SAAS,EAAE,SAAS;aACpB,aAAa,EAAE,qBAAqB;aACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;IAL/C,QAAQ,EAAE,SAAS,CAAC;gBAGF,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;IAUzC,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAe1D,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAItE,sBAAsB,CAC1B,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAO1B,+BAA+B,CACnC,MAAM,EAAE,OAAO,EACf,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IAO1B,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,oBAAoB,CAAC;CAOjC"}
@@ -1,5 +1,5 @@
1
1
  import { BigNumber } from 'ethers';
2
- import { ERC20__factory, HypERC20Collateral__factory, HypERC20__factory, HypXERC20Lockbox__factory, HypXERC20__factory, IXERC20__factory, } from '@hyperlane-xyz/core';
2
+ import { ERC20__factory, HypERC20Collateral__factory, HypERC20__factory, HypXERC20Lockbox__factory, HypXERC20__factory, IXERC20VS__factory, IXERC20__factory, } from '@hyperlane-xyz/core';
3
3
  import { addressToByteHexString, addressToBytes32, bytes32ToAddress, strip0x, } from '@hyperlane-xyz/utils';
4
4
  import { BaseEvmAdapter } from '../../app/MultiProtocolApp.js';
5
5
  // An estimate of the gas amount for a typical EVM token router transferRemote transaction
@@ -181,101 +181,170 @@ export class EvmHypCollateralFiatAdapter extends EvmHypCollateralAdapter {
181
181
  return wrapped.getTotalSupply();
182
182
  }
183
183
  }
184
- // Interacts with HypXERC20Lockbox contracts
185
- export class EvmHypXERC20LockboxAdapter extends EvmHypCollateralAdapter {
184
+ class BaseEvmHypXERC20Adapter extends EvmHypCollateralAdapter {
186
185
  chainName;
187
186
  multiProvider;
188
187
  addresses;
189
- hypXERC20Lockbox;
188
+ hypXERC20;
190
189
  constructor(chainName, multiProvider, addresses) {
191
190
  super(chainName, multiProvider, addresses);
192
191
  this.chainName = chainName;
193
192
  this.multiProvider = multiProvider;
194
193
  this.addresses = addresses;
195
- this.hypXERC20Lockbox = HypXERC20Lockbox__factory.connect(addresses.token, this.getProvider());
194
+ this.hypXERC20 = HypXERC20__factory.connect(addresses.token, this.getProvider());
195
+ }
196
+ async getXERC20() {
197
+ const xerc20Addr = await this.hypXERC20.wrappedToken();
198
+ return this.connectXERC20(xerc20Addr);
196
199
  }
197
- /**
198
- * Note this may be inaccurate, as this returns the balance
199
- * of the lockbox contract, which may be used by other bridges.
200
- * However this is the best we can do with a simple view call.
201
- */
202
200
  async getBridgedSupply() {
203
- const lockboxAddress = await this.hypXERC20Lockbox.lockbox();
204
- return this.getBalance(lockboxAddress);
201
+ const xerc20 = await this.getXERC20();
202
+ // Both IXERC20 and IXERC20VS have totalSupply, name, etc. if they extend ERC20
203
+ const totalSupply = await xerc20.totalSupply();
204
+ return totalSupply.toBigInt();
205
205
  }
206
206
  async getMintLimit() {
207
- const xERC20 = await this.getXErc20();
208
- const limit = await xERC20.mintingCurrentLimitOf(this.contract.address);
207
+ const xerc20 = await this.getXERC20();
208
+ const limit = await xerc20.mintingCurrentLimitOf(this.contract.address);
209
209
  return limit.toBigInt();
210
210
  }
211
211
  async getMintMaxLimit() {
212
- const xERC20 = await this.getXErc20();
213
- const limit = await xERC20.mintingMaxLimitOf(this.contract.address);
212
+ const xerc20 = await this.getXERC20();
213
+ const limit = await xerc20.mintingMaxLimitOf(this.contract.address);
214
214
  return limit.toBigInt();
215
215
  }
216
216
  async getBurnLimit() {
217
- const xERC20 = await this.getXErc20();
218
- const limit = await xERC20.burningCurrentLimitOf(this.contract.address);
217
+ const xerc20 = await this.getXERC20();
218
+ const limit = await xerc20.burningCurrentLimitOf(this.contract.address);
219
219
  return limit.toBigInt();
220
220
  }
221
221
  async getBurnMaxLimit() {
222
- const xERC20 = await this.getXErc20();
223
- const limit = await xERC20.burningMaxLimitOf(this.contract.address);
222
+ const xerc20 = await this.getXERC20();
223
+ const limit = await xerc20.burningMaxLimitOf(this.contract.address);
224
224
  return limit.toBigInt();
225
225
  }
226
- async getXErc20() {
227
- const xERC20 = await this.hypXERC20Lockbox.xERC20();
228
- return IXERC20__factory.connect(xERC20, this.getProvider());
229
- }
230
226
  }
231
- // Interacts with HypXERC20 contracts
232
- export class EvmHypXERC20Adapter extends EvmHypCollateralAdapter {
227
+ class BaseEvmHypXERC20LockboxAdapter extends EvmHypCollateralAdapter {
233
228
  chainName;
234
229
  multiProvider;
235
230
  addresses;
236
- hypXERC20;
231
+ hypXERC20Lockbox;
237
232
  constructor(chainName, multiProvider, addresses) {
238
233
  super(chainName, multiProvider, addresses);
239
234
  this.chainName = chainName;
240
235
  this.multiProvider = multiProvider;
241
236
  this.addresses = addresses;
242
- this.hypXERC20 = HypXERC20__factory.connect(addresses.token, this.getProvider());
237
+ this.hypXERC20Lockbox = HypXERC20Lockbox__factory.connect(addresses.token, this.getProvider());
243
238
  }
244
239
  /**
245
- * Note this may be inaccurate, as this returns the total supply
246
- * of the xERC20 contract, which may be used by other bridges.
240
+ * Note this may be inaccurate, as this returns the balance
241
+ * of the lockbox contract, which may be used by other bridges.
247
242
  * However this is the best we can do with a simple view call.
248
243
  */
249
244
  async getBridgedSupply() {
250
- const xerc20TokenAddress = await this.hypXERC20.wrappedToken();
251
- const xerc20 = new EvmTokenAdapter(this.chainName, this.multiProvider, {
252
- token: xerc20TokenAddress,
253
- });
254
- return xerc20.getTotalSupply();
245
+ const lockboxAddress = await this.hypXERC20Lockbox.lockbox();
246
+ return this.getBalance(lockboxAddress);
247
+ }
248
+ async getXERC20() {
249
+ const xERC20Addr = await this.hypXERC20Lockbox.xERC20();
250
+ return this.connectXERC20(xERC20Addr);
255
251
  }
256
252
  async getMintLimit() {
257
- const xERC20 = await this.getXErc20();
253
+ const xERC20 = await this.getXERC20();
258
254
  const limit = await xERC20.mintingCurrentLimitOf(this.contract.address);
259
255
  return limit.toBigInt();
260
256
  }
261
257
  async getMintMaxLimit() {
262
- const xERC20 = await this.getXErc20();
258
+ const xERC20 = await this.getXERC20();
263
259
  const limit = await xERC20.mintingMaxLimitOf(this.contract.address);
264
260
  return limit.toBigInt();
265
261
  }
266
262
  async getBurnLimit() {
267
- const xERC20 = await this.getXErc20();
263
+ const xERC20 = await this.getXERC20();
268
264
  const limit = await xERC20.burningCurrentLimitOf(this.contract.address);
269
265
  return limit.toBigInt();
270
266
  }
271
267
  async getBurnMaxLimit() {
272
- const xERC20 = await this.getXErc20();
268
+ const xERC20 = await this.getXERC20();
273
269
  const limit = await xERC20.burningMaxLimitOf(this.contract.address);
274
270
  return limit.toBigInt();
275
271
  }
276
- async getXErc20() {
277
- const xERC20 = await this.hypXERC20.wrappedToken();
278
- return IXERC20__factory.connect(xERC20, this.getProvider());
272
+ }
273
+ // Interacts with HypXERC20Lockbox contracts
274
+ export class EvmHypXERC20LockboxAdapter extends BaseEvmHypXERC20LockboxAdapter {
275
+ connectXERC20(xERC20Addr) {
276
+ return IXERC20__factory.connect(xERC20Addr, this.getProvider());
277
+ }
278
+ }
279
+ export class EvmHypVSXERC20LockboxAdapter extends BaseEvmHypXERC20LockboxAdapter {
280
+ connectXERC20(xERC20Addr) {
281
+ return IXERC20VS__factory.connect(xERC20Addr, this.getProvider());
282
+ }
283
+ // If you need to expose rate-limiting calls or other VS-specific logic:
284
+ async getRateLimits() {
285
+ const xERC20 = await this.getXERC20();
286
+ const rateLimits = await xERC20.rateLimits(this.contract.address);
287
+ return {
288
+ rateLimitPerSecond: BigInt(rateLimits.rateLimitPerSecond.toString()),
289
+ bufferCap: BigInt(rateLimits.bufferCap.toString()),
290
+ lastBufferUsedTime: Number(rateLimits.lastBufferUsedTime),
291
+ bufferStored: BigInt(rateLimits.bufferStored.toString()),
292
+ midPoint: BigInt(rateLimits.midPoint.toString()),
293
+ };
294
+ }
295
+ async populateSetBufferCapTx(newBufferCap) {
296
+ const xERC20 = await this.getXERC20();
297
+ return xERC20.populateTransaction.setBufferCap(this.addresses.token, newBufferCap);
298
+ }
299
+ async populateSetRateLimitPerSecondTx(newRateLimitPerSecond) {
300
+ const xERC20 = await this.getXERC20();
301
+ return xERC20.populateTransaction.setRateLimitPerSecond(this.addresses.token, newRateLimitPerSecond);
302
+ }
303
+ async populateAddBridgeTx(bufferCap, rateLimitPerSecond) {
304
+ const xERC20 = await this.getXERC20();
305
+ return xERC20.populateTransaction.addBridge({
306
+ bufferCap,
307
+ rateLimitPerSecond,
308
+ bridge: this.addresses.token,
309
+ });
310
+ }
311
+ }
312
+ // Interacts with HypXERC20 contracts
313
+ export class EvmHypXERC20Adapter extends BaseEvmHypXERC20Adapter {
314
+ connectXERC20(xerc20Addr) {
315
+ return IXERC20__factory.connect(xerc20Addr, this.getProvider());
316
+ }
317
+ }
318
+ export class EvmHypVSXERC20Adapter extends BaseEvmHypXERC20Adapter {
319
+ connectXERC20(xerc20Addr) {
320
+ return IXERC20VS__factory.connect(xerc20Addr, this.getProvider());
321
+ }
322
+ async getRateLimits() {
323
+ const xERC20 = await this.getXERC20();
324
+ const rateLimits = await xERC20.rateLimits(this.contract.address);
325
+ return {
326
+ rateLimitPerSecond: BigInt(rateLimits.rateLimitPerSecond.toString()),
327
+ bufferCap: BigInt(rateLimits.bufferCap.toString()),
328
+ lastBufferUsedTime: Number(rateLimits.lastBufferUsedTime),
329
+ bufferStored: BigInt(rateLimits.bufferStored.toString()),
330
+ midPoint: BigInt(rateLimits.midPoint.toString()),
331
+ };
332
+ }
333
+ async populateSetBufferCapTx(newBufferCap) {
334
+ const xERC20 = await this.getXERC20();
335
+ return xERC20.populateTransaction.setBufferCap(this.addresses.token, newBufferCap);
336
+ }
337
+ async populateSetRateLimitPerSecondTx(newRateLimitPerSecond) {
338
+ const xERC20 = await this.getXERC20();
339
+ return xERC20.populateTransaction.setRateLimitPerSecond(this.addresses.token, newRateLimitPerSecond);
340
+ }
341
+ async populateAddBridgeTx(bufferCap, rateLimitPerSecond) {
342
+ const xERC20 = await this.getXERC20();
343
+ return xERC20.populateTransaction.addBridge({
344
+ bufferCap,
345
+ rateLimitPerSecond,
346
+ bridge: this.addresses.token,
347
+ });
279
348
  }
280
349
  }
281
350
  // Interacts HypNative contracts
@@ -299,4 +368,45 @@ export class EvmHypNativeAdapter extends EvmHypCollateralAdapter {
299
368
  return this.contract.populateTransaction['transferRemote(uint32,bytes32,uint256)'](destination, recipBytes32, weiAmountOrId, { value: txValue?.toString() });
300
369
  }
301
370
  }
371
+ export class EvmXERC20VSAdapter extends EvmTokenAdapter {
372
+ chainName;
373
+ multiProvider;
374
+ addresses;
375
+ xERC20VS;
376
+ constructor(chainName, multiProvider, addresses) {
377
+ super(chainName, multiProvider, addresses);
378
+ this.chainName = chainName;
379
+ this.multiProvider = multiProvider;
380
+ this.addresses = addresses;
381
+ this.xERC20VS = IXERC20VS__factory.connect(addresses.token, this.getProvider());
382
+ }
383
+ async getRateLimits(bridge) {
384
+ const result = await this.xERC20VS.rateLimits(bridge);
385
+ const rateLimits = {
386
+ rateLimitPerSecond: BigInt(result.rateLimitPerSecond.toString()),
387
+ bufferCap: BigInt(result.bufferCap.toString()),
388
+ lastBufferUsedTime: Number(result.lastBufferUsedTime),
389
+ bufferStored: BigInt(result.bufferStored.toString()),
390
+ midPoint: BigInt(result.midPoint.toString()),
391
+ };
392
+ return rateLimits;
393
+ }
394
+ // remove bridge
395
+ async populateRemoveBridgeTx(bridge) {
396
+ return this.xERC20VS.populateTransaction.removeBridge(bridge);
397
+ }
398
+ async populateSetBufferCapTx(bridge, newBufferCap) {
399
+ return this.xERC20VS.populateTransaction.setBufferCap(bridge, newBufferCap.toString());
400
+ }
401
+ async populateSetRateLimitPerSecondTx(bridge, newRateLimitPerSecond) {
402
+ return this.xERC20VS.populateTransaction.setRateLimitPerSecond(bridge, newRateLimitPerSecond.toString());
403
+ }
404
+ async populateAddBridgeTx(bufferCap, rateLimitPerSecond, bridge) {
405
+ return this.xERC20VS.populateTransaction.addBridge({
406
+ bufferCap: bufferCap.toString(),
407
+ rateLimitPerSecond: rateLimitPerSecond.toString(),
408
+ bridge,
409
+ });
410
+ }
411
+ }
302
412
  //# sourceMappingURL=EvmTokenAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmTokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmTokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/EvmTokenAdapter.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,13 @@ export interface InterchainGasQuote {
15
15
  addressOrDenom?: string;
16
16
  amount: bigint;
17
17
  }
18
+ export interface RateLimitMidPoint {
19
+ rateLimitPerSecond: bigint;
20
+ bufferCap: bigint;
21
+ lastBufferUsedTime: number;
22
+ bufferStored: bigint;
23
+ midPoint: bigint;
24
+ }
18
25
  export interface ITokenAdapter<Tx> {
19
26
  getBalance(address: Address): Promise<bigint>;
20
27
  getTotalSupply(): Promise<bigint | undefined>;
@@ -41,4 +48,16 @@ export interface IHypXERC20Adapter<Tx> extends IHypTokenAdapter<Tx> {
41
48
  getBurnLimit(): Promise<bigint>;
42
49
  getBurnMaxLimit(): Promise<bigint>;
43
50
  }
51
+ export interface IHypVSXERC20Adapter<Tx> {
52
+ getRateLimits(): Promise<RateLimitMidPoint>;
53
+ populateSetBufferCapTx(newBufferCap: bigint): Promise<Tx>;
54
+ populateSetRateLimitPerSecondTx(newRateLimitPerSecond: bigint): Promise<Tx>;
55
+ populateAddBridgeTx(bufferCap: bigint, rateLimitPerSecond: bigint): Promise<Tx>;
56
+ }
57
+ export interface IXERC20VSAdapter<Tx> extends ITokenAdapter<Tx> {
58
+ getRateLimits(bridge: Address): Promise<RateLimitMidPoint>;
59
+ populateSetBufferCapTx(bridge: Address, newBufferCap: bigint): Promise<Tx>;
60
+ populateSetRateLimitPerSecondTx(bridge: Address, newRateLimitPerSecond: bigint): Promise<Tx>;
61
+ populateAddBridgeTx(bufferCap: bigint, rateLimitPerSecond: bigint, bridge: Address): Promise<Tx>;
62
+ }
44
63
  //# sourceMappingURL=ITokenAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/ITokenAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IAEnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa,CAAC,EAAE;IAC/B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrD,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,iBAAiB,CACf,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB,CAAC,EAAE,CAAE,SAAQ,aAAa,CAAC,EAAE,CAAC;IAC7D,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACrE,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEhD,sBAAsB,CACpB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,wBAAwB,CAAC,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,iBAAiB,CAAC,EAAE,CAAE,SAAQ,gBAAgB,CAAC,EAAE,CAAC;IACjE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"ITokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/ITokenAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ERC20, TokenRouter } from '@hyperlane-xyz/core';
1
+ import { ERC20, Ownable, TokenRouter } from '@hyperlane-xyz/core';
2
2
  import { ProxiedRouterChecker } from '../router/ProxiedRouterChecker.js';
3
3
  import { ProxiedFactories } from '../router/types.js';
4
4
  import { ChainName } from '../types.js';
@@ -7,6 +7,9 @@ import { HypERC20Factories } from './contracts.js';
7
7
  import { HypTokenRouterConfig } from './types.js';
8
8
  export declare class HypERC20Checker extends ProxiedRouterChecker<HypERC20Factories & ProxiedFactories, HypERC20App, HypTokenRouterConfig> {
9
9
  checkChain(chain: ChainName): Promise<void>;
10
+ ownables(chain: ChainName): Promise<{
11
+ [key: string]: Ownable;
12
+ }>;
10
13
  checkToken(chain: ChainName): Promise<void>;
11
14
  private cachedAllActualDecimals;
12
15
  getEvmActualDecimals(): Promise<Record<ChainName, number>>;
@@ -1 +1 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/token/checker.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EAIL,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,oBAAoB,EAKrB,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAgB,SAAQ,oBAAoB,CACvD,iBAAiB,GAAG,gBAAgB,EACpC,WAAW,EACX,oBAAoB,CACrB;IACO,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3C,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA8FjD,OAAO,CAAC,uBAAuB,CACnB;IAEN,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAgB1D,iBAAiB,CACrB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC;IAqBZ,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IA6B1D,uBAAuB,CACrB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,EACpD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO;CAqBpB"}
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/token/checker.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EAIL,OAAO,EAGP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,oBAAoB,EAMrB,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAgB,SAAQ,oBAAoB,CACvD,iBAAiB,GAAG,gBAAgB,EACpC,WAAW,EACX,oBAAoB,CACrB;IACO,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IA+C/D,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAiGjD,OAAO,CAAC,uBAAuB,CACnB;IAEN,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAgB1D,iBAAiB,CACrB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC;IAwBZ,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAgC1D,uBAAuB,CACrB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,EACpD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO;CAqBpB"}
@@ -1,14 +1,39 @@
1
1
  import { BigNumber } from 'ethers';
2
- import { ERC20__factory, IXERC20Lockbox__factory, } from '@hyperlane-xyz/core';
2
+ import { ERC20__factory, IXERC20Lockbox__factory, Ownable__factory, ProxyAdmin__factory, } from '@hyperlane-xyz/core';
3
3
  import { eqAddress, objMap } from '@hyperlane-xyz/utils';
4
+ import { filterOwnableContracts } from '../contracts/contracts.js';
5
+ import { isProxy, proxyAdmin } from '../deploy/proxy.js';
4
6
  import { ProxiedRouterChecker } from '../router/ProxiedRouterChecker.js';
5
7
  import { TokenType } from './config.js';
6
- import { isCollateralTokenConfig, isNativeTokenConfig, isSyntheticTokenConfig, } from './types.js';
8
+ import { isCollateralTokenConfig, isNativeTokenConfig, isSyntheticTokenConfig, isXERC20TokenConfig, } from './types.js';
7
9
  export class HypERC20Checker extends ProxiedRouterChecker {
8
10
  async checkChain(chain) {
9
11
  await super.checkChain(chain);
10
12
  await this.checkToken(chain);
11
13
  }
14
+ async ownables(chain) {
15
+ const contracts = this.app.getContracts(chain);
16
+ if (isCollateralTokenConfig(this.configMap[chain]) ||
17
+ isXERC20TokenConfig(this.configMap[chain])) {
18
+ let collateralToken = await this.getCollateralToken(chain);
19
+ const provider = this.multiProvider.getProvider(chain);
20
+ // XERC20s are Ownable
21
+ const expectedConfig = this.configMap[chain];
22
+ if (expectedConfig.type === TokenType.XERC20Lockbox) {
23
+ const lockbox = IXERC20Lockbox__factory.connect(expectedConfig.token, provider);
24
+ collateralToken = ERC20__factory.connect(await lockbox.callStatic['XERC20()'](), provider);
25
+ contracts['collateralToken'] = Ownable__factory.connect(collateralToken.address, provider);
26
+ }
27
+ if (expectedConfig.type === TokenType.XERC20) {
28
+ contracts['collateralToken'] = Ownable__factory.connect(collateralToken.address, provider);
29
+ }
30
+ if (await isProxy(provider, collateralToken.address)) {
31
+ const admin = await proxyAdmin(provider, collateralToken.address);
32
+ contracts['collateralProxyAdmin'] = ProxyAdmin__factory.connect(admin, provider);
33
+ }
34
+ }
35
+ return filterOwnableContracts(contracts);
36
+ }
12
37
  async checkToken(chain) {
13
38
  const checkERC20 = async (token, config) => {
14
39
  const checks = [
@@ -56,7 +81,8 @@ export class HypERC20Checker extends ProxiedRouterChecker {
56
81
  else if (isSyntheticTokenConfig(expectedConfig)) {
57
82
  await checkERC20(hypToken, expectedConfig);
58
83
  }
59
- else if (isCollateralTokenConfig(expectedConfig)) {
84
+ else if (isCollateralTokenConfig(expectedConfig) ||
85
+ isXERC20TokenConfig(expectedConfig)) {
60
86
  const collateralToken = await this.getCollateralToken(chain);
61
87
  const actualToken = await hypToken.wrappedToken();
62
88
  if (!eqAddress(collateralToken.address, actualToken)) {
@@ -99,7 +125,8 @@ export class HypERC20Checker extends ProxiedRouterChecker {
99
125
  else if (isSyntheticTokenConfig(expectedConfig)) {
100
126
  decimals = await hypToken.decimals();
101
127
  }
102
- else if (isCollateralTokenConfig(expectedConfig)) {
128
+ else if (isCollateralTokenConfig(expectedConfig) ||
129
+ isXERC20TokenConfig(expectedConfig)) {
103
130
  const collateralToken = await this.getCollateralToken(chain);
104
131
  decimals = await collateralToken.decimals();
105
132
  }
@@ -111,7 +138,8 @@ export class HypERC20Checker extends ProxiedRouterChecker {
111
138
  async getCollateralToken(chain) {
112
139
  const expectedConfig = this.configMap[chain];
113
140
  let collateralToken = undefined;
114
- if (isCollateralTokenConfig(expectedConfig)) {
141
+ if (isCollateralTokenConfig(expectedConfig) ||
142
+ isXERC20TokenConfig(expectedConfig)) {
115
143
  const provider = this.multiProvider.getProvider(chain);
116
144
  if (expectedConfig.type === TokenType.XERC20Lockbox) {
117
145
  const collateralTokenAddress = await IXERC20Lockbox__factory.connect(expectedConfig.token, provider).callStatic.ERC20();