Skip to content

Commit

Permalink
Merge pull request eco-stake#112 from eco-stake/autostake-ensure-dele…
Browse files Browse the repository at this point in the history
…gations

Don't swallow delegation errors and minor refactor
  • Loading branch information
tombeynon authored Mar 10, 2022
2 parents 9366ae6 + 9480e13 commit 7e00323
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 23 deletions.
32 changes: 18 additions & 14 deletions scripts/autostake.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -58,20 +58,7 @@ class Autostake {
})

console.log("Checking", addresses.length, "delegators for grants...")
let grantCalls = addresses.map(item => {
return async () => {
try {
const validators = await this.getGrantValidators(client, item)
return validators ? item : undefined
} catch (error) {
console.log(item, 'Failed to get address')
}
}
})
let grantedAddresses = await mapSync(grantCalls, 100, (batch, index) => {
console.log('...batch', index + 1)
})
grantedAddresses = _.compact(grantedAddresses.flat())
let grantedAddresses = await this.getGrantedAddresses(addresses)

console.log("Found", grantedAddresses.length, "delegators with valid grants...")
let calls = _.compact(grantedAddresses).map(item => {
Expand Down Expand Up @@ -147,6 +134,23 @@ class Autostake {
})
}

async getGrantedAddresses(client, addresses){
let grantCalls = addresses.map(item => {
return async () => {
try {
const validators = await this.getGrantValidators(client, item)
return validators ? item : undefined
} catch (error) {
console.log(item, 'Failed to get address')
}
}
})
let grantedAddresses = await mapSync(grantCalls, 100, (batch, index) => {
console.log('...batch', index + 1)
})
return _.compact(grantedAddresses.flat())
}

getGrantValidators(client, delegatorAddress) {
return client.restClient.getGrants(client.operator.botAddress, delegatorAddress)
.then(
Expand Down
14 changes: 5 additions & 9 deletions src/utils/RestClient.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -110,15 +110,11 @@ const RestClient = async (chainId, restUrls) => {
let pages = []
let nextKey, error
do {
try {
const result = await getPage(nextKey)
pages.push(result)
nextKey = result.pagination.next_key
if(pageCallback) pageCallback(pages)
} catch (err) {
error = err
}
} while (nextKey && !error)
const result = await getPage(nextKey)
pages.push(result)
nextKey = result.pagination.next_key
if(pageCallback) pageCallback(pages)
} while (nextKey)
return pages
}

Expand Down

0 comments on commit 7e00323

Please sign in to comment.