@@ -25,11 +25,11 @@ async function getPayoutPagesToClaimForAddressForEra(
25
25
api : ApiPromise ,
26
26
stashAddress : string ,
27
27
eraIndex : number ,
28
- ) : Promise < Array < number > > {
28
+ ) : Promise < Array < number > | undefined > {
29
29
const overview = await api . query . staking . erasStakersOverview ( eraIndex , stashAddress ) ;
30
30
if ( overview . isNone ) {
31
31
// was not in the active set
32
- return [ ] ;
32
+ return undefined ;
33
33
}
34
34
let pageCount = overview . unwrap ( ) . pageCount . toNumber ( ) ;
35
35
let pages = [ ...Array ( pageCount ) . keys ( ) ] ;
@@ -39,10 +39,14 @@ async function getPayoutPagesToClaimForAddressForEra(
39
39
} ,
40
40
) ;
41
41
let pagesToClaim = [ ] ;
42
- for ( let i = 0 ; i < pages . length ; i ++ ) {
43
- let pageIndex = pages [ i ] ;
44
- if ( claimedPages . indexOf ( pageIndex ) < 0 ) {
45
- pagesToClaim . push ( pageIndex ) ;
42
+ if ( pages . length == 0 && claimedPages . length == 0 ) {
43
+ pagesToClaim . push ( 0 ) ;
44
+ } else {
45
+ for ( let i = 0 ; i < pages . length ; i ++ ) {
46
+ let pageIndex = pages [ i ] ;
47
+ if ( claimedPages . indexOf ( pageIndex ) < 0 ) {
48
+ pagesToClaim . push ( pageIndex ) ;
49
+ }
46
50
}
47
51
}
48
52
return pagesToClaim ;
@@ -57,18 +61,18 @@ export async function claimPayout({
57
61
listOnly,
58
62
} : ServiceArgs ) : Promise < bigint | undefined > {
59
63
const pagesToClaim = await getPayoutPagesToClaimForAddressForEra ( api , stashAddress , eraIndex ) ;
60
- if ( pagesToClaim . length == 0 ) {
61
- logger . info ( `No payout to claim for ${ stashAddress } in era ${ eraIndex } ` ) ;
64
+ if ( pagesToClaim == undefined ) {
65
+ logger . info ( `${ stashAddress } was not active in era ${ eraIndex } . ` ) ;
62
66
return undefined ;
63
67
}
64
68
if ( listOnly ) {
65
69
logger . info (
66
- `${ stashAddress } has ${ pagesToClaim . length } pages of unclaimed payouts for era ${ eraIndex } .` ,
70
+ `${ stashAddress } has ${ pagesToClaim . length } page(s) of unclaimed payouts for era ${ eraIndex } .` ,
67
71
) ;
68
72
return undefined ;
69
73
}
70
74
logger . info (
71
- `Will claim ${ pagesToClaim . length } pages of payout for ${ stashAddress } for era ${ eraIndex } .` ,
75
+ `Will claim ${ pagesToClaim . length } page(s) of payout for ${ stashAddress } for era ${ eraIndex } .` ,
72
76
) ;
73
77
cryptoWaitReady ( ) ;
74
78
0 commit comments