@@ -75,21 +75,21 @@ const fetchAllAddressesForAccount = async (
75
75
/**
76
76
* Derive the reward account (stake address) at a given stakeIndex.
77
77
*/
78
- const deriveRewardAccount = ( account : Bip32Account , stakeIndex : number ) : Cardano . RewardAccount => {
79
- const address = account . deriveAddress ( { type : AddressType . External , index : 0 } , stakeIndex ) ;
78
+ const deriveRewardAccount = async ( account : Bip32Account , stakeIndex : number ) : Promise < Cardano . RewardAccount > => {
79
+ const address = await account . deriveAddress ( { type : AddressType . External , index : 0 } , stakeIndex ) ;
80
80
81
81
return address . rewardAccount ;
82
82
} ;
83
83
84
84
/**
85
85
* Derive a payment address at a given (payment) index + address type (internal/external).
86
86
*/
87
- const derivePaymentAddress = (
87
+ const derivePaymentAddress = async (
88
88
account : Bip32Account ,
89
89
paymentIndex : number ,
90
90
stakeIndex : number ,
91
91
isInternal : boolean
92
- ) : GroupedAddress => {
92
+ ) : Promise < GroupedAddress > => {
93
93
const type = isInternal ? AddressType . Internal : AddressType . External ;
94
94
return account . deriveAddress ( { type, index : paymentIndex } , stakeIndex ) ;
95
95
} ;
@@ -101,12 +101,12 @@ const derivePaymentAddress = (
101
101
*
102
102
* @returns Array of discovered (matched) addresses + leftover “unknown/franken” addresses
103
103
*/
104
- const discoverAddressesForStakeKey = (
104
+ const discoverAddressesForStakeKey = async (
105
105
account : Bip32Account ,
106
106
logger : Logger ,
107
107
stakeIndex : number ,
108
108
allAddressesForStake : Cardano . PaymentAddress [ ]
109
- ) : { discovered : GroupedAddress [ ] ; unknown : Cardano . PaymentAddress [ ] } => {
109
+ ) : Promise < { discovered : GroupedAddress [ ] ; unknown : Cardano . PaymentAddress [ ] } > => {
110
110
const discovered : GroupedAddress [ ] = [ ] ;
111
111
const uniqueAddressesForStake = new Set ( allAddressesForStake ) ;
112
112
@@ -120,10 +120,10 @@ const discoverAddressesForStakeKey = (
120
120
break ;
121
121
}
122
122
123
- const externalAddr = derivePaymentAddress ( account , paymentIndex , stakeIndex , false ) ;
123
+ const externalAddr = await derivePaymentAddress ( account , paymentIndex , stakeIndex , false ) ;
124
124
const externalInSet = uniqueAddressesForStake . has ( externalAddr . address as Cardano . PaymentAddress ) ;
125
125
126
- const internalAddr = derivePaymentAddress ( account , paymentIndex , stakeIndex , true ) ;
126
+ const internalAddr = await derivePaymentAddress ( account , paymentIndex , stakeIndex , true ) ;
127
127
const internalInSet = uniqueAddressesForStake . has ( internalAddr . address as Cardano . PaymentAddress ) ;
128
128
129
129
if ( externalInSet ) {
@@ -174,7 +174,7 @@ const discoverAddresses = async (
174
174
175
175
while ( stakeGapCount < STAKE_KEY_GAP ) {
176
176
logger . debug ( `Deriving reward account for stake index ${ stakeIndex } ...` ) ;
177
- const rewardAccount = deriveRewardAccount ( account , stakeIndex ) ;
177
+ const rewardAccount = await deriveRewardAccount ( account , stakeIndex ) ;
178
178
179
179
logger . debug ( `Fetching addresses for stake credential ${ rewardAccount } ...` ) ;
180
180
const allAddressesForStake = await fetchAllAddressesForAccount ( client , rewardAccount , logger ) ;
@@ -187,7 +187,12 @@ const discoverAddresses = async (
187
187
188
188
stakeGapCount = 0 ;
189
189
190
- const { discovered, unknown } = discoverAddressesForStakeKey ( account , logger , stakeIndex , allAddressesForStake ) ;
190
+ const { discovered, unknown } = await discoverAddressesForStakeKey (
191
+ account ,
192
+ logger ,
193
+ stakeIndex ,
194
+ allAddressesForStake
195
+ ) ;
191
196
192
197
discoveredAll . push ( ...discovered ) ;
193
198
@@ -221,7 +226,7 @@ export class BlockfrostAddressDiscovery implements AddressDiscovery {
221
226
public async discover ( manager : Bip32Account ) : Promise < GroupedAddress [ ] > {
222
227
this . #logger. debug ( 'Discovering addresses using Blockfrost...' ) ;
223
228
224
- const firstAddress = manager . deriveAddress ( { index : 0 , type : AddressType . External } , 0 ) ;
229
+ const firstAddress = await manager . deriveAddress ( { index : 0 , type : AddressType . External } , 0 ) ;
225
230
226
231
const discoveredAddresses = await discoverAddresses ( manager , this . #client, this . #logger) ;
227
232
0 commit comments