@humanode-hyperlane/cosmos-sdk 0.0.0-stage → 30.0.0-humanode.1
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/LICENSE.md +193 -0
- package/README.md +82 -2
- package/dist/clients/protocol.d.ts +24 -0
- package/dist/clients/protocol.d.ts.map +1 -0
- package/dist/clients/protocol.js +70 -0
- package/dist/clients/protocol.js.map +1 -0
- package/dist/clients/provider.d.ts +70 -0
- package/dist/clients/provider.d.ts.map +1 -0
- package/dist/clients/provider.js +397 -0
- package/dist/clients/provider.js.map +1 -0
- package/dist/clients/signer.d.ts +55 -0
- package/dist/clients/signer.d.ts.map +1 -0
- package/dist/clients/signer.js +377 -0
- package/dist/clients/signer.js.map +1 -0
- package/dist/hook/hook-artifact-manager.d.ts +72 -0
- package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
- package/dist/hook/hook-artifact-manager.js +139 -0
- package/dist/hook/hook-artifact-manager.js.map +1 -0
- package/dist/hook/hook-query.d.ts +42 -0
- package/dist/hook/hook-query.d.ts.map +1 -0
- package/dist/hook/hook-query.js +95 -0
- package/dist/hook/hook-query.js.map +1 -0
- package/dist/hook/hook-tx.d.ts +47 -0
- package/dist/hook/hook-tx.d.ts.map +1 -0
- package/dist/hook/hook-tx.js +76 -0
- package/dist/hook/hook-tx.js.map +1 -0
- package/dist/hook/igp-hook.d.ts +30 -0
- package/dist/hook/igp-hook.d.ts.map +1 -0
- package/dist/hook/igp-hook.js +150 -0
- package/dist/hook/igp-hook.js.map +1 -0
- package/dist/hook/merkle-tree-hook.d.ts +32 -0
- package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
- package/dist/hook/merkle-tree-hook.js +60 -0
- package/dist/hook/merkle-tree-hook.js.map +1 -0
- package/dist/hyperlane/core/messages.d.ts +16 -0
- package/dist/hyperlane/core/messages.d.ts.map +1 -0
- package/dist/hyperlane/core/messages.js +2 -0
- package/dist/hyperlane/core/messages.js.map +1 -0
- package/dist/hyperlane/core/query.d.ts +18 -0
- package/dist/hyperlane/core/query.d.ts.map +1 -0
- package/dist/hyperlane/core/query.js +18 -0
- package/dist/hyperlane/core/query.js.map +1 -0
- package/dist/hyperlane/interchain_security/messages.d.ts +36 -0
- package/dist/hyperlane/interchain_security/messages.d.ts.map +1 -0
- package/dist/hyperlane/interchain_security/messages.js +2 -0
- package/dist/hyperlane/interchain_security/messages.js.map +1 -0
- package/dist/hyperlane/interchain_security/query.d.ts +36 -0
- package/dist/hyperlane/interchain_security/query.d.ts.map +1 -0
- package/dist/hyperlane/interchain_security/query.js +49 -0
- package/dist/hyperlane/interchain_security/query.js.map +1 -0
- package/dist/hyperlane/post_dispatch/messages.d.ts +32 -0
- package/dist/hyperlane/post_dispatch/messages.d.ts.map +1 -0
- package/dist/hyperlane/post_dispatch/messages.js +2 -0
- package/dist/hyperlane/post_dispatch/messages.js.map +1 -0
- package/dist/hyperlane/post_dispatch/query.d.ts +24 -0
- package/dist/hyperlane/post_dispatch/query.d.ts.map +1 -0
- package/dist/hyperlane/post_dispatch/query.js +21 -0
- package/dist/hyperlane/post_dispatch/query.js.map +1 -0
- package/dist/hyperlane/warp/messages.d.ts +28 -0
- package/dist/hyperlane/warp/messages.d.ts.map +1 -0
- package/dist/hyperlane/warp/messages.js +2 -0
- package/dist/hyperlane/warp/messages.js.map +1 -0
- package/dist/hyperlane/warp/query.d.ts +18 -0
- package/dist/hyperlane/warp/query.d.ts.map +1 -0
- package/dist/hyperlane/warp/query.js +16 -0
- package/dist/hyperlane/warp/query.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/ism/ism-artifact-manager.d.ts +69 -0
- package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
- package/dist/ism/ism-artifact-manager.js +144 -0
- package/dist/ism/ism-artifact-manager.js.map +1 -0
- package/dist/ism/ism-query.d.ts +71 -0
- package/dist/ism/ism-query.d.ts.map +1 -0
- package/dist/ism/ism-query.js +133 -0
- package/dist/ism/ism-query.js.map +1 -0
- package/dist/ism/ism-tx.d.ts +30 -0
- package/dist/ism/ism-tx.d.ts.map +1 -0
- package/dist/ism/ism-tx.js +76 -0
- package/dist/ism/ism-tx.js.map +1 -0
- package/dist/ism/multisig-ism.d.ts +51 -0
- package/dist/ism/multisig-ism.d.ts.map +1 -0
- package/dist/ism/multisig-ism.js +120 -0
- package/dist/ism/multisig-ism.js.map +1 -0
- package/dist/ism/routing-ism.d.ts +30 -0
- package/dist/ism/routing-ism.d.ts.map +1 -0
- package/dist/ism/routing-ism.js +126 -0
- package/dist/ism/routing-ism.js.map +1 -0
- package/dist/ism/test-ism.d.ts +29 -0
- package/dist/ism/test-ism.d.ts.map +1 -0
- package/dist/ism/test-ism.js +56 -0
- package/dist/ism/test-ism.js.map +1 -0
- 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/registry.d.ts +21 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +373 -0
- package/dist/registry.js.map +1 -0
- package/dist/testing/constants.d.ts +10 -0
- package/dist/testing/constants.d.ts.map +1 -0
- package/dist/testing/constants.js +30 -0
- package/dist/testing/constants.js.map +1 -0
- package/dist/testing/index.d.ts +8 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +10 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/node.d.ts +4 -0
- package/dist/testing/node.d.ts.map +1 -0
- package/dist/testing/node.js +35 -0
- package/dist/testing/node.js.map +1 -0
- package/dist/testing/utils.d.ts +10 -0
- package/dist/testing/utils.d.ts.map +1 -0
- package/dist/testing/utils.js +29 -0
- package/dist/testing/utils.js.map +1 -0
- package/dist/tests/1_interchain_security.e2e-test.d.ts +2 -0
- package/dist/tests/1_interchain_security.e2e-test.d.ts.map +1 -0
- package/dist/tests/1_interchain_security.e2e-test.js +171 -0
- package/dist/tests/1_interchain_security.e2e-test.js.map +1 -0
- package/dist/tests/2_core.e2e-test.d.ts +2 -0
- package/dist/tests/2_core.e2e-test.d.ts.map +1 -0
- package/dist/tests/2_core.e2e-test.js +120 -0
- package/dist/tests/2_core.e2e-test.js.map +1 -0
- package/dist/tests/3_post_dispatch.e2e-test.d.ts +2 -0
- package/dist/tests/3_post_dispatch.e2e-test.d.ts.map +1 -0
- package/dist/tests/3_post_dispatch.e2e-test.js +130 -0
- package/dist/tests/3_post_dispatch.e2e-test.js.map +1 -0
- package/dist/tests/4_warp.e2e-test.d.ts +2 -0
- package/dist/tests/4_warp.e2e-test.d.ts.map +1 -0
- package/dist/tests/4_warp.e2e-test.js +284 -0
- package/dist/tests/4_warp.e2e-test.js.map +1 -0
- package/dist/tests/5_warp_artifact.e2e-test.d.ts +2 -0
- package/dist/tests/5_warp_artifact.e2e-test.d.ts.map +1 -0
- package/dist/tests/5_warp_artifact.e2e-test.js +520 -0
- package/dist/tests/5_warp_artifact.e2e-test.js.map +1 -0
- package/dist/tests/e2e-test.setup.d.ts +2 -0
- package/dist/tests/e2e-test.setup.d.ts.map +1 -0
- package/dist/tests/e2e-test.setup.js +13 -0
- package/dist/tests/e2e-test.setup.js.map +1 -0
- package/dist/tests/hooks.e2e-test.d.ts +2 -0
- package/dist/tests/hooks.e2e-test.d.ts.map +1 -0
- package/dist/tests/hooks.e2e-test.js +314 -0
- package/dist/tests/hooks.e2e-test.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/base.d.ts +22 -0
- package/dist/utils/base.d.ts.map +1 -0
- package/dist/utils/base.js +35 -0
- package/dist/utils/base.js.map +1 -0
- package/dist/utils/types.d.ts +44 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +2 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/warp/collateral-token.d.ts +21 -0
- package/dist/warp/collateral-token.d.ts.map +1 -0
- package/dist/warp/collateral-token.js +119 -0
- package/dist/warp/collateral-token.js.map +1 -0
- package/dist/warp/synthetic-token.d.ts +21 -0
- package/dist/warp/synthetic-token.d.ts.map +1 -0
- package/dist/warp/synthetic-token.js +98 -0
- package/dist/warp/synthetic-token.js.map +1 -0
- package/dist/warp/warp-artifact-manager.d.ts +17 -0
- package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
- package/dist/warp/warp-artifact-manager.js +101 -0
- package/dist/warp/warp-artifact-manager.js.map +1 -0
- package/dist/warp/warp-query.d.ts +9 -0
- package/dist/warp/warp-query.d.ts.map +1 -0
- package/dist/warp/warp-query.js +105 -0
- package/dist/warp/warp-query.js.map +1 -0
- package/dist/warp/warp-tx.d.ts +31 -0
- package/dist/warp/warp-tx.d.ts.map +1 -0
- package/dist/warp/warp-tx.js +127 -0
- package/dist/warp/warp-tx.js.map +1 -0
- package/package.json +61 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multisig-ism.js","sourceRoot":"","sources":["../../src/ism/multisig-ism.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type DeliverTxResponse } from '@cosmjs/stargate';
|
|
2
|
+
import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
|
|
3
|
+
import { type DeployedIsmAddress, type RawRoutingIsmArtifactConfig } from '@humanode-hyperlane/provider-sdk/ism';
|
|
4
|
+
import { type CosmosNativeSigner } from '../clients/signer.js';
|
|
5
|
+
import { type AnnotatedEncodeObject } from '../utils/types.js';
|
|
6
|
+
import { type CosmosIsmQueryClient } from './ism-query.js';
|
|
7
|
+
/**
|
|
8
|
+
* Reader for Cosmos Routing ISM (raw, with underived nested ISMs).
|
|
9
|
+
* Returns nested ISMs as address-only references (UNDERIVED state).
|
|
10
|
+
* The GenericIsmReader from deploy-sdk handles recursive expansion of nested ISMs.
|
|
11
|
+
*/
|
|
12
|
+
export declare class CosmosRoutingIsmRawReader implements ArtifactReader<RawRoutingIsmArtifactConfig, DeployedIsmAddress> {
|
|
13
|
+
protected readonly query: CosmosIsmQueryClient;
|
|
14
|
+
constructor(query: CosmosIsmQueryClient);
|
|
15
|
+
read(address: string): Promise<ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Writer for Cosmos Routing ISM (raw).
|
|
19
|
+
* Handles deployment and updates of routing ISMs including domain route management and ownership transfers.
|
|
20
|
+
*/
|
|
21
|
+
export declare class CosmosRoutingIsmRawWriter extends CosmosRoutingIsmRawReader implements ArtifactWriter<RawRoutingIsmArtifactConfig, DeployedIsmAddress> {
|
|
22
|
+
private readonly signer;
|
|
23
|
+
constructor(query: CosmosIsmQueryClient, signer: CosmosNativeSigner);
|
|
24
|
+
create(artifact: ArtifactNew<RawRoutingIsmArtifactConfig>): Promise<[
|
|
25
|
+
ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>,
|
|
26
|
+
DeliverTxResponse[]
|
|
27
|
+
]>;
|
|
28
|
+
update(artifact: ArtifactDeployed<RawRoutingIsmArtifactConfig, DeployedIsmAddress>): Promise<AnnotatedEncodeObject[]>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=routing-ism.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-ism.d.ts","sourceRoot":"","sources":["../../src/ism/routing-ism.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAGnB,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EACjC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,KAAK,oBAAoB,EAAuB,MAAM,gBAAgB,CAAC;AAQhF;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAC9D,2BAA2B,EAC3B,kBAAkB,CACnB;IACa,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB;gBAA3B,KAAK,EAAE,oBAAoB;IAEpD,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CACR,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAClE;CA0BF;AAED;;;GAGG;AACH,qBAAa,yBACX,SAAQ,yBACR,YAAW,cAAc,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;IAIxE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADvB,KAAK,EAAE,oBAAoB,EACV,MAAM,EAAE,kBAAkB;IAKvC,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,2BAA2B,CAAC,GACjD,OAAO,CACR;QACE,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;QACjE,iBAAiB,EAAE;KACpB,CACF;IAiDK,MAAM,CACV,QAAQ,EAAE,gBAAgB,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,GAC1E,OAAO,CAAC,qBAAqB,EAAE,CAAC;CA6DpC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { IsmType } from '@humanode-hyperlane/provider-sdk/altvm';
|
|
2
|
+
import { ArtifactState, } from '@humanode-hyperlane/provider-sdk/artifact';
|
|
3
|
+
import { eqAddressCosmos, isNullish } from '@humanode-hyperlane/utils';
|
|
4
|
+
import { getNewContractAddress } from '../utils/base.js';
|
|
5
|
+
import { getRoutingIsmConfig } from './ism-query.js';
|
|
6
|
+
import { getCreateRoutingIsmTx, getRemoveRoutingIsmRouteTx, getSetRoutingIsmOwnerTx, getSetRoutingIsmRouteTx, } from './ism-tx.js';
|
|
7
|
+
/**
|
|
8
|
+
* Reader for Cosmos Routing ISM (raw, with underived nested ISMs).
|
|
9
|
+
* Returns nested ISMs as address-only references (UNDERIVED state).
|
|
10
|
+
* The GenericIsmReader from deploy-sdk handles recursive expansion of nested ISMs.
|
|
11
|
+
*/
|
|
12
|
+
export class CosmosRoutingIsmRawReader {
|
|
13
|
+
query;
|
|
14
|
+
constructor(query) {
|
|
15
|
+
this.query = query;
|
|
16
|
+
}
|
|
17
|
+
async read(address) {
|
|
18
|
+
const ismConfig = await getRoutingIsmConfig(this.query, address);
|
|
19
|
+
// Convert routes to UNDERIVED artifacts (address-only references)
|
|
20
|
+
const domains = {};
|
|
21
|
+
for (const route of ismConfig.routes) {
|
|
22
|
+
domains[route.domainId] = {
|
|
23
|
+
deployed: {
|
|
24
|
+
address: route.ismAddress,
|
|
25
|
+
},
|
|
26
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
31
|
+
config: {
|
|
32
|
+
type: IsmType.ROUTING,
|
|
33
|
+
owner: ismConfig.owner,
|
|
34
|
+
domains,
|
|
35
|
+
},
|
|
36
|
+
deployed: {
|
|
37
|
+
address: ismConfig.address,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Writer for Cosmos Routing ISM (raw).
|
|
44
|
+
* Handles deployment and updates of routing ISMs including domain route management and ownership transfers.
|
|
45
|
+
*/
|
|
46
|
+
export class CosmosRoutingIsmRawWriter extends CosmosRoutingIsmRawReader {
|
|
47
|
+
signer;
|
|
48
|
+
constructor(query, signer) {
|
|
49
|
+
super(query);
|
|
50
|
+
this.signer = signer;
|
|
51
|
+
}
|
|
52
|
+
async create(artifact) {
|
|
53
|
+
const { config } = artifact;
|
|
54
|
+
const receipts = [];
|
|
55
|
+
const routes = Object.entries(config.domains).map(([domainId, artifact]) => ({
|
|
56
|
+
domainId: parseInt(domainId),
|
|
57
|
+
ismAddress: artifact.deployed.address,
|
|
58
|
+
}));
|
|
59
|
+
const transaction = await getCreateRoutingIsmTx(this.signer.getSignerAddress(), routes);
|
|
60
|
+
const receipt = await this.signer.sendAndConfirmTransaction(transaction);
|
|
61
|
+
receipts.push(receipt);
|
|
62
|
+
const ismAddress = getNewContractAddress(receipt);
|
|
63
|
+
// Transfer ownership if config.owner differs from signer
|
|
64
|
+
if (!eqAddressCosmos(config.owner, this.signer.getSignerAddress())) {
|
|
65
|
+
const ownerTransferTx = await getSetRoutingIsmOwnerTx(this.signer.getSignerAddress(), {
|
|
66
|
+
ismAddress,
|
|
67
|
+
newOwner: config.owner,
|
|
68
|
+
});
|
|
69
|
+
const ownerReceipt = await this.signer.sendAndConfirmTransaction(ownerTransferTx);
|
|
70
|
+
receipts.push(ownerReceipt);
|
|
71
|
+
}
|
|
72
|
+
const deployedArtifact = {
|
|
73
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
74
|
+
config: artifact.config,
|
|
75
|
+
deployed: {
|
|
76
|
+
address: ismAddress,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
return [deployedArtifact, receipts];
|
|
80
|
+
}
|
|
81
|
+
async update(artifact) {
|
|
82
|
+
const { config, deployed } = artifact;
|
|
83
|
+
const currentConfig = await this.read(deployed.address);
|
|
84
|
+
const transactions = [];
|
|
85
|
+
// This is the address that has to execute the update transactions
|
|
86
|
+
const currentOwnerAddress = currentConfig.config.owner;
|
|
87
|
+
// Find domains to add or update
|
|
88
|
+
for (const [domainId, expectedIsm] of Object.entries(config.domains)) {
|
|
89
|
+
const domain = parseInt(domainId);
|
|
90
|
+
const currentIsmAddress = currentConfig.config.domains[domain]
|
|
91
|
+
? currentConfig.config.domains[domain].deployed.address
|
|
92
|
+
: undefined;
|
|
93
|
+
const expectedIsmAddress = expectedIsm.deployed.address;
|
|
94
|
+
if (isNullish(currentIsmAddress) ||
|
|
95
|
+
!eqAddressCosmos(currentIsmAddress, expectedIsmAddress)) {
|
|
96
|
+
const transaction = await getSetRoutingIsmRouteTx(currentOwnerAddress, {
|
|
97
|
+
ismAddress: deployed.address,
|
|
98
|
+
domainIsm: { domainId: domain, ismAddress: expectedIsmAddress },
|
|
99
|
+
});
|
|
100
|
+
transactions.push(transaction);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Find domains to remove
|
|
104
|
+
for (const domainId of Object.keys(currentConfig.config.domains)) {
|
|
105
|
+
const domain = parseInt(domainId);
|
|
106
|
+
const desiredIsmAddress = config.domains[domain];
|
|
107
|
+
if (isNullish(desiredIsmAddress)) {
|
|
108
|
+
const transaction = await getRemoveRoutingIsmRouteTx(currentOwnerAddress, {
|
|
109
|
+
ismAddress: deployed.address,
|
|
110
|
+
domainId: domain,
|
|
111
|
+
});
|
|
112
|
+
transactions.push(transaction);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Owner transfer must be last transaction as the current owner executes all updates
|
|
116
|
+
if (!eqAddressCosmos(config.owner, currentConfig.config.owner)) {
|
|
117
|
+
const transaction = await getSetRoutingIsmOwnerTx(currentOwnerAddress, {
|
|
118
|
+
ismAddress: deployed.address,
|
|
119
|
+
newOwner: config.owner,
|
|
120
|
+
});
|
|
121
|
+
transactions.push(transaction);
|
|
122
|
+
}
|
|
123
|
+
return transactions;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=routing-ism.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing-ism.js","sourceRoot":"","sources":["../../src/ism/routing-ism.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type DeliverTxResponse } from '@cosmjs/stargate';
|
|
2
|
+
import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
|
|
3
|
+
import { type DeployedIsmAddress, type TestIsmConfig } from '@humanode-hyperlane/provider-sdk/ism';
|
|
4
|
+
import { type CosmosNativeSigner } from '../clients/signer.js';
|
|
5
|
+
import { type AnnotatedEncodeObject } from '../utils/types.js';
|
|
6
|
+
import { type CosmosIsmQueryClient } from './ism-query.js';
|
|
7
|
+
/**
|
|
8
|
+
* Reader for Cosmos NoopIsm (test ISM).
|
|
9
|
+
* This is the simplest ISM type with no configuration beyond its address.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CosmosTestIsmReader implements ArtifactReader<TestIsmConfig, DeployedIsmAddress> {
|
|
12
|
+
private readonly query;
|
|
13
|
+
constructor(query: CosmosIsmQueryClient);
|
|
14
|
+
read(address: string): Promise<ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Writer for Cosmos NoopIsm (test ISM).
|
|
18
|
+
* Handles deployment of test ISMs which accept all messages without verification.
|
|
19
|
+
*/
|
|
20
|
+
export declare class CosmosTestIsmWriter extends CosmosTestIsmReader implements ArtifactWriter<TestIsmConfig, DeployedIsmAddress> {
|
|
21
|
+
private readonly signer;
|
|
22
|
+
constructor(query: CosmosIsmQueryClient, signer: CosmosNativeSigner);
|
|
23
|
+
create(artifact: ArtifactNew<TestIsmConfig>): Promise<[
|
|
24
|
+
ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>,
|
|
25
|
+
DeliverTxResponse[]
|
|
26
|
+
]>;
|
|
27
|
+
update(_artifact: ArtifactDeployed<TestIsmConfig, DeployedIsmAddress>): Promise<AnnotatedEncodeObject[]>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=test-ism.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-ism.d.ts","sourceRoot":"","sources":["../../src/ism/test-ism.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,KAAK,oBAAoB,EAAoB,MAAM,gBAAgB,CAAC;AAG7E;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,cAAc,CACxD,aAAa,EACb,kBAAkB,CACnB;IACa,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,oBAAoB;IAElD,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;CAahE;AAED;;;GAGG;AACH,qBAAa,mBACX,SAAQ,mBACR,YAAW,cAAc,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAI1D,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADvB,KAAK,EAAE,oBAAoB,EACV,MAAM,EAAE,kBAAkB;IAKvC,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,GACnC,OAAO,CACR;QAAC,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAAE,iBAAiB,EAAE;KAAC,CAC3E;IAsBK,MAAM,CACV,SAAS,EAAE,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC7D,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAIpC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { IsmType } from '@humanode-hyperlane/provider-sdk/altvm';
|
|
2
|
+
import { ArtifactState, } from '@humanode-hyperlane/provider-sdk/artifact';
|
|
3
|
+
import { getNewContractAddress } from '../utils/base.js';
|
|
4
|
+
import { getNoopIsmConfig } from './ism-query.js';
|
|
5
|
+
import { getCreateTestIsmTx } from './ism-tx.js';
|
|
6
|
+
/**
|
|
7
|
+
* Reader for Cosmos NoopIsm (test ISM).
|
|
8
|
+
* This is the simplest ISM type with no configuration beyond its address.
|
|
9
|
+
*/
|
|
10
|
+
export class CosmosTestIsmReader {
|
|
11
|
+
query;
|
|
12
|
+
constructor(query) {
|
|
13
|
+
this.query = query;
|
|
14
|
+
}
|
|
15
|
+
async read(address) {
|
|
16
|
+
const ismConfig = await getNoopIsmConfig(this.query, address);
|
|
17
|
+
return {
|
|
18
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
19
|
+
config: {
|
|
20
|
+
type: IsmType.TEST_ISM,
|
|
21
|
+
},
|
|
22
|
+
deployed: {
|
|
23
|
+
address: ismConfig.address,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Writer for Cosmos NoopIsm (test ISM).
|
|
30
|
+
* Handles deployment of test ISMs which accept all messages without verification.
|
|
31
|
+
*/
|
|
32
|
+
export class CosmosTestIsmWriter extends CosmosTestIsmReader {
|
|
33
|
+
signer;
|
|
34
|
+
constructor(query, signer) {
|
|
35
|
+
super(query);
|
|
36
|
+
this.signer = signer;
|
|
37
|
+
}
|
|
38
|
+
async create(artifact) {
|
|
39
|
+
const transaction = await getCreateTestIsmTx(this.signer.getSignerAddress());
|
|
40
|
+
const receipt = await this.signer.sendAndConfirmTransaction(transaction);
|
|
41
|
+
const ismAddress = getNewContractAddress(receipt);
|
|
42
|
+
const deployedArtifact = {
|
|
43
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
44
|
+
config: artifact.config,
|
|
45
|
+
deployed: {
|
|
46
|
+
address: ismAddress,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
return [deployedArtifact, [receipt]];
|
|
50
|
+
}
|
|
51
|
+
async update(_artifact) {
|
|
52
|
+
// NoopIsm has no mutable state
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=test-ism.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-ism.js","sourceRoot":"","sources":["../../src/ism/test-ism.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAIL,aAAa,GAEd,MAAM,2CAA2C,CAAC;AAOnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAA6B,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAID;IAA7B,YAA6B,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;IAAG,CAAC;IAE5D,KAAK,CAAC,IAAI,CACR,OAAe;QAEf,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAE9D,OAAO;YACL,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO,CAAC,QAAQ;aACvB;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBACX,SAAQ,mBAAmB;IAKR;IAFnB,YACE,KAA2B,EACV,MAA0B;QAE3C,KAAK,CAAC,KAAK,CAAC,CAAC;QAFI,WAAM,GAAN,MAAM,CAAoB;IAG7C,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAoC;QAIpC,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAC/B,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,gBAAgB,GAGlB;YACF,aAAa,EAAE,aAAa,CAAC,QAAQ;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE;gBACR,OAAO,EAAE,UAAU;aACpB;SACF,CAAC;QAEF,OAAO,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAA8D;QAE9D,+BAA+B;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ArtifactReader, type ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
|
|
2
|
+
import { type DeployedMailboxAddress, type DeployedRawMailboxArtifact, type IRawMailboxArtifactManager, type MailboxType, type RawMailboxArtifactConfigs } from '@humanode-hyperlane/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,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC/B,MAAM,0CAA0C,CAAC;AAGlD,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 '@humanode-hyperlane/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,2BAA2B,CAAC;AAGtD,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 '@humanode-hyperlane/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,2BAA2B,CAAC;AAUxE;;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 '@humanode-hyperlane/provider-sdk/artifact';
|
|
3
|
+
import { type DeployedMailboxAddress, type MailboxOnChain } from '@humanode-hyperlane/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,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACpB,MAAM,0CAA0C,CAAC;AAOlD,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"}
|