Transaction Hash:
Block:
14028619 at Jan-18-2022 09:14:44 AM +UTC
Transaction Fee:
0.01490778872808379 ETH
$38.01
Gas Used:
180,134 Gas / 82.759438685 Gwei
Emitted Events:
268 |
VraToken.Sent( operator=[Receiver] AggregationRouter, from=[Sender] 0x14e5479d4a38c5da737b08c7b8a5605cba5f6081, to=UniswapV2Pair, amount=10385320777783714000000, data=0x, operatorData=0x )
|
269 |
VraToken.Transfer( from=[Sender] 0x14e5479d4a38c5da737b08c7b8a5605cba5f6081, to=UniswapV2Pair, value=10385320777783714000000 )
|
270 |
VraToken.Approval( owner=[Sender] 0x14e5479d4a38c5da737b08c7b8a5605cba5f6081, spender=[Receiver] AggregationRouter, value=115792089237316195423570985008687907853269984665640564029072263230129415639935 )
|
271 |
WETH9.Transfer( src=UniswapV2Pair, dst=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77, wad=92069286316003689 )
|
272 |
UniswapV2Pair.Sync( reserve0=115390221994910840261, reserve1=12987235956134939900664954 )
|
273 |
UniswapV2Pair.Swap( sender=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77, amount0In=0, amount1In=10385320777783714000000, amount0Out=92069286316003689, amount1Out=0, to=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77 )
|
274 |
0xd12bcdfb9a39be79da3bdf02557efdcd5ca59e77.0xddac40937f35385a34f721af292e5a83fc5b840f722bff57c2fc71adba708c48( 0xddac40937f35385a34f721af292e5a83fc5b840f722bff57c2fc71adba708c48, 00000000000000000000000060031819a16266d896268cfea5d5be0b6c2b5d75, 000000000000000000000000000000000000000000000000014718873196d169, 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 )
|
275 |
WETH9.Withdrawal( src=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77, wad=92069286316003689 )
|
276 |
AggregationRouter.Swapped( sender=[Sender] 0x14e5479d4a38c5da737b08c7b8a5605cba5f6081, srcToken=VraToken, dstToken=0xEeeeeEee...eeeeeEEeE, dstReceiver=[Sender] 0x14e5479d4a38c5da737b08c7b8a5605cba5f6081, spentAmount=10385320777783714000000, returnAmount=92069286316003689 )
|
277 |
AggregationRouter.Exchange( pair=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77, amountOut=92069286316003689, output=WETH9 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x14E5479d...cBA5F6081 |
0.038533807935384617 Eth
Nonce: 13
|
0.115695305523304516 Eth
Nonce: 14
| 0.077161497587919899 | ||
0x60031819...b6c2B5D75 | |||||
0x7F101fE4...353f2B90c
Miner
| (Flexpool.io) | 6,870.728676321630002679 Eth | 6,870.728856455630002679 Eth | 0.000180134 | |
0xC02aaA39...83C756Cc2 | 7,722,218.950830039005704678 Eth | 7,722,218.858760752689700989 Eth | 0.092069286316003689 | ||
0xF411903c...a66507255 |
Execution Trace
AggregationRouter.swap( caller=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77, desc=[{name:srcToken, type:address, order:1, indexed:false, value:0xF411903cbC70a74d22900a5DE66A2dda66507255, valueString:0xF411903cbC70a74d22900a5DE66A2dda66507255}, {name:dstToken, type:address, order:2, indexed:false, value:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, valueString:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE}, {name:srcReceivers, type:address[], order:3, indexed:false, value:[], valueString:[]}, {name:srcAmounts, type:uint256[], order:4, indexed:false, value:[], valueString:[]}, {name:dstReceiver, type:address, order:5, indexed:false, value:0x14E5479d4A38C5DA737B08C7B8a5605cBA5F6081, valueString:0x14E5479d4A38C5DA737B08C7B8a5605cBA5F6081}, {name:amount, type:uint256, order:6, indexed:false, value:10385320777783714000000, valueString:10385320777783714000000}, {name:minReturnAmount, type:uint256, order:7, indexed:false, value:91611230165177800, valueString:91611230165177800}, {name:flags, type:uint256, order:8, indexed:false, value:32, valueString:32}, {name:permit, type:bytes, order:9, indexed:false, value:0x, valueString:0x}], data=0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000E000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000061E689920000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060031819A16266D896268CFEA5D5BE0B6C2B5D750000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000232FD472F9B49C02C800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000C000000000000000000000000060031819A16266D896268CFEA5D5BE0B6C2B5D75000000000000000000000000F411903CBC70A74D22900A5DE66A2DDA66507255000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000D12BCDFB9A39BE79DA3BDF02557EFDCD5CA59E77000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ) => ( returnAmount=92069286316003689 )
VraToken.transferFrom( holder=0x14E5479d4A38C5DA737B08C7B8a5605cBA5F6081, recipient=0x60031819a16266d896268cfEa5d5be0b6c2B5D75, amount=10385320777783714000000 ) => ( True )
-
ERC1820Registry.getInterfaceImplementer( _addr=0x14E5479d4A38C5DA737B08C7B8a5605cBA5F6081, _interfaceHash=29DDB589B1FB5FC7CF394961C1ADF5F8C6454761ADF795E67FE149F658ABE895 ) => ( 0x0000000000000000000000000000000000000000 )
-
ERC1820Registry.getInterfaceImplementer( _addr=0x60031819a16266d896268cfEa5d5be0b6c2B5D75, _interfaceHash=B281FC8C12954D22544DB45DE3159A39272895B169A852B314F9CC762E44C53B ) => ( 0x0000000000000000000000000000000000000000 )
-
0xd12bcdfb9a39be79da3bdf02557efdcd5ca59e77.8b674f5d( )
FireBirdFormula.getFactoryReserveAndWeights( factory=0x59a16EcE7143459801C3B3F24DC8a0CDfb956571, pair=0x60031819a16266d896268cfEa5d5be0b6c2B5D75, tokenA=0xF411903cbC70a74d22900a5DE66A2dda66507255, dexId=1 ) => ( tokenB=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, reserveA=12976850635357156186664954, reserveB=115482291281226843950, tokenWeightA=50, tokenWeightB=50, swapFee=30 )
-
UniswapV2Pair.STATICCALL( )
-
UniswapV2Pair.STATICCALL( )
-
UniswapV2Pair.STATICCALL( )
-
UniswapV2Pair.STATICCALL( )
-
-
VraToken.balanceOf( tokenHolder=0x60031819a16266d896268cfEa5d5be0b6c2B5D75 ) => ( 12987235956134939900664954 )
-
FireBirdFormula.getAmountOut( amountIn=10385320777783714000000, reserveIn=12976850635357156186664954, reserveOut=115482291281226843950, tokenWeightIn=50, tokenWeightOut=50, swapFee=30 ) => ( amountOut=92069286316003689 )
-
WETH9.balanceOf( 0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77 ) => ( 0 )
-
UniswapV2Pair.STATICCALL( )
UniswapV2Pair.swap( amount0Out=92069286316003689, amount1Out=0, to=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77, data=0x )
-
WETH9.transfer( dst=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77, wad=92069286316003689 ) => ( True )
-
WETH9.balanceOf( 0x60031819a16266d896268cfEa5d5be0b6c2B5D75 ) => ( 115390221994910840261 )
-
VraToken.balanceOf( tokenHolder=0x60031819a16266d896268cfEa5d5be0b6c2B5D75 ) => ( 12987235956134939900664954 )
-
-
WETH9.balanceOf( 0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77 ) => ( 92069286316003689 )
0xd12bcdfb9a39be79da3bdf02557efdcd5ca59e77.774b6b7e( )
-
WETH9.balanceOf( 0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77 ) => ( 92069286316003689 )
WETH9.withdraw( wad=92069286316003689 )
- ETH 0.092069286316003689
0xd12bcdfb9a39be79da3bdf02557efdcd5ca59e77.CALL( )
- ETH 0.092069286316003689
- ETH 0.092069286316003689
0x14e5479d4a38c5da737b08c7b8a5605cba5f6081.CALL( )
-
VraToken.balanceOf( tokenHolder=0xd12bcdFB9A39BE79DA3bDF02557EFdcD5CA59e77 ) => ( 0 )
-
swap[AggregationRouter (ln:393)]
swapSimpleMode[AggregationRouter (ln:404)]
_isETH[AggregationRouter (ln:512)]
_permit[AggregationRouter (ln:514)]
safeTransferFrom[AggregationRouter (ln:524)]
call[TransferHelper (ln:94)]
encodeWithSelector[TransferHelper (ln:94)]
decode[TransferHelper (ln:96)]
_getBalance[AggregationRouter (ln:536)]
_isETH[AggregationRouter (ln:635)]
balanceOf[AggregationRouter (ln:638)]
_swapMultiSequencesWithSimpleMode[AggregationRouter (ln:538)]
decode[AggregationRouter (ln:578)]
safeTransferFrom[AggregationRouter (ln:588)]
call[TransferHelper (ln:94)]
encodeWithSelector[TransferHelper (ln:94)]
decode[TransferHelper (ln:96)]
call[AggregationRouter (ln:600)]
encodeWithSelector[AggregationRouter (ln:601)]
revert[AggregationRouter (ln:607)]
call[AggregationRouter (ln:615)]
encodeWithSelector[AggregationRouter (ln:616)]
revert[AggregationRouter (ln:625)]
sub[AggregationRouter (ln:547)]
_getBalance[AggregationRouter (ln:547)]
_isETH[AggregationRouter (ln:635)]
balanceOf[AggregationRouter (ln:638)]
Swapped[AggregationRouter (ln:554)]
Exchange[AggregationRouter (ln:562)]
_isETH[AggregationRouter (ln:565)]
_isETH[AggregationRouter (ln:412)]
_isETH[AggregationRouter (ln:417)]
_isETH[AggregationRouter (ln:428)]
_permit[AggregationRouter (ln:429)]
safeTransferFrom[AggregationRouter (ln:431)]
call[TransferHelper (ln:94)]
encodeWithSelector[TransferHelper (ln:94)]
decode[TransferHelper (ln:96)]
_isETH[AggregationRouter (ln:440)]
safeTransferETH[AggregationRouter (ln:443)]
_getBalance[AggregationRouter (ln:453)]
_isETH[AggregationRouter (ln:635)]
balanceOf[AggregationRouter (ln:638)]
_getBalance[AggregationRouter (ln:454)]
_isETH[AggregationRouter (ln:635)]
balanceOf[AggregationRouter (ln:638)]
_getBalance[AggregationRouter (ln:459)]
_isETH[AggregationRouter (ln:635)]
balanceOf[AggregationRouter (ln:638)]
call[AggregationRouter (ln:462)]
encodeWithSelector[AggregationRouter (ln:463)]
revert[AggregationRouter (ln:466)]
sub[AggregationRouter (ln:471)]
_getBalance[AggregationRouter (ln:471)]
_isETH[AggregationRouter (ln:635)]
balanceOf[AggregationRouter (ln:638)]
sub[AggregationRouter (ln:474)]
add[AggregationRouter (ln:474)]
_getBalance[AggregationRouter (ln:475)]
_isETH[AggregationRouter (ln:635)]
balanceOf[AggregationRouter (ln:638)]
mul[AggregationRouter (ln:478)]
mul[AggregationRouter (ln:479)]
Swapped[AggregationRouter (ln:489)]
Exchange[AggregationRouter (ln:497)]
_isETH[AggregationRouter (ln:500)]
File 1 of 6: AggregationRouter
File 2 of 6: VraToken
File 3 of 6: UniswapV2Pair
File 4 of 6: WETH9
File 5 of 6: ERC1820Registry
File 6 of 6: FireBirdFormula
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity >=0.7.6;pragma abicoder v2;interface IERC20 {event Approval(address indexed owner,address indexed spender,uint256 value);event Transfer(address indexed from, address indexed to, uint256 value);function name() external view returns (string memory);function symbol() external view returns (string memory);
File 2 of 6: VraToken
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with GSN meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address payable) {
File 3 of 6: UniswapV2Pair
12345678910111213141516// File: contracts/interfaces/IUniswapV2Pair.solpragma solidity >=0.5.0;interface IUniswapV2Pair {event Approval(address indexed owner, address indexed spender, uint value);event Transfer(address indexed from, address indexed to, uint value);function name() external pure returns (string memory);function symbol() external pure returns (string memory);function decimals() external pure returns (uint8);function totalSupply() external view returns (uint);function balanceOf(address owner) external view returns (uint);function allowance(address owner, address spender) external view returns (uint);function approve(address spender, uint value) external returns (bool);
File 4 of 6: WETH9
12345678910111213141516// Copyright (C) 2015, 2016, 2017 Dapphub// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.pragma solidity ^0.4.18;
File 5 of 6: ERC1820Registry
12345678910111213141516/* ERC1820 Pseudo-introspection Registry Contract* This standard defines a universal registry smart contract where any address (contract or regular account) can* register which interface it supports and which smart contract is responsible for its implementation.** Written in 2019 by Jordi Baylina and Jacques Dafflon** To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to* this software to the public domain worldwide. This software is distributed without any warranty.** You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see* <http://creativecommons.org/publicdomain/zero/1.0/>.** ███████╗██████╗ ██████╗ ██╗ █████╗ ██████╗ ██████╗* ██╔════╝██╔══██╗██╔════╝███║██╔══██╗╚════██╗██╔═████╗* █████╗ ██████╔╝██║ ╚██║╚█████╔╝ █████╔╝██║██╔██║* ██╔══╝ ██╔══██╗██║ ██║██╔══██╗██╔═══╝ ████╔╝██║
File 6 of 6: FireBirdFormula
12345678910111213141516// File: contracts/interfaces/IFireBirdFormula.sol// SPDX-License-Identifier: SEE LICENSE IN LICENSEpragma solidity >=0.5.16;/*Bancor Formula interface*/interface IFireBirdFormula {function getFactoryReserveAndWeights(address factory, address pair, address tokenA, uint8 dexId) external view returns (address tokenB,uint reserveA,uint reserveB,uint32 tokenWeightA,uint32 tokenWeightB,