diff --git a/ui/package.json b/ui/package.json index 444c7e3..41303c5 100644 --- a/ui/package.json +++ b/ui/package.json @@ -14,9 +14,7 @@ "test:e2e": "exit 0" }, "dependencies": { - "@agoric/react-components": "^0.1.1-dev-ca0ddde.0", - "@agoric/ui-components": "^0.3.9-u13.0", - "@agoric/web-components": "0.15.1-dev-8fc28e8.0", + "@agoric/react-components": "0.2.1-dev-e6f79e0.0", "buffer": "^6.0.3", "chain-registry": "1.28.0", "cosmos-kit": "^2.19.0", diff --git a/ui/src/App.tsx b/ui/src/App.tsx index a69b4e3..95894e3 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -5,10 +5,15 @@ import { Tabs } from './components/Tabs'; import { wallets } from 'cosmos-kit'; import { ThemeProvider, useTheme } from '@interchain-ui/react'; import '@agoric/react-components/dist/style.css'; +import { useEffect } from 'react'; // import { Button, Modal } from 'react-daisyui'; function App() { - const { themeClass } = useTheme(); + const { themeClass, setTheme, setColorMode } = useTheme(); + useEffect(() => { + setColorMode('dark'); + setTheme('dark'); + }, [setTheme, setColorMode]); return ( @@ -28,6 +33,17 @@ function App() { rpc: ['http://localhost:26657'], }, }, + { + testChain: { + chainId: 'agoric-emerynet-8', + chainName: 'emerynet', + iconUrl: 'agoric.svg', + }, + apis: { + rest: ['https://emerynet.api.agoric.net'], + rpc: ['https://emerynet.rpc.agoric.net'], + }, + }, ]} defaultChainName="agoric-local" > diff --git a/ui/src/components/Orchestration/FetchBalances.tsx b/ui/src/components/Orchestration/FetchBalances.tsx index d510195..eb85b5c 100644 --- a/ui/src/components/Orchestration/FetchBalances.tsx +++ b/ui/src/components/Orchestration/FetchBalances.tsx @@ -1,11 +1,7 @@ import { StargateClient } from '@cosmjs/stargate'; +import { rpcEndpoints } from '../../util'; -const rpcEndpoints = { - osmosis: 'http://127.0.0.1:26655', - agoric: 'http://127.0.0.1:26657', -}; - -export const fetchBalances = async (addresses: string[]) => { +export const fetchBalances = async (addresses: string[], chainName: string) => { return Promise.all( addresses.map(async address => { console.log('address', address); @@ -21,7 +17,7 @@ export const fetchBalances = async (addresses: string[]) => { }; } - const rpcEndpoint = rpcEndpoints[chain]; + const rpcEndpoint = rpcEndpoints[chainName][chain]; try { const balance = await fetchBalanceFromRpc(address, rpcEndpoint); return { diff --git a/ui/src/components/Orchestration/KeplrInitializer.tsx b/ui/src/components/Orchestration/KeplrInitializer.tsx deleted file mode 100644 index 0dfcdeb..0000000 --- a/ui/src/components/Orchestration/KeplrInitializer.tsx +++ /dev/null @@ -1,45 +0,0 @@ -export const initializeKeplr = async () => { - await window.keplr.experimentalSuggestChain({ - chainId: 'osmosislocal', - chainName: 'Osmosis Local', - rpc: 'http://127.0.0.1:26655', - rest: 'http://127.0.0.1:1315', - bip44: { - coinType: 118, - }, - bech32Config: { - bech32PrefixAccAddr: 'osmo', - bech32PrefixAccPub: 'osmopub', - bech32PrefixValAddr: 'osmovaloper', - bech32PrefixValPub: 'osmovaloperpub', - bech32PrefixConsAddr: 'osmovalcons', - bech32PrefixConsPub: 'osmovalconspub', - }, - currencies: [ - { - coinDenom: 'OSMO', - coinMinimalDenom: 'uosmo', - coinDecimals: 6, - }, - ], - feeCurrencies: [ - { - coinDenom: 'OSMO', - coinMinimalDenom: 'uosmo', - coinDecimals: 6, - }, - ], - stakeCurrency: { - coinDenom: 'OSMO', - coinMinimalDenom: 'uosmo', - coinDecimals: 6, - }, - // @ts-expect-error XXX typedefs - coinType: 118, - gasPriceStep: { - low: 0.01, - average: 0.025, - high: 0.04, - }, - }); -}; diff --git a/ui/src/components/Orchestration/MakeAccount.tsx b/ui/src/components/Orchestration/MakeAccount.tsx index f3593e9..9009799 100644 --- a/ui/src/components/Orchestration/MakeAccount.tsx +++ b/ui/src/components/Orchestration/MakeAccount.tsx @@ -1,63 +1,13 @@ import { AgoricWalletConnection, useAgoric } from '@agoric/react-components'; -import { SigningStargateClient, StargateClient } from '@cosmjs/stargate'; +import { StargateClient } from '@cosmjs/stargate'; import { useContext, useEffect, useRef, useState } from 'react'; import { Button } from 'react-daisyui'; import { NotificationContext } from '../../context/NotificationContext'; import { useContractStore } from '../../store/contract'; import { DynamicToastChild } from '../Tabs'; +import { ibcChannels, rpcEndpoints } from '../../util'; -const rpcEndpoints = { - osmosis: 'http://127.0.0.1:26655', - agoric: 'http://127.0.0.1:26657', -}; - -const initializeKeplr = async () => { - await window.keplr.experimentalSuggestChain({ - chainId: 'osmosislocal', - chainName: 'Osmosis Local', - rpc: 'http://127.0.0.1:26655', ///port from starshp - rest: 'http://127.0.0.1:1315', //port from starship - bip44: { - coinType: 118, - }, - bech32Config: { - bech32PrefixAccAddr: 'osmo', - bech32PrefixAccPub: 'osmopub', - bech32PrefixValAddr: 'osmovaloper', - bech32PrefixValPub: 'osmovaloperpub', - bech32PrefixConsAddr: 'osmovalcons', - bech32PrefixConsPub: 'osmovalconspub', - }, - currencies: [ - { - coinDenom: 'OSMO', - coinMinimalDenom: 'uosmo', - coinDecimals: 6, - }, - ], - feeCurrencies: [ - { - coinDenom: 'OSMO', - coinMinimalDenom: 'uosmo', - coinDecimals: 6, - }, - ], - stakeCurrency: { - coinDenom: 'OSMO', - coinMinimalDenom: 'uosmo', - coinDecimals: 6, - }, - // @ts-expect-error XXX typedefs - coinType: 118, - gasPriceStep: { - low: 0.01, - average: 0.025, - high: 0.04, - }, - }); -}; - -const fetchBalances = async addresses => { +const fetchBalances = async (addresses, agoricChainName) => { return Promise.all( addresses.map(async address => { console.log('address', address); @@ -73,7 +23,7 @@ const fetchBalances = async addresses => { }; } - const rpcEndpoint = rpcEndpoints[chain]; + const rpcEndpoint = rpcEndpoints[agoricChainName][chain]; try { const balance = await fetchBalanceFromRpc(address, rpcEndpoint); return { @@ -156,7 +106,7 @@ const makeAccountOffer = async ( // TODO: this can be for making an account const MakeAccount = () => { - const { walletConnection } = useAgoric(); + const { walletConnection, chainName: agoricChainName } = useAgoric(); const { addNotification } = useContext(NotificationContext); const icas = useContractStore(state => state.icas); @@ -193,7 +143,7 @@ const MakeAccount = () => { useEffect(() => { const loadBalances = async () => { try { - const fetchedBalances = await fetchBalances(icas); + const fetchedBalances = await fetchBalances(icas, agoricChainName); console.log('fetchedBalances'); console.log(fetchedBalances); setBalances(fetchedBalances); @@ -206,7 +156,7 @@ const MakeAccount = () => { if (icas && icas.length > 0) { loadBalances(); } - }, [icas, selectedChain]); + }, [agoricChainName, icas, selectedChain]); // //spinners useEffect(() => { @@ -236,9 +186,6 @@ const MakeAccount = () => { const handleDeposit = async address => { setLoadingDeposit(true); try { - // init osmo in wallet - await initializeKeplr(); - let chain = ''; if (address.startsWith('osmo1')) { chain = 'osmosis'; @@ -247,22 +194,13 @@ const MakeAccount = () => { } else { throw new Error('unsupported address prefix'); } + const { signingClient, address: walletAddress } = walletConnection; if (chain === 'agoric') { - await window.keplr.enable(`${chain}local`); - const offlineSigner = window.getOfflineSigner(`${chain}local`); - const accounts = await offlineSigner.getAccounts(); - - // const client = await SigningStargateClient.connectWithSigner(rpcEndpoints[chain], offlineSigner); - const client = await SigningStargateClient.connectWithSigner( - `${rpcEndpoints[chain]}`, - offlineSigner, - ); - const sendMsg = { typeUrl: '/cosmos.bank.v1beta1.MsgSend', value: { - fromAddress: accounts[0].address, + fromAddress: walletAddress, toAddress: address, amount: [{ denom: 'ubld', amount: '1000000' }], }, @@ -273,8 +211,8 @@ const MakeAccount = () => { gas: '200000', }; - const result = await client.signAndBroadcast( - accounts[0].address, + const result = await signingClient.signAndBroadcast( + walletAddress, [sendMsg], fee, '', @@ -285,25 +223,13 @@ const MakeAccount = () => { } console.log('message sent successfully'); } else { - await window.keplr.enable(`${chain}local`); - const offlineSigner = window.getOfflineSigner(`${chain}local`); - console.log('offlineSigner', offlineSigner); - const accounts = await offlineSigner.getAccounts(); - console.log('accounts', accounts); - - console.log(rpcEndpoints); - const client = await SigningStargateClient.connectWithSigner( - `${rpcEndpoints[chain]}`, - offlineSigner, - ); - const sendMsg = { typeUrl: '/ibc.applications.transfer.v1.MsgTransfer', value: { sourcePort: 'transfer', - sourceChannel: 'channel-0', + sourceChannel: ibcChannels[agoricChainName][chain], token: { denom: 'uosmo', amount: '1000000' }, - sender: accounts[0].address, + sender: walletAddress, receiver: address, timeoutTimestamp: (Math.floor(Date.now() / 1000) + 600) * 1e9, // 10 }, @@ -314,10 +240,8 @@ const MakeAccount = () => { gas: '200000', }; - console.log('accounts[0].address', accounts[0].address); - - const result = await client.signAndBroadcast( - accounts[0].address, + const result = await signingClient.signAndBroadcast( + walletAddress, [sendMsg], fee, '', diff --git a/ui/src/components/Orchestration/Orchestration.tsx b/ui/src/components/Orchestration/Orchestration.tsx index 969e86e..59c0eba 100644 --- a/ui/src/components/Orchestration/Orchestration.tsx +++ b/ui/src/components/Orchestration/Orchestration.tsx @@ -1,5 +1,4 @@ import { useAgoric } from '@agoric/react-components'; -import { SigningStargateClient } from '@cosmjs/stargate'; import { useContext, useEffect, useRef, useState } from 'react'; import { NotificationContext } from '../../context/NotificationContext'; import { useContractStore } from '../../store/contract'; @@ -7,12 +6,11 @@ import AccountList from './AccountList'; import ChainSelector from './ChainSelector'; import CreateAccountButton from './CreateAccountButton'; import { fetchBalances } from './FetchBalances'; -import { initializeKeplr } from './KeplrInitializer'; import { makeOffer } from './MakeOffer'; -import RpcEndpoints from './RpcEndpoints'; +import { ibcChannels } from '../../util'; const Orchestration = () => { - const { walletConnection } = useAgoric(); + const { walletConnection, chainName: agoricChainName } = useAgoric(); const { addNotification } = useContext(NotificationContext); const icas = useContractStore(state => state.icas); const [balances, setBalances] = useState([]); @@ -47,7 +45,7 @@ const Orchestration = () => { useEffect(() => { const loadBalances = async () => { try { - const fetchedBalances = await fetchBalances(icas); + const fetchedBalances = await fetchBalances(icas, agoricChainName); setBalances(fetchedBalances); } catch (error) { console.error('failed to fetch balances:', error); @@ -56,7 +54,7 @@ const Orchestration = () => { if (icas && icas.length > 0) { loadBalances(); } - }, [icas, selectedChain]); + }, [agoricChainName, icas, selectedChain]); const openModal = (content: string, address: string = '') => { setModalContent(content); @@ -118,7 +116,7 @@ const Orchestration = () => { addNotification!, selectedChain, 'makeCreateAndFundInvitation', - { chainName: selectedChain, denom: 'ubld' }, + { chainName: selectedChain, denom: 'ubld' }, // adjust as needed setLoadingCreateAndFund, handleToggle, setStatusText, @@ -147,7 +145,6 @@ const Orchestration = () => { const executeDeposit = async () => { setLoadingDeposit(prevState => ({ ...prevState, [modalAddress]: true })); try { - await initializeKeplr(); let chain = ''; if (modalAddress.startsWith('osmo1')) { chain = 'osmosis'; @@ -156,54 +153,33 @@ const Orchestration = () => { } else { throw new Error('unsupported address prefix'); } + const { signingClient, address } = walletConnection; if (chain === 'agoric') { - await window.keplr.enable(`${chain}local`); - const offlineSigner = window.getOfflineSigner(`${chain}local`); - const accounts = await offlineSigner.getAccounts(); - const client = await SigningStargateClient.connectWithSigner( - `${RpcEndpoints[chain]}`, - offlineSigner, - ); - const sendMsg = { - typeUrl: '/cosmos.bank.v1beta1.MsgSend', - value: { - fromAddress: accounts[0].address, - toAddress: modalAddress, - amount: [{ denom: selectedDenom, amount: amount.toString() }], - }, - }; + const amountToSend = [ + { denom: selectedDenom, amount: amount.toString() }, + ]; const fee = { amount: [{ denom: 'ubld', amount: '5000' }], gas: '200000', }; - const result = await client.signAndBroadcast( - accounts[0].address, - [sendMsg], + const result = await signingClient.sendTokens( + address, + modalAddress, + amountToSend, fee, - '', ); if (result.code !== undefined && result.code !== 0) { throw new Error(`failed to send message: ${result}`); } console.log('message sent successfully'); } else { - // await window.keplr.enable(`${chain}local`); - // const offlineSigner = window.getOfflineSigner(`${chain}local`); - await window.keplr.enable(`agoriclocal`); - const offlineSigner = window.getOfflineSigner(`agoriclocal`); - const accounts = await offlineSigner.getAccounts(); - // const client = await SigningStargateClient.connectWithSigner(`${RpcEndpoints[chain]}`, offlineSigner); - const client = await SigningStargateClient.connectWithSigner( - `${RpcEndpoints['agoric']}`, - offlineSigner, - ); const sendMsg = { typeUrl: '/ibc.applications.transfer.v1.MsgTransfer', value: { sourcePort: 'transfer', - sourceChannel: 'channel-0', //TODO: fetch correct channel id + sourceChannel: ibcChannels[agoricChainName][chain], // TODO: fetch channel id from vstorage token: { denom: selectedDenom, amount: amount.toString() }, - sender: accounts[0].address, + sender: address, receiver: modalAddress, timeoutTimestamp: (Math.floor(Date.now() / 1000) + 600) * 1e9, //10 }, @@ -212,8 +188,8 @@ const Orchestration = () => { amount: [{ denom: 'ubld', amount: '5000' }], gas: '200000', }; - const result = await client.signAndBroadcast( - accounts[0].address, + const result = await walletConnection.signingClient.signAndBroadcast( + address, [sendMsg], fee, '', diff --git a/ui/src/components/Orchestration/RpcEndpoints.tsx b/ui/src/components/Orchestration/RpcEndpoints.tsx deleted file mode 100644 index 48c3e23..0000000 --- a/ui/src/components/Orchestration/RpcEndpoints.tsx +++ /dev/null @@ -1,6 +0,0 @@ -const RpcEndpoints = { - osmosis: 'http://127.0.0.1:26655', - agoric: 'http://127.0.0.1:26657', -}; - -export default RpcEndpoints; diff --git a/ui/src/store/displayInfo.ts b/ui/src/store/displayInfo.ts deleted file mode 100644 index 549efaf..0000000 --- a/ui/src/store/displayInfo.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { PurseJSONState } from '@agoric/react-components'; -import type { AssetKind } from '@agoric/web-components'; -import { create } from 'zustand'; - -export type DisplayInfoForBrand = { - assetKind: PurseJSONState['displayInfo']['assetKind']; - decimalPlaces?: number; - petname: string; -}; - -interface DisplayInfoState { - brandToDisplayInfo: Map; - saveDisplayInfo: ({ - brand, - info, - }: { - brand: unknown; - info: DisplayInfoForBrand; - }) => void; - savePurseInfo: (purses: PurseJSONState[]) => void; -} - -export const useDisplayInfo = create((set, get) => ({ - brandToDisplayInfo: new Map(), - saveDisplayInfo: ({ brand, info }) => { - const currentInfo = get().brandToDisplayInfo; - if (currentInfo.has(brand)) return; - - const newInfo = new Map(currentInfo); - newInfo.set(brand, info); - set({ brandToDisplayInfo: newInfo }); - }, - savePurseInfo: purses => { - const currentInfo = get().brandToDisplayInfo; - if (purses.every(({ brand }) => currentInfo.has(brand))) return; - const newInfo = new Map(currentInfo); - - purses.forEach(p => { - newInfo.set(p.brand, { - assetKind: p.displayInfo.assetKind, - decimalPlaces: p.displayInfo.decimalPlaces, - petname: p.brandPetname, - }); - }); - set({ brandToDisplayInfo: newInfo }); - }, -})); diff --git a/ui/src/util.ts b/ui/src/util.ts new file mode 100644 index 0000000..e823204 --- /dev/null +++ b/ui/src/util.ts @@ -0,0 +1,19 @@ +export const rpcEndpoints = { + 'agoric-local': { + osmosis: 'http://127.0.0.1:26655', + agoric: 'http://127.0.0.1:26657', + }, + emerynet: { + osmosis: 'https://rpc.testnet.osmosis.zone:443', + agoric: 'https://emerynet.rpc.agoric.net', + }, +}; + +export const ibcChannels = { + 'agoric-local': { + osmosis: 'channel-1', + }, + emerynet: { + osmosis: 'channel-115', + }, +}; diff --git a/ui/tailwind.config.js b/ui/tailwind.config.js index 2cc1eea..5cf4c3e 100644 --- a/ui/tailwind.config.js +++ b/ui/tailwind.config.js @@ -12,5 +12,6 @@ export default { plugins: [require('daisyui')], daisyui: { prefix: 'daisyui-', + themes: ['dark'], }, }; diff --git a/yarn.lock b/yarn.lock index 05f859e..0094f4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -224,7 +224,7 @@ __metadata: languageName: node linkType: hard -"@agoric/ertp@npm:0.16.3-upgrade-17-dev-ec448b0.0+ec448b0, @agoric/ertp@npm:^0.16.3-dev-e2e36cc.0, @agoric/ertp@npm:^0.16.3-u14.0, @agoric/ertp@npm:^0.16.3-u17.1": +"@agoric/ertp@npm:0.16.3-upgrade-17-dev-ec448b0.0+ec448b0, @agoric/ertp@npm:^0.16.3-dev-e2e36cc.0, @agoric/ertp@npm:^0.16.3-u17.1": version: 0.16.3-upgrade-17-dev-ec448b0.0 resolution: "@agoric/ertp@npm:0.16.3-upgrade-17-dev-ec448b0.0" dependencies: @@ -553,12 +553,12 @@ __metadata: languageName: node linkType: hard -"@agoric/react-components@npm:^0.1.1-dev-ca0ddde.0": - version: 0.1.1-dev-ca0ddde.0 - resolution: "@agoric/react-components@npm:0.1.1-dev-ca0ddde.0" +"@agoric/react-components@npm:0.2.1-dev-e6f79e0.0": + version: 0.2.1-dev-e6f79e0.0 + resolution: "@agoric/react-components@npm:0.2.1-dev-e6f79e0.0" dependencies: - "@agoric/rpc": "npm:0.9.1-dev-ca0ddde.0+ca0ddde" - "@agoric/web-components": "npm:0.15.1-dev-ca0ddde.0+ca0ddde" + "@agoric/rpc": "npm:0.10.1-dev-e6f79e0.0+e6f79e0" + "@agoric/web-components": "npm:0.16.1-dev-e6f79e0.0+e6f79e0" "@cosmos-kit/core": "npm:2.8.9" "@cosmos-kit/react": "npm:2.10.10" "@interchain-ui/react": "npm:1.21.18" @@ -573,20 +573,20 @@ __metadata: chain-registry: 1.28.0 react: 18.2.0 react-dom: 18.2.0 - checksum: 10c0/1995754aef89048c30dd011df26a246df0c622607c0561ca21dd1ab6efaa04056044b0dc7552686e98e9c9029e8c7ab942290f43ae9ab6dcc92bc264edf10020 + checksum: 10c0/9e4794f3dea40782f86c06629c9ae3b65864f158582b44a35bf210f532f45dff6f762255705c24cf830d2edbb99542ecfbea48ad20148764af55b15f7854bf5c languageName: node linkType: hard -"@agoric/rpc@npm:0.9.1-dev-ca0ddde.0+ca0ddde": - version: 0.9.1-dev-ca0ddde.0 - resolution: "@agoric/rpc@npm:0.9.1-dev-ca0ddde.0" +"@agoric/rpc@npm:0.10.1-dev-e6f79e0.0+e6f79e0": + version: 0.10.1-dev-e6f79e0.0 + resolution: "@agoric/rpc@npm:0.10.1-dev-e6f79e0.0" dependencies: "@endo/marshal": "npm:^0.8.9" axios: "npm:^1.6.2" axios-retry: "npm:^4.0.0" vite: "npm:^4.3.2" vite-tsconfig-paths: "npm:^4.2.0" - checksum: 10c0/75ca55aeb40b1871fe7b008cbbdcdd632378416057683038997341dd1ac987c829ba794c78f330e289cabfc23b809ddddf773e6d48c52ab8070f07a363a4db5d + checksum: 10c0/14e9acbf99c2c41174e8a5649ab40850d069a12afa2fdeda529f2ab7871b30afc1e6c17dcc7d6a0806df5e2caca1a53658d744f8efac2d199b5822219606308f languageName: node linkType: hard @@ -934,24 +934,6 @@ __metadata: languageName: node linkType: hard -"@agoric/ui-components@npm:^0.3.9-u13.0": - version: 0.3.9-u14.0 - resolution: "@agoric/ui-components@npm:0.3.9-u14.0" - dependencies: - "@agoric/assert": "npm:^0.6.1-u11wf.0" - "@agoric/ertp": "npm:^0.16.3-u14.0" - "@endo/eventual-send": "npm:0.17.2" - "@endo/init": "npm:0.5.56" - "@endo/nat": "npm:4.1.27" - clsx: "npm:^1.1.1" - peerDependencies: - "@material-ui/core": ^4.11.3 - react: ^16.14.0 - react-dom: ^16.8.0 - checksum: 10c0/9b606929ac4b427f057875a448e061c268c2e0e74dc6a75f8a8f8df3cff6f2095b80631762d191958665281b802d6b58e99cdab462cf6f8079ddaefcc2fd0807 - languageName: node - linkType: hard - "@agoric/vat-data@npm:0.5.3-upgrade-17-dev-ec448b0.0+ec448b0, @agoric/vat-data@npm:^0.5.3-u14.0, @agoric/vat-data@npm:^0.5.3-u17.1": version: 0.5.3-upgrade-17-dev-ec448b0.0 resolution: "@agoric/vat-data@npm:0.5.3-upgrade-17-dev-ec448b0.0" @@ -1052,26 +1034,9 @@ __metadata: languageName: node linkType: hard -"@agoric/web-components@npm:0.15.1-dev-8fc28e8.0": - version: 0.15.1-dev-8fc28e8.0 - resolution: "@agoric/web-components@npm:0.15.1-dev-8fc28e8.0" - dependencies: - "@agoric/assert": "npm:^0.6.0" - "@agoric/cache": "npm:^0.3.2" - "@agoric/casting": "npm:^0.4.3-u13.0" - "@agoric/ertp": "npm:^0.16.2" - "@agoric/notifier": "npm:^0.6.3-dev-8c14632.0" - "@agoric/smart-wallet": "npm:^0.5.3" - "@endo/captp": "npm:^3.1.1" - "@endo/eventual-send": "npm:^0.17.5" - "@endo/marshal": "npm:^0.8.5" - checksum: 10c0/8a3ef79bd73e34fd1a22131ad3faf9745851e14fb5579c30fbe10ad0fb22665c6353f5fd348e98720889ec52457114b6ab04ff4940291181edef9a3dad300a6a - languageName: node - linkType: hard - -"@agoric/web-components@npm:0.15.1-dev-ca0ddde.0+ca0ddde": - version: 0.15.1-dev-ca0ddde.0 - resolution: "@agoric/web-components@npm:0.15.1-dev-ca0ddde.0" +"@agoric/web-components@npm:0.16.1-dev-e6f79e0.0+e6f79e0": + version: 0.16.1-dev-e6f79e0.0 + resolution: "@agoric/web-components@npm:0.16.1-dev-e6f79e0.0" dependencies: "@agoric/assert": "npm:^0.6.0" "@agoric/cache": "npm:^0.3.2" @@ -1083,7 +1048,7 @@ __metadata: "@endo/captp": "npm:^3.1.1" "@endo/eventual-send": "npm:^0.17.5" "@endo/marshal": "npm:^0.8.5" - checksum: 10c0/641b3c479ca8d4e61d4962714d8bc8a285013bc99a7bc020c12ff618c9e324541a19be40bb73568c59bff33f202fd5724cc96403914845b876c5e207251a50c6 + checksum: 10c0/590954323e32dde8c80e069e7163689ef0c06d3d5f85ac88bf0ecd657be2d1530fe4973493effb92dab69e3eac585a4f488cdc1ecc6d2c553e8dabfc25f59f81 languageName: node linkType: hard @@ -10487,7 +10452,7 @@ __metadata: languageName: node linkType: hard -"clsx@npm:^1.1.0, clsx@npm:^1.1.1, clsx@npm:^1.2.1": +"clsx@npm:^1.1.0, clsx@npm:^1.2.1": version: 1.2.1 resolution: "clsx@npm:1.2.1" checksum: 10c0/34dead8bee24f5e96f6e7937d711978380647e936a22e76380290e35486afd8634966ce300fc4b74a32f3762c7d4c0303f442c3e259f4ce02374eb0c82834f27 @@ -11020,9 +10985,7 @@ __metadata: version: 0.0.0-use.local resolution: "dapp-agoric-orca-ui@workspace:ui" dependencies: - "@agoric/react-components": "npm:^0.1.1-dev-ca0ddde.0" - "@agoric/ui-components": "npm:^0.3.9-u13.0" - "@agoric/web-components": "npm:0.15.1-dev-8fc28e8.0" + "@agoric/react-components": "npm:0.2.1-dev-e6f79e0.0" "@interchain-ui/react": "npm:1.21.18" "@keplr-wallet/types": "npm:^0.12.121" "@types/react": "npm:^18.2.56"