@hyperlane-xyz/cosmos-sdk 27.0.0 → 28.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/dist/clients/protocol.d.ts +4 -0
- package/dist/clients/protocol.d.ts.map +1 -1
- package/dist/clients/protocol.js +13 -0
- package/dist/clients/protocol.js.map +1 -1
- package/dist/index.d.ts +12 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -8
- package/dist/index.js.map +1 -1
- package/dist/mailbox/mailbox-artifact-manager.d.ts +48 -0
- package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
- package/dist/mailbox/mailbox-artifact-manager.js +82 -0
- package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
- package/dist/mailbox/mailbox-query.d.ts +12 -0
- package/dist/mailbox/mailbox-query.d.ts.map +1 -0
- package/dist/mailbox/mailbox-query.js +29 -0
- package/dist/mailbox/mailbox-query.js.map +1 -0
- package/dist/mailbox/mailbox-tx.d.ts +37 -0
- package/dist/mailbox/mailbox-tx.d.ts.map +1 -0
- package/dist/mailbox/mailbox-tx.js +68 -0
- package/dist/mailbox/mailbox-tx.js.map +1 -0
- package/dist/mailbox/mailbox.d.ts +30 -0
- package/dist/mailbox/mailbox.d.ts.map +1 -0
- package/dist/mailbox/mailbox.js +168 -0
- package/dist/mailbox/mailbox.js.map +1 -0
- package/dist/tests/mailbox.e2e-test.d.ts +2 -0
- package/dist/tests/mailbox.e2e-test.d.ts.map +1 -0
- package/dist/tests/mailbox.e2e-test.js +355 -0
- package/dist/tests/mailbox.e2e-test.js.map +1 -0
- package/dist/utils/types.d.ts +8 -0
- package/dist/utils/types.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -2,8 +2,10 @@ import { type AltVM, type ChainMetadataForAltVM, type ITransactionSubmitter, typ
|
|
|
2
2
|
import { type IProvider } from '@hyperlane-xyz/provider-sdk/altvm';
|
|
3
3
|
import { type IRawHookArtifactManager } from '@hyperlane-xyz/provider-sdk/hook';
|
|
4
4
|
import { type IRawIsmArtifactManager } from '@hyperlane-xyz/provider-sdk/ism';
|
|
5
|
+
import { type IRawMailboxArtifactManager } from '@hyperlane-xyz/provider-sdk/mailbox';
|
|
5
6
|
import { type AnnotatedTx, type TxReceipt } from '@hyperlane-xyz/provider-sdk/module';
|
|
6
7
|
import { type IRawWarpArtifactManager } from '@hyperlane-xyz/provider-sdk/warp';
|
|
8
|
+
import { type IRawValidatorAnnounceArtifactManager } from '@hyperlane-xyz/provider-sdk/validator-announce';
|
|
7
9
|
export declare class CosmosNativeProtocolProvider implements ProtocolProvider {
|
|
8
10
|
createProvider(chainMetadata: ChainMetadataForAltVM): Promise<IProvider>;
|
|
9
11
|
createSigner(chainMetadata: ChainMetadataForAltVM, config: SignerConfig): Promise<AltVM.ISigner<AnnotatedTx, TxReceipt>>;
|
|
@@ -15,6 +17,8 @@ export declare class CosmosNativeProtocolProvider implements ProtocolProvider {
|
|
|
15
17
|
createWarpArtifactManager(chainMetadata: ChainMetadataForAltVM, _context?: {
|
|
16
18
|
mailbox?: string;
|
|
17
19
|
}): IRawWarpArtifactManager;
|
|
20
|
+
createMailboxArtifactManager(chainMetadata: ChainMetadataForAltVM): IRawMailboxArtifactManager;
|
|
21
|
+
createValidatorAnnounceArtifactManager(_chainMetadata: ChainMetadataForAltVM): IRawValidatorAnnounceArtifactManager | null;
|
|
18
22
|
getMinGas(): MinimumRequiredGasByAction;
|
|
19
23
|
}
|
|
20
24
|
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/clients/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/clients/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,KAAK,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAW3G,qBAAa,4BAA6B,YAAW,gBAAgB;IACnE,cAAc,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC;IAMlE,YAAY,CAChB,aAAa,EAAE,qBAAqB,EACpC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAWjD,eAAe,CAAC,OAAO,SAAS,0BAA0B,EACxD,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,CAAC;IAKjC,wBAAwB,CACtB,aAAa,EAAE,qBAAqB,GACnC,sBAAsB;IAOzB,yBAAyB,CACvB,aAAa,EAAE,qBAAqB,EACpC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,uBAAuB;IAkB1B,yBAAyB,CACvB,aAAa,EAAE,qBAAqB,EACpC,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,uBAAuB;IAM1B,4BAA4B,CAC1B,aAAa,EAAE,qBAAqB,GACnC,0BAA0B;IAc7B,sCAAsC,CACpC,cAAc,EAAE,qBAAqB,GACpC,oCAAoC,GAAG,IAAI;IAK9C,SAAS,IAAI,0BAA0B;CASxC"}
|
package/dist/clients/protocol.js
CHANGED
|
@@ -4,6 +4,7 @@ import { CosmosIsmArtifactManager } from '../ism/ism-artifact-manager.js';
|
|
|
4
4
|
import { CosmosWarpArtifactManager } from '../warp/warp-artifact-manager.js';
|
|
5
5
|
import { CosmosNativeProvider } from './provider.js';
|
|
6
6
|
import { CosmosNativeSigner } from './signer.js';
|
|
7
|
+
import { CosmosMailboxArtifactManager } from '../mailbox/mailbox-artifact-manager.js';
|
|
7
8
|
export class CosmosNativeProtocolProvider {
|
|
8
9
|
createProvider(chainMetadata) {
|
|
9
10
|
assert(chainMetadata.rpcUrls, 'rpc urls undefined');
|
|
@@ -44,6 +45,18 @@ export class CosmosNativeProtocolProvider {
|
|
|
44
45
|
const rpcUrls = chainMetadata.rpcUrls.map((rpc) => rpc.http);
|
|
45
46
|
return new CosmosWarpArtifactManager(rpcUrls);
|
|
46
47
|
}
|
|
48
|
+
createMailboxArtifactManager(chainMetadata) {
|
|
49
|
+
const [rpcUrl, ...otherRpcUrls] = chainMetadata.rpcUrls?.map((rpc) => rpc.http) ?? [];
|
|
50
|
+
assert(rpcUrl, `Expected at least one rpc url for chain ${chainMetadata.name}`);
|
|
51
|
+
return new CosmosMailboxArtifactManager({
|
|
52
|
+
domainId: chainMetadata.domainId,
|
|
53
|
+
rpcUrls: [rpcUrl, ...otherRpcUrls],
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
createValidatorAnnounceArtifactManager(_chainMetadata) {
|
|
57
|
+
// Cosmos does not support validator announce
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
47
60
|
getMinGas() {
|
|
48
61
|
return {
|
|
49
62
|
CORE_DEPLOY_GAS: BigInt(1e6),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/clients/protocol.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/clients/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,14 @@ export * from './clients/protocol.js';
|
|
|
2
2
|
export * from './clients/provider.js';
|
|
3
3
|
export * from './clients/signer.js';
|
|
4
4
|
export * from './registry.js';
|
|
5
|
+
export * from './hyperlane/core/messages.js';
|
|
6
|
+
export * from './hyperlane/core/query.js';
|
|
7
|
+
export * from './hyperlane/interchain_security/messages.js';
|
|
8
|
+
export * from './hyperlane/interchain_security/query.js';
|
|
9
|
+
export * from './hyperlane/post_dispatch/messages.js';
|
|
10
|
+
export * from './hyperlane/post_dispatch/query.js';
|
|
11
|
+
export * from './hyperlane/warp/messages.js';
|
|
12
|
+
export * from './hyperlane/warp/query.js';
|
|
5
13
|
export { CosmosIsmArtifactManager } from './ism/ism-artifact-manager.js';
|
|
6
14
|
export { getIsmType, getNoopIsmConfig, getMessageIdMultisigIsmConfig, getMerkleRootMultisigIsmConfig, getRoutingIsmConfig, type CosmosIsmQueryClient, } from './ism/ism-query.js';
|
|
7
15
|
export { CosmosTestIsmReader } from './ism/test-ism.js';
|
|
@@ -15,12 +23,8 @@ export { CosmosMerkleTreeHookReader, CosmosMerkleTreeHookWriter, } from './hook/
|
|
|
15
23
|
export { CosmosWarpArtifactManager } from './warp/warp-artifact-manager.js';
|
|
16
24
|
export { CosmosCollateralTokenReader, CosmosCollateralTokenWriter, } from './warp/collateral-token.js';
|
|
17
25
|
export { CosmosSyntheticTokenReader, CosmosSyntheticTokenWriter, } from './warp/synthetic-token.js';
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export * from './hyperlane/post_dispatch/messages.js';
|
|
23
|
-
export * from './hyperlane/post_dispatch/query.js';
|
|
24
|
-
export * from './hyperlane/warp/messages.js';
|
|
25
|
-
export * from './hyperlane/warp/query.js';
|
|
26
|
+
export { CosmosMailboxArtifactManager } from './mailbox/mailbox-artifact-manager.js';
|
|
27
|
+
export { type CosmosMailboxQueryClient, getMailboxConfig, } from './mailbox/mailbox-query.js';
|
|
28
|
+
export { CosmosMailboxReader, CosmosMailboxWriter } from './mailbox/mailbox.js';
|
|
29
|
+
export { getCreateMailboxTx, getSetMailboxOwnerTx, getSetMailboxDefaultIsmTx, getSetMailboxDefaultHookTx, getSetMailboxRequiredHookTx, } from './mailbox/mailbox-tx.js';
|
|
26
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,eAAe,CAAC;AAE9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,8BAA8B,EAC9B,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EACL,KAAK,wBAAwB,EAC7B,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,14 @@ export * from './clients/protocol.js';
|
|
|
2
2
|
export * from './clients/provider.js';
|
|
3
3
|
export * from './clients/signer.js';
|
|
4
4
|
export * from './registry.js';
|
|
5
|
+
export * from './hyperlane/core/messages.js';
|
|
6
|
+
export * from './hyperlane/core/query.js';
|
|
7
|
+
export * from './hyperlane/interchain_security/messages.js';
|
|
8
|
+
export * from './hyperlane/interchain_security/query.js';
|
|
9
|
+
export * from './hyperlane/post_dispatch/messages.js';
|
|
10
|
+
export * from './hyperlane/post_dispatch/query.js';
|
|
11
|
+
export * from './hyperlane/warp/messages.js';
|
|
12
|
+
export * from './hyperlane/warp/query.js';
|
|
5
13
|
// ISM Artifact Management
|
|
6
14
|
export { CosmosIsmArtifactManager } from './ism/ism-artifact-manager.js';
|
|
7
15
|
export { getIsmType, getNoopIsmConfig, getMessageIdMultisigIsmConfig, getMerkleRootMultisigIsmConfig, getRoutingIsmConfig, } from './ism/ism-query.js';
|
|
@@ -20,12 +28,9 @@ export { CosmosMerkleTreeHookReader, CosmosMerkleTreeHookWriter, } from './hook/
|
|
|
20
28
|
export { CosmosWarpArtifactManager } from './warp/warp-artifact-manager.js';
|
|
21
29
|
export { CosmosCollateralTokenReader, CosmosCollateralTokenWriter, } from './warp/collateral-token.js';
|
|
22
30
|
export { CosmosSyntheticTokenReader, CosmosSyntheticTokenWriter, } from './warp/synthetic-token.js';
|
|
23
|
-
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export * from './hyperlane/post_dispatch/query.js';
|
|
29
|
-
export * from './hyperlane/warp/messages.js';
|
|
30
|
-
export * from './hyperlane/warp/query.js';
|
|
31
|
+
// Mailbox Artifact Management
|
|
32
|
+
export { CosmosMailboxArtifactManager } from './mailbox/mailbox-artifact-manager.js';
|
|
33
|
+
export { getMailboxConfig, } from './mailbox/mailbox-query.js';
|
|
34
|
+
export { CosmosMailboxReader, CosmosMailboxWriter } from './mailbox/mailbox.js';
|
|
35
|
+
export { getCreateMailboxTx, getSetMailboxOwnerTx, getSetMailboxDefaultIsmTx, getSetMailboxDefaultHookTx, getSetMailboxRequiredHookTx, } from './mailbox/mailbox-tx.js';
|
|
31
36
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,eAAe,CAAC;AAE9B,0BAA0B;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,8BAA8B,EAC9B,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAE5B,cAAc;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,2BAA2B;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAExB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAE3B,2BAA2B;AAC3B,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,2BAA2B;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,eAAe,CAAC;AAE9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAE1C,0BAA0B;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,8BAA8B,EAC9B,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAE5B,cAAc;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,2BAA2B;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAExB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAE3B,2BAA2B;AAC3B,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,2BAA2B;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,8BAA8B;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAEL,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
2
|
+
import { type DeployedMailboxAddress, type DeployedRawMailboxArtifact, type IRawMailboxArtifactManager, type MailboxType, type RawMailboxArtifactConfigs } from '@hyperlane-xyz/provider-sdk/mailbox';
|
|
3
|
+
import { type CosmosNativeSigner } from '../clients/signer.js';
|
|
4
|
+
/**
|
|
5
|
+
* Cosmos Mailbox Artifact Manager implementing IRawMailboxArtifactManager.
|
|
6
|
+
*
|
|
7
|
+
* This manager:
|
|
8
|
+
* - Lazily initializes the query client on first use
|
|
9
|
+
* - Provides factory methods for creating readers and writers
|
|
10
|
+
*
|
|
11
|
+
* Design: Uses lazy initialization to keep the constructor synchronous while
|
|
12
|
+
* deferring the async query client creation until actually needed.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CosmosMailboxArtifactManager implements IRawMailboxArtifactManager {
|
|
15
|
+
private readonly config;
|
|
16
|
+
private readonly query;
|
|
17
|
+
constructor(config: {
|
|
18
|
+
rpcUrls: [string, ...string[]];
|
|
19
|
+
domainId: number;
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Creates a Cosmos query client with Core extension.
|
|
23
|
+
*/
|
|
24
|
+
private createQuery;
|
|
25
|
+
/**
|
|
26
|
+
* Read a mailbox from the blockchain.
|
|
27
|
+
*
|
|
28
|
+
* @param address - Address of the mailbox to read
|
|
29
|
+
* @returns Deployed mailbox artifact with configuration
|
|
30
|
+
*/
|
|
31
|
+
readMailbox(address: string): Promise<DeployedRawMailboxArtifact>;
|
|
32
|
+
/**
|
|
33
|
+
* Factory method to create mailbox readers.
|
|
34
|
+
*
|
|
35
|
+
* @param _type - Mailbox type (currently only 'mailbox')
|
|
36
|
+
* @returns Mailbox reader
|
|
37
|
+
*/
|
|
38
|
+
createReader<T extends MailboxType>(_type: T): ArtifactReader<RawMailboxArtifactConfigs[T], DeployedMailboxAddress>;
|
|
39
|
+
/**
|
|
40
|
+
* Factory method to create mailbox writers.
|
|
41
|
+
*
|
|
42
|
+
* @param _type - Mailbox type (currently only 'mailbox')
|
|
43
|
+
* @param signer - Signer to use for writing transactions
|
|
44
|
+
* @returns Mailbox writer
|
|
45
|
+
*/
|
|
46
|
+
createWriter<T extends MailboxType>(_type: T, signer: CosmosNativeSigner): ArtifactWriter<RawMailboxArtifactConfigs[T], DeployedMailboxAddress>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=mailbox-artifact-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-artifact-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM/D;;;;;;;;;GASG;AACH,qBAAa,4BAA6B,YAAW,0BAA0B;IAI3E,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2C;gBAG9C,MAAM,EAAE;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;KAClB;IAGH;;OAEG;YACW,WAAW;IAKzB;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAMvE;;;;;OAKG;IACH,YAAY,CAAC,CAAC,SAAS,WAAW,EAChC,KAAK,EAAE,CAAC,GACP,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;IAavE;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,SAAS,WAAW,EAChC,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,kBAAkB,GACzB,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;CAkCxE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { QueryClient } from '@cosmjs/stargate';
|
|
2
|
+
import { connectComet } from '@cosmjs/tendermint-rpc';
|
|
3
|
+
import { LazyAsync } from '@hyperlane-xyz/utils';
|
|
4
|
+
import { setupCoreExtension } from '../hyperlane/core/query.js';
|
|
5
|
+
import { CosmosMailboxReader, CosmosMailboxWriter } from './mailbox.js';
|
|
6
|
+
/**
|
|
7
|
+
* Cosmos Mailbox Artifact Manager implementing IRawMailboxArtifactManager.
|
|
8
|
+
*
|
|
9
|
+
* This manager:
|
|
10
|
+
* - Lazily initializes the query client on first use
|
|
11
|
+
* - Provides factory methods for creating readers and writers
|
|
12
|
+
*
|
|
13
|
+
* Design: Uses lazy initialization to keep the constructor synchronous while
|
|
14
|
+
* deferring the async query client creation until actually needed.
|
|
15
|
+
*/
|
|
16
|
+
export class CosmosMailboxArtifactManager {
|
|
17
|
+
config;
|
|
18
|
+
query = new LazyAsync(() => this.createQuery());
|
|
19
|
+
constructor(config) {
|
|
20
|
+
this.config = config;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Creates a Cosmos query client with Core extension.
|
|
24
|
+
*/
|
|
25
|
+
async createQuery() {
|
|
26
|
+
const cometClient = await connectComet(this.config.rpcUrls[0]);
|
|
27
|
+
return QueryClient.withExtensions(cometClient, setupCoreExtension);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Read a mailbox from the blockchain.
|
|
31
|
+
*
|
|
32
|
+
* @param address - Address of the mailbox to read
|
|
33
|
+
* @returns Deployed mailbox artifact with configuration
|
|
34
|
+
*/
|
|
35
|
+
async readMailbox(address) {
|
|
36
|
+
const query = await this.query.get();
|
|
37
|
+
const reader = new CosmosMailboxReader(query);
|
|
38
|
+
return reader.read(address);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Factory method to create mailbox readers.
|
|
42
|
+
*
|
|
43
|
+
* @param _type - Mailbox type (currently only 'mailbox')
|
|
44
|
+
* @returns Mailbox reader
|
|
45
|
+
*/
|
|
46
|
+
createReader(_type) {
|
|
47
|
+
return {
|
|
48
|
+
read: async (address) => {
|
|
49
|
+
const query = await this.query.get();
|
|
50
|
+
const reader = new CosmosMailboxReader(query);
|
|
51
|
+
return reader.read(address);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Factory method to create mailbox writers.
|
|
57
|
+
*
|
|
58
|
+
* @param _type - Mailbox type (currently only 'mailbox')
|
|
59
|
+
* @param signer - Signer to use for writing transactions
|
|
60
|
+
* @returns Mailbox writer
|
|
61
|
+
*/
|
|
62
|
+
createWriter(_type, signer) {
|
|
63
|
+
return {
|
|
64
|
+
read: async (address) => {
|
|
65
|
+
const query = await this.query.get();
|
|
66
|
+
const writer = new CosmosMailboxWriter(query, signer, this.config.domainId);
|
|
67
|
+
return writer.read(address);
|
|
68
|
+
},
|
|
69
|
+
create: async (artifact) => {
|
|
70
|
+
const query = await this.query.get();
|
|
71
|
+
const writer = new CosmosMailboxWriter(query, signer, this.config.domainId);
|
|
72
|
+
return writer.create(artifact);
|
|
73
|
+
},
|
|
74
|
+
update: async (artifact) => {
|
|
75
|
+
const query = await this.query.get();
|
|
76
|
+
const writer = new CosmosMailboxWriter(query, signer, this.config.domainId);
|
|
77
|
+
return writer.update(artifact);
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=mailbox-artifact-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-artifact-manager.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-artifact-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAatD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,OAAO,4BAA4B;IAIpB;IAHF,KAAK,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAEjE,YACmB,MAGhB;QAHgB,WAAM,GAAN,MAAM,CAGtB;IACA,CAAC;IAEJ;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACV,KAAQ;QAER,OAAO;YACL,IAAI,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;SAIF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CACV,KAAQ,EACR,MAA0B;QAE1B,OAAO;YACL,IAAI,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAI,mBAAmB,CACpC,KAAK,EACL,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;gBACF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAI,mBAAmB,CACpC,KAAK,EACL,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;gBACF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAI,mBAAmB,CACpC,KAAK,EACL,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC;gBACF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;SAIF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type QueryClient } from '@cosmjs/stargate';
|
|
2
|
+
import { type CoreExtension } from '../hyperlane/core/query.js';
|
|
3
|
+
import { type CosmosMailboxConfig } from '../utils/types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Type alias for query client with Core extension.
|
|
6
|
+
*/
|
|
7
|
+
export type CosmosMailboxQueryClient = QueryClient & CoreExtension;
|
|
8
|
+
/**
|
|
9
|
+
* Query mailbox configuration from the chain.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getMailboxConfig(query: CosmosMailboxQueryClient, mailboxAddress: string): Promise<CosmosMailboxConfig>;
|
|
12
|
+
//# sourceMappingURL=mailbox-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-query.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG,aAAa,CAAC;AAEnE;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,wBAAwB,EAC/B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAuB9B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ZERO_ADDRESS_HEX_32, assert } from '@hyperlane-xyz/utils';
|
|
2
|
+
/**
|
|
3
|
+
* Query mailbox configuration from the chain.
|
|
4
|
+
*/
|
|
5
|
+
export async function getMailboxConfig(query, mailboxAddress) {
|
|
6
|
+
try {
|
|
7
|
+
const { mailbox } = await query.core.Mailbox({
|
|
8
|
+
id: mailboxAddress,
|
|
9
|
+
});
|
|
10
|
+
assert(mailbox, `No mailbox found at address ${mailboxAddress}`);
|
|
11
|
+
return {
|
|
12
|
+
address: mailbox.id,
|
|
13
|
+
owner: mailbox.owner,
|
|
14
|
+
localDomain: mailbox.local_domain,
|
|
15
|
+
defaultIsm: mailbox.default_ism,
|
|
16
|
+
// Even if the Mailbox type defines these 2 fields as non-nullable
|
|
17
|
+
// if the hooks are not set they are returned as an empty string
|
|
18
|
+
// instead of a proper address
|
|
19
|
+
defaultHook: mailbox.default_hook || ZERO_ADDRESS_HEX_32,
|
|
20
|
+
requiredHook: mailbox.required_hook || ZERO_ADDRESS_HEX_32,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
throw new Error(`Failed to query mailbox config at ${mailboxAddress}`, {
|
|
25
|
+
cause: error,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=mailbox-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-query.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAUnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAA+B,EAC/B,cAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAC3C,EAAE,EAAE,cAAc;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,EAAE,+BAA+B,cAAc,EAAE,CAAC,CAAC;QAEjE,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,EAAE;YACnB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,YAAY;YACjC,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,kEAAkE;YAClE,gEAAgE;YAChE,8BAA8B;YAC9B,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,mBAAmB;YACxD,YAAY,EAAE,OAAO,CAAC,aAAa,IAAI,mBAAmB;SAC3D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,cAAc,EAAE,EAAE;YACrE,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type MsgCreateMailboxEncodeObject, type MsgSetMailboxEncodeObject } from '../hyperlane/core/messages.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create transaction to deploy a new mailbox.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getCreateMailboxTx(fromAddress: string, config: {
|
|
6
|
+
domainId: number;
|
|
7
|
+
defaultIsmAddress: string;
|
|
8
|
+
}): MsgCreateMailboxEncodeObject;
|
|
9
|
+
/**
|
|
10
|
+
* Create transaction to set mailbox owner.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getSetMailboxOwnerTx(fromAddress: string, config: {
|
|
13
|
+
mailboxAddress: string;
|
|
14
|
+
newOwner: string;
|
|
15
|
+
}): MsgSetMailboxEncodeObject;
|
|
16
|
+
/**
|
|
17
|
+
* Create transaction to set mailbox default ISM.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getSetMailboxDefaultIsmTx(fromAddress: string, config: {
|
|
20
|
+
mailboxAddress: string;
|
|
21
|
+
ismAddress: string;
|
|
22
|
+
}): MsgSetMailboxEncodeObject;
|
|
23
|
+
/**
|
|
24
|
+
* Create transaction to set mailbox default hook.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getSetMailboxDefaultHookTx(fromAddress: string, config: {
|
|
27
|
+
mailboxAddress: string;
|
|
28
|
+
hookAddress: string;
|
|
29
|
+
}): MsgSetMailboxEncodeObject;
|
|
30
|
+
/**
|
|
31
|
+
* Create transaction to set mailbox required hook.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getSetMailboxRequiredHookTx(fromAddress: string, config: {
|
|
34
|
+
mailboxAddress: string;
|
|
35
|
+
hookAddress: string;
|
|
36
|
+
}): MsgSetMailboxEncodeObject;
|
|
37
|
+
//# sourceMappingURL=mailbox-tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-tx.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC/B,MAAM,+BAA+B,CAAC;AAGvC;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GACA,4BAA4B,CAS9B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,yBAAyB,CAU3B;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,GACA,yBAAyB,CAS3B;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,GACA,yBAAyB,CAS3B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,GACA,yBAAyB,CAS3B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { COSMOS_MODULE_MESSAGE_REGISTRY as MessageRegistry } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create transaction to deploy a new mailbox.
|
|
4
|
+
*/
|
|
5
|
+
export function getCreateMailboxTx(fromAddress, config) {
|
|
6
|
+
return {
|
|
7
|
+
typeUrl: MessageRegistry.MsgCreateMailbox.proto.type,
|
|
8
|
+
value: MessageRegistry.MsgCreateMailbox.proto.converter.create({
|
|
9
|
+
local_domain: config.domainId,
|
|
10
|
+
owner: fromAddress,
|
|
11
|
+
default_ism: config.defaultIsmAddress,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Create transaction to set mailbox owner.
|
|
17
|
+
*/
|
|
18
|
+
export function getSetMailboxOwnerTx(fromAddress, config) {
|
|
19
|
+
return {
|
|
20
|
+
typeUrl: MessageRegistry.MsgSetMailbox.proto.type,
|
|
21
|
+
value: MessageRegistry.MsgSetMailbox.proto.converter.create({
|
|
22
|
+
owner: fromAddress,
|
|
23
|
+
mailbox_id: config.mailboxAddress,
|
|
24
|
+
new_owner: config.newOwner,
|
|
25
|
+
renounce_ownership: !config.newOwner,
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create transaction to set mailbox default ISM.
|
|
31
|
+
*/
|
|
32
|
+
export function getSetMailboxDefaultIsmTx(fromAddress, config) {
|
|
33
|
+
return {
|
|
34
|
+
typeUrl: MessageRegistry.MsgSetMailbox.proto.type,
|
|
35
|
+
value: MessageRegistry.MsgSetMailbox.proto.converter.create({
|
|
36
|
+
mailbox_id: config.mailboxAddress,
|
|
37
|
+
default_ism: config.ismAddress,
|
|
38
|
+
owner: fromAddress,
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create transaction to set mailbox default hook.
|
|
44
|
+
*/
|
|
45
|
+
export function getSetMailboxDefaultHookTx(fromAddress, config) {
|
|
46
|
+
return {
|
|
47
|
+
typeUrl: MessageRegistry.MsgSetMailbox.proto.type,
|
|
48
|
+
value: MessageRegistry.MsgSetMailbox.proto.converter.create({
|
|
49
|
+
mailbox_id: config.mailboxAddress,
|
|
50
|
+
default_hook: config.hookAddress,
|
|
51
|
+
owner: fromAddress,
|
|
52
|
+
}),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create transaction to set mailbox required hook.
|
|
57
|
+
*/
|
|
58
|
+
export function getSetMailboxRequiredHookTx(fromAddress, config) {
|
|
59
|
+
return {
|
|
60
|
+
typeUrl: MessageRegistry.MsgSetMailbox.proto.type,
|
|
61
|
+
value: MessageRegistry.MsgSetMailbox.proto.converter.create({
|
|
62
|
+
mailbox_id: config.mailboxAddress,
|
|
63
|
+
required_hook: config.hookAddress,
|
|
64
|
+
owner: fromAddress,
|
|
65
|
+
}),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=mailbox-tx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox-tx.js","sourceRoot":"","sources":["../../src/mailbox/mailbox-tx.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,MAGC;IAED,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI;QACpD,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YAC7D,YAAY,EAAE,MAAM,CAAC,QAAQ;YAC7B,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,MAAM,CAAC,iBAAiB;SACtC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,MAGC;IAED,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI;QACjD,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1D,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,MAAM,CAAC,cAAc;YACjC,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,kBAAkB,EAAE,CAAC,MAAM,CAAC,QAAQ;SACrC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAmB,EACnB,MAGC;IAED,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI;QACjD,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1D,UAAU,EAAE,MAAM,CAAC,cAAc;YACjC,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,KAAK,EAAE,WAAW;SACnB,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,MAGC;IAED,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI;QACjD,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1D,UAAU,EAAE,MAAM,CAAC,cAAc;YACjC,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,KAAK,EAAE,WAAW;SACnB,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,MAGC;IAED,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI;QACjD,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1D,UAAU,EAAE,MAAM,CAAC,cAAc;YACjC,aAAa,EAAE,MAAM,CAAC,WAAW;YACjC,KAAK,EAAE,WAAW;SACnB,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type DeliverTxResponse } from '@cosmjs/stargate';
|
|
2
|
+
import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
3
|
+
import { type DeployedMailboxAddress, type MailboxOnChain } from '@hyperlane-xyz/provider-sdk/mailbox';
|
|
4
|
+
import { type CosmosNativeSigner } from '../clients/signer.js';
|
|
5
|
+
import { type AnnotatedEncodeObject } from '../utils/types.js';
|
|
6
|
+
import { type CosmosMailboxQueryClient } from './mailbox-query.js';
|
|
7
|
+
/**
|
|
8
|
+
* Reader for Cosmos Mailbox.
|
|
9
|
+
* Reads deployed mailbox configuration from the chain.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CosmosMailboxReader implements ArtifactReader<MailboxOnChain, DeployedMailboxAddress> {
|
|
12
|
+
protected readonly query: CosmosMailboxQueryClient;
|
|
13
|
+
constructor(query: CosmosMailboxQueryClient);
|
|
14
|
+
read(address: string): Promise<ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Writer for Cosmos Mailbox.
|
|
18
|
+
* Handles deployment and updates.
|
|
19
|
+
*/
|
|
20
|
+
export declare class CosmosMailboxWriter extends CosmosMailboxReader implements ArtifactWriter<MailboxOnChain, DeployedMailboxAddress> {
|
|
21
|
+
private readonly signer;
|
|
22
|
+
private readonly domainId;
|
|
23
|
+
constructor(query: CosmosMailboxQueryClient, signer: CosmosNativeSigner, domainId: number);
|
|
24
|
+
create(artifact: ArtifactNew<MailboxOnChain>): Promise<[
|
|
25
|
+
ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>,
|
|
26
|
+
DeliverTxResponse[]
|
|
27
|
+
]>;
|
|
28
|
+
update(artifact: ArtifactDeployed<MailboxOnChain, DeployedMailboxAddress>): Promise<AnnotatedEncodeObject[]>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=mailbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox.d.ts","sourceRoot":"","sources":["../../src/mailbox/mailbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACpB,MAAM,qCAAqC,CAAC;AAO7C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,oBAAoB,CAAC;AAS5B;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,cAAc,CACxD,cAAc,EACd,sBAAsB,CACvB;IACa,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,wBAAwB;gBAA/B,KAAK,EAAE,wBAAwB;IAExD,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;CAgCrE;AAED;;;GAGG;AACH,qBAAa,mBACX,SAAQ,mBACR,YAAW,cAAc,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAI/D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFzB,KAAK,EAAE,wBAAwB,EACd,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,MAAM;IAK7B,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,GACpC,OAAO,CACR;QACE,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC;QACxD,iBAAiB,EAAE;KACpB,CACF;IA2EK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC,GACjE,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAwFpC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { ArtifactState, } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
2
|
+
import { ZERO_ADDRESS_HEX_32, eqAddressCosmos, eqOptionalAddress, } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { getNewContractAddress } from '../utils/base.js';
|
|
4
|
+
import { getMailboxConfig, } from './mailbox-query.js';
|
|
5
|
+
import { getCreateMailboxTx, getSetMailboxDefaultHookTx, getSetMailboxDefaultIsmTx, getSetMailboxOwnerTx, getSetMailboxRequiredHookTx, } from './mailbox-tx.js';
|
|
6
|
+
/**
|
|
7
|
+
* Reader for Cosmos Mailbox.
|
|
8
|
+
* Reads deployed mailbox configuration from the chain.
|
|
9
|
+
*/
|
|
10
|
+
export class CosmosMailboxReader {
|
|
11
|
+
query;
|
|
12
|
+
constructor(query) {
|
|
13
|
+
this.query = query;
|
|
14
|
+
}
|
|
15
|
+
async read(address) {
|
|
16
|
+
const mailboxConfig = await getMailboxConfig(this.query, address);
|
|
17
|
+
return {
|
|
18
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
19
|
+
config: {
|
|
20
|
+
owner: mailboxConfig.owner,
|
|
21
|
+
defaultIsm: {
|
|
22
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
23
|
+
deployed: {
|
|
24
|
+
address: mailboxConfig.defaultIsm,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
defaultHook: {
|
|
28
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
29
|
+
deployed: {
|
|
30
|
+
address: mailboxConfig.defaultHook,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
requiredHook: {
|
|
34
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
35
|
+
deployed: {
|
|
36
|
+
address: mailboxConfig.requiredHook,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
deployed: {
|
|
41
|
+
address: mailboxConfig.address,
|
|
42
|
+
domainId: mailboxConfig.localDomain,
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Writer for Cosmos Mailbox.
|
|
49
|
+
* Handles deployment and updates.
|
|
50
|
+
*/
|
|
51
|
+
export class CosmosMailboxWriter extends CosmosMailboxReader {
|
|
52
|
+
signer;
|
|
53
|
+
domainId;
|
|
54
|
+
constructor(query, signer, domainId) {
|
|
55
|
+
super(query);
|
|
56
|
+
this.signer = signer;
|
|
57
|
+
this.domainId = domainId;
|
|
58
|
+
}
|
|
59
|
+
async create(artifact) {
|
|
60
|
+
const { config } = artifact;
|
|
61
|
+
const allReceipts = [];
|
|
62
|
+
const signerAddress = this.signer.getSignerAddress();
|
|
63
|
+
// Extract addresses from artifacts (can be UNDERIVED or DEPLOYED)
|
|
64
|
+
const defaultIsmAddress = config.defaultIsm.deployed.address;
|
|
65
|
+
const defaultHookAddress = config.defaultHook.deployed.address;
|
|
66
|
+
const requiredHookAddress = config.requiredHook.deployed.address;
|
|
67
|
+
// 1. Create mailbox with signer as initial owner
|
|
68
|
+
const createTx = getCreateMailboxTx(signerAddress, {
|
|
69
|
+
domainId: this.domainId,
|
|
70
|
+
defaultIsmAddress,
|
|
71
|
+
});
|
|
72
|
+
const createReceipt = await this.signer.sendAndConfirmTransaction(createTx);
|
|
73
|
+
const mailboxAddress = getNewContractAddress(createReceipt);
|
|
74
|
+
allReceipts.push(createReceipt);
|
|
75
|
+
// 2. Set default hook if provided
|
|
76
|
+
if (!eqOptionalAddress(defaultHookAddress, ZERO_ADDRESS_HEX_32, eqAddressCosmos)) {
|
|
77
|
+
const setDefaultHookTx = getSetMailboxDefaultHookTx(signerAddress, {
|
|
78
|
+
mailboxAddress,
|
|
79
|
+
hookAddress: defaultHookAddress,
|
|
80
|
+
});
|
|
81
|
+
const hookReceipt = await this.signer.sendAndConfirmTransaction(setDefaultHookTx);
|
|
82
|
+
allReceipts.push(hookReceipt);
|
|
83
|
+
}
|
|
84
|
+
// 3. Set required hook if provided
|
|
85
|
+
if (!eqOptionalAddress(requiredHookAddress, ZERO_ADDRESS_HEX_32, eqAddressCosmos)) {
|
|
86
|
+
const setRequiredHookTx = getSetMailboxRequiredHookTx(signerAddress, {
|
|
87
|
+
mailboxAddress,
|
|
88
|
+
hookAddress: requiredHookAddress,
|
|
89
|
+
});
|
|
90
|
+
const hookReceipt = await this.signer.sendAndConfirmTransaction(setRequiredHookTx);
|
|
91
|
+
allReceipts.push(hookReceipt);
|
|
92
|
+
}
|
|
93
|
+
// Note: Ownership is NOT transferred during creation. The deployer retains
|
|
94
|
+
// ownership to allow setting ISM and hooks after initial deployment, which
|
|
95
|
+
// require owner permissions. Use update() to transfer ownership to the
|
|
96
|
+
// intended owner once all configuration is complete.
|
|
97
|
+
const deployedArtifact = {
|
|
98
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
99
|
+
config: { ...config, owner: signerAddress },
|
|
100
|
+
deployed: {
|
|
101
|
+
address: mailboxAddress,
|
|
102
|
+
domainId: this.domainId,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
return [deployedArtifact, allReceipts];
|
|
106
|
+
}
|
|
107
|
+
async update(artifact) {
|
|
108
|
+
const { config, deployed } = artifact;
|
|
109
|
+
const updateTxs = [];
|
|
110
|
+
// Read current state
|
|
111
|
+
const currentState = await this.read(deployed.address);
|
|
112
|
+
const currentConfig = currentState.config;
|
|
113
|
+
const currentOwner = currentConfig.owner;
|
|
114
|
+
const expectedDefaultIsmAddress = config.defaultIsm.deployed.address;
|
|
115
|
+
const expectedDefaultHookAddress = config.defaultHook.deployed.address;
|
|
116
|
+
const expectedRequiredHookAddress = config.requiredHook.deployed.address;
|
|
117
|
+
const currentDefaultIsmAddress = currentConfig.defaultIsm.deployed.address;
|
|
118
|
+
const currentDefaultHookAddress = currentConfig.defaultHook.deployed.address;
|
|
119
|
+
const currentRequiredHookAddress = currentConfig.requiredHook.deployed.address;
|
|
120
|
+
// Compare and generate update transactions
|
|
121
|
+
// 1. Update default ISM
|
|
122
|
+
if (!eqOptionalAddress(currentDefaultIsmAddress, expectedDefaultIsmAddress, eqAddressCosmos)) {
|
|
123
|
+
const setIsmTx = getSetMailboxDefaultIsmTx(currentOwner, {
|
|
124
|
+
mailboxAddress: deployed.address,
|
|
125
|
+
ismAddress: expectedDefaultIsmAddress,
|
|
126
|
+
});
|
|
127
|
+
updateTxs.push({
|
|
128
|
+
annotation: `Update mailbox default ISM to ${expectedDefaultIsmAddress}`,
|
|
129
|
+
...setIsmTx,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// 2. Update default hook
|
|
133
|
+
if (!eqOptionalAddress(currentDefaultHookAddress, expectedDefaultHookAddress, eqAddressCosmos)) {
|
|
134
|
+
const setDefaultHookTx = getSetMailboxDefaultHookTx(currentOwner, {
|
|
135
|
+
mailboxAddress: deployed.address,
|
|
136
|
+
hookAddress: expectedDefaultHookAddress,
|
|
137
|
+
});
|
|
138
|
+
updateTxs.push({
|
|
139
|
+
annotation: `Update mailbox default hook to ${expectedDefaultHookAddress}`,
|
|
140
|
+
...setDefaultHookTx,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
// 3. Update required hook
|
|
144
|
+
if (!eqOptionalAddress(currentRequiredHookAddress, expectedRequiredHookAddress, eqAddressCosmos)) {
|
|
145
|
+
const setRequiredHookTx = getSetMailboxRequiredHookTx(currentOwner, {
|
|
146
|
+
mailboxAddress: deployed.address,
|
|
147
|
+
hookAddress: expectedRequiredHookAddress,
|
|
148
|
+
});
|
|
149
|
+
updateTxs.push({
|
|
150
|
+
annotation: `Update mailbox required hook to ${expectedRequiredHookAddress}`,
|
|
151
|
+
...setRequiredHookTx,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
// 4. Update owner (LAST to avoid permission issues)
|
|
155
|
+
if (!eqOptionalAddress(currentOwner, config.owner, eqAddressCosmos)) {
|
|
156
|
+
const setOwnerTx = getSetMailboxOwnerTx(currentOwner, {
|
|
157
|
+
mailboxAddress: deployed.address,
|
|
158
|
+
newOwner: config.owner,
|
|
159
|
+
});
|
|
160
|
+
updateTxs.push({
|
|
161
|
+
annotation: `Transfer mailbox ownership to ${config.owner}`,
|
|
162
|
+
...setOwnerTx,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
return updateTxs;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=mailbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../src/mailbox/mailbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox.e2e-test.d.ts","sourceRoot":"","sources":["../../src/tests/mailbox.e2e-test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
import chai, { expect } from 'chai';
|
|
2
|
+
import chaiAsPromised from 'chai-as-promised';
|
|
3
|
+
import { AltVM } from '@hyperlane-xyz/provider-sdk';
|
|
4
|
+
import { ArtifactState, } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
5
|
+
import { ZERO_ADDRESS_HEX_32, assert } from '@hyperlane-xyz/utils';
|
|
6
|
+
import { CosmosHookArtifactManager } from '../hook/hook-artifact-manager.js';
|
|
7
|
+
import { CosmosIsmArtifactManager } from '../ism/ism-artifact-manager.js';
|
|
8
|
+
import { CosmosMailboxArtifactManager } from '../mailbox/mailbox-artifact-manager.js';
|
|
9
|
+
import { COSMOS_MODULE_MESSAGE_REGISTRY as MessageRegistry } from '../registry.js';
|
|
10
|
+
import { createSigner } from '../testing/utils.js';
|
|
11
|
+
chai.use(chaiAsPromised);
|
|
12
|
+
describe('Cosmos Mailbox Artifact API (e2e)', function () {
|
|
13
|
+
this.timeout(100_000);
|
|
14
|
+
let signer;
|
|
15
|
+
let cosmosSigner;
|
|
16
|
+
let mailboxArtifactManager;
|
|
17
|
+
let ismArtifactManager;
|
|
18
|
+
let hookArtifactManager;
|
|
19
|
+
const domainId = 1234;
|
|
20
|
+
const denom = 'uhyp';
|
|
21
|
+
before(async () => {
|
|
22
|
+
signer = await createSigner('alice');
|
|
23
|
+
cosmosSigner = signer;
|
|
24
|
+
const [rpc, ...otherRpcUrls] = cosmosSigner.getRpcUrls();
|
|
25
|
+
assert(rpc, 'At least one rpc is required');
|
|
26
|
+
mailboxArtifactManager = new CosmosMailboxArtifactManager({
|
|
27
|
+
rpcUrls: [rpc, ...otherRpcUrls],
|
|
28
|
+
domainId,
|
|
29
|
+
});
|
|
30
|
+
ismArtifactManager = new CosmosIsmArtifactManager([rpc, ...otherRpcUrls]);
|
|
31
|
+
// Create temp mailbox for hook manager
|
|
32
|
+
const ismWriter = ismArtifactManager.createWriter(AltVM.IsmType.TEST_ISM, cosmosSigner);
|
|
33
|
+
const [tempIsm] = await ismWriter.create({
|
|
34
|
+
config: { type: AltVM.IsmType.TEST_ISM },
|
|
35
|
+
});
|
|
36
|
+
const tempMailboxWriter = mailboxArtifactManager.createWriter('mailbox', cosmosSigner);
|
|
37
|
+
const [tempMailbox] = await tempMailboxWriter.create({
|
|
38
|
+
config: {
|
|
39
|
+
owner: cosmosSigner.getSignerAddress(),
|
|
40
|
+
defaultIsm: tempIsm,
|
|
41
|
+
defaultHook: {
|
|
42
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
43
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
44
|
+
},
|
|
45
|
+
requiredHook: {
|
|
46
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
47
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
hookArtifactManager = new CosmosHookArtifactManager({
|
|
52
|
+
rpcUrls: [rpc, ...otherRpcUrls],
|
|
53
|
+
mailboxAddress: tempMailbox.deployed.address,
|
|
54
|
+
nativeTokenDenom: denom,
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe('Mailbox Creation', () => {
|
|
58
|
+
it('should create a mailbox with all hooks and ISM', async () => {
|
|
59
|
+
const ismWriter = ismArtifactManager.createWriter(AltVM.IsmType.TEST_ISM, cosmosSigner);
|
|
60
|
+
const [ism] = await ismWriter.create({
|
|
61
|
+
config: { type: AltVM.IsmType.TEST_ISM },
|
|
62
|
+
});
|
|
63
|
+
const merkleTreeHookWriter = hookArtifactManager.createWriter(AltVM.HookType.MERKLE_TREE, cosmosSigner);
|
|
64
|
+
const [defaultHook] = await merkleTreeHookWriter.create({
|
|
65
|
+
config: { type: AltVM.HookType.MERKLE_TREE },
|
|
66
|
+
});
|
|
67
|
+
const merkleTreeHookWriter2 = hookArtifactManager.createWriter(AltVM.HookType.MERKLE_TREE, cosmosSigner);
|
|
68
|
+
const [requiredHook] = await merkleTreeHookWriter2.create({
|
|
69
|
+
config: { type: AltVM.HookType.MERKLE_TREE },
|
|
70
|
+
});
|
|
71
|
+
const config = {
|
|
72
|
+
owner: cosmosSigner.getSignerAddress(),
|
|
73
|
+
defaultIsm: {
|
|
74
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
75
|
+
deployed: { address: ism.deployed.address },
|
|
76
|
+
},
|
|
77
|
+
defaultHook: {
|
|
78
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
79
|
+
deployed: { address: defaultHook.deployed.address },
|
|
80
|
+
},
|
|
81
|
+
requiredHook: {
|
|
82
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
83
|
+
deployed: { address: requiredHook.deployed.address },
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
const writer = mailboxArtifactManager.createWriter('mailbox', cosmosSigner);
|
|
87
|
+
const [result, receipts] = await writer.create({ config });
|
|
88
|
+
expect(result.artifactState).to.equal(ArtifactState.DEPLOYED);
|
|
89
|
+
expect(result.deployed.address).to.be.a('string').and.not.be.empty;
|
|
90
|
+
expect(result.deployed.domainId).to.equal(domainId);
|
|
91
|
+
expect(receipts).to.be.an('array').with.length.greaterThan(0);
|
|
92
|
+
receipts.forEach((receipt) => {
|
|
93
|
+
expect(receipt.code).to.equal(0);
|
|
94
|
+
});
|
|
95
|
+
const reader = mailboxArtifactManager.createReader('mailbox');
|
|
96
|
+
const readMailbox = await reader.read(result.deployed.address);
|
|
97
|
+
expect(readMailbox.config.owner).to.equal(cosmosSigner.getSignerAddress());
|
|
98
|
+
expect(readMailbox.config.defaultIsm.deployed.address).to.equal(ism.deployed.address);
|
|
99
|
+
expect(readMailbox.config.defaultHook.deployed.address).to.equal(defaultHook.deployed.address);
|
|
100
|
+
expect(readMailbox.config.requiredHook.deployed.address).to.equal(requiredHook.deployed.address);
|
|
101
|
+
});
|
|
102
|
+
it('should create a mailbox with minimal config (only ISM)', async () => {
|
|
103
|
+
const ismWriter = ismArtifactManager.createWriter(AltVM.IsmType.TEST_ISM, cosmosSigner);
|
|
104
|
+
const [ism] = await ismWriter.create({
|
|
105
|
+
config: { type: AltVM.IsmType.TEST_ISM },
|
|
106
|
+
});
|
|
107
|
+
const config = {
|
|
108
|
+
owner: cosmosSigner.getSignerAddress(),
|
|
109
|
+
defaultIsm: {
|
|
110
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
111
|
+
deployed: { address: ism.deployed.address },
|
|
112
|
+
},
|
|
113
|
+
defaultHook: {
|
|
114
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
115
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
116
|
+
},
|
|
117
|
+
requiredHook: {
|
|
118
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
119
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
const writer = mailboxArtifactManager.createWriter('mailbox', cosmosSigner);
|
|
123
|
+
const [result, receipts] = await writer.create({ config });
|
|
124
|
+
expect(result.artifactState).to.equal(ArtifactState.DEPLOYED);
|
|
125
|
+
expect(result.deployed.address).to.be.a('string').and.not.be.empty;
|
|
126
|
+
expect(receipts).to.be.an('array').with.length(1);
|
|
127
|
+
receipts.forEach((receipt) => {
|
|
128
|
+
expect(receipt.code).to.equal(0);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
it('should NOT transfer ownership during creation', async () => {
|
|
132
|
+
const ismWriter = ismArtifactManager.createWriter(AltVM.IsmType.TEST_ISM, cosmosSigner);
|
|
133
|
+
const [ism] = await ismWriter.create({
|
|
134
|
+
config: { type: AltVM.IsmType.TEST_ISM },
|
|
135
|
+
});
|
|
136
|
+
const bobSigner = await createSigner('bob');
|
|
137
|
+
const bobAddress = bobSigner.getSignerAddress();
|
|
138
|
+
const aliceAddress = cosmosSigner.getSignerAddress();
|
|
139
|
+
const config = {
|
|
140
|
+
owner: bobAddress,
|
|
141
|
+
defaultIsm: {
|
|
142
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
143
|
+
deployed: { address: ism.deployed.address },
|
|
144
|
+
},
|
|
145
|
+
defaultHook: {
|
|
146
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
147
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
148
|
+
},
|
|
149
|
+
requiredHook: {
|
|
150
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
151
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
const writer = mailboxArtifactManager.createWriter('mailbox', cosmosSigner);
|
|
155
|
+
const [result, receipts] = await writer.create({ config });
|
|
156
|
+
expect(result.artifactState).to.equal(ArtifactState.DEPLOYED);
|
|
157
|
+
expect(receipts).to.be.an('array').with.length(1);
|
|
158
|
+
const reader = mailboxArtifactManager.createReader('mailbox');
|
|
159
|
+
const readMailbox = await reader.read(result.deployed.address);
|
|
160
|
+
expect(readMailbox.config.owner).to.equal(aliceAddress);
|
|
161
|
+
expect(readMailbox.config.owner).to.not.equal(bobAddress);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
describe('Mailbox Reading', () => {
|
|
165
|
+
it('should read a deployed mailbox', async () => {
|
|
166
|
+
const ismWriter = ismArtifactManager.createWriter(AltVM.IsmType.TEST_ISM, cosmosSigner);
|
|
167
|
+
const [ism] = await ismWriter.create({
|
|
168
|
+
config: { type: AltVM.IsmType.TEST_ISM },
|
|
169
|
+
});
|
|
170
|
+
const config = {
|
|
171
|
+
owner: cosmosSigner.getSignerAddress(),
|
|
172
|
+
defaultIsm: {
|
|
173
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
174
|
+
deployed: { address: ism.deployed.address },
|
|
175
|
+
},
|
|
176
|
+
defaultHook: {
|
|
177
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
178
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
179
|
+
},
|
|
180
|
+
requiredHook: {
|
|
181
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
182
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
const writer = mailboxArtifactManager.createWriter('mailbox', cosmosSigner);
|
|
186
|
+
const [deployedMailbox] = await writer.create({ config });
|
|
187
|
+
const reader = mailboxArtifactManager.createReader('mailbox');
|
|
188
|
+
const readMailbox = await reader.read(deployedMailbox.deployed.address);
|
|
189
|
+
expect(readMailbox.artifactState).to.equal(ArtifactState.DEPLOYED);
|
|
190
|
+
expect(readMailbox.deployed.address).to.equal(deployedMailbox.deployed.address);
|
|
191
|
+
expect(readMailbox.deployed.domainId).to.equal(domainId);
|
|
192
|
+
expect(readMailbox.config.owner).to.equal(config.owner);
|
|
193
|
+
expect(readMailbox.config.defaultIsm.deployed.address).to.equal(ism.deployed.address);
|
|
194
|
+
});
|
|
195
|
+
it('should read mailbox via readMailbox method', async () => {
|
|
196
|
+
const ismWriter = ismArtifactManager.createWriter(AltVM.IsmType.TEST_ISM, cosmosSigner);
|
|
197
|
+
const [ism] = await ismWriter.create({
|
|
198
|
+
config: { type: AltVM.IsmType.TEST_ISM },
|
|
199
|
+
});
|
|
200
|
+
const config = {
|
|
201
|
+
owner: cosmosSigner.getSignerAddress(),
|
|
202
|
+
defaultIsm: {
|
|
203
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
204
|
+
deployed: { address: ism.deployed.address },
|
|
205
|
+
},
|
|
206
|
+
defaultHook: {
|
|
207
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
208
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
209
|
+
},
|
|
210
|
+
requiredHook: {
|
|
211
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
212
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
const writer = mailboxArtifactManager.createWriter('mailbox', cosmosSigner);
|
|
216
|
+
const [deployedMailbox] = await writer.create({ config });
|
|
217
|
+
const readMailbox = await mailboxArtifactManager.readMailbox(deployedMailbox.deployed.address);
|
|
218
|
+
expect(readMailbox.artifactState).to.equal(ArtifactState.DEPLOYED);
|
|
219
|
+
expect(readMailbox.deployed.address).to.equal(deployedMailbox.deployed.address);
|
|
220
|
+
expect(readMailbox.config.owner).to.equal(config.owner);
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
describe('Mailbox Updates', () => {
|
|
224
|
+
let deployedMailbox;
|
|
225
|
+
let writer;
|
|
226
|
+
beforeEach(async () => {
|
|
227
|
+
const ismWriter = ismArtifactManager.createWriter(AltVM.IsmType.TEST_ISM, cosmosSigner);
|
|
228
|
+
const [ism] = await ismWriter.create({
|
|
229
|
+
config: { type: AltVM.IsmType.TEST_ISM },
|
|
230
|
+
});
|
|
231
|
+
const hookWriter = hookArtifactManager.createWriter(AltVM.HookType.MERKLE_TREE, cosmosSigner);
|
|
232
|
+
const [hook] = await hookWriter.create({
|
|
233
|
+
config: { type: AltVM.HookType.MERKLE_TREE },
|
|
234
|
+
});
|
|
235
|
+
const config = {
|
|
236
|
+
owner: cosmosSigner.getSignerAddress(),
|
|
237
|
+
defaultIsm: {
|
|
238
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
239
|
+
deployed: { address: ism.deployed.address },
|
|
240
|
+
},
|
|
241
|
+
defaultHook: {
|
|
242
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
243
|
+
deployed: { address: hook.deployed.address },
|
|
244
|
+
},
|
|
245
|
+
requiredHook: {
|
|
246
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
247
|
+
deployed: { address: ZERO_ADDRESS_HEX_32 },
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
writer = mailboxArtifactManager.createWriter('mailbox', cosmosSigner);
|
|
251
|
+
[deployedMailbox] = await writer.create({ config });
|
|
252
|
+
});
|
|
253
|
+
function verifyFullConfig(readMailbox, expectedConfig) {
|
|
254
|
+
expect(readMailbox.config.owner).to.equal(expectedConfig.owner);
|
|
255
|
+
expect(readMailbox.config.defaultIsm.deployed.address).to.equal(expectedConfig.defaultIsm.deployed.address);
|
|
256
|
+
expect(readMailbox.config.defaultHook.deployed.address).to.equal(expectedConfig.defaultHook.deployed.address);
|
|
257
|
+
expect(readMailbox.config.requiredHook.deployed.address).to.equal(expectedConfig.requiredHook.deployed.address);
|
|
258
|
+
}
|
|
259
|
+
const updateTestCases = [
|
|
260
|
+
{
|
|
261
|
+
name: 'default ISM',
|
|
262
|
+
setupNewValue: async () => {
|
|
263
|
+
const ismWriter = ismArtifactManager.createWriter(AltVM.IsmType.TEST_ISM, cosmosSigner);
|
|
264
|
+
const [newIsm] = await ismWriter.create({
|
|
265
|
+
config: { type: AltVM.IsmType.TEST_ISM },
|
|
266
|
+
});
|
|
267
|
+
return newIsm.deployed.address;
|
|
268
|
+
},
|
|
269
|
+
updateConfig: (mailbox, newValue) => ({
|
|
270
|
+
...mailbox,
|
|
271
|
+
config: {
|
|
272
|
+
...mailbox.config,
|
|
273
|
+
defaultIsm: {
|
|
274
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
275
|
+
deployed: { address: newValue },
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
}),
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
name: 'default hook',
|
|
282
|
+
setupNewValue: async () => {
|
|
283
|
+
const hookWriter = hookArtifactManager.createWriter(AltVM.HookType.MERKLE_TREE, cosmosSigner);
|
|
284
|
+
const [newHook] = await hookWriter.create({
|
|
285
|
+
config: { type: AltVM.HookType.MERKLE_TREE },
|
|
286
|
+
});
|
|
287
|
+
return newHook.deployed.address;
|
|
288
|
+
},
|
|
289
|
+
updateConfig: (mailbox, newValue) => ({
|
|
290
|
+
...mailbox,
|
|
291
|
+
config: {
|
|
292
|
+
...mailbox.config,
|
|
293
|
+
defaultHook: {
|
|
294
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
295
|
+
deployed: { address: newValue },
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
}),
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
name: 'required hook',
|
|
302
|
+
setupNewValue: async () => {
|
|
303
|
+
const hookWriter = hookArtifactManager.createWriter(AltVM.HookType.MERKLE_TREE, cosmosSigner);
|
|
304
|
+
const [newHook] = await hookWriter.create({
|
|
305
|
+
config: { type: AltVM.HookType.MERKLE_TREE },
|
|
306
|
+
});
|
|
307
|
+
return newHook.deployed.address;
|
|
308
|
+
},
|
|
309
|
+
updateConfig: (mailbox, newValue) => ({
|
|
310
|
+
...mailbox,
|
|
311
|
+
config: {
|
|
312
|
+
...mailbox.config,
|
|
313
|
+
requiredHook: {
|
|
314
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
315
|
+
deployed: { address: newValue },
|
|
316
|
+
},
|
|
317
|
+
},
|
|
318
|
+
}),
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
name: 'owner',
|
|
322
|
+
setupNewValue: async () => {
|
|
323
|
+
const bobSigner = await createSigner('bob');
|
|
324
|
+
return bobSigner.getSignerAddress();
|
|
325
|
+
},
|
|
326
|
+
updateConfig: (mailbox, newValue) => ({
|
|
327
|
+
...mailbox,
|
|
328
|
+
config: {
|
|
329
|
+
...mailbox.config,
|
|
330
|
+
owner: newValue,
|
|
331
|
+
},
|
|
332
|
+
}),
|
|
333
|
+
},
|
|
334
|
+
];
|
|
335
|
+
updateTestCases.forEach(({ name, setupNewValue, updateConfig }) => {
|
|
336
|
+
it(`should update ${name}`, async () => {
|
|
337
|
+
const newValue = await setupNewValue();
|
|
338
|
+
const updatedArtifact = updateConfig(deployedMailbox, newValue);
|
|
339
|
+
const txs = await writer.update(updatedArtifact);
|
|
340
|
+
expect(txs).to.be.an('array').with.length(1);
|
|
341
|
+
expect(txs[0].typeUrl).to.equal(MessageRegistry.MsgSetMailbox.proto.type);
|
|
342
|
+
const receipt = await signer.sendAndConfirmTransaction(txs[0]);
|
|
343
|
+
expect(receipt.code).to.equal(0);
|
|
344
|
+
const reader = mailboxArtifactManager.createReader('mailbox');
|
|
345
|
+
const readMailbox = await reader.read(deployedMailbox.deployed.address);
|
|
346
|
+
verifyFullConfig(readMailbox, updatedArtifact.config);
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
it('should return no transactions when no updates needed', async () => {
|
|
350
|
+
const txs = await writer.update(deployedMailbox);
|
|
351
|
+
expect(txs).to.be.an('array').with.length(0);
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
});
|
|
355
|
+
//# sourceMappingURL=mailbox.e2e-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailbox.e2e-test.js","sourceRoot":"","sources":["../../src/tests/mailbox.e2e-test.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/types.d.ts
CHANGED
|
@@ -33,4 +33,12 @@ export interface CosmosSyntheticWarpTokenConfig extends BaseCosmosWarpTokenConfi
|
|
|
33
33
|
type: AltVM.TokenType.synthetic;
|
|
34
34
|
}
|
|
35
35
|
export type CosmosWarpTokenConfig = CosmosCollateralWarpTokenConfig | CosmosSyntheticWarpTokenConfig;
|
|
36
|
+
export interface CosmosMailboxConfig {
|
|
37
|
+
address: string;
|
|
38
|
+
owner: string;
|
|
39
|
+
localDomain: number;
|
|
40
|
+
defaultIsm: string;
|
|
41
|
+
defaultHook: string;
|
|
42
|
+
requiredHook: string;
|
|
43
|
+
}
|
|
36
44
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,+BAAgC,SAAQ,yBAAyB;IAChF,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,8BAA+B,SAAQ,yBAAyB;IAC/E,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;CACjC;AAED,MAAM,MAAM,qBAAqB,GAC7B,+BAA+B,GAC/B,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,+BAAgC,SAAQ,yBAAyB;IAChF,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,8BAA+B,SAAQ,yBAAyB;IAC/E,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;CACjC;AAED,MAAM,MAAM,qBAAqB,GAC7B,+BAA+B,GAC/B,8BAA8B,CAAC;AAKnC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperlane-xyz/cosmos-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "28.0.0",
|
|
4
4
|
"description": "Hyperlane TypeScript SDK for the Cosmos Hyperlane SDK module",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blockchain",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"@cosmjs/proto-signing": "^0.32.4",
|
|
33
33
|
"@cosmjs/stargate": "^0.32.4",
|
|
34
34
|
"@cosmjs/tendermint-rpc": "^0.32.4",
|
|
35
|
-
"@hyperlane-xyz/cosmos-types": "
|
|
36
|
-
"@hyperlane-xyz/provider-sdk": "
|
|
37
|
-
"@hyperlane-xyz/utils": "
|
|
35
|
+
"@hyperlane-xyz/cosmos-types": "28.0.0",
|
|
36
|
+
"@hyperlane-xyz/provider-sdk": "4.0.0",
|
|
37
|
+
"@hyperlane-xyz/utils": "28.0.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@eslint/js": "^9.39.2",
|
|
@@ -51,13 +51,13 @@
|
|
|
51
51
|
"eslint-plugin-import": "^2.32.0",
|
|
52
52
|
"mocha": "^11.5.0",
|
|
53
53
|
"mocha-steps": "^1.3.0",
|
|
54
|
-
"oxfmt": "^0.
|
|
55
|
-
"testcontainers": "11.
|
|
54
|
+
"oxfmt": "^0.40.0",
|
|
55
|
+
"testcontainers": "11.12.0",
|
|
56
56
|
"ts-node": "^10.9.2",
|
|
57
57
|
"typescript": "5.8.3",
|
|
58
58
|
"typescript-eslint": "^8.54.0",
|
|
59
|
-
"@hyperlane-xyz/eslint-config": "^
|
|
60
|
-
"@hyperlane-xyz/tsconfig": "^
|
|
59
|
+
"@hyperlane-xyz/eslint-config": "^28.0.0",
|
|
60
|
+
"@hyperlane-xyz/tsconfig": "^28.0.0"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"build": "rm -rf ./dist && tsc",
|