From 610a0fd0713d6557c45aba8d58f375c8f529696f Mon Sep 17 00:00:00 2001 From: Dan Connolly Date: Wed, 5 Jun 2024 18:46:32 -0500 Subject: [PATCH] WIP(sendAnywhere): use registerChain Error: Unknown chain "may24" because transfer() depends on a global mapping --- .../src/examples/sendAnywhere.contract.js | 14 +++++++------- .../test/examples/sendAnywhere.test.ts | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/orchestration/src/examples/sendAnywhere.contract.js b/packages/orchestration/src/examples/sendAnywhere.contract.js index 24ce8a1ee93..8f3faf04c56 100644 --- a/packages/orchestration/src/examples/sendAnywhere.contract.js +++ b/packages/orchestration/src/examples/sendAnywhere.contract.js @@ -22,7 +22,7 @@ const { Fail } = assert; * @import {ERef} from '@endo/far' * @import {OrchestrationService} from '../service.js'; * @import {NameHub, Board} from '@agoric/vats'; - * @import { Remote } from '@agoric/vow'; + * @import {Remote} from '@agoric/vow'; */ /** @@ -52,8 +52,6 @@ const SingleAmountRecord = M.recordOf(M.string(), AmountShape, { */ export const start = async (zcf, privateArgs, baggage) => { const zone = makeDurableZone(baggage); - /** @type {MapStore} */ - const chains = zone.mapStore('chains'); const { makeRecorderKit } = prepareRecorderKitMakers( baggage, @@ -68,7 +66,7 @@ export const start = async (zcf, privateArgs, baggage) => { privateArgs.agoricChainInfo, ); - const { orchestrate } = makeOrchestrationFacade({ + const { orchestrate, registerChain } = makeOrchestrationFacade({ zcf, zone, ...privateArgs, @@ -111,7 +109,8 @@ export const start = async (zcf, privateArgs, baggage) => { entries(give).length > 0 || Fail`empty give`; const [[kw, amt]] = entries(give); const { [kw]: pmtP } = await withdrawFromSeat(zcf, seat, give); - const { chainId } = chains.get(chainKey); + const info = await orch.getChain(chainKey).then(c => c.getChainInfo()); + const { chainId } = info; await E(contractAccount).deposit(await pmtP, amt); const { denom } = await findBrandInVBank(amt.brand); const { value } = amt; @@ -145,6 +144,7 @@ export const start = async (zcf, privateArgs, baggage) => { }, ); + let nonce = 0n; const creatorFacet = zone.exo( 'Send CF', M.interface('Send CF', { @@ -153,8 +153,8 @@ export const start = async (zcf, privateArgs, baggage) => { { /** @param {CosmosChainInfo} chainInfo */ addChain(chainInfo) { - const chainKey = chains.getSize(); - chains.init(chainKey, chainInfo); + const chainKey = `chain${(nonce += 1n)}`; + registerChain(chainKey, chainInfo); return chainKey; }, }, diff --git a/packages/orchestration/test/examples/sendAnywhere.test.ts b/packages/orchestration/test/examples/sendAnywhere.test.ts index ccdcf9b7b5a..c99922f0722 100644 --- a/packages/orchestration/test/examples/sendAnywhere.test.ts +++ b/packages/orchestration/test/examples/sendAnywhere.test.ts @@ -146,16 +146,16 @@ test('send using arbitrary chain info', async t => { }, ); - const chainInfo = { + const chainInfo = harden({ ...chainRegistryInfo.celestia, chainId: 'may24', ibcConnectionInfo: agoricPeerInfo[0], - connections: zone.mapStore('may24 connections'), + connections: {}, stakingTokens: [{ denom: 'umay' }], ...chainInfoDefaults, - } as CosmosChainInfo; + }) as CosmosChainInfo; t.log('add chain using creatorFacet', chainInfo); - await E(creatorFacet).addChain(chainInfo); + const chainKey = await E(creatorFacet).addChain(chainInfo); t.log('do offer'); const publicFacet = await E(zoe).getPublicFacet(instance); @@ -166,7 +166,7 @@ test('send using arbitrary chain info', async t => { const anAmt = ist.make(20n); const Send = ist.mint.mintPayment(anAmt); - const dest = { destAddr: 'agoric1valopsfufu', chainKey: 0 }; + const dest = { destAddr: 'agoric1valopsfufu', chainKey }; const userSeat = await E(zoe).offer( inv, { give: { Send: anAmt } },