123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- import { JennieModule } from './JennieModule'
- import {
- bcs,
- Coins,
- MsgDelegate,
- MsgExecute,
- MsgWithdrawDelegatorReward,
- } from '@initia/initia.js'
- import { validatorArray } from './validatorArray'
- import { generateRandomString, getAxiosClient } from './utils'
- export abstract class InitiaTask extends JennieModule {
- protected constructor(mnemonic: string, useProxy: boolean = false) {
- super(mnemonic, useProxy)
- }
- //done
- async swapScript() {
- // const swaped = await this.checkUsdcSwaped()
- // if (swaped) {
- // console.log(`swaped`)
- // return `done`
- // }
- // ;[
- // '2/BsSK85hOxtmuipqn27C7HnhKqbjEpWga9mDPhVjX0=',
- // 'jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=',
- // 'QEtMAAAAAAA=',
- // 'AbThSwAAAAAA',
- // ]
- // const amount = bcs
- // .u64() // type
- // .parse(Uint8Array.from(Buffer.from('QEtMAAAAAAA=', 'base64')))
- // console.log(amount)
- // return `done`
- const randomNum = this.randomAmount(10000, 200000)
- const msg = new MsgExecute(
- this.key.accAddress,
- '0x1',
- 'dex',
- 'swap_script',
- [],
- [
- '2/BsSK85hOxtmuipqn27C7HnhKqbjEpWga9mDPhVjX0=', //liquidityTOken
- 'jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=', //offerCoin
- bcs.u64().serialize(randomNum).toBase64(), //offerAmount
- bcs.option(bcs.u64()).serialize(this.randomAmount(0, 2)).toBase64(),
- ],
- )
- return await this.broadcast(msg)
- }
- async swapTiaScript() {
- //["sTSuZ4bxDvdClOYn0lGbY7fHQqZzX5hoKSn+qahHRNI=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AaY5AQAAAAAA"]
- const randomNum = this.randomAmount(5000000, 10000000)
- const msg = new MsgExecute(
- this.key.accAddress,
- '0x1',
- 'dex',
- 'swap_script',
- [],
- [
- 'sTSuZ4bxDvdClOYn0lGbY7fHQqZzX5hoKSn+qahHRNI=', //liquidityTOken
- 'jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=', //offerCoin
- bcs.u64().serialize(randomNum).toBase64(), //offerAmount
- bcs
- .option(bcs.u64())
- .serialize(this.randomAmount(1000, 2000))
- .toBase64(),
- ],
- )
- return await this.broadcast(msg)
- }
- async swapEthScript() {
- // const swaped = await this.checkEthSwaped()
- // if (swaped) {
- // console.log(`swaped`)
- // return `done`
- // }
- // ["orDTyOU+N57eMfOjYf8CcW1Q7FPGtluMSKgdWwZUggA=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AeYAAAAAAAAA"]
- const msg = new MsgExecute(
- this.key.accAddress,
- '0x1',
- 'dex',
- 'swap_script',
- [],
- [
- 'orDTyOU+N57eMfOjYf8CcW1Q7FPGtluMSKgdWwZUggA=', //liquidityTOken
- 'jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=', //offerCoin
- 'QEIPAAAAAAA=', //offerAmount
- bcs.option(bcs.u64()).serialize(this.randomAmount(0, 100)).toBase64(),
- ],
- )
- return await this.broadcast(msg)
- }
- async nameRegister() {
- const moduleAddress =
- '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a'
- const moduleName = 'usernames'
- const fnName = 'get_name_from_address'
- const viewResult = await this.lcd.move.viewFunction(
- moduleAddress,
- moduleName,
- fnName,
- [],
- [bcs.address().serialize(this.key.accAddress).toBase64()],
- )
- console.log(viewResult)
- if (viewResult !== null) {
- return `done`
- }
- const random = generateRandomString(10)
- const arg = bcs.string().serialize(random).toBase64()
- const msgs = []
- msgs.push(
- new MsgExecute(
- this.key.accAddress,
- '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a',
- 'usernames',
- 'register_domain',
- [],
- [arg, '4IfhAQAAAAA='],
- ),
- )
- msgs.push(
- new MsgExecute(
- this.key.accAddress,
- '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a',
- 'usernames',
- 'set_name',
- [],
- [arg],
- ),
- )
- return await this.broadcast(msgs)
- }
- async stakeSingle() {
- const res = await this.getDelegationInfo()
- const flag = res.some((item: any) => {
- const coin: Coins = item.balance
- const data = coin.toData()
- return (
- data[0].denom ===
- 'move/dbf06c48af3984ec6d9ae8a9aa7dbb0bb1e784aa9b8c4a5681af660cf8558d7d'
- )
- })
- if (flag) {
- return `done`
- }
- const usdcAmount = await this.getUsdcAmount()
- if (Number(usdcAmount) < 1000) {
- await this.swapScript()
- return `needMint`
- }
- const randomValidator =
- validatorArray[Math.floor(Math.random() * validatorArray.length)]
- // console.log(bcs.u64().serialize(usdcAmount).toBase64())
- // console.log(bcs.string().serialize(randomValidator).toBase64())
- //["sTSuZ4bxDvdClOYn0lGbY7fHQqZzX5hoKSn+qahHRNI=","rM6zskU5Kv4INGt5TPXE/4Xn6ajIL8r1ESrp1kulfMs=","QJwAAAAAAAA=","AQ5IAwAAAAAA","MmluaXR2YWxvcGVyMTlqNmF3M2xxczBxaDk3Zjl0bHZodmdldWZjcjgzYTN3aDBzeHRu"]
- const msg = new MsgExecute(
- this.key.accAddress,
- '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a',
- 'dex_utils',
- 'single_asset_provide_stake',
- [],
- [
- '2/BsSK85hOxtmuipqn27C7HnhKqbjEpWga9mDPhVjX0=',
- 'KYJNlS4DVJD651Z97qXxW1BKaPpzYQBjwWCrH6h91gk=',
- bcs
- .u64()
- .serialize(Math.floor(Number(usdcAmount) / 2))
- .toBase64(), //amount
- bcs
- .option(bcs.u64())
- .serialize(this.randomAmount(1000, 10000))
- .toBase64(),
- bcs.string().serialize(randomValidator).toBase64(), //validator
- ],
- )
- return await this.broadcast(msg)
- }
- async stakeTiaSingle() {
- const res = await this.getDelegationInfo()
- const flag = res.some((item: any) => {
- const coin: Coins = item.balance
- const data = coin.toData()
- return (
- data[0].denom ===
- 'move/b134ae6786f10ef74294e627d2519b63b7c742a6735f98682929fea9a84744d2'
- )
- })
- if (flag) {
- return `done`
- }
- //move/b134ae6786f10ef74294e627d2519b63b7c742a6735f98682929fea9a84744d2
- const usdcAmount = await this.getTiaAmount()
- if (Number(usdcAmount) < 1000) {
- await this.swapTiaScript()
- return `needMint`
- }
- const randomValidator =
- validatorArray[Math.floor(Math.random() * validatorArray.length)]
- // console.log(bcs.u64().serialize(usdcAmount).toBase64())
- // console.log(bcs.string().serialize(randomValidator).toBase64())
- //["sTSuZ4bxDvdClOYn0lGbY7fHQqZzX5hoKSn+qahHRNI=","rM6zskU5Kv4INGt5TPXE/4Xn6ajIL8r1ESrp1kulfMs=","QJwAAAAAAAA=","AQ5IAwAAAAAA","MmluaXR2YWxvcGVyMTlqNmF3M2xxczBxaDk3Zjl0bHZodmdldWZjcjgzYTN3aDBzeHRu"]
- const msg = new MsgExecute(
- this.key.accAddress,
- '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a',
- 'dex_utils',
- 'single_asset_provide_stake',
- [],
- [
- 'sTSuZ4bxDvdClOYn0lGbY7fHQqZzX5hoKSn+qahHRNI=',
- 'rM6zskU5Kv4INGt5TPXE/4Xn6ajIL8r1ESrp1kulfMs=',
- bcs
- .u64()
- .serialize(Math.floor(Number(usdcAmount) / 2))
- .toBase64(), //amount
- bcs
- .option(bcs.u64())
- .serialize(this.randomAmount(1000, 10000))
- .toBase64(),
- bcs.string().serialize(randomValidator).toBase64(), //validator
- ],
- )
- return await this.broadcast(msg)
- }
- async stakeEthSingle() {
- const res = await this.getDelegationInfo()
- const flag = res.some((item: any) => {
- const coin: Coins = item.balance
- const data = coin.toData()
- return (
- data[0].denom ===
- 'move/a2b0d3c8e53e379ede31f3a361ff02716d50ec53c6b65b8c48a81d5b06548200'
- )
- })
- if (flag) {
- return `done`
- }
- const usdcAmount = await this.getEthAmount()
- if (Number(usdcAmount) < 100) {
- await this.swapEthScript()
- return `needMint`
- }
- const randomValidator =
- validatorArray[Math.floor(Math.random() * validatorArray.length)]
- // console.log(bcs.u64().serialize(usdcAmount).toBase64())
- // console.log(bcs.string().serialize(randomValidator).toBase64())
- // ["orDTyOU+N57eMfOjYf8CcW1Q7FPGtluMSKgdWwZUggA=","vg74SeQlyomDDB/w+YT1sLUStwyralrilMYlXD7kzQw=","ZAAAAAAAAAA=","AUy6AgAAAAAA","MmluaXR2YWxvcGVyMWs0N3kyM3Jla3RnY2FueTk3bDk3cWwzY2x1MzZ4ajJjY2dra2x1"]
- const msg = new MsgExecute(
- this.key.accAddress,
- '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a',
- 'dex_utils',
- 'single_asset_provide_stake',
- [],
- [
- 'orDTyOU+N57eMfOjYf8CcW1Q7FPGtluMSKgdWwZUggA=',
- 'vg74SeQlyomDDB/w+YT1sLUStwyralrilMYlXD7kzQw=',
- bcs
- .u64()
- .serialize(Math.floor(Number(usdcAmount) / 2))
- .toBase64(), //amount
- bcs.option(bcs.u64()).serialize(this.randomAmount(0, 10)).toBase64(),
- bcs.string().serialize(randomValidator).toBase64(), //validator
- ],
- )
- return await this.broadcast(msg)
- }
- async getDelegationInfo() {
- const data = await this.lcd.mstaking.delegations(this.key.accAddress)
- // const data = await axiosClient.get(
- // `https://b545809c-5562-4e60-b5a1-22e83df57748.initiation-1.mesa-rest.ue1-prod.newmetric.xyz/initia/mstaking/v1/delegations/${this.key.accAddress}`,
- // )
- // console.log(JSON.stringify(response))
- return data[0]
- // return data.data.delegation_responses
- }
- async stakeInit() {
- const res = await this.getDelegationInfo()
- const flag = res.some((item: any) => {
- return item.balance[0].denom === 'uinit'
- })
- if (flag) {
- return `done`
- }
- const randomValidator =
- validatorArray[Math.floor(Math.random() * validatorArray.length)]
- const msg = new MsgDelegate(
- this.key.accAddress, // delegator address
- randomValidator, // validator's operator addres
- '100000uinit', // delegate amount
- )
- return await this.broadcast(msg)
- }
- async claimReward() {
- const axiosClient = getAxiosClient(true)
- // const res = await axiosClient.get('https://api.ipify.org?format=json')
- // console.log(res.data.ip)
- // return ``
- const data = await axiosClient.get(
- `https://b545809c-5562-4e60-b5a1-22e83df57748.initiation-1.mesa-rest.ue1-prod.newmetric.xyz/initia/mstaking/v1/delegations/${this.key.accAddress}`,
- )
- const response = data.data.delegation_responses
- console.log(response)
- if (response.length === 0) {
- return `done`
- }
- // return false
- const msgs = []
- response.forEach((item: any) => {
- const msg = new MsgWithdrawDelegatorReward(
- this.key.accAddress,
- item.delegation.validator_address,
- )
- msgs.push(msg)
- })
- return await this.broadcast(msgs)
- }
- }
|