File tree Expand file tree Collapse file tree 3 files changed +43
-0
lines changed
Expand file tree Collapse file tree 3 files changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ import * as t from 'io-ts' ;
2+ import { NamedDescriptor } from './NamedDescriptor' ;
3+ import { AbstractUtxoCoinWalletData } from '../abstractUtxoCoin' ;
4+ import { DescriptorMap , toDescriptorMap } from '../core/descriptor' ;
5+
6+ type DescriptorWalletData = AbstractUtxoCoinWalletData & {
7+ coinSpecific : {
8+ descriptors : NamedDescriptor [ ] ;
9+ } ;
10+ } ;
11+
12+ export function isDescriptorWalletData ( obj : AbstractUtxoCoinWalletData ) : obj is DescriptorWalletData {
13+ if ( 'coinSpecific' in obj && 'descriptors' in obj . coinSpecific ) {
14+ return t . array ( NamedDescriptor ) . is ( obj . coinSpecific . descriptors ) ;
15+ }
16+ return false ;
17+ }
18+
19+ export function getDescriptorMapFromWalletData ( wallet : DescriptorWalletData ) : DescriptorMap {
20+ return toDescriptorMap ( wallet . coinSpecific . descriptors ) ;
21+ }
Original file line number Diff line number Diff line change 11export { Miniscript , Descriptor } from '@bitgo/wasm-miniscript' ;
22export { assertDescriptorWalletAddress } from './assertDescriptorWalletAddress' ;
33export { NamedDescriptor } from './NamedDescriptor' ;
4+ export { isDescriptorWalletData , getDescriptorMapFromWalletData } from './descriptorWallet' ;
Original file line number Diff line number Diff line change 1+ import assert from 'assert' ;
2+ import { getDescriptorMapFromWalletData , isDescriptorWalletData } from '../../src/descriptor' ;
3+ import { AbstractUtxoCoinWalletData } from '../../src' ;
4+ import { getDescriptorMap } from '../core/descriptor/descriptor.utils' ;
5+
6+ describe ( 'isDescriptorWalletData' , function ( ) {
7+ const descriptorMap = getDescriptorMap ( 'Wsh2Of3' ) ;
8+ it ( 'should return true for valid DescriptorWalletData' , function ( ) {
9+ const walletData : AbstractUtxoCoinWalletData = {
10+ coinSpecific : {
11+ descriptors : [ ...descriptorMap . entries ( ) ] . map ( ( [ name , descriptor ] ) => ( {
12+ name,
13+ value : descriptor . toString ( ) ,
14+ } ) ) ,
15+ } ,
16+ } as unknown as AbstractUtxoCoinWalletData ;
17+
18+ assert ( isDescriptorWalletData ( walletData ) ) ;
19+ assert . strictEqual ( getDescriptorMapFromWalletData ( walletData ) . size , descriptorMap . size ) ;
20+ } ) ;
21+ } ) ;
You can’t perform that action at this time.
0 commit comments