|
@@ -9,6 +9,7 @@ import {
|
|
|
MsgTransfer,
|
|
|
Wallet,
|
|
|
} from '@initia/initia.js'
|
|
|
+import polly from 'polly-js'
|
|
|
|
|
|
export class InitiaClient extends InitiaTask {
|
|
|
constructor(mnemonic: string, useProxy: boolean = false) {
|
|
@@ -60,18 +61,89 @@ export class InitiaClient extends InitiaTask {
|
|
|
}
|
|
|
|
|
|
async week5Task1() {
|
|
|
- const l2InitBalance = await this.blackWings.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'l2/aee375e9d0b181f0d9d3a49f9a3d1d6b05d62b0ac81f8c92b9282afa4213d884',
|
|
|
- )
|
|
|
- const l2UsdcBalance = await this.blackWings.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5',
|
|
|
- )
|
|
|
+ const l2UsdcBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2UsdcBalance = await this.blackWings.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5',
|
|
|
+ )
|
|
|
+ if (info.count < 3 && Number(l2UsdcBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2UsdcBalance
|
|
|
+ })
|
|
|
+ const l2InitBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2InitBalance = await this.blackWings.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'l2/aee375e9d0b181f0d9d3a49f9a3d1d6b05d62b0ac81f8c92b9282afa4213d884',
|
|
|
+ )
|
|
|
+ console.log(l2InitBalance.amount)
|
|
|
+
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2InitBalance
|
|
|
+ })
|
|
|
+
|
|
|
+ const blackWingsWallet = new Wallet(this.blackWings, this.wallet.key)
|
|
|
|
|
|
if (Number(l2InitBalance.amount) < 1000000) {
|
|
|
await this.newBridge2BlackWings()
|
|
|
return `l2Init`
|
|
|
+ } else if (Number(l2InitBalance.amount) > 1500000) {
|
|
|
+ const amount = Number(l2InitBalance.amount) - 1500000
|
|
|
+ const msg = new MsgTransfer(
|
|
|
+ 'transfer',
|
|
|
+ 'channel-0',
|
|
|
+ new Coin(
|
|
|
+ 'l2/aee375e9d0b181f0d9d3a49f9a3d1d6b05d62b0ac81f8c92b9282afa4213d884',
|
|
|
+ amount,
|
|
|
+ ),
|
|
|
+ this.key.accAddress,
|
|
|
+ '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a::swap_transfer::minit_swap_to',
|
|
|
+ null, // timeout height
|
|
|
+ ((new Date().valueOf() + 3500000) * 1000000).toString(),
|
|
|
+ `{"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":["MaT2Csca1vMydHLPGphV211CBZwKsp4Wv7byEuusLRw=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","${bcs
|
|
|
+ .u64()
|
|
|
+ .serialize(amount)
|
|
|
+ .toBase64()}","AVMWDwAAAAAA","${bcs
|
|
|
+ .address()
|
|
|
+ .serialize(this.wallet.key.accAddress)
|
|
|
+ .toBase64()}"]}}}`,
|
|
|
+ )
|
|
|
+ // {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":[ "MaT2Csca1vMydHLPGphV211CBZwKsp4Wv7byEuusLRw=", "jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=", "1rRRAAAAAAA=", "AVMWDwAAAAAA", "AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+ // {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":["MaT2Csca1vMydHLPGphV211CBZwKsp4Wv7byEuusLRw=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","ATgWDwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+
|
|
|
+ const simulate = await this.blackWings.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await blackWingsWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: [
|
|
|
+ 'l2/aee375e9d0b181f0d9d3a49f9a3d1d6b05d62b0ac81f8c92b9282afa4213d884',
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await blackWingsWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([
|
|
|
+ new Coin(
|
|
|
+ 'l2/aee375e9d0b181f0d9d3a49f9a3d1d6b05d62b0ac81f8c92b9282afa4213d884',
|
|
|
+ simulate.amount.toArray()[0].amount,
|
|
|
+ ),
|
|
|
+ ]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ await this.blackWings.tx.broadcastAsync(signed)
|
|
|
+ return `transferBack`
|
|
|
+ } catch (e) {
|
|
|
+ return `error`
|
|
|
+ }
|
|
|
}
|
|
|
if (Number(l2UsdcBalance.amount) < 1000000) {
|
|
|
const usdcL1 = await this.lcd.bank.balanceByDenom(
|
|
@@ -101,7 +173,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
.serialize(this.wallet.key.accAddress)
|
|
|
.toBase64()}","KYJNlS4DVJD651Z97qXxW1BKaPpzYQBjwWCrH6h91gk=","oIYBAAAAAAA=","CHRyYW5zZmVy","CWNoYW5uZWwtMA==","AAAAAAAAAAA=","AAAAAAAAAAA=","QB1hTqPC2Rc=","AA=="]}}}`,
|
|
|
)
|
|
|
- const blackWingsWallet = new Wallet(this.blackWings, this.wallet.key)
|
|
|
+
|
|
|
const simulate = await this.blackWings.tx.estimateFee(
|
|
|
[{ sequenceNumber: await blackWingsWallet.sequence() }],
|
|
|
{
|
|
@@ -137,15 +209,81 @@ export class InitiaClient extends InitiaTask {
|
|
|
// const res = await this.newBridge2BlackWings()
|
|
|
}
|
|
|
async week5Task2() {
|
|
|
- const l2InitBalance = await this.initAi.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'l2/aadf1a9da6a38b7e7e11839364ee42002260eff1657f403b9ce608337bcb986b',
|
|
|
- )
|
|
|
- // console.log(l2InitBalance.amount)
|
|
|
+ const l2InitBalance = await polly()
|
|
|
+ .waitAndRetry(5)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2InitBalance = await this.initAi.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'l2/aadf1a9da6a38b7e7e11839364ee42002260eff1657f403b9ce608337bcb986b',
|
|
|
+ )
|
|
|
+ console.log(l2InitBalance.amount)
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ } else {
|
|
|
+ return l2InitBalance
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ const aiWallet = new Wallet(this.initAi, this.wallet.key)
|
|
|
+
|
|
|
if (Number(l2InitBalance.amount) < 1500000) {
|
|
|
await this.newBridge2Ai()
|
|
|
return `l2Init`
|
|
|
+ } else if (Number(l2InitBalance.amount) > 1500000) {
|
|
|
+ const amount = Number(l2InitBalance.amount) - 1500000
|
|
|
+ const msg = new MsgTransfer(
|
|
|
+ 'transfer',
|
|
|
+ 'channel-0',
|
|
|
+ new Coin(
|
|
|
+ 'l2/aadf1a9da6a38b7e7e11839364ee42002260eff1657f403b9ce608337bcb986b',
|
|
|
+ amount,
|
|
|
+ ),
|
|
|
+ this.key.accAddress,
|
|
|
+ '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a::swap_transfer::minit_swap_to',
|
|
|
+ null, // timeout height
|
|
|
+ ((new Date().valueOf() + 100000) * 1000000).toString(),
|
|
|
+ `{"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","${bcs
|
|
|
+ .u64()
|
|
|
+ .serialize(amount)
|
|
|
+ .toBase64()}","AVMWDwAAAAAA","${bcs
|
|
|
+ .address()
|
|
|
+ .serialize(this.wallet.key.accAddress)
|
|
|
+ .toBase64()}"]}}}`,
|
|
|
+ )
|
|
|
+ //["MaT2Csca1vMydHLPGphV211CBZwKsp4Wv7byEuusLRw=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AVMWDwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+
|
|
|
+ //["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","gJaYAAAAAAA=","ATGVlwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+ const simulate = await this.initAi.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await aiWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: [
|
|
|
+ 'l2/aadf1a9da6a38b7e7e11839364ee42002260eff1657f403b9ce608337bcb986b',
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await aiWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([
|
|
|
+ new Coin(
|
|
|
+ 'l2/aadf1a9da6a38b7e7e11839364ee42002260eff1657f403b9ce608337bcb986b',
|
|
|
+ simulate.amount.toArray()[0].amount,
|
|
|
+ ),
|
|
|
+ ]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ console.log(await this.initAi.tx.broadcast(signed))
|
|
|
+ return `transferBack`
|
|
|
+ } catch (e) {
|
|
|
+ return `error`
|
|
|
+ }
|
|
|
}
|
|
|
+ // {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","sdSvAAAAAAA=","AVMWDwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+ // {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","sdSvAAAAAAA=","ARemrgAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+
|
|
|
const msg = new MsgTransfer(
|
|
|
'transfer',
|
|
|
'channel-0',
|
|
@@ -167,7 +305,6 @@ export class InitiaClient extends InitiaTask {
|
|
|
// {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_deposit","type_args":[],"args":["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","4MgQAAAAAAA=","AZugEAAAAAAA","DgAAAAAAAAA=","AAAAAAAAAAAAAAAAwfIGiv3Te+HINdWz7IkKXwKsGQ4=","AA=="]}}}
|
|
|
// {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_deposit","type_args":[],"args":["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","oLsNAAAAAAA=","AceZDQAAAAAA","DgAAAAAAAAA=","AAAAAAAAAAAAAAAAwfIGiv3Te+HINdWz7IkKXwKsGQ4=","AA=="]}}}
|
|
|
|
|
|
- const aiWallet = new Wallet(this.initAi, this.wallet.key)
|
|
|
const simulate = await this.initAi.tx.estimateFee(
|
|
|
[{ sequenceNumber: await aiWallet.sequence() }],
|
|
|
{
|
|
@@ -200,14 +337,79 @@ export class InitiaClient extends InitiaTask {
|
|
|
// const res = await this.newBridge2BlackWings()
|
|
|
}
|
|
|
async week5Task5() {
|
|
|
- const l2InitBalance = await this.civi.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'l2/afaa3f4e1717c75712f8e8073e41f051a4e516cd25daa82d948c4729388edefd',
|
|
|
- )
|
|
|
- console.log(l2InitBalance.amount)
|
|
|
+ const l2InitBalance = await polly()
|
|
|
+ .waitAndRetry(5)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2InitBalance = await this.civi.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'l2/afaa3f4e1717c75712f8e8073e41f051a4e516cd25daa82d948c4729388edefd',
|
|
|
+ )
|
|
|
+ console.log(l2InitBalance.amount)
|
|
|
+
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2InitBalance
|
|
|
+ })
|
|
|
+
|
|
|
+ const civiWallet = new Wallet(this.civi, this.wallet.key)
|
|
|
+
|
|
|
if (Number(l2InitBalance.amount) < 1500000) {
|
|
|
await this.newBridge2Civi()
|
|
|
return `l2Init`
|
|
|
+ } else if (Number(l2InitBalance.amount) > 2000000) {
|
|
|
+ const amount = Number(l2InitBalance.amount) - 2000000
|
|
|
+ const msg = new MsgTransfer(
|
|
|
+ 'transfer',
|
|
|
+ 'channel-0',
|
|
|
+ new Coin(
|
|
|
+ 'l2/afaa3f4e1717c75712f8e8073e41f051a4e516cd25daa82d948c4729388edefd',
|
|
|
+ amount,
|
|
|
+ ),
|
|
|
+ this.key.accAddress,
|
|
|
+ '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a::swap_transfer::minit_swap_to',
|
|
|
+ null, // timeout height
|
|
|
+ ((new Date().valueOf() + 100000) * 1000000).toString(),
|
|
|
+ `{"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":[
|
|
|
+ "JjnYP0/zx59/+jgNkDxgaXtMMsnK+o/d4vH3JyELlSQ=",
|
|
|
+ "jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=",
|
|
|
+ "${bcs.u64().serialize(amount).toBase64()}",
|
|
|
+ "AVMWDwAAAAAA",
|
|
|
+ "${bcs
|
|
|
+ .address()
|
|
|
+ .serialize(this.wallet.key.accAddress)
|
|
|
+ .toBase64()}"]}}}`,
|
|
|
+ )
|
|
|
+ // {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_deposit","type_args":[],"args":["JjnYP0/zx59/+jgNkDxgaXtMMsnK+o/d4vH3JyELlSQ=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEtMAAAAAAA=","Aa+XSwAAAAAA","BgAAAAAAAAA=","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg=","AA=="]}}}
|
|
|
+ //["JjnYP0/zx59/+jgNkDxgaXtMMsnK+o/d4vH3JyELlSQ=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AewdDwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+
|
|
|
+ const simulate = await this.civi.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await civiWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: [
|
|
|
+ 'l2/afaa3f4e1717c75712f8e8073e41f051a4e516cd25daa82d948c4729388edefd',
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await civiWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([
|
|
|
+ new Coin(
|
|
|
+ 'l2/afaa3f4e1717c75712f8e8073e41f051a4e516cd25daa82d948c4729388edefd',
|
|
|
+ simulate.amount.toArray()[0].amount,
|
|
|
+ ),
|
|
|
+ ]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ await this.civi.tx.broadcastAsync(signed)
|
|
|
+ return `transferBack`
|
|
|
+ } catch (e) {
|
|
|
+ return `error`
|
|
|
+ }
|
|
|
}
|
|
|
const msg = new MsgTransfer(
|
|
|
'transfer',
|
|
@@ -228,9 +430,8 @@ export class InitiaClient extends InitiaTask {
|
|
|
// {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_deposit","type_args":[],"args":["JjnYP0/zx59/+jgNkDxgaXtMMsnK+o/d4vH3JyELlSQ=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QA0DAAAAAAA=","AUr8AgAAAAAA","BgAAAAAAAAA=","AAAAAAAAAAAAAAAAwfIGiv3Te+HINdWz7IkKXwKsGQ4=","AA=="]}}}
|
|
|
// {"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_deposit","type_args":[],"args":["JjnYP0/zx59/+jgNkDxgaXtMMsnK+o/d4vH3JyELlSQ=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AWrtDgAAAAAA","BgAAAAAAAAA=","AAAAAAAAAAAAAAAAwfIGiv3Te+HINdWz7IkKXwKsGQ4=","AA=="]}}}
|
|
|
|
|
|
- const aiWallet = new Wallet(this.civi, this.wallet.key)
|
|
|
const simulate = await this.civi.tx.estimateFee(
|
|
|
- [{ sequenceNumber: await aiWallet.sequence() }],
|
|
|
+ [{ sequenceNumber: await civiWallet.sequence() }],
|
|
|
{
|
|
|
msgs: [msg],
|
|
|
feeDenoms: [
|
|
@@ -238,7 +439,7 @@ export class InitiaClient extends InitiaTask {
|
|
|
],
|
|
|
},
|
|
|
)
|
|
|
- const signed = await aiWallet.createAndSignTx({
|
|
|
+ const signed = await civiWallet.createAndSignTx({
|
|
|
msgs: [msg],
|
|
|
fee: new Fee(
|
|
|
simulate.gas_limit,
|
|
@@ -262,18 +463,93 @@ export class InitiaClient extends InitiaTask {
|
|
|
// const res = await this.newBridge2BlackWings()
|
|
|
}
|
|
|
async week5Task3() {
|
|
|
- const l2InitBalance = await this.noon.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'l2/ffea49d63cbadcfd749b4f635eca198b2f3b44cb1f6b580f5d201d58f3bf7aea',
|
|
|
- )
|
|
|
+ const l2UsdcBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2UsdcBalance = await this.noon.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'ibc/C3E53D20BC7A4CC993B17C7971F8ECD06A433C10B6A96F4C4C3714F0624C56DA',
|
|
|
+ )
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2UsdcBalance
|
|
|
+ })
|
|
|
+
|
|
|
+ const l2InitBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2InitBalance = await this.noon.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'l2/ffea49d63cbadcfd749b4f635eca198b2f3b44cb1f6b580f5d201d58f3bf7aea',
|
|
|
+ )
|
|
|
+ console.log(l2InitBalance.amount)
|
|
|
+
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2InitBalance
|
|
|
+ })
|
|
|
+ const noonWallet = new Wallet(this.noon, this.wallet.key)
|
|
|
+
|
|
|
if (Number(l2InitBalance.amount) < 1000000) {
|
|
|
await this.newBridge2Noon()
|
|
|
return `l2Init`
|
|
|
+ } else if (Number(l2InitBalance.amount) > 1500000) {
|
|
|
+ const amount = Number(l2InitBalance.amount) - 1500000
|
|
|
+ const msg = new MsgTransfer(
|
|
|
+ 'transfer',
|
|
|
+ 'channel-0',
|
|
|
+ new Coin(
|
|
|
+ 'l2/aadf1a9da6a38b7e7e11839364ee42002260eff1657f403b9ce608337bcb986b',
|
|
|
+ amount,
|
|
|
+ ),
|
|
|
+ this.key.accAddress,
|
|
|
+ '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a::swap_transfer::minit_swap_to',
|
|
|
+ null, // timeout height
|
|
|
+ ((new Date().valueOf() + 100000) * 1000000).toString(),
|
|
|
+ `{"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":[
|
|
|
+ "PN/ySmqbELsVrt7cVYQkA3UfLHCNKFoEUf2Paq27w5s=",
|
|
|
+ "jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=",
|
|
|
+ "${bcs.u64().serialize(amount).toBase64()}",
|
|
|
+ "AXoWDwAAAAAA",
|
|
|
+ "${bcs
|
|
|
+ .address()
|
|
|
+ .serialize(this.wallet.key.accAddress)
|
|
|
+ .toBase64()}"]}}}`,
|
|
|
+ )
|
|
|
+ //:["PN/ySmqbELsVrt7cVYQkA3UfLHCNKFoEUf2Paq27w5s=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AaATDwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+
|
|
|
+ //["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","gJaYAAAAAAA=","ATGVlwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+ const simulate = await this.noon.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await noonWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: [
|
|
|
+ 'l2/aadf1a9da6a38b7e7e11839364ee42002260eff1657f403b9ce608337bcb986b',
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await noonWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([
|
|
|
+ new Coin(
|
|
|
+ 'l2/aadf1a9da6a38b7e7e11839364ee42002260eff1657f403b9ce608337bcb986b',
|
|
|
+ simulate.amount.toArray()[0].amount,
|
|
|
+ ),
|
|
|
+ ]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ await this.noon.tx.broadcastAsync(signed)
|
|
|
+ return `transferBack`
|
|
|
+ } catch (e) {
|
|
|
+ return `error`
|
|
|
+ }
|
|
|
}
|
|
|
- const l2UsdcBalance = await this.noon.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'ibc/C3E53D20BC7A4CC993B17C7971F8ECD06A433C10B6A96F4C4C3714F0624C56DA',
|
|
|
- )
|
|
|
+
|
|
|
if (Number(l2UsdcBalance.amount) < 100000) {
|
|
|
const usdcL1 = await this.lcd.bank.balanceByDenom(
|
|
|
this.key.accAddress,
|
|
@@ -321,7 +597,6 @@ export class InitiaClient extends InitiaTask {
|
|
|
// "wLIeSpLN2Rc=",
|
|
|
// "AA=="]}}}
|
|
|
|
|
|
- const noonWallet = new Wallet(this.noon, this.wallet.key)
|
|
|
const simulate = await this.noon.tx.estimateFee(
|
|
|
[{ sequenceNumber: await noonWallet.sequence() }],
|
|
|
{
|
|
@@ -359,20 +634,92 @@ export class InitiaClient extends InitiaTask {
|
|
|
// const balance = await this.miniMove.bank.balance(this.key.accAddress)
|
|
|
//
|
|
|
// console.log(balance)
|
|
|
+ const miniWallet = new Wallet(this.miniMove, this.wallet.key)
|
|
|
+ const l2UsdcBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2UsdcBalance = await this.miniMove.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'ibc/0E98D4D1D907597448FD3A7C33DDAE10A90FA86FC8A9F5A0B175393783F249CD',
|
|
|
+ )
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2UsdcBalance
|
|
|
+ })
|
|
|
+
|
|
|
+ const l2InitBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2InitBalance = await this.miniMove.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'l2/771d639f30fbe45e3fbca954ffbe2fcc26f915f5513c67a4a2d0bc1d635bdefd',
|
|
|
+ )
|
|
|
+ console.log(l2InitBalance.amount)
|
|
|
+
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2InitBalance
|
|
|
+ })
|
|
|
|
|
|
- const l2InitBalance = await this.miniMove.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'l2/771d639f30fbe45e3fbca954ffbe2fcc26f915f5513c67a4a2d0bc1d635bdefd',
|
|
|
- )
|
|
|
if (Number(l2InitBalance.amount) < 1000000) {
|
|
|
await this.newBridge2Minimove()
|
|
|
return `l2Init`
|
|
|
- }
|
|
|
+ } else if (Number(l2InitBalance.amount) > 1500000) {
|
|
|
+ const amount = Number(l2InitBalance.amount) - 1500000
|
|
|
+ const msg = new MsgTransfer(
|
|
|
+ 'transfer',
|
|
|
+ 'channel-0',
|
|
|
+ new Coin(
|
|
|
+ 'l2/771d639f30fbe45e3fbca954ffbe2fcc26f915f5513c67a4a2d0bc1d635bdefd',
|
|
|
+ amount,
|
|
|
+ ),
|
|
|
+ this.key.accAddress,
|
|
|
+ '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a::swap_transfer::minit_swap_to',
|
|
|
+ null, // timeout height
|
|
|
+ ((new Date().valueOf() + 100000) * 1000000).toString(),
|
|
|
+ `{"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":[
|
|
|
+ "lyGI4ysszsVX7tmLvqnUKhptwnDakAmSY2Xet8Sdt90=",
|
|
|
+ "jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=",
|
|
|
+ "${bcs.u64().serialize(amount).toBase64()}",
|
|
|
+ "AXoWDwAAAAAA",
|
|
|
+ "${bcs
|
|
|
+ .address()
|
|
|
+ .serialize(this.wallet.key.accAddress)
|
|
|
+ .toBase64()}"]}}}`,
|
|
|
+ )
|
|
|
+ //["lyGI4ysszsVX7tmLvqnUKhptwnDakAmSY2Xet8Sdt90=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AZEkDwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
|
|
|
- const l2UsdcBalance = await this.miniMove.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'ibc/0E98D4D1D907597448FD3A7C33DDAE10A90FA86FC8A9F5A0B175393783F249CD',
|
|
|
- )
|
|
|
+ //["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","gJaYAAAAAAA=","ATGVlwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+ const simulate = await this.miniMove.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await miniWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: [
|
|
|
+ 'l2/771d639f30fbe45e3fbca954ffbe2fcc26f915f5513c67a4a2d0bc1d635bdefd',
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await miniWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([
|
|
|
+ new Coin(
|
|
|
+ 'l2/771d639f30fbe45e3fbca954ffbe2fcc26f915f5513c67a4a2d0bc1d635bdefd',
|
|
|
+ simulate.amount.toArray()[0].amount,
|
|
|
+ ),
|
|
|
+ ]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ await this.miniMove.tx.broadcastAsync(signed)
|
|
|
+ return `transferBack`
|
|
|
+ } catch (e) {
|
|
|
+ return `error`
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (Number(l2UsdcBalance.amount) < 100) {
|
|
|
const usdcL1 = await this.lcd.bank.balanceByDenom(
|
|
@@ -413,7 +760,6 @@ export class InitiaClient extends InitiaTask {
|
|
|
// "gP4gbcvR2Rc=",
|
|
|
// "AA=="]}}}
|
|
|
|
|
|
- const miniWallet = new Wallet(this.miniMove, this.wallet.key)
|
|
|
const simulate = await this.miniMove.tx.estimateFee(
|
|
|
[{ sequenceNumber: await miniWallet.sequence() }],
|
|
|
{
|
|
@@ -448,18 +794,93 @@ export class InitiaClient extends InitiaTask {
|
|
|
// const res = await this.newBridge2BlackWings()
|
|
|
}
|
|
|
async week5Task6() {
|
|
|
- const l2InitBalance = await this.tucana.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
- )
|
|
|
- const l2UsdcBalance = await this.tucana.bank.balanceByDenom(
|
|
|
- this.key.accAddress,
|
|
|
- 'ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5',
|
|
|
- )
|
|
|
+ const l2UsdcBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2UsdcBalance = await this.tucana.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5',
|
|
|
+ )
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2UsdcBalance
|
|
|
+ })
|
|
|
+
|
|
|
+ const l2InitBalance = await polly()
|
|
|
+ .waitAndRetry(3)
|
|
|
+ .executeForPromise(async info => {
|
|
|
+ const l2InitBalance = await this.tucana.bank.balanceByDenom(
|
|
|
+ this.key.accAddress,
|
|
|
+ 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
+ )
|
|
|
+ console.log(l2InitBalance.amount)
|
|
|
+
|
|
|
+ if (info.count < 3 && Number(l2InitBalance.amount) === 0) {
|
|
|
+ throw new Error('retry')
|
|
|
+ }
|
|
|
+ return l2InitBalance
|
|
|
+ })
|
|
|
+ const tucanaWallet = new Wallet(this.tucana, this.wallet.key)
|
|
|
|
|
|
if (Number(l2InitBalance.amount) < 1000000) {
|
|
|
await this.newBridge2Tucana()
|
|
|
return `l2Init`
|
|
|
+ } else if (Number(l2InitBalance.amount) > 1500000) {
|
|
|
+ const amount = Number(l2InitBalance.amount) - 1500000
|
|
|
+ const msg = new MsgTransfer(
|
|
|
+ 'transfer',
|
|
|
+ 'channel-0',
|
|
|
+ new Coin(
|
|
|
+ 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
+ amount,
|
|
|
+ ),
|
|
|
+ this.key.accAddress,
|
|
|
+ '0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a::swap_transfer::minit_swap_to',
|
|
|
+ null, // timeout height
|
|
|
+ ((new Date().valueOf() + 100000) * 1000000).toString(),
|
|
|
+ `{"move":{"message":{"module_address":"0x42cd8467b1c86e59bf319e5664a09b6b5840bb3fac64f5ce690b5041c530565a","module_name":"swap_transfer","function_name":"minit_swap_to","type_args":[],"args":[
|
|
|
+ "le4pSgOtvbtbIFFlG38fbLx7XtjDh57R6L4+aa8OG/U=",
|
|
|
+ "jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=",
|
|
|
+ "${bcs.u64().serialize(amount).toBase64()}",
|
|
|
+ "AXoWDwAAAAAA",
|
|
|
+ "${bcs
|
|
|
+ .address()
|
|
|
+ .serialize(this.wallet.key.accAddress)
|
|
|
+ .toBase64()}"]}}}`,
|
|
|
+ )
|
|
|
+ //["le4pSgOtvbtbIFFlG38fbLx7XtjDh57R6L4+aa8OG/U=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AXMdDwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+
|
|
|
+ //:["PN/ySmqbELsVrt7cVYQkA3UfLHCNKFoEUf2Paq27w5s=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","QEIPAAAAAAA=","AaATDwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+
|
|
|
+ //["2+lWb+7Xy+Fy4RJ3INn8xwr0QQlVvARSifYjl59C9Bc=","jkczvavPfUr8PRTw3UbJv1L7D86eS5lsk54ZW4vIkdk=","gJaYAAAAAAA=","ATGVlwAAAAAA","AAAAAAAAAAAAAAAAfwBn58DHXySh7OLySf/MheBSfzg="]}}}
|
|
|
+ const simulate = await this.tucana.tx.estimateFee(
|
|
|
+ [{ sequenceNumber: await tucanaWallet.sequence() }],
|
|
|
+ {
|
|
|
+ msgs: [msg],
|
|
|
+ feeDenoms: [
|
|
|
+ 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ )
|
|
|
+ const signed = await tucanaWallet.createAndSignTx({
|
|
|
+ msgs: [msg],
|
|
|
+ fee: new Fee(
|
|
|
+ simulate.gas_limit,
|
|
|
+ new Coins([
|
|
|
+ new Coin(
|
|
|
+ 'l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972',
|
|
|
+ simulate.amount.toArray()[0].amount,
|
|
|
+ ),
|
|
|
+ ]),
|
|
|
+ ),
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ await this.tucana.tx.broadcastAsync(signed)
|
|
|
+ return `transferBack`
|
|
|
+ } catch (e) {
|
|
|
+ return `error`
|
|
|
+ }
|
|
|
}
|
|
|
if (Number(l2UsdcBalance.amount) < 1000000) {
|
|
|
const usdcL1 = await this.lcd.bank.balanceByDenom(
|
|
@@ -490,7 +911,6 @@ export class InitiaClient extends InitiaTask {
|
|
|
.toBase64()}","KYJNlS4DVJD651Z97qXxW1BKaPpzYQBjwWCrH6h91gk=","QEIPAAAAAAA=","CHRyYW5zZmVy","CmNoYW5uZWwtMzE=","AAAAAAAAAAA=","AAAAAAAAAAA=","gORWtgXT2Rc=","AA=="]}}}`,
|
|
|
)
|
|
|
//["K2luaXQxYzhlcWR6aGE2ZGE3cmpwNDZrZTdlemcydHVwMmN4Z3dwYXp1c2U=","KYJNlS4DVJD651Z97qXxW1BKaPpzYQBjwWCrH6h91gk=","QEIPAAAAAAA=","CHRyYW5zZmVy","CmNoYW5uZWwtMzE=","AAAAAAAAAAA=","AAAAAAAAAAA=","gORWtgXT2Rc=","AA=="]}}}
|
|
|
- const tucanaWallet = new Wallet(this.tucana, this.wallet.key)
|
|
|
const simulate = await this.tucana.tx.estimateFee(
|
|
|
[{ sequenceNumber: await tucanaWallet.sequence() }],
|
|
|
{
|