50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
import debug from 'debug'
|
|
|
|
import { Registry, parseGasAndFees } from '@cerc-io/registry-sdk'
|
|
|
|
import { getConfig } from '../src/utils'
|
|
|
|
const log = debug('snowball:initialize-registry')
|
|
|
|
const DENOM = 'alnt'
|
|
const BOND_AMOUNT = '1000000000'
|
|
|
|
async function main() {
|
|
const { registryConfig } = await getConfig()
|
|
|
|
// TODO: Get authority names from args
|
|
const authorityNames = ['snowballtools', registryConfig.authority]
|
|
|
|
const registry = new Registry(
|
|
registryConfig.gqlEndpoint,
|
|
registryConfig.restEndpoint,
|
|
{ chainId: registryConfig.chainId }
|
|
)
|
|
|
|
const bondId = await registry.getNextBondId(registryConfig.privateKey)
|
|
log('bondId:', bondId)
|
|
|
|
const fee = parseGasAndFees(registryConfig.fee.gas, registryConfig.fee.fees)
|
|
|
|
await registry.createBond(
|
|
{ denom: DENOM, amount: BOND_AMOUNT },
|
|
registryConfig.privateKey,
|
|
fee
|
|
)
|
|
|
|
for await (const name of authorityNames) {
|
|
await registry.reserveAuthority({ name }, registryConfig.privateKey, fee)
|
|
log('Reserved authority name:', name)
|
|
await registry.setAuthorityBond(
|
|
{ name, bondId },
|
|
registryConfig.privateKey,
|
|
fee
|
|
)
|
|
log(`Bond ${bondId} set for authority ${name}`)
|
|
}
|
|
}
|
|
|
|
main().catch((err) => {
|
|
log(err)
|
|
})
|