|
@@ -5,17 +5,22 @@ import {
|
|
|
Coin,
|
|
|
Coins,
|
|
|
Fee,
|
|
|
+ IbcChannelMsg,
|
|
|
+ Msg,
|
|
|
+ MsgCall,
|
|
|
MsgExecute,
|
|
|
+ MsgInitiateTokenWithdrawal,
|
|
|
MsgSend,
|
|
|
- MsgTransfer,
|
|
|
+ MsgTransfer, Tx,
|
|
|
Wallet,
|
|
|
} from '@initia/initia.js'
|
|
|
import polly from 'polly-js'
|
|
|
import { LunchClient } from './LunchClient'
|
|
|
import { sleep } from 'useless-helpers'
|
|
|
-import { generateRandomString, getAxiosClient } from './utils'
|
|
|
+import { generateRandomString, getAxiosClient, getProxyAgent } from './utils'
|
|
|
import { generate } from 'random-words'
|
|
|
import { HttpsProxyAgent } from 'https-proxy-agent'
|
|
|
+import { MsgUpdateClient } from '@initia/initia.js/dist/core/ibc/core/client/msgs'
|
|
|
|
|
|
export class InitiaClient extends InitiaTask {
|
|
|
constructor(mnemonic: string, useProxy: boolean = false) {
|
|
@@ -996,11 +1001,20 @@ export class InitiaClient extends InitiaTask {
|
|
|
return `worked`
|
|
|
}
|
|
|
|
|
|
+ //tuc addLiquidity
|
|
|
async week6task2() {
|
|
|
- const tucBalance = await this.tucana.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'utuc',
|
|
|
- )
|
|
|
+ const tucBalance = await polly()
|
|
|
+ .waitAndRetry(5)
|
|
|
+ .executeForPromise(async () => {
|
|
|
+ this.tucana.apiRequester = new APIRequester(
|
|
|
+ 'https://maze-rest-c9796789-107d-49ab-b6de-059724d2a91d.ue1-prod.newmetric.xyz/',
|
|
|
+ { httpsAgent: getProxyAgent() },
|
|
|
+ )
|
|
|
+ return await this.tucana.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'utuc',
|
|
|
+ )
|
|
|
+ })
|
|
|
console.log(tucBalance.amount)
|
|
|
if (Number(tucBalance.amount) < 2000000) {
|
|
|
return `tuc`
|
|
@@ -1047,6 +1061,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
//["AAk9AAAAAAA=","64WvP6wAJgs/gCqhuEQ9pXGrKKgjuk08mCVTuXJ2Jd8=","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg=","AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="]
|
|
|
}
|
|
|
|
|
|
+ //roll dice
|
|
|
async week6task3() {
|
|
|
const civiInitBalance = await this.civi.bank.balanceByDenom(
|
|
|
this.key.accAddress,
|
|
@@ -1094,6 +1109,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //claim rent
|
|
|
async week7task1() {
|
|
|
const uinit = await this.civi.bank.balanceByDenom(
|
|
|
this.key.accAddress,
|
|
@@ -1145,6 +1161,61 @@ export class InitiaClient extends InitiaTask {
|
|
|
//["AAk9AAAAAAA=","64WvP6wAJgs/gCqhuEQ9pXGrKKgjuk08mCVTuXJ2Jd8=","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg=","AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="]
|
|
|
}
|
|
|
|
|
|
+ async tucSawap() {
|
|
|
+ //["QjN2ut5dOkhkoWFkOcLyMX6u6bwjsXfcQYH4HOCcV7k=","AQ==","AQ==","QEIPAAAAAAA=","x18BAAAAAAA=","UDsBAAEAAAAAAAAAAAAAAA=="]
|
|
|
+ // ["QjN2ut5dOkhkoWFkOcLyMX6u6bwjsXfcQYH4HOCcV7k=","AQ==","AQ==","QEIPAAAAAAA=","x18BAAAAAAA=","UDsBAAEAAAAAAAAAAAAAAA=="]
|
|
|
+
|
|
|
+ const tucanaWallet = new Wallet(this.tucana, this.wallet.key)
|
|
|
+ const balance = await polly()
|
|
|
+ .waitAndRetry(5)
|
|
|
+ .executeForPromise(async () => {
|
|
|
+ this.tucana.apiRequester = new APIRequester(
|
|
|
+ 'https://maze-rest-c9796789-107d-49ab-b6de-059724d2a91d.ue1-prod.newmetric.xyz/',
|
|
|
+ { httpsAgent: getProxyAgent() },
|
|
|
+ )
|
|
|
+ return await this.tucana.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'utuc',
|
|
|
+ )
|
|
|
+ })
|
|
|
+ const amountIn = Math.floor(Number(balance.amount) / 11)
|
|
|
+ const msg = new MsgExecute(
|
|
|
+ this.key.accAddress,
|
|
|
+ '0xB76BF9FDD260B394611E0750A12F5E154BB59A12',
|
|
|
+ 'router',
|
|
|
+ 'swap',
|
|
|
+ [],
|
|
|
+ [
|
|
|
+ 'j8LTay3jxZzXPoM6qxtmd6tSpJCf6vrJE8lzGgHv/sg=',
|
|
|
+ 'AQ==',
|
|
|
+ 'AQ==',
|
|
|
+ bcs.u64().serialize(amountIn).toBase64(),
|
|
|
+ bcs
|
|
|
+ .u64()
|
|
|
+ .serialize(Math.floor(Math.random() * 200))
|
|
|
+ .toBase64(),
|
|
|
+ 'UDsBAAEAAAAAAAAAAAAAAA==',
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ const simulate = await this.tucana.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await tucanaWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: ['utuc'],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await tucanaWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([new Coin('utuc', simulate.amount.toArray()[0].amount)]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ await this.tucana.tx.broadcastAsync(signed)
|
|
|
+ return `done`
|
|
|
+ }
|
|
|
+
|
|
|
+ //tuc swap
|
|
|
async week7task2() {
|
|
|
// const axios = getAxiosClient(true)
|
|
|
// const res = await axios.get(
|
|
@@ -1154,6 +1225,14 @@ export class InitiaClient extends InitiaTask {
|
|
|
// return `noData`
|
|
|
// }
|
|
|
|
|
|
+ const balance = await this.lcd.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'uinit',
|
|
|
+ )
|
|
|
+
|
|
|
+ if (Number(balance.amount) < 1000000) {
|
|
|
+ }
|
|
|
+
|
|
|
const msg = new MsgExecute(
|
|
|
this.key.accAddress,
|
|
|
'0x8609f642a8ab1c13d661c14d733cab227bba15635a730af2057051b3f2ada3f6',
|
|
@@ -1173,7 +1252,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
await this.broadcast(msg)
|
|
|
return `done`
|
|
|
} catch (e) {
|
|
|
- console.log(e)
|
|
|
+ console.log(e.message)
|
|
|
return `error`
|
|
|
}
|
|
|
// ["FrbuJROsvX9uKlyA1LMdS9QsSwfe5LOLvx2xOzAwk+E=","AA==","AQ==","QEIPAAAAAAA=","5SAPAAAAAAA=","rzMbqDJ/uzWxxP7/AAAAAA=="]
|
|
@@ -1181,6 +1260,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
// ["FrbuJROsvX9uKlyA1LMdS9QsSwfe5LOLvx2xOzAwk+E=","AA==","AQ==","QEIPAAAAAAA=","oyAPAAAAAAA=","rzMbqDJ/uzWxxP7/AAAAAA=="]
|
|
|
}
|
|
|
|
|
|
+ //mint nft
|
|
|
async week7task3() {
|
|
|
const aiWallt = new Wallet(this.initAi, this.wallet.key)
|
|
|
|
|
@@ -1194,12 +1274,12 @@ export class InitiaClient extends InitiaTask {
|
|
|
|
|
|
if (Number(balanceCheck.amount) < 1400000) {
|
|
|
await this.newBridge2Ai()
|
|
|
- return true
|
|
|
- } else {
|
|
|
return false
|
|
|
+ } else {
|
|
|
+ return true
|
|
|
}
|
|
|
})
|
|
|
- if (balanceChecker) {
|
|
|
+ if (!balanceChecker) {
|
|
|
return `ai`
|
|
|
}
|
|
|
|
|
@@ -1262,7 +1342,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
},
|
|
|
},
|
|
|
)
|
|
|
- return await this.initAi.tx.estimateFee(
|
|
|
+ const res = await this.initAi.tx.estimateFee(
|
|
|
[{ sequenceNumber: await aiWallt.sequence() }],
|
|
|
{
|
|
|
msgs: [msg],
|
|
@@ -1271,6 +1351,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
],
|
|
|
},
|
|
|
)
|
|
|
+ return res
|
|
|
})
|
|
|
const signed = await aiWallt.createAndSignTx({
|
|
|
msgs: [msg],
|
|
@@ -1285,7 +1366,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
),
|
|
|
})
|
|
|
await this.initAi.tx.broadcastAsync(signed)
|
|
|
- return `mint`
|
|
|
+ return `done`
|
|
|
// ["y/0NIkUSVOcDuguqejyPCsFizyz33v6RVBbrUQxlIbE=","DG1vbmV5IGNvbG9yIA==","AQ=="]
|
|
|
// ["y/0NIkUSVOcDuguqejyPCsFizyz33v6RVBbrUQxlIbE=","HmdyZWVuIGNvbG9yIHBva2Vtb24gd2l0aCB0cmVlcw==","AQ=="]
|
|
|
// ["awRFigvxT99zEmp3Yfrcwj49k5w3PsQ93z/4SgAFrn8=","BGJlcmE=","AQ=="]
|
|
@@ -1329,11 +1410,164 @@ export class InitiaClient extends InitiaTask {
|
|
|
),
|
|
|
})
|
|
|
await this.initAi.tx.broadcastAsync(signed)
|
|
|
- return `done`
|
|
|
+ return `burn`
|
|
|
}
|
|
|
|
|
|
// ["FrbuJROsvX9uKlyA1LMdS9QsSwfe5LOLvx2xOzAwk+E=","AA==","AQ==","QEIPAAAAAAA=","5SAPAAAAAAA=","rzMbqDJ/uzWxxP7/AAAAAA=="]
|
|
|
// ["FrbuJROsvX9uKlyA1LMdS9QsSwfe5LOLvx2xOzAwk+E=","AA==","AQ==","QEIPAAAAAAA=","pCAPAAAAAAA=","rzMbqDJ/uzWxxP7/AAAAAA=="]
|
|
|
// ["FrbuJROsvX9uKlyA1LMdS9QsSwfe5LOLvx2xOzAwk+E=","AA==","AQ==","QEIPAAAAAAA=","oyAPAAAAAAA=","rzMbqDJ/uzWxxP7/AAAAAA=="]
|
|
|
}
|
|
|
+
|
|
|
+ async questTask2() {
|
|
|
+ const l2InitBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2InitBalance = await this.tucana.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
+ )
|
|
|
+
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2InitBalance
|
|
|
+ })
|
|
|
+ if (Number(l2InitBalance.amount) === 0) {
|
|
|
+ await this.newBridge2Tucana()
|
|
|
+ }
|
|
|
+ const amount = Math.floor(
|
|
|
+ Number(l2InitBalance.amount) / Math.floor(Math.random() * 10 + 5),
|
|
|
+ )
|
|
|
+ const msg = new MsgInitiateTokenWithdrawal(
|
|
|
+ this.key.accAddress,
|
|
|
+ this.key.accAddress,
|
|
|
+ new Coin(
|
|
|
+ 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
+ amount,
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ const tucWallet = new Wallet(this.tucana, this.wallet.key)
|
|
|
+ const simulate = await this.tucana.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await tucWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: ['utuc'],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await tucWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([new Coin('utuc', simulate.amount.toArray()[0].amount)]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ await this.tucana.tx.broadcastAsync(signed)
|
|
|
+ return `done`
|
|
|
+ } catch (e) {
|
|
|
+ return `error`
|
|
|
+ }
|
|
|
+ }
|
|
|
+ async questTask3() {
|
|
|
+ const l2InitBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2InitBalance = await this.tucana.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
+ )
|
|
|
+
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2InitBalance
|
|
|
+ })
|
|
|
+ if (Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error(`need bridge first`)
|
|
|
+ }
|
|
|
+ const amount = Math.floor(
|
|
|
+ Number(l2InitBalance.amount) / Math.floor(Math.random() * 10 + 5),
|
|
|
+ )
|
|
|
+ const msg = new MsgTransfer(
|
|
|
+ 'transfer',
|
|
|
+ 'channel-0',
|
|
|
+ new Coin(
|
|
|
+ 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
+ amount,
|
|
|
+ ),
|
|
|
+ this.key.accAddress,
|
|
|
+ this.key.accAddress,
|
|
|
+ null, // timeout height
|
|
|
+ ((new Date().valueOf() + 3500000) * 1000000).toString(),
|
|
|
+ )
|
|
|
+ const tucWallet = new Wallet(this.tucana, this.wallet.key)
|
|
|
+ const simulate = await this.tucana.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await tucWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: ['utuc'],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await tucWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([new Coin('utuc', simulate.amount.toArray()[0].amount)]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ await this.tucana.tx.broadcastAsync(signed)
|
|
|
+ return `done`
|
|
|
+ } catch (e) {
|
|
|
+ return `error`
|
|
|
+ }
|
|
|
+ }
|
|
|
+ async questTask4() {
|
|
|
+ const uinitBalance = await this.milkyway.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'ibc/37A3FB4FED4CA04ED6D9E5DA36C6D27248645F0E22F585576A1488B8A89C5A50',
|
|
|
+ )
|
|
|
+ console.log(uinitBalance)
|
|
|
+ if (Number(uinitBalance.amount) < 10) {
|
|
|
+ const msg = new MsgTransfer(
|
|
|
+ 'transfer',
|
|
|
+ 'channel-310',
|
|
|
+ new Coin('uinit', '1000000'),
|
|
|
+ this.key.accAddress,
|
|
|
+ this.key.accAddress,
|
|
|
+ null, // timeout height
|
|
|
+ ((new Date().valueOf() + 3500000) * 1000000).toString(),
|
|
|
+ )
|
|
|
+ await this.broadcast(msg)
|
|
|
+ }
|
|
|
+
|
|
|
+ const wallet = new Wallet(this.milkyway, this.key)
|
|
|
+ const message = {
|
|
|
+ account_number: await wallet.accountNumber(),
|
|
|
+ chain_id: 'glados-1',
|
|
|
+ fee: {
|
|
|
+ gas: '224922',
|
|
|
+ amount: [
|
|
|
+ {
|
|
|
+ amount: '67477',
|
|
|
+ denom: 'umilk',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ memo: '',
|
|
|
+ msgs: [
|
|
|
+ {
|
|
|
+ type: 'stride/x/stakeibc/MsgLiquidStake',
|
|
|
+ value: {
|
|
|
+ amount: Math.floor(Number(uinitBalance.amount) / 2).toString(),
|
|
|
+ creator: this.key.accAddress,
|
|
|
+ host_denom: 'uinit',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ sequence: (await wallet.sequence()).toString(),
|
|
|
+ }
|
|
|
+
|
|
|
+ // const broadcast = await this.milkyway.tx.broadcast(message)
|
|
|
+ }
|
|
|
}
|