*%$~#╲█╲▪^◇╱%╱@~▫#◇■%~░■■▒#╳■$▪▒▓◆!?╲░□░█@*▒○░^▓╳^@*▪▪◇*!~█▒*╲█%
Transaction ID
Execution Fee
0.00646 FLOWExecution Error
assertion failed: tx failed. status: failed [306]: execution reverted
28
29 let args: {String: AnyStruct} = {
30 "callback": callback,
31 "feeRateBps": SwapFactory.getFlashloanRateBps()
32 };
33 getAccount(0xc353b9d685ec427d)
34 .capabilities.borrow<&{SwapInterfaces.PairPublic}>(SwapConfig.PairPublicPath)!
35 .flashloan(executor: LendingExecutor.borrowSwapExecutor()!, requestedTokenVaultType: outVault.getType(), requestedAmount: amount, params: args)
36 }
37}Raw Error
[Error Code: 1101] error caused by: 1 error occurred: * transaction execute failed: [Error Code: 1101] cadence runtime error: Execution failed: --> 67fe26268ca5547e8edcc6033dca37b6137206ebf67f694394717fd10391d901:33:8 | 33 | getAccount(0xc353b9d685ec427d) 34 | .capabilities.borrow<&{SwapInterfaces.PairPublic}>(SwapConfig.PairPublicPath)! 35 | .flashloan(executor: LendingExecutor.borrowSwapExecutor()!, requestedTokenVaultType: outVault.getType(), requestedAmount: amount, params: args) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --> c353b9d685ec427d.SwapPair:620:12 --> c353b9d685ec427d.SwapPair:481:23 --> efb80fd452832e05.LendingExecutor:19:12 --> 67fe26268ca5547e8edcc6033dca37b6137206ebf67f694394717fd10391d901:21:123 | 21 | txData[1] = FlowEVMUtil.replaceInto(into: txData[1], replace: FlowEVMUtil.convertUInt256ToBytes(c), start: 132);let r1 = FlowEVMUtil.approveAndSwap(coa, tokenAddress: EVM.addressFromString("0xF1815bd50389c46847f0Bda824eC8da914045D14"), amount: c, contractAddress: EVM.addressFromString("0xeEDC6Ff75e1b10B903D9013c358e446a73d35341"), txdata: txData[1], gasLimit: gasLimit[1]);let d = FlowEVMUtil.convertBytesToUInt256(r1.slice(from: r1.length - 32, upTo: r1.length)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --> ccacabad8e80b596.FlowEVMUtil:13:15 error: assertion failed: tx failed. status: failed [306]: execution reverted --> ccacabad8e80b596.FlowEVMUtil:19:8 Was this error unhelpful? Consider suggesting an improvement here: https://github.com/onflow/cadence/issues.
Transaction Summary
FT TransferCalled EVM, EVMVMBridgedToken_99af3eea856556646c98c8b9b2548fe815240750, FlowEVMBridgeConfig +8 more
Script Arguments
[
[
"4",
"228",
"90",
"175",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"211",
"191",
"83",
"218",
"193",
"6",
"160",
"41",
"11",
"4",
"131",
"236",
"188",
"137",
"212",
"15",
"204",
"150",
"31",
"62",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"241",
"129",
"91",
"213",
"3",
"137",
"196",
"104",
"71",
"240",
"189",
"168",
"36",
"236",
"141",
"169",
"20",
"4",
"93",
"20",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"11",
"184",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"2",
"221",
"220",
"6",
"70",
"16",
"90",
"63",
"212",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"22",
"71",
"55",
"81",
"76",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
[
"4",
"228",
"90",
"175",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"241",
"129",
"91",
"213",
"3",
"137",
"196",
"104",
"71",
"240",
"189",
"168",
"36",
"236",
"141",
"169",
"20",
"4",
"93",
"20",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"153",
"175",
"62",
"234",
"133",
"101",
"86",
"100",
"108",
"152",
"200",
"185",
"178",
"84",
"143",
"232",
"21",
"36",
"7",
"80",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"100",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"2",
"221",
"220",
"6",
"70",
"16",
"90",
"63",
"212",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"1",
"64",
"193",
"175",
"32",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
]
][ "15000000", "15000000" ]
[ "956840881400000000000", "0" ]
Cadence Script
1import EVM from 0xe467b9dd11fa00df
2import EVMVMBridgedToken_99af3eea856556646c98c8b9b2548fe815240750 from 0x1e4aa0b87d10b141
3import FlowEVMBridgeConfig from 0x1e4aa0b87d10b141
4import FlowEVMBridgeUtils from 0x1e4aa0b87d10b141
5import FlowEVMUtil from 0xccacabad8e80b596
6import FlowToken from 0x1654653399040a61
7import FungibleToken from 0xf233dcee88fe0abe
8import LendingExecutor from 0xefb80fd452832e05
9import SwapConfig from 0xb78ef7afa52ff906
10import SwapFactory from 0xb063c16cac85dbd1
11import SwapInterfaces from 0xb78ef7afa52ff906
12
13transaction(amount: UFix64, txData: [[UInt8]], gasLimit: [UInt64], value: [UInt]) {
14 prepare(signer: auth(BorrowValue, CopyValue) &Account) {
15 let coa = signer.storage.borrow<auth(EVM.Bridge, EVM.Withdraw, EVM.Call) &EVM.CadenceOwnedAccount>(from: /storage/evm)!
16 let outVault = signer.storage.borrow<auth(FungibleToken.Withdraw) &FlowToken.Vault>(from: /storage/flowTokenVault)!
17
18 let callback = fun (a: @{FungibleToken.Vault}, repayAmount: UFix64): @{FungibleToken.Vault} {
19 let b = FlowEVMBridgeUtils.convertCadenceAmountToERC20Amount(a.balance, erc20Address: FlowEVMBridgeConfig.getEVMAddressAssociated(with: Type<@FlowToken.Vault>())!);coa.deposit(from: <-(a as! @FlowToken.Vault))
20 let r0 = FlowEVMUtil.runCall(coa, contractAddress: EVM.addressFromString("0xeEDC6Ff75e1b10B903D9013c358e446a73d35341"), txdata: txData[0], gasLimit: gasLimit[0], value: EVM.Balance(attoflow: UInt(b)));let c = FlowEVMUtil.convertBytesToUInt256(r0.slice(from: r0.length - 32, upTo: r0.length))
21 txData[1] = FlowEVMUtil.replaceInto(into: txData[1], replace: FlowEVMUtil.convertUInt256ToBytes(c), start: 132);let r1 = FlowEVMUtil.approveAndSwap(coa, tokenAddress: EVM.addressFromString("0xF1815bd50389c46847f0Bda824eC8da914045D14"), amount: c, contractAddress: EVM.addressFromString("0xeEDC6Ff75e1b10B903D9013c358e446a73d35341"), txdata: txData[1], gasLimit: gasLimit[1]);let d = FlowEVMUtil.convertBytesToUInt256(r1.slice(from: r1.length - 32, upTo: r1.length))
22 let e <- FlowEVMUtil.bridgeTokenToCadence(coa, capCopy: signer.storage.copy<Capability<auth(FungibleToken.Withdraw) &{FungibleToken.Provider}>>(from: FlowEVMBridgeConfig.providerCapabilityStoragePath)!, vaultType: Type<@EVMVMBridgedToken_99af3eea856556646c98c8b9b2548fe815240750.Vault>(), amount: d)
23 let f <- getAccount(0xe468e4c5081b5501).capabilities.borrow<&{SwapInterfaces.PairPublic}>(SwapConfig.PairPublicPath)!.swap(vaultIn: <- e, exactAmountOut: nil);
24 assert(f.balance > repayAmount, message: f.balance.toString().concat(" <= ").concat(repayAmount.toString()))
25 outVault.deposit(from: <- f.withdraw(amount: f.balance - repayAmount))
26 return <- f
27 }
28
29 let args: {String: AnyStruct} = {
30 "callback": callback,
31 "feeRateBps": SwapFactory.getFlashloanRateBps()
32 };
33 getAccount(0xc353b9d685ec427d)
34 .capabilities.borrow<&{SwapInterfaces.PairPublic}>(SwapConfig.PairPublicPath)!
35 .flashloan(executor: LendingExecutor.borrowSwapExecutor()!, requestedTokenVaultType: outVault.getType(), requestedAmount: amount, params: args)
36 }
37}