From f131e4952c624fa1d5c1f8e2c89f6f684bb851d2 Mon Sep 17 00:00:00 2001 From: Turadg Aleahmad Date: Wed, 12 Jun 2024 06:25:03 -0700 Subject: [PATCH 1/7] docs: TODO cleanup --- packages/orchestration/src/examples/stakeIca.contract.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/orchestration/src/examples/stakeIca.contract.js b/packages/orchestration/src/examples/stakeIca.contract.js index cf2285fa944..8a35db23717 100644 --- a/packages/orchestration/src/examples/stakeIca.contract.js +++ b/packages/orchestration/src/examples/stakeIca.contract.js @@ -51,7 +51,6 @@ export const privateArgsShape = meta.privateArgsShape; * @param {Baggage} baggage */ export const start = async (zcf, privateArgs, baggage) => { - // TODO #9063 this roughly matches what we'll get from Chain.getChainInfo() const { hostConnectionId, controllerConnectionId, bondDenom } = zcf.getTerms(); const { orchestration, marshaller, storageNode, timer } = privateArgs; From 6ca86dae7133c5a511cac462b05aba2f45f34f9d Mon Sep 17 00:00:00 2001 From: Turadg Aleahmad Date: Tue, 11 Jun 2024 16:38:08 -0700 Subject: [PATCH 2/7] refactor: clarify undirected connections --- packages/orchestration/src/utils/chainHub.js | 24 +++++++++----------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/packages/orchestration/src/utils/chainHub.js b/packages/orchestration/src/utils/chainHub.js index 25194797d7e..d1df713d5c1 100644 --- a/packages/orchestration/src/utils/chainHub.js +++ b/packages/orchestration/src/utils/chainHub.js @@ -104,22 +104,22 @@ export const makeChainHub = (agoricNames, zone = makeHeapZone()) => { return chainInfo; }, /** - * @param {string} srcChainId - * @param {string} destChainId + * @param {string} chainId1 + * @param {string} chainId2 * @param {IBCConnectionInfo} connectionInfo */ - registerConnection(srcChainId, destChainId, connectionInfo) { - const key = connectionKey(srcChainId, destChainId); + registerConnection(chainId1, chainId2, connectionInfo) { + const key = connectionKey(chainId1, chainId2); connectionInfos.init(key, connectionInfo); }, /** - * @param {string} srcChainId - * @param {string} destChainId + * @param {string} chainId1 + * @param {string} chainId2 * @returns {Promise} */ - async getConnectionInfo(srcChainId, destChainId) { - const key = connectionKey(srcChainId, destChainId); + async getConnectionInfo(chainId1, chainId2) { + const key = connectionKey(chainId1, chainId2); if (connectionInfos.has(key)) { return connectionInfos.get(key); } @@ -127,9 +127,7 @@ export const makeChainHub = (agoricNames, zone = makeHeapZone()) => { const connectionInfo = await E(agoricNames) .lookup(CONNECTIONS_KEY, key) .catch(_cause => { - throw assert.error( - `connection not found: ${srcChainId}<->${destChainId}`, - ); + throw assert.error(`connection not found: ${chainId1}<->${chainId2}`); }); connectionInfos.init(key, connectionInfo); return connectionInfo; @@ -166,8 +164,8 @@ export const registerChain = async ( ]; // XXX updates redundantly, twice per edge - for await (const [destChainId, connInfo] of Object.entries(connections)) { - const key = connectionKey(chainInfo.chainId, destChainId); + for await (const [counterChainId, connInfo] of Object.entries(connections)) { + const key = connectionKey(chainInfo.chainId, counterChainId); promises.push( E(connAdmin) .update(key, connInfo) From cd0d1b507ce56ea62cd2b1ca329e39dd7f39ef1f Mon Sep 17 00:00:00 2001 From: Turadg Aleahmad Date: Wed, 12 Jun 2024 06:41:47 -0700 Subject: [PATCH 3/7] refactor: subzone by chainId --- packages/orchestration/src/facade.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/orchestration/src/facade.js b/packages/orchestration/src/facade.js index c152ead7996..1e5e2b162b2 100644 --- a/packages/orchestration/src/facade.js +++ b/packages/orchestration/src/facade.js @@ -102,11 +102,9 @@ const makeRemoteChainFacade = ( chainInfo, { orchestration, timer, zcf, zone }, ) => { - const name = chainInfo.chainId; - const makeRecorderKit = () => anyVal; const makeCosmosOrchestrationAccount = prepareCosmosOrchestrationAccount( - zone.subZone(name), + zone.subZone(chainInfo.chainId), makeRecorderKit, zcf, ); From 5b7182b8e475b09c5f010cfce78927cdaefdb8e5 Mon Sep 17 00:00:00 2001 From: Turadg Aleahmad Date: Wed, 12 Jun 2024 05:58:13 -0700 Subject: [PATCH 4/7] test: skip logging registerChainNamespace --- packages/orchestration/test/supports.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/orchestration/test/supports.ts b/packages/orchestration/test/supports.ts index b75b1482bee..a74006bbb8e 100644 --- a/packages/orchestration/test/supports.ts +++ b/packages/orchestration/test/supports.ts @@ -108,7 +108,7 @@ export const commonSetup = async t => { const { portAllocator } = fakeNetworkEchoStuff(rootZone.subZone('network')); const { public: orchestration } = makeOrchestrationKit({ portAllocator }); - await registerChainNamespace(agoricNamesAdmin, t.log); + await registerChainNamespace(agoricNamesAdmin, () => {}); return { bootstrap: { From f8bcd921dca3e03e112f03a0b2975a2b82f959c9 Mon Sep 17 00:00:00 2001 From: Turadg Aleahmad Date: Wed, 12 Jun 2024 06:01:27 -0700 Subject: [PATCH 5/7] fix: fetch agoric connections --- .../snapshots/orchestration.test.ts.md | 52 ++++ .../snapshots/orchestration.test.ts.snap | Bin 7699 -> 8617 bytes .../orchestration/scripts/fetch-chain-info.ts | 1 + packages/orchestration/src/chain-info.js | 4 +- .../orchestration/src/fetched-chain-info.js | 262 ++++++++++++++++++ .../orchestration/test/chain-info.test.js | 1 + .../test/examples/sendAnywhere.test.ts | 4 +- .../test/snapshots/chain-info.test.js.md | 11 + .../test/snapshots/chain-info.test.js.snap | Bin 1185 -> 1262 bytes 9 files changed, 332 insertions(+), 3 deletions(-) diff --git a/packages/boot/test/bootstrapTests/snapshots/orchestration.test.ts.md b/packages/boot/test/bootstrapTests/snapshots/orchestration.test.ts.md index c82d1a51f0b..eaad0c4f1b2 100644 --- a/packages/boot/test/bootstrapTests/snapshots/orchestration.test.ts.md +++ b/packages/boot/test/bootstrapTests/snapshots/orchestration.test.ts.md @@ -14,6 +14,10 @@ Generated by [AVA](https://avajs.dev). [ [ 'published.agoricNames.chain.agoric', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"chainId\\\\\\":\\\\\\"agoric-3\\\\\\",\\\\\\"stakingTokens\\\\\\":[{\\\\\\"denom\\\\\\":\\\\\\"ubld\\\\\\"}]}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chain.agoriclocal', '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"chainId\\\\\\":\\\\\\"agoriclocal\\\\\\"}\\",\\"slots\\":[]}"]}', ], [ @@ -60,6 +64,30 @@ Generated by [AVA](https://avajs.dev). 'published.agoricNames.chain.stride', '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"chainId\\\\\\":\\\\\\"stride-1\\\\\\",\\\\\\"stakingTokens\\\\\\":[{\\\\\\"denom\\\\\\":\\\\\\"ustrd\\\\\\"}]}\\",\\"slots\\":[]}"]}', ], + [ + 'published.agoricNames.chainConnection.agoric-3_cosmoshub-4', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-6\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-927\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-649\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-8\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-405\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-5\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-927\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-6\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-8\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-649\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-5\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-405\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_noble-1', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-77\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-32\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-40\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-72\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-21\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-62\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-32\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-77\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-72\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-40\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-62\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-21\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_omniflixhub-1', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-73\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-47\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-40\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-67\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-30\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-58\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-47\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-73\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-67\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-40\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-58\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-30\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_osmosis-1', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-1\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-2109\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-1649\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-1\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-320\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-1\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-2109\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-1\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-1\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-1649\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-1\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-320\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_secret-4', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-17\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-111\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-80\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-17\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-51\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-10\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-111\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-17\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-17\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-80\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-10\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-51\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_stride-1', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-74\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-129\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-118\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-68\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-148\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-59\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-129\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-74\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-68\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-118\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-59\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-148\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], [ 'published.agoricNames.chainConnection.agoriclocal_cosmoshub-4', '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-3\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-2\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-1\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-1\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-1\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-1\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":1,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', @@ -232,6 +260,30 @@ Generated by [AVA](https://avajs.dev). > See also board marshalling conventions (_to appear_). [ + [ + 'published.agoricNames.chainConnection.agoric-3_cosmoshub-4', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-6\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-927\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-649\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-8\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-405\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-5\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-927\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-6\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-8\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-649\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-5\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-405\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_noble-1', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-77\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-32\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-40\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-72\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-21\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-62\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-32\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-77\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-72\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-40\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-62\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-21\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_omniflixhub-1', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-73\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-47\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-40\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-67\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-30\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-58\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-47\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-73\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-67\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-40\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-58\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-30\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_osmosis-1', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-1\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-2109\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-1649\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-1\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-320\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-1\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-2109\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-1\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-1\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-1649\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-1\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-320\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_secret-4', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-17\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-111\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-80\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-17\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-51\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-10\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-111\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-17\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-17\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-80\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-10\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-51\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], + [ + 'published.agoricNames.chainConnection.agoric-3_stride-1', + '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-74\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-129\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-118\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-68\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-148\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-59\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}","{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-129\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-74\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-68\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"FIXME\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-118\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-59\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-148\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":0,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', + ], [ 'published.agoricNames.chainConnection.agoriclocal_cosmoshub-4', '{"blockHeight":"0","values":["{\\"body\\":\\"{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-3\\\\\\",\\\\\\"counterparty\\\\\\":{\\\\\\"client_id\\\\\\":\\\\\\"07-tendermint-2\\\\\\",\\\\\\"connection_id\\\\\\":\\\\\\"connection-1\\\\\\",\\\\\\"prefix\\\\\\":{\\\\\\"key_prefix\\\\\\":\\\\\\"\\\\\\"}},\\\\\\"id\\\\\\":\\\\\\"connection-1\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"transferChannel\\\\\\":{\\\\\\"channelId\\\\\\":\\\\\\"channel-1\\\\\\",\\\\\\"counterPartyChannelId\\\\\\":\\\\\\"channel-1\\\\\\",\\\\\\"counterPartyPortId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"ordering\\\\\\":1,\\\\\\"portId\\\\\\":\\\\\\"transfer\\\\\\",\\\\\\"state\\\\\\":3,\\\\\\"version\\\\\\":\\\\\\"ics20-1\\\\\\"}}\\",\\"slots\\":[]}"]}', diff --git a/packages/boot/test/bootstrapTests/snapshots/orchestration.test.ts.snap b/packages/boot/test/bootstrapTests/snapshots/orchestration.test.ts.snap index 8cb9717b25ec03366bf8faa1a21fe421f19633e2..4b6b32eb10b484ce4262c4f7468055b910289821 100644 GIT binary patch literal 8617 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

|k|) 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 literal 7699 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 w4ci7C*1@%-<}T#vjV%6t-_4C@D}S%8*G} */ ( harden({ ...fetchedChainInfo, - agoric: { + // XXX does not have useful connections + // UNTIL https://github.com/Agoric/agoric-sdk/issues/9492 + agoriclocal: { chainId: 'agoriclocal', connections: { 'cosmoshub-4': { diff --git a/packages/orchestration/src/fetched-chain-info.js b/packages/orchestration/src/fetched-chain-info.js index 073a62a2899..fc460d5a705 100644 --- a/packages/orchestration/src/fetched-chain-info.js +++ b/packages/orchestration/src/fetched-chain-info.js @@ -1,5 +1,141 @@ /** @file Generated by fetch-chain-info.ts */ export default { + agoric: { + chainId: 'agoric-3', + stakingTokens: [ + { + denom: 'ubld', + }, + ], + connections: { + 'cosmoshub-4': { + id: 'connection-8', + client_id: '07-tendermint-6', + counterparty: { + client_id: '07-tendermint-927', + connection_id: 'connection-649', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-405', + portId: 'transfer', + counterPartyChannelId: 'channel-5', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, + 'noble-1': { + id: 'connection-72', + client_id: '07-tendermint-77', + counterparty: { + client_id: '07-tendermint-32', + connection_id: 'connection-40', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-21', + portId: 'transfer', + counterPartyChannelId: 'channel-62', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, + 'omniflixhub-1': { + id: 'connection-67', + client_id: '07-tendermint-73', + counterparty: { + client_id: '07-tendermint-47', + connection_id: 'connection-40', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-30', + portId: 'transfer', + counterPartyChannelId: 'channel-58', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, + 'osmosis-1': { + id: 'connection-1', + client_id: '07-tendermint-1', + counterparty: { + client_id: '07-tendermint-2109', + connection_id: 'connection-1649', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-320', + portId: 'transfer', + counterPartyChannelId: 'channel-1', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, + 'secret-4': { + id: 'connection-17', + client_id: '07-tendermint-17', + counterparty: { + client_id: '07-tendermint-111', + connection_id: 'connection-80', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-51', + portId: 'transfer', + counterPartyChannelId: 'channel-10', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, + 'stride-1': { + id: 'connection-68', + client_id: '07-tendermint-74', + counterparty: { + client_id: '07-tendermint-129', + connection_id: 'connection-118', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-148', + portId: 'transfer', + counterPartyChannelId: 'channel-59', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, + }, + }, celestia: { chainId: 'celestia', stakingTokens: [ @@ -123,6 +259,27 @@ export default { }, ], connections: { + 'agoric-3': { + id: 'connection-649', + client_id: '07-tendermint-927', + counterparty: { + client_id: '07-tendermint-6', + connection_id: 'connection-8', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-5', + portId: 'transfer', + counterPartyChannelId: 'channel-405', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, 'juno-1': { id: 'connection-372', client_id: '07-tendermint-439', @@ -751,6 +908,27 @@ export default { }, ], connections: { + 'agoric-3': { + id: 'connection-40', + client_id: '07-tendermint-32', + counterparty: { + client_id: '07-tendermint-77', + connection_id: 'connection-72', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-62', + portId: 'transfer', + counterPartyChannelId: 'channel-21', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, 'cosmoshub-4': { id: 'connection-12', client_id: '07-tendermint-4', @@ -929,6 +1107,27 @@ export default { }, ], connections: { + 'agoric-3': { + id: 'connection-40', + client_id: '07-tendermint-47', + counterparty: { + client_id: '07-tendermint-73', + connection_id: 'connection-67', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-58', + portId: 'transfer', + counterPartyChannelId: 'channel-30', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, 'cosmoshub-4': { id: 'connection-19', client_id: '07-tendermint-23', @@ -1003,6 +1202,27 @@ export default { ], icqEnabled: true, connections: { + 'agoric-3': { + id: 'connection-1649', + client_id: '07-tendermint-2109', + counterparty: { + client_id: '07-tendermint-1', + connection_id: 'connection-1', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-1', + portId: 'transfer', + counterPartyChannelId: 'channel-320', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, celestia: { id: 'connection-2503', client_id: '07-tendermint-3012', @@ -1223,6 +1443,27 @@ export default { }, ], connections: { + 'agoric-3': { + id: 'connection-80', + client_id: '07-tendermint-111', + counterparty: { + client_id: '07-tendermint-17', + connection_id: 'connection-17', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-10', + portId: 'transfer', + counterPartyChannelId: 'channel-51', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, celestia: { id: 'connection-131', client_id: '07-tendermint-174', @@ -1579,6 +1820,27 @@ export default { }, ], connections: { + 'agoric-3': { + id: 'connection-118', + client_id: '07-tendermint-129', + counterparty: { + client_id: '07-tendermint-74', + connection_id: 'connection-68', + prefix: { + key_prefix: 'FIXME', + }, + }, + state: 3, + transferChannel: { + channelId: 'channel-59', + portId: 'transfer', + counterPartyChannelId: 'channel-148', + counterPartyPortId: 'transfer', + ordering: 0, + state: 3, + version: 'ics20-1', + }, + }, celestia: { id: 'connection-125', client_id: '07-tendermint-137', diff --git a/packages/orchestration/test/chain-info.test.js b/packages/orchestration/test/chain-info.test.js index 8a48a147b79..c779d74d17a 100644 --- a/packages/orchestration/test/chain-info.test.js +++ b/packages/orchestration/test/chain-info.test.js @@ -15,6 +15,7 @@ test('chain-info', async t => { }); t.deepEqual(chainNames.keys(), [ 'agoric', + 'agoriclocal', 'celestia', 'cosmoshub', 'dydx', diff --git a/packages/orchestration/test/examples/sendAnywhere.test.ts b/packages/orchestration/test/examples/sendAnywhere.test.ts index 1f8aee96148..6c5b44a23f7 100644 --- a/packages/orchestration/test/examples/sendAnywhere.test.ts +++ b/packages/orchestration/test/examples/sendAnywhere.test.ts @@ -164,7 +164,7 @@ test('send using arbitrary chain info', async t => { '@type': '/ibc.applications.transfer.v1.MsgTransfer', receiver: 'cosmos1destAddr', sender: execAddr, - sourceChannel: 'channel-1', + sourceChannel: 'channel-5', token: { amount: '1250000', denom: 'uist' }, }); } @@ -176,7 +176,7 @@ test('send using arbitrary chain info', async t => { 'hot', harden({ ...hotChainInfo, - connections: { agoriclocal: agoricToHotConnection }, + connections: { 'agoric-3': agoricToHotConnection }, }), ); diff --git a/packages/orchestration/test/snapshots/chain-info.test.js.md b/packages/orchestration/test/snapshots/chain-info.test.js.md index 7153e0dd24b..be1e99dbe93 100644 --- a/packages/orchestration/test/snapshots/chain-info.test.js.md +++ b/packages/orchestration/test/snapshots/chain-info.test.js.md @@ -11,6 +11,17 @@ Generated by [AVA](https://avajs.dev). [ [ 'agoric', + { + chainId: 'agoric-3', + stakingTokens: [ + { + denom: 'ubld', + }, + ], + }, + ], + [ + 'agoriclocal', { chainId: 'agoriclocal', }, diff --git a/packages/orchestration/test/snapshots/chain-info.test.js.snap b/packages/orchestration/test/snapshots/chain-info.test.js.snap index 351ff9eea0fd27af2e59ae33c252264f2460cea5..d8fbb0be25423d984515d01bfad18e3808f27173 100644 GIT binary patch literal 1262 zcmV zx^I^>cOQ!g00000000A}*Ij5FRTKyC|J|A0`O56fnrNEZYK(2Qv1?l+_yJ-RENH21 zKv0WFXLl#bWOrxk%xshNL9OUZpdcy|6lzlgLLXH802PZxtPeqGU#ehzD#Vw9R!|?T zf|)y;wR@&c7IvS`g&+T&xg5^DvoKz&dF5(wz30&)7FzJQC zk%dad3azILa{?qpKPI#MGXP2eY5=AIyaeDVfO!D#0(c+5=K#I|a2CLi0G0vtvRr{> zAM$-`ma)~!FbpsiOb62#yBz}lVnA$%>nPkL z0>dIOO5g?xcZ{P3EV{Cf(X1P0%r)kox*b>@VyB9O5ipM{}KUY zf&Oee+(8>P6Lm)~%b+i6#B71(tO?I|%Dj1ovT@g5%W1Kzd1b4{@tzbcm+hJzgpS2! zm?D+37u3CAvQgsnofIloW-BvXEv2cchU;4- z>aH_hb7odw#Xl9`Zw1(_0=rbgHz$&96{xPT*D2kapdYEgXDV=!(qe)#4UjZoyGH2FcB=EX zGNQI>^))|)AFZ_dF&-Jk5wJXCk88N9u|uosxD!u!Roe}C7+WK(eg1Uv@Bhu9JYzxn zzpoXhwZ>HOZk{*aU0yz#WyQMXxUL-*ck;+n-9_f2!Pkts*j<#;oQ};jsi&(niI31` z*0%1l^sDAT0 zv9eF63A&430^<*pC7pk*wAR0o^}2lf`a!ZDC+nkR{RvrLAnT0LzTQgK`^b9QXnw+F zjv2tBLC&Xa;*RpI0enZ9mSDda!0(h93D$1{8%@G`6KvE3c2U-!V2%lRl--zMubIF+ zWj80-mnQHvWw$2SvI$(G?6w5U7l6J3VRt0hJq6$a%C;w%RRAU^8%bOy==qpF literal 1185 zcmV;S1YY|=RzV`|4wzuorsD0QiF zT^ChEl~E<7e&{@)q*PIXQo3B7mWD33q@}6LXVTKr<;k?n>GIpOv~`IADzD4sY3b;4 zV_Ft;xi>9~x_m1wOX-`LXASt;fZvSX9UDD6c9i*-0sk5>&+LVkgySYGHDRrQj)V`H z@Q4Y%fMp4Hn(%}P&k0zS@Q4YooA921^CbMlgfC1uFW>?RFPiYX369kZua|Jlf`t~W z5^%AE_ge6P1&<53M8c*8yDT^;;4%phTkx6%?+AFiY&s+DyD?=jFKw#asItB7Q9G#X zp7_Y>bm0Fvr|!4>I0-y0f9@j-^(dZ-;>qa=P2Jp;snyui*saw){nU=>Fw)BJqw=9Y zowTD+!x#I&To_HXe9cbxVWns)47Rm`-IreEV!wy$R}NwgN9`-ak=U=d{Ur30C!=;# z^ZWX6Cr-TfcJHaqcAI^q9VhLe(Q!w*&QZo^Hk`4$O<`}C*x}a`WzLq>YE}2opEmq$ z!{WT4xeQ&Khjn?_DQO`?U&zDZJbW(cNQVBHhhOthaReRB(3%6Q9oQo2)fu|if&C5~ zmvmu)_UoP?gTgOmDy(1hu(vY*-r0_fL2uZTKWgZ96z{h7F3klRphevPP}FiZr>C& z{V*OVtTa0=YIo|qBg5rY(wS15@`5n*liDgBd3v}=I~_pXsPBi1Ds-n*H!W8hDlM-^ zSvPCNa9Jal&AV>mhW?4>T<_W)ifLL8EC%&m>q2j$<#(*%>c=I+y@1mht=%qqb-1wN zrNP_%6dw<}H$9!ZVL$Z=bCltfp;GQW$Zc`r8w<*?NT8xb%gV4)po&Cymtl=SS4p(K z3=a!*jYONvuvMUIC7LWlD9|E_c9&tFKsQNrVCFj=66h9*UYYq$ZwRzPqT@5)>7+m_ z<<+TkHUFTj@9VSc3u0}L^sZ}Sy-BS1iuEzE{!*;}5bODs-u0SF_a7F+uRyaRPKUfa zNQ~!a$V-xyGVD|ZK9tPOunQIVMY6FBb6lvng3ZscRW95m*>xHAm Date: Tue, 11 Jun 2024 16:29:16 -0700 Subject: [PATCH 6/7] fix: makeRemoteChainFacade w real connection --- .../src/examples/swapExample.contract.js | 14 ++++----- .../src/examples/unbondExample.contract.js | 6 ++-- packages/orchestration/src/facade.js | 29 ++++++++++++------- .../test/exos/local-chain-account-kit.test.ts | 2 +- packages/orchestration/test/facade.test.ts | 29 +++++++++++++++++-- 5 files changed, 56 insertions(+), 24 deletions(-) diff --git a/packages/orchestration/src/examples/swapExample.contract.js b/packages/orchestration/src/examples/swapExample.contract.js index 34c0f83a16e..9c138c393ae 100644 --- a/packages/orchestration/src/examples/swapExample.contract.js +++ b/packages/orchestration/src/examples/swapExample.contract.js @@ -105,15 +105,15 @@ export const start = async (zcf, privateArgs, baggage) => { async (/** @type {Orchestrator} */ orch, { zcf }, seat, offerArgs) => { const { give } = seat.getProposal(); - const celestia = await orch.getChain('celestia'); + const omni = await orch.getChain('omniflixhub'); const agoric = await orch.getChain('agoric'); - const [celestiaAccount, localAccount] = await Promise.all([ - celestia.makeAccount(), + const [omniAccount, localAccount] = await Promise.all([ + omni.makeAccount(), agoric.makeAccount(), ]); - const tiaAddress = celestiaAccount.getAddress(); + const omniAddress = omniAccount.getAddress(); // deposit funds from user seat to LocalChainAccount const payments = await withdrawFromSeat(zcf, seat, give); @@ -122,8 +122,8 @@ export const start = async (zcf, privateArgs, baggage) => { // build swap instructions with orcUtils library const transferMsg = orcUtils.makeOsmosisSwap({ - destChain: 'celestia', - destAddress: tiaAddress, + destChain: 'omniflixhub', + destAddress: omniAddress, amountIn: give.Stable, brandOut: /** @type {any} */ ('FIXME'), slippage: 0.03, @@ -132,7 +132,7 @@ export const start = async (zcf, privateArgs, baggage) => { await localAccount .transferSteps(give.Stable, transferMsg) .then(_txResult => - celestiaAccount.delegate(offerArgs.validator, offerArgs.staked), + omniAccount.delegate(offerArgs.validator, offerArgs.staked), ) .catch(e => console.error(e)); diff --git a/packages/orchestration/src/examples/unbondExample.contract.js b/packages/orchestration/src/examples/unbondExample.contract.js index 6e0e67291cf..7bd5d2053e6 100644 --- a/packages/orchestration/src/examples/unbondExample.contract.js +++ b/packages/orchestration/src/examples/unbondExample.contract.js @@ -69,8 +69,8 @@ export const start = async (zcf, privateArgs, baggage) => { // We would actually alreaady have the account from the orchestrator // ??? could these be passed in? It would reduce the size of this handler, // keeping it focused on long-running operations. - const celestia = await orch.getChain('celestia'); - const celestiaAccount = await celestia.makeAccount(); + const omni = await orch.getChain('omniflixhub'); + const omniAccount = await omni.makeAccount(); // TODO implement these // const delegations = await celestiaAccount.getDelegations(); @@ -86,7 +86,7 @@ export const start = async (zcf, privateArgs, baggage) => { // await celestiaAccount.transfer(tiaAmt, strideAccount.getAddress()); // await strideAccount.liquidStake(tiaAmt); - console.log(celestiaAccount, strideAccount); + console.log(omniAccount, strideAccount); }, ); diff --git a/packages/orchestration/src/facade.js b/packages/orchestration/src/facade.js index 1e5e2b162b2..e9d91538380 100644 --- a/packages/orchestration/src/facade.js +++ b/packages/orchestration/src/facade.js @@ -6,10 +6,11 @@ import { prepareCosmosOrchestrationAccount } from './exos/cosmosOrchestrationAcc /** * @import {Zone} from '@agoric/zone'; * @import {TimerService} from '@agoric/time'; + * @import {IBCConnectionID} from '@agoric/vats'; * @import {LocalChain} from '@agoric/vats/src/localchain.js'; * @import {Remote} from '@agoric/internal'; * @import {OrchestrationService} from './service.js'; - * @import {Chain, ChainInfo, CosmosChainInfo, OrchestrationAccount, Orchestrator} from './types.js'; + * @import {Chain, ChainInfo, CosmosChainInfo, IBCConnectionInfo, OrchestrationAccount, Orchestrator} from './types.js'; */ /** @type {any} */ @@ -91,6 +92,7 @@ const makeLocalChainFacade = ( /** * @template {CosmosChainInfo} CCI * @param {CCI} chainInfo + * @param {IBCConnectionInfo} connectionInfo * @param {object} io * @param {Remote} io.orchestration * @param {Remote} io.timer @@ -100,6 +102,7 @@ const makeLocalChainFacade = ( */ const makeRemoteChainFacade = ( chainInfo, + connectionInfo, { orchestration, timer, zcf, zone }, ) => { const makeRecorderKit = () => anyVal; @@ -113,14 +116,12 @@ const makeRemoteChainFacade = ( getChainInfo: async () => chainInfo, /** @returns {Promise>} */ makeAccount: async () => { - // FIXME look up real values - // UNTIL https://github.com/Agoric/agoric-sdk/issues/9063 - const hostConnectionId = 'connection-1'; - const controllerConnectionId = 'connection-2'; - const icaAccount = await E(orchestration).makeAccount( - hostConnectionId, - controllerConnectionId, + // XXX IBCConnectionInfo concessions for JSON encoding + /** @type {IBCConnectionID} */ (connectionInfo.id), + /** @type {IBCConnectionID} */ ( + connectionInfo.counterparty.connection_id + ), ); const address = await E(icaAccount).getAddress(); @@ -188,17 +189,23 @@ export const makeOrchestrationFacade = ({ /** @type {Orchestrator} */ const orc = { async getChain(name) { - const chainInfo = await chainHub.getChainInfo(name); + const agoricChainInfo = await chainHub.getChainInfo('agoric'); if (name === 'agoric') { return makeLocalChainFacade( localchain, makeLocalChainAccountKit, - chainInfo, + agoricChainInfo, ); } - return makeRemoteChainFacade(chainInfo, { + const remoteChainInfo = await chainHub.getChainInfo(name); + const connectionInfo = await chainHub.getConnectionInfo( + agoricChainInfo.chainId, + remoteChainInfo.chainId, + ); + + return makeRemoteChainFacade(remoteChainInfo, connectionInfo, { orchestration: orchestrationService, timer: timerService, zcf, diff --git a/packages/orchestration/test/exos/local-chain-account-kit.test.ts b/packages/orchestration/test/exos/local-chain-account-kit.test.ts index a1e9f1a4a28..0df46078a82 100644 --- a/packages/orchestration/test/exos/local-chain-account-kit.test.ts +++ b/packages/orchestration/test/exos/local-chain-account-kit.test.ts @@ -196,7 +196,7 @@ test('transfer', async t => { }; await t.throwsAsync( () => E(account).transfer({ denom: 'ubld', value: 1n }, unknownDestination), - { message: /connection not found: agoriclocal<->fakenet/ }, + { message: /connection not found: agoric-3<->fakenet/ }, 'cannot create transfer msg with unknown chainId', ); diff --git a/packages/orchestration/test/facade.test.ts b/packages/orchestration/test/facade.test.ts index 3d637205a91..28ede33b678 100644 --- a/packages/orchestration/test/facade.test.ts +++ b/packages/orchestration/test/facade.test.ts @@ -1,7 +1,7 @@ import { test as anyTest } from '@agoric/zoe/tools/prepare-test-env-ava.js'; import { setupZCFTest } from '@agoric/zoe/test/unitTests/zcf/setupZcfTest.js'; -import type { CosmosChainInfo } from '../src/cosmos-api.js'; +import type { CosmosChainInfo, IBCConnectionInfo } from '../src/cosmos-api.js'; import { makeOrchestrationFacade } from '../src/facade.js'; import type { Chain } from '../src/orchestration-api.js'; import { commonSetup } from './supports.js'; @@ -11,13 +11,33 @@ const test = anyTest; export const mockChainInfo: CosmosChainInfo = harden({ chainId: 'mock-1', - connections: {}, icaEnabled: false, icqEnabled: false, pfmEnabled: false, ibcHooksEnabled: false, stakingTokens: [{ denom: 'umock' }], }); +export const mockChainConnection: IBCConnectionInfo = { + id: 'connection-0', + client_id: '07-tendermint-2', + counterparty: { + client_id: '07-tendermint-2', + connection_id: 'connection-1', + prefix: { + key_prefix: '', + }, + }, + state: 3 /* IBCConnectionState.STATE_OPEN */, + transferChannel: { + portId: 'transfer', + channelId: 'channel-1', + counterPartyChannelId: 'channel-1', + counterPartyPortId: 'transfer', + ordering: 1 /* Order.ORDER_UNORDERED */, + state: 3 /* IBCConnectionState.STATE_OPEN */, + version: 'ics20-1', + }, +}; const makeLocalChainAccountKit = () => assert.fail(`not used`); @@ -39,6 +59,11 @@ test('chain info', async t => { }); chainHub.registerChain('mock', mockChainInfo); + chainHub.registerConnection( + 'agoric-3', + mockChainInfo.chainId, + mockChainConnection, + ); const handle = orchestrate('mock', {}, async orc => { return orc.getChain('mock'); From 521dfd0db134ef74ce78afb0f6ae9ba83315ce67 Mon Sep 17 00:00:00 2001 From: Turadg Aleahmad Date: Wed, 12 Jun 2024 06:42:49 -0700 Subject: [PATCH 7/7] fix: real chainId in chainAccountKit --- .../test/bootstrapTests/vat-orchestration.test.ts | 5 ++++- .../orchestration/src/examples/stakeIca.contract.js | 5 ++++- packages/orchestration/src/exos/chainAccountKit.js | 9 +++++---- packages/orchestration/src/facade.js | 1 + .../orchestration/src/proposals/start-stakeAtom.js | 6 ++++-- packages/orchestration/src/service.js | 11 ++++++++--- .../test/examples/stake-atom.contract.test.ts | 3 ++- 7 files changed, 28 insertions(+), 12 deletions(-) diff --git a/packages/boot/test/bootstrapTests/vat-orchestration.test.ts b/packages/boot/test/bootstrapTests/vat-orchestration.test.ts index 600475ffdae..b70a8997530 100644 --- a/packages/boot/test/bootstrapTests/vat-orchestration.test.ts +++ b/packages/boot/test/bootstrapTests/vat-orchestration.test.ts @@ -78,6 +78,7 @@ test('makeAccount returns an ICA connection', async t => { await EV.vat('bootstrap').consumeItem('orchestration'); const account = await EV(orchestration).makeAccount( + 'somechain-1', 'connection-0', 'connection-0', ); @@ -95,7 +96,7 @@ test('makeAccount returns an ICA connection', async t => { t.regex(remoteAddress, /icahost/); t.regex(localAddress, /icacontroller/); t.regex(chainAddress.address, /cosmos1/); - t.regex(chainAddress.chainId, /FIXME/); // TODO, use a real chainId #9063 + t.is(chainAddress.chainId, 'somechain-1'); t.truthy(matches(port, M.remotable('Port'))); t.log('ICA Account Addresses', { remoteAddress, @@ -113,6 +114,7 @@ test('ICA connection can be closed', async t => { await EV.vat('bootstrap').consumeItem('orchestration'); const account = await EV(orchestration).makeAccount( + 'somechain-1', 'connection-0', 'connection-0', ); @@ -134,6 +136,7 @@ test('ICA connection can send msg with proto3', async t => { await EV.vat('bootstrap').consumeItem('orchestration'); const account = await EV(orchestration).makeAccount( + 'somechain-1', 'connection-0', 'connection-0', ); diff --git a/packages/orchestration/src/examples/stakeIca.contract.js b/packages/orchestration/src/examples/stakeIca.contract.js index 8a35db23717..e1093857d8f 100644 --- a/packages/orchestration/src/examples/stakeIca.contract.js +++ b/packages/orchestration/src/examples/stakeIca.contract.js @@ -19,6 +19,7 @@ const trace = makeTracer('StakeAtom'); export const meta = harden({ customTermsShape: { + chainId: M.string(), hostConnectionId: M.string(), controllerConnectionId: M.string(), bondDenom: M.string(), @@ -34,6 +35,7 @@ export const privateArgsShape = meta.privateArgsShape; /** * @typedef {{ + * chainId: string; * hostConnectionId: IBCConnectionID; * controllerConnectionId: IBCConnectionID; * bondDenom: string; @@ -51,7 +53,7 @@ export const privateArgsShape = meta.privateArgsShape; * @param {Baggage} baggage */ export const start = async (zcf, privateArgs, baggage) => { - const { hostConnectionId, controllerConnectionId, bondDenom } = + const { chainId, hostConnectionId, controllerConnectionId, bondDenom } = zcf.getTerms(); const { orchestration, marshaller, storageNode, timer } = privateArgs; @@ -67,6 +69,7 @@ export const start = async (zcf, privateArgs, baggage) => { async function makeAccountKit() { const account = await E(orchestration).makeAccount( + chainId, hostConnectionId, controllerConnectionId, ); diff --git a/packages/orchestration/src/exos/chainAccountKit.js b/packages/orchestration/src/exos/chainAccountKit.js index 01f3d92afe5..35d20c5583d 100644 --- a/packages/orchestration/src/exos/chainAccountKit.js +++ b/packages/orchestration/src/exos/chainAccountKit.js @@ -45,6 +45,7 @@ export const ChainAccountI = M.interface('ChainAccount', { /** * @typedef {{ + * chainId: string; * port: Port; * connection: Remote | undefined; * localAddress: LocalIbcAddress | undefined; @@ -60,11 +61,13 @@ export const prepareChainAccountKit = zone => 'ChainAccountKit', { account: ChainAccountI, connectionHandler: ConnectionHandlerI }, /** + * @param {string} chainId * @param {Port} port * @param {string} requestedRemoteAddress */ - (port, requestedRemoteAddress) => + (chainId, port, requestedRemoteAddress) => /** @type {State} */ ({ + chainId, port, connection: undefined, requestedRemoteAddress, @@ -158,9 +161,7 @@ export const prepareChainAccountKit = zone => this.state.localAddress = localAddr; this.state.chainAddress = harden({ address: findAddressField(remoteAddr) || UNPARSABLE_CHAIN_ADDRESS, - // TODO get this from `Chain` object #9063 - // XXX how do we get a chainId for an unknown chain? seems it may need to be a user supplied arg - chainId: 'FIXME', + chainId: this.state.chainId, addressEncoding: 'bech32', }); }, diff --git a/packages/orchestration/src/facade.js b/packages/orchestration/src/facade.js index e9d91538380..1eec138dbbb 100644 --- a/packages/orchestration/src/facade.js +++ b/packages/orchestration/src/facade.js @@ -117,6 +117,7 @@ const makeRemoteChainFacade = ( /** @returns {Promise>} */ makeAccount: async () => { const icaAccount = await E(orchestration).makeAccount( + chainInfo.chainId, // XXX IBCConnectionInfo concessions for JSON encoding /** @type {IBCConnectionID} */ (connectionInfo.id), /** @type {IBCConnectionID} */ ( diff --git a/packages/orchestration/src/proposals/start-stakeAtom.js b/packages/orchestration/src/proposals/start-stakeAtom.js index 5316b9c76bf..496072edd01 100644 --- a/packages/orchestration/src/proposals/start-stakeAtom.js +++ b/packages/orchestration/src/proposals/start-stakeAtom.js @@ -48,10 +48,11 @@ export const startStakeAtom = async ({ const chainHub = makeChainHub(await agoricNames); + const agoric = await chainHub.getChainInfo('agoric'); const cosmoshub = await chainHub.getChainInfo('cosmoshub'); const connectionInfo = await chainHub.getConnectionInfo( - 'agoriclocal', - 'cosmoshub-4', + agoric.chainId, + cosmoshub.chainId, ); /** @type {StartUpgradableOpts} */ @@ -60,6 +61,7 @@ export const startStakeAtom = async ({ installation: stakeIca, issuerKeywordRecord: harden({ ATOM: atomIssuer }), terms: { + chainId: cosmoshub.chainId, hostConnectionId: /** @type {IBCConnectionID} */ (connectionInfo.id), controllerConnectionId: /** @type {IBCConnectionID} */ ( connectionInfo.counterparty.connection_id diff --git a/packages/orchestration/src/service.js b/packages/orchestration/src/service.js index 6435e07713a..3c203914296 100644 --- a/packages/orchestration/src/service.js +++ b/packages/orchestration/src/service.js @@ -51,7 +51,7 @@ const getPower = (powers, name) => { }; export const OrchestrationI = M.interface('Orchestration', { - makeAccount: M.callWhen(M.string(), M.string()).returns( + makeAccount: M.callWhen(M.string(), M.string(), M.string()).returns( M.remotable('ChainAccount'), ), provideICQConnection: M.callWhen(M.string()).returns( @@ -109,19 +109,24 @@ const prepareOrchestrationKit = ( }, public: { /** + * @param {string} chainId * @param {IBCConnectionID} hostConnectionId the counterparty * connection_id * @param {IBCConnectionID} controllerConnectionId self connection_id * @returns {Promise} */ - async makeAccount(hostConnectionId, controllerConnectionId) { + async makeAccount(chainId, hostConnectionId, controllerConnectionId) { const port = await this.facets.self.allocateICAControllerPort(); const remoteConnAddr = makeICAChannelAddress( hostConnectionId, controllerConnectionId, ); - const chainAccountKit = makeChainAccountKit(port, remoteConnAddr); + const chainAccountKit = makeChainAccountKit( + chainId, + port, + remoteConnAddr, + ); // await so we do not return a ChainAccount before it successfully instantiates await E(port).connect( diff --git a/packages/orchestration/test/examples/stake-atom.contract.test.ts b/packages/orchestration/test/examples/stake-atom.contract.test.ts index fa465e4c83e..31f8478b03e 100644 --- a/packages/orchestration/test/examples/stake-atom.contract.test.ts +++ b/packages/orchestration/test/examples/stake-atom.contract.test.ts @@ -28,6 +28,7 @@ const startContract = async ({ installation, { In: bld.issuer }, { + chainId: 'cosmoshub-4', hostConnectionId: 'connection-1', controllerConnectionId: 'connection-2', bondDenom: 'uatom', @@ -56,7 +57,7 @@ test('makeAccount, deposit, withdraw', async t => { const address = await E(account).getAddress(); // XXX address.address is weird // t.regex(address.address, /agoric1/); - t.like(address, { chainId: 'FIXME', addressEncoding: 'bech32' }); + t.like(address, { chainId: 'cosmoshub-4', addressEncoding: 'bech32' }); t.log('deposit 100 bld to account'); await E(account).deposit(await utils.pourPayment(ist.units(100)));