Skip to content

Commit

Permalink
feat: enable faucet on agoric
Browse files Browse the repository at this point in the history
  • Loading branch information
0xpatrickdev committed Oct 2, 2024
1 parent 69f8e4b commit 928616e
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 40 deletions.
4 changes: 3 additions & 1 deletion multichain-testing/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ chains:
updateConfig:
file: scripts/update-config.sh
faucet:
enabled: false
enabled: true
type: starship
ports:
rest: 1317
rpc: 26657
exposer: 38087
grpc: 9090
faucet: 8082
resources:
cpu: 1
memory: 4Gi
Expand Down
85 changes: 46 additions & 39 deletions multichain-testing/test/tools/wallet.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,44 +6,51 @@ import { commonSetup } from '../support.js';

const test = anyTest as TestFn<Record<string, never>>;

const walletScenario = test.macro(async (t, scenario: string) => {
const { useChain, retryUntilCondition } = await commonSetup(t);

const prefix = useChain(scenario).chain.bech32_prefix;
const wallet = await createWallet(prefix);
const addr = (await wallet.getAccounts())[0].address;
t.regex(addr, new RegExp(`^${prefix}1`));
t.log('Made temp wallet:', addr);

const apiUrl = await useChain(scenario).getRestEndpoint();
const queryClient = makeQueryClient(apiUrl);
t.log('Made query client');

const { balances } = await queryClient.queryBalances(addr);
t.log('Beginning balances:', balances);
t.deepEqual(balances, []);

const { creditFromFaucet } = useChain(scenario);
t.log('Requesting faucet funds');

await creditFromFaucet(addr);
// XXX needed to avoid race condition between faucet POST and LCD Query
// see https://github.com/cosmology-tech/starship/issues/417
const { balances: updatedBalances } = await retryUntilCondition(
() => queryClient.queryBalances(addr),
({ balances }) => !!balances.length,
`${scenario} balance available from faucet`,
);

const expectedDenom = scenario === 'osmosis' ? 'uosmo' : 'uatom';
t.like(updatedBalances, [{ denom: expectedDenom, amount: '10000000000' }]);
t.log('Updated balances:', updatedBalances);

const bondDenom = useChain(scenario).chain.staking?.staking_tokens?.[0].denom;
t.truthy(bondDenom, 'bond denom found');
const { balance } = await queryClient.queryBalance(addr, bondDenom!);
t.deepEqual(balance, { denom: bondDenom, amount: '10000000000' });
const walletScenario = test.macro({
title: (_, chainName: string) =>
`create a wallet and get tokens on ${chainName}`,
exec: async (t, chainName: string) => {
const { useChain, retryUntilCondition } = await commonSetup(t);

const { bech32_prefix, staking } = useChain(chainName).chain;
const wallet = await createWallet(bech32_prefix);
const addr = (await wallet.getAccounts())[0].address;
t.regex(addr, new RegExp(`^${bech32_prefix}1`));
t.log('Made temp wallet:', addr);

const apiUrl = await useChain(chainName).getRestEndpoint();
const queryClient = makeQueryClient(apiUrl);
t.log('Made query client');

const { balances } = await queryClient.queryBalances(addr);
t.log('Beginning balances:', balances);
t.deepEqual(balances, []);

const { creditFromFaucet } = useChain(chainName);
t.log('Requesting faucet funds');

await creditFromFaucet(addr);
// XXX needed to avoid race condition between faucet POST and LCD Query
// see https://github.com/cosmology-tech/starship/issues/417
const { balances: updatedBalances } = await retryUntilCondition(
() => queryClient.queryBalances(addr),
({ balances }) => !!balances.length,
`${chainName} balance available from faucet`,
);

const expectedDenom = staking?.staking_tokens?.[0]?.denom;
t.assert(expectedDenom, 'expected denom found in registry');
t.like(updatedBalances, [{ denom: expectedDenom, amount: '10000000000' }]);
t.log('Updated balances:', updatedBalances);

const bondDenom =
useChain(chainName).chain.staking?.staking_tokens?.[0].denom;
t.truthy(bondDenom, 'bond denom found');
const { balance } = await queryClient.queryBalance(addr, bondDenom!);
t.deepEqual(balance, { denom: bondDenom, amount: '10000000000' });
},
});

test('create a wallet and get tokens (osmosis)', walletScenario, 'osmosis');
test('create a wallet and get tokens (cosmoshub)', walletScenario, 'cosmoshub');
test(walletScenario, 'osmosis');
test(walletScenario, 'cosmoshub');
test(walletScenario, 'agoric');

0 comments on commit 928616e

Please sign in to comment.