11import { BigNumber } from '@ethersproject/bignumber' ;
2+ import { BodhiProvider } from '@acala-network/eth-providers' ;
23import { BytesLike } from '@ethersproject/bytes' ;
4+ import { KeyringPair } from '@polkadot/keyring/types' ;
5+ import { WsProvider } from '@polkadot/api' ;
36import { bufferToU8a , isBuffer , isU8a , u8aToHex } from '@polkadot/util' ;
7+ import { createTestPairs } from '@polkadot/keyring' ;
8+
9+ import { BodhiSigner } from './BodhiSigner' ;
410
511export const U32MAX = BigNumber . from ( '0xffffffff' ) ;
612export const U64MAX = BigNumber . from ( '0xffffffffffffffff' ) ;
@@ -18,3 +24,38 @@ export const dataToString = (bytes: BytesLike): string => {
1824
1925 return bytes as string ;
2026} ;
27+
28+ export const getTestUtils = async (
29+ url = 'ws://localhost:9944' ,
30+ claimDefault = true ,
31+ ) : Promise < {
32+ wallets : BodhiSigner [ ] ;
33+ pairs : KeyringPair [ ] ;
34+ provider : BodhiProvider ;
35+ } > => {
36+ const provider = new BodhiProvider ( {
37+ provider : new WsProvider ( url ) ,
38+ } ) ;
39+ await provider . isReady ( ) ;
40+
41+ const { alice } = createTestPairs ( ) ;
42+ const pairs = [ alice ] ;
43+
44+ const wallets : BodhiSigner [ ] = [ ] ;
45+ for ( const pair of pairs ) {
46+ const wallet = BodhiSigner . fromPair ( provider , pair ) ;
47+
48+ const isClaimed = await wallet . isClaimed ( ) ;
49+ if ( ! isClaimed && claimDefault ) {
50+ await wallet . claimDefaultAccount ( ) ;
51+ }
52+
53+ wallets . push ( wallet ) ;
54+ }
55+
56+ return {
57+ wallets,
58+ pairs,
59+ provider,
60+ } ;
61+ } ;
0 commit comments