diff --git a/.github/workflows/clang-format-check.yml b/.github/workflows/clang-format-check.yml index e0f1ec5b4..9a8d58b2d 100644 --- a/.github/workflows/clang-format-check.yml +++ b/.github/workflows/clang-format-check.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: DoozyX/clang-format-lint-action@v0.14 + - uses: DoozyX/clang-format-lint-action@v0.16.2 with: source: '.' exclude: './CMakeFiles ./cmake ./deps ./build ./skaled_ssl_test ./newer_lcov' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f9d9b8255..ca1114248 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -161,56 +161,56 @@ jobs: - name: Print ccache stats after full build run : | ccache --show-stats + # first run with verbosity 1. If test fails, rerun with verbosity 4 + # we specifically run each test for easier log review - name: Testeth verbosity 1 run : | mkdir -p /tmp/tests/ sudo rm -rf /tmp/tests/* - #first run with verbosity 1. If test fails, rerun with verbosity 4 cd build/test export NO_NTP_CHECK=1 - export NO_ULIMIT_CHECK=1 - # we specifically run each test for easier log review - ./testeth -t BlockchainTests -- --express && touch /tmp/tests/BlockchainTestsPassed - ./testeth -t TransitionTests -- --express && touch /tmp/tests/TransitionTestsPassed - ./testeth -t TransactionTests -- --express && touch /tmp/tests/TransactionTestsPassed - ./testeth -t VMTests -- --express && touch /tmp/tests/VMTestsPassed - ./testeth -t LevelDBTests -- --express && touch /tmp/tests/LevelDBTestsPassed - ./testeth -t CoreLibTests -- --express && touch /tmp/tests/CoreLibTestsPassed - ./testeth -t RlpTests -- --express && touch /tmp/tests/RlpTestsPassed - ./testeth -t SharedSpaceTests -- --express && touch /tmp/tests/SharedSpaceTestsPassed - ./testeth -t EthashTests -- --express && touch /tmp/tests/EthashTestsPassed - ./testeth -t SealEngineTests -- --express && touch /tmp/tests/SealEngineTestsPassed - ./testeth -t DifficultyTests -- --express && touch /tmp/tests/DifficultyTestsPassed - ./testeth -t BlockSuite -- --express && touch /tmp/tests/BlockSuitePassed - ./testeth -t BlockChainMainNetworkSuite -- --express && touch /tmp/tests/BlockChainMainNetworkSuitePassed - ./testeth -t BlockChainFrontierSuite -- --express && touch /tmp/tests/BlockChainFrontierSuitePassed - ./testeth -t BlockQueueSuite -- --express && touch /tmp/tests/BlockQueueSuitePassed - ./testeth -t ClientBase -- --express && touch /tmp/tests/ClientBasePassed - ./testeth -t EstimateGas -- --express && touch /tmp/tests/EstimateGasPassed - ./testeth -t getHistoricNodesData -- --express && touch /tmp/tests/getHistoricNodesDataPassed - ./testeth -t ExtVmSuite -- --express && touch /tmp/tests/ExtVmSuitePassed - ./testeth -t GasPricer -- --express && touch /tmp/tests/GasPricerPassed - ./testeth -t BasicTests -- --express && touch /tmp/tests/BasicTestsPassed - ./testeth -t InstanceMonitorSuite -- --express && touch /tmp/tests/InstanceMonitorSuitePassed - ./testeth -t PrecompiledTests -- --express && touch /tmp/tests/PrecompiledTestsPassed - ./testeth -t SkaleHostSuite -- --express && touch /tmp/tests/SkaleHostSuitePassed - ./testeth -t StateUnitTests -- --express && touch /tmp/tests/StateUnitTestsPassed - ./testeth -t libethereum -- --express && touch /tmp/tests/libethereumPassed - ./testeth -t TransactionQueueSuite -- --express && touch /tmp/tests/TransactionQueueSuitePassed - ./testeth -t LegacyVMSuite -- --express && touch /tmp/tests/LegacyVMSuitePassed - ./testeth -t SkaleInterpreterSuite -- --express && touch /tmp/tests/SkaleInterpreterSuitePassed - ./testeth -t SnapshotSigningTestSuite -- --express && touch /tmp/tests/SnapshotSigningTestSuitePassed - ./testeth -t SkUtils -- --express && touch /tmp/tests/SkUtilsPassed - ./testeth -t BlockChainTestSuite -- --express && touch /tmp/tests/BlockChainTestSuitePassed - ./testeth -t TestHelperSuite -- --express && touch /tmp/tests/TestHelperSuitePassed - ./testeth -t LevelDBHashBase -- --express && touch /tmp/tests/LevelDBHashBasePassed - ./testeth -t memDB -- --express && touch /tmp/tests/memDBPassed - ./testeth -t OverlayDBTests -- --express && touch /tmp/tests/OverlayDBTestsPassed - ./testeth -t AccountHolderTest -- --express && touch /tmp/tests/AccountHolderTestPassed - ./testeth -t ClientTests -- --express && touch /tmp/tests/ClientTestsPassed - ./testeth -t JsonRpcSuite -- --express && touch /tmp/tests/JsonRpcSuitePassed - ./testeth -t SingleConsensusTests -- --express && touch /tmp/tests/SingleConsensusTestsPassed - ./testeth -t ConsensusTests -- --express && touch /tmp/tests/ConsensusTestsPassed + export NO_ULIMIT_CHECK=1 + function run_test() { ./testeth --report_level=detailed -t "$1" -- --express && touch "/tmp/tests/${1}Passed"; } + run_test TransitionTests + run_test TransactionTests + run_test VMTests + run_test LevelDBTests + run_test CoreLibTests + run_test RlpTests + run_test SharedSpaceTests + run_test EthashTests + run_test SealEngineTests + run_test DifficultyTests + run_test BlockSuite + run_test BlockChainMainNetworkSuite + run_test BlockChainFrontierSuite + run_test BlockQueueSuite + run_test ClientBase + run_test EstimateGas + run_test getHistoricNodesData + run_test ExtVmSuite + run_test GasPricer + run_test BasicTests + run_test InstanceMonitorSuite + run_test PrecompiledTests + run_test SkaleHostSuite + run_test StateUnitTests + run_test libethereum + run_test TransactionQueueSuite + run_test LegacyVMSuite + run_test SkaleInterpreterSuite + run_test SnapshotSigningTestSuite + run_test SkUtils + run_test BlockChainTestSuite + run_test TestHelperSuite + run_test LevelDBHashBase + run_test memDB + run_test OverlayDBTests + run_test AccountHolderTest + run_test ClientTests + run_test JsonRpcSuite + run_test SingleConsensusTests + run_test ConsensusTests sudo ./testeth -t BtrfsTestSuite -- --all && touch /tmp/tests/BtrfsTestSuitePassed sudo ./testeth -t HashSnapshotTestSuite -- --all && touch /tmp/tests/HashSnapshotTestSuitePassed sudo ./testeth -t ClientSnapshotsSuite -- --all && touch /tmp/tests/ClientSnapshotsSuitePassed @@ -221,47 +221,47 @@ jobs: cd build/test export NO_NTP_CHECK=1 export NO_ULIMIT_CHECK=1 - ls /tmp/tests/BlockchainTestsPassed || ./testeth -t BlockchainTests -- --express --verbosity 4 - ls /tmp/tests/TransitionTestsPassed || ./testeth -t TransitionTests -- --express --verbosity 4 - ls /tmp/tests/TransactionTestsPassed || ./testeth -t TransactionTests -- --express --verbosity 4 - ls /tmp/tests/VMTestsPassed || ./testeth -t VMTests -- --express --verbosity 4 - ls /tmp/tests/LevelDBTestsPassed || ./testeth -t LevelDBTests -- --express --verbosity 4 - ls /tmp/tests/CoreLibTestsPassed || ./testeth -t CoreLibTests -- --express --verbosity 4 - ls /tmp/tests/RlpTestsPassed || ./testeth -t RlpTests -- --express --verbosity 4 - ls /tmp/tests/SharedSpaceTestsPassed || ./testeth -t SharedSpaceTests -- --express --verbosity 4 - ls /tmp/tests/EthashTestsPassed || ./testeth -t EthashTests -- --express --verbosity 4 - ls /tmp/tests/SealEngineTestsPassed || ./testeth -t SealEngineTests -- --express --verbosity 4 - ls /tmp/tests/DifficultyTestsPassed || ./testeth -t DifficultyTests -- --express --verbosity 4 - ls /tmp/tests/BlockSuitePassed || ./testeth -t BlockSuite -- --express --verbosity 4 - ls /tmp/tests/BlockChainMainNetworkSuitePassed || ./testeth -t BlockChainMainNetworkSuite -- --express --verbosity 4 - ls /tmp/tests/BlockChainFrontierSuitePassed || ./testeth -t BlockChainFrontierSuite -- --express --verbosity 4 - ls /tmp/tests/BlockQueueSuitePassed || ./testeth -t BlockQueueSuite -- --express --verbosity 4 - ls /tmp/tests/ClientBasePassed || ./testeth -t ClientBase -- --express --verbosity 4 - ls /tmp/tests/EstimateGasPassed || ./testeth -t EstimateGas -- --express --verbosity 4 - ls /tmp/tests/getHistoricNodesDataPassed || ./testeth -t getHistoricNodesData -- --express --verbosity 4 - ls /tmp/tests/ExtVmSuitePassed || ./testeth -t ExtVmSuite -- --express --verbosity 4 - ls /tmp/tests/GasPricerPassed || ./testeth -t GasPricer -- --express --verbosity 4 - ls /tmp/tests/BasicTestsPassed || ./testeth -t BasicTests -- --express --verbosity 4 - ls /tmp/tests/InstanceMonitorSuitePassed || ./testeth -t InstanceMonitorSuite -- --express --verbosity 4 - ls /tmp/tests/PrecompiledTestsPassed || ./testeth -t PrecompiledTests -- --express --verbosity 4 - ls /tmp/tests/SkaleHostSuitePassed || ./testeth -t SkaleHostSuite -- --express --verbosity 4 - ls /tmp/tests/StateUnitTestsPassed || ./testeth -t StateUnitTests -- --express --verbosity 4 - ls /tmp/tests/libethereumPassed || ./testeth -t libethereum -- --express --verbosity 4 - ls /tmp/tests/TransactionQueueSuitePassed || ./testeth -t TransactionQueueSuite -- --express --verbosity 4 - ls /tmp/tests/LegacyVMSuitePassed || ./testeth -t LegacyVMSuite -- --express --verbosity 4 - ls /tmp/tests/SkaleInterpreterSuitePassed || ./testeth -t SkaleInterpreterSuite -- --express --verbosity 4 - ls /tmp/tests/SnapshotSigningTestSuitePassed || ./testeth -t SnapshotSigningTestSuite -- --express --verbosity 4 - ls /tmp/tests/SkUtilsPassed || ./testeth -t SkUtils -- --express --verbosity 4 - ls /tmp/tests/BlockChainTestSuitePassed || ./testeth -t BlockChainTestSuite -- --express --verbosity 4 - ls /tmp/tests/TestHelperSuitePassed || ./testeth -t TestHelperSuite -- --express --verbosity 4 - ls /tmp/tests/LevelDBHashBasePassed || ./testeth -t LevelDBHashBase -- --express --verbosity 4 - ls /tmp/tests/memDBPassed || ./testeth -t memDB -- --express --verbosity 4 - ls /tmp/tests/OverlayDBTestsPassed || ./testeth -t OverlayDBTests -- --express --verbosity 4 - ls /tmp/tests/AccountHolderTestPassed || ./testeth -t AccountHolderTest -- --express --verbosity 4 - ls /tmp/tests/ClientTestsPassed || ./testeth -t ClientTests -- --express --verbosity 4 - ls /tmp/tests/JsonRpcSuitePassed || ./testeth -t JsonRpcSuite -- --express --verbosity 4 - ls /tmp/tests/SingleConsensusTestsPassed || ./testeth -t SingleConsensusTests -- --express --verbosity 4 - ls /tmp/tests/ConsensusTestsPassed || ./testeth -t ConsensusTests -- --express --verbosity 4 + function rerun_test() { ls "/tmp/tests/${1}Passed" 2>/dev/null || ./testeth --report_level=detailed -t "$1" -- --express --verbosity 4; } + rerun_test TransitionTests + rerun_test TransactionTests + rerun_test VMTests + rerun_test LevelDBTests + rerun_test CoreLibTests + rerun_test RlpTests + rerun_test SharedSpaceTests + rerun_test EthashTests + rerun_test SealEngineTests + rerun_test DifficultyTests + rerun_test BlockSuite + rerun_test BlockChainMainNetworkSuite + rerun_test BlockChainFrontierSuite + rerun_test BlockQueueSuite + rerun_test ClientBase + rerun_test EstimateGas + rerun_test getHistoricNodesData + rerun_test ExtVmSuite + rerun_test GasPricer + rerun_test BasicTests + rerun_test InstanceMonitorSuite + rerun_test PrecompiledTests + rerun_test SkaleHostSuite + rerun_test StateUnitTests + rerun_test libethereum + rerun_test TransactionQueueSuite + rerun_test LegacyVMSuite + rerun_test SkaleInterpreterSuite + rerun_test SnapshotSigningTestSuite + rerun_test SkUtils + rerun_test BlockChainTestSuite + rerun_test TestHelperSuite + rerun_test LevelDBHashBase + rerun_test memDB + rerun_test OverlayDBTests + rerun_test AccountHolderTest + rerun_test ClientTests + rerun_test JsonRpcSuite + rerun_test SingleConsensusTests + rerun_test ConsensusTests ls /tmp/tests/BtrfsTestSuitePassed || sudo NO_ULIMIT_CHECK=1 NO_NTP_CHECK=1 ./testeth -t BtrfsTestSuite -- --all --verbosity 4 ls /tmp/tests/HashSnapshotTestSuitePassed || sudo NO_ULIMIT_CHECK=1 NO_NTP_CHECK=1 ./testeth -t HashSnapshotTestSuite -- --all --verbosity 4 ls /tmp/tests/ClientSnapshotsSuitePassed || sudo NO_ULIMIT_CHECK=1 NO_NTP_CHECK=1 ./testeth -t ClientSnapshotsSuite -- --all --verbosity 4 diff --git a/.gitmodules b/.gitmodules index 20542db06..3bbcc02a0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,3 +15,6 @@ [submodule "cmake/cable"] path = cmake/cable url = https://github.com/ethereum/cable.git +[submodule "test/historicstate/hardhat/tracely"] + path = test/historicstate/hardhat/tracely + url = https://github.com/DenrianWeiss/tracely diff --git a/README.md b/README.md index 7c22817cb..c5d0defbd 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ If you have already cloned the repo and forgot to pass `--recurse-submodules`, e sudo apt update sudo apt install autoconf build-essential cmake libprocps-dev libtool texinfo wget yasm flex bison btrfs-progs python3 python3-pip gawk git vim doxygen sudo apt install make build-essential cmake pkg-config libgnutls28-dev libssl-dev unzip zlib1g-dev libgcrypt20-dev docker.io gcc-9 g++-9 gperf clang-format-11 gnutls-dev -sudo apt install nettle-dev libhiredis-dev redis-server google-perftools libgoogle-perftools-dev lcov +sudo apt install nettle-dev libhiredis-dev redis-server google-perftools libgoogle-perftools-dev lcov sudo apt-get install libv8-dev ``` diff --git a/VERSION b/VERSION index c5b45eb7b..d21858b11 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.18.0 +3.18.1 diff --git a/docs/tracing.md b/docs/tracing.md new file mode 100644 index 000000000..f7117b6c8 --- /dev/null +++ b/docs/tracing.md @@ -0,0 +1,61 @@ +# Tracing API + +## API calls + +SKALE tracing API implements the following Geth tracing API calls + +```angular2html + + debug_traceTransaction + debug_traceCall + debug_traceBlockByNumber + debug_traceBlockByHash +``` + +The calls a fully compatible with Geth API. If there is +an incompatibility, its a bug. + +Geth API is documented here + +https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug + +Also see here for live examples + +https://www.quicknode.com/docs/ethereum/debug_traceTransaction +https://www.quicknode.com/docs/ethereum/debug_traceBlockByNumber +https://www.quicknode.com/docs/ethereum/debug_traceBlockByHash +https://www.quicknode.com/docs/ethereum/debug_traceCall + + +## Tracer config and types implemented + +All tracer config options documented here are implemented + +https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#traceconfig + +The following Geth Tracer types are implemented: + +* "4byteTracer" +* "callTracer" +* "prestateTracer" +* "noopTracer" + +In addition the following Parity tracer is implemented + +* replayTracer + +See here for documentation of replayTracer + +https://openethereum.github.io/JSONRPC-trace-module +https://www.quicknode.com/docs/ethereum/trace_replayTransaction +https://docs.alchemy.com/reference/trace-replaytransaction + +Note, that we do not implement Parity "trace_replayTransaction" +API call. Instead, "replayTracer" parameter needs to be +passed to Geth API calls. + + +## All Tracer + +* allTracer has beeen added to help QA, it prints results of all supported traces at once + diff --git a/libconsensus b/libconsensus index ddde155ee..2f7c74374 160000 --- a/libconsensus +++ b/libconsensus @@ -1 +1 @@ -Subproject commit ddde155ee8ca1e9dbc8adcccab62d9f85a48f1c0 +Subproject commit 2f7c7437465ed3cbbfc914ce9fb0fefe3d096ecb diff --git a/libdevcore/CommonData.h b/libdevcore/CommonData.h index fa896be69..a6e62c73e 100644 --- a/libdevcore/CommonData.h +++ b/libdevcore/CommonData.h @@ -203,6 +203,16 @@ inline std::string toCompactHexPrefixed( u256 _val, unsigned _min = 0 ) { return toHexPrefixed( toCompactBigEndian( _val, _min ) ); } + +inline std::string toHex( u256 _val ) { + return toHex( toBigEndian( _val ) ); +} + +inline std::string toHexPrefixed( u256 _val ) { + return toHexPrefixed( toBigEndian( _val ) ); +} + + // Algorithms for string and string-like collections. /// Escapes a string into the C-string representation. diff --git a/libdevcore/DBFactory.cpp b/libdevcore/DBFactory.cpp index 5d433dc75..54b391ef4 100644 --- a/libdevcore/DBFactory.cpp +++ b/libdevcore/DBFactory.cpp @@ -20,11 +20,9 @@ #include "DBFactory.h" #include "FileSystem.h" #include "LevelDB.h" -#include "MemoryDB.h" #include "libethcore/Exceptions.h" -namespace dev { -namespace db { +namespace dev::db { namespace fs = boost::filesystem; namespace po = boost::program_options; @@ -132,6 +130,18 @@ std::unique_ptr< DatabaseFace > DBFactory::create( DatabaseKind _kind, fs::path switch ( _kind ) { case DatabaseKind::LevelDB: return std::unique_ptr< DatabaseFace >( new LevelDB( _path ) ); + default: + assert( false ); + return {}; + } +} + +std::unique_ptr< DatabaseFace > DBFactory::createHistoric( + DatabaseKind _kind, fs::path const& _path ) { + switch ( _kind ) { + case DatabaseKind::LevelDB: + return std::unique_ptr< DatabaseFace >( new LevelDB( _path, LevelDB::defaultReadOptions(), + LevelDB::defaultWriteOptions(), LevelDB::defaultDBOptions(), s_reopenPeriodMs ) ); break; default: assert( false ); @@ -140,5 +150,6 @@ std::unique_ptr< DatabaseFace > DBFactory::create( DatabaseKind _kind, fs::path } -} // namespace db -} // namespace dev +std::atomic< int64_t > DBFactory::s_reopenPeriodMs = -1; + +} // namespace dev::db diff --git a/libdevcore/DBFactory.h b/libdevcore/DBFactory.h index 464bbf204..7e187bb7d 100644 --- a/libdevcore/DBFactory.h +++ b/libdevcore/DBFactory.h @@ -25,8 +25,8 @@ #include #include -namespace dev { -namespace db { +namespace dev::db { + enum class DatabaseKind { LevelDB }; /// Provide a set of program options related to databases @@ -52,8 +52,12 @@ class DBFactory { static std::unique_ptr< DatabaseFace > create( DatabaseKind _kind ); static std::unique_ptr< DatabaseFace > create( DatabaseKind _kind, boost::filesystem::path const& _path ); + static std::unique_ptr< DatabaseFace > createHistoric( + DatabaseKind _kind, boost::filesystem::path const& _path ); + + static void setReopenPeriodMs( int64_t _reopenPeriodMs ) { s_reopenPeriodMs = _reopenPeriodMs; } private: + static std::atomic< int64_t > s_reopenPeriodMs; }; -} // namespace db -} // namespace dev +} // namespace dev::db diff --git a/libdevcore/LevelDB.cpp b/libdevcore/LevelDB.cpp index b568d85da..ba019a426 100644 --- a/libdevcore/LevelDB.cpp +++ b/libdevcore/LevelDB.cpp @@ -23,8 +23,9 @@ #include "Log.h" #include -namespace dev { -namespace db { +using std::string, std::runtime_error; + +namespace dev::db { unsigned c_maxOpenLeveldbFiles = 25; @@ -118,18 +119,36 @@ leveldb::Options LevelDB::defaultSnapshotDBOptions() { } LevelDB::LevelDB( boost::filesystem::path const& _path, leveldb::ReadOptions _readOptions, - leveldb::WriteOptions _writeOptions, leveldb::Options _dbOptions ) + leveldb::WriteOptions _writeOptions, leveldb::Options _dbOptions, int64_t _reopenPeriodMs ) : m_db( nullptr ), m_readOptions( std::move( _readOptions ) ), m_writeOptions( std::move( _writeOptions ) ), m_options( std::move( _dbOptions ) ), - m_path( _path ) { + m_path( _path ), + m_reopenPeriodMs( _reopenPeriodMs ) { + openDBInstanceUnsafe(); +} + +// this does not hold any locks so it needs to be called +// either from a constructor or from a function that holds a lock on m_db +void LevelDB::openDBInstanceUnsafe() { + cnote << "Time to (re)open LevelDB at " + m_path.string(); + auto startTimeMs = getCurrentTimeMs(); auto db = static_cast< leveldb::DB* >( nullptr ); - auto const status = leveldb::DB::Open( m_options, _path.string(), &db ); - checkStatus( status, _path ); + auto const status = leveldb::DB::Open( m_options, m_path.string(), &db ); + checkStatus( status, m_path ); + + if ( !db ) { + BOOST_THROW_EXCEPTION( runtime_error( string( "Null db in " ) + __FUNCTION__ ) ); + } - assert( db ); m_db.reset( db ); + m_lastDBOpenTimeMs = getCurrentTimeMs(); + cnote << "LEVELDB_OPENED:TIME_MS:" << m_lastDBOpenTimeMs - startTimeMs; +} +uint64_t LevelDB::getCurrentTimeMs() { + auto currentTime = std::chrono::system_clock::now().time_since_epoch(); + return std::chrono::duration_cast< std::chrono::milliseconds >( currentTime ).count(); } LevelDB::~LevelDB() { @@ -142,7 +161,12 @@ LevelDB::~LevelDB() { std::string LevelDB::lookup( Slice _key ) const { leveldb::Slice const key( _key.data(), _key.size() ); std::string value; - auto const status = m_db->Get( m_readOptions, key, &value ); + + leveldb::Status status; + { + SharedDBGuard readLock( *this ); + status = m_db->Get( m_readOptions, key, &value ); + } if ( status.IsNotFound() ) return std::string(); @@ -153,7 +177,11 @@ std::string LevelDB::lookup( Slice _key ) const { bool LevelDB::exists( Slice _key ) const { std::string value; leveldb::Slice const key( _key.data(), _key.size() ); - auto const status = m_db->Get( m_readOptions, key, &value ); + leveldb::Status status; + { + SharedDBGuard lock( *this ); + status = m_db->Get( m_readOptions, key, &value ); + } if ( status.IsNotFound() ) return false; @@ -164,7 +192,11 @@ bool LevelDB::exists( Slice _key ) const { void LevelDB::insert( Slice _key, Slice _value ) { leveldb::Slice const key( _key.data(), _key.size() ); leveldb::Slice const value( _value.data(), _value.size() ); - auto const status = m_db->Put( m_writeOptions, key, value ); + leveldb::Status status; + { + SharedDBGuard lock( *this ); + status = m_db->Put( m_writeOptions, key, value ); + } checkStatus( status ); } @@ -190,16 +222,42 @@ void LevelDB::commit( std::unique_ptr< WriteBatchFace > _batch ) { BOOST_THROW_EXCEPTION( DatabaseError() << errinfo_comment( "Invalid batch type passed to LevelDB::commit" ) ); } - auto const status = m_db->Write( m_writeOptions, &batchPtr->writeBatch() ); + leveldb::Status status; + { + SharedDBGuard lock( *this ); + status = m_db->Write( m_writeOptions, &batchPtr->writeBatch() ); + } // Commit happened. This means the keys actually got deleted in LevelDB. Increment key deletes // stats and set g_keysToBeDeletedStats to zero g_keyDeletesStats += g_keysToBeDeletedStats; g_keysToBeDeletedStats = 0; + checkStatus( status ); + + // now lets check if it is time to reopen the database + + reopenDataBaseIfNeeded(); +} +void LevelDB::reopenDataBaseIfNeeded() { + if ( m_reopenPeriodMs < 0 ) { + // restarts not enabled + return; + } + + auto currentTimeMs = getCurrentTimeMs(); + + if ( currentTimeMs - m_lastDBOpenTimeMs >= ( uint64_t ) m_reopenPeriodMs ) { + ExclusiveDBGuard lock( *this ); + // releasing unique pointer will cause database destructor to be called that will close db + m_db.reset(); + // now open db while holding the exclusive lock + openDBInstanceUnsafe(); + } } void LevelDB::forEach( std::function< bool( Slice, Slice ) > f ) const { cwarn << "Iterating over the entire LevelDB database: " << this->m_path; + SharedDBGuard lock( *this ); std::unique_ptr< leveldb::Iterator > itr( m_db->NewIterator( m_readOptions ) ); if ( itr == nullptr ) { BOOST_THROW_EXCEPTION( DatabaseError() << errinfo_comment( "null iterator" ) ); @@ -217,6 +275,7 @@ void LevelDB::forEach( std::function< bool( Slice, Slice ) > f ) const { void LevelDB::forEachWithPrefix( std::string& _prefix, std::function< bool( Slice, Slice ) > f ) const { cnote << "Iterating over the LevelDB prefix: " << _prefix; + SharedDBGuard lock( *this ); std::unique_ptr< leveldb::Iterator > itr( m_db->NewIterator( m_readOptions ) ); if ( itr == nullptr ) { BOOST_THROW_EXCEPTION( DatabaseError() << errinfo_comment( "null iterator" ) ); @@ -234,6 +293,7 @@ void LevelDB::forEachWithPrefix( } h256 LevelDB::hashBase() const { + SharedDBGuard lock( *this ); std::unique_ptr< leveldb::Iterator > it( m_db->NewIterator( m_readOptions ) ); if ( it == nullptr ) { BOOST_THROW_EXCEPTION( DatabaseError() << errinfo_comment( "null iterator" ) ); @@ -244,9 +304,9 @@ h256 LevelDB::hashBase() const { for ( it->SeekToFirst(); it->Valid(); it->Next() ) { std::string keyTmp = it->key().ToString(); std::string valueTmp = it->value().ToString(); - // HACK! For backward compatibility! When snapshot could happen between update of two nodes - // - it would lead to stateRoot mismatch - // TODO Move this logic to separate "compatiliblity layer"! + // For backward compatibility. When snapshot could happen between update of two nodes + // it would lead to stateRoot mismatch + // TODO Move this logic to separate compatiliblity layer if ( keyTmp == "pieceUsageBytes" ) continue; std::string keyValue = keyTmp + valueTmp; @@ -261,6 +321,7 @@ h256 LevelDB::hashBase() const { } h256 LevelDB::hashBaseWithPrefix( char _prefix ) const { + SharedDBGuard lock( *this ); std::unique_ptr< leveldb::Iterator > it( m_db->NewIterator( m_readOptions ) ); if ( it == nullptr ) { BOOST_THROW_EXCEPTION( DatabaseError() << errinfo_comment( "null iterator" ) ); @@ -284,6 +345,7 @@ h256 LevelDB::hashBaseWithPrefix( char _prefix ) const { } bool LevelDB::hashBasePartially( secp256k1_sha256_t* ctx, std::string& lastHashedKey ) const { + SharedDBGuard lock( *this ); std::unique_ptr< leveldb::Iterator > it( m_db->NewIterator( m_readOptions ) ); if ( it == nullptr ) { BOOST_THROW_EXCEPTION( DatabaseError() << errinfo_comment( "null iterator" ) ); @@ -297,9 +359,9 @@ bool LevelDB::hashBasePartially( secp256k1_sha256_t* ctx, std::string& lastHashe for ( size_t counter = 0; it->Valid() && counter < BATCH_CHUNK_SIZE; it->Next() ) { std::string keyTmp = it->key().ToString(); std::string valueTmp = it->value().ToString(); - // HACK! For backward compatibility! When snapshot could happen between update of two nodes - // - it would lead to stateRoot mismatch - // TODO Move this logic to separate "compatiliblity layer"! + // For backward compatibility. When snapshot could happen between update of two nodes + // it would lead to stateRoot mismatch + // TODO Move this logic to separate compatiliblity layer if ( keyTmp == "pieceUsageBytes" ) continue; std::string keyValue = keyTmp + valueTmp; @@ -317,6 +379,7 @@ bool LevelDB::hashBasePartially( secp256k1_sha256_t* ctx, std::string& lastHashe } void LevelDB::doCompaction() const { + SharedDBGuard lock( *this ); m_db->CompactRange( nullptr, nullptr ); } @@ -327,5 +390,4 @@ uint64_t LevelDB::getKeyDeletesStats() { return g_keyDeletesStats; } -} // namespace db -} // namespace dev +} // namespace dev::db diff --git a/libdevcore/LevelDB.h b/libdevcore/LevelDB.h index 5c314e8bf..c2a1f7ee9 100644 --- a/libdevcore/LevelDB.h +++ b/libdevcore/LevelDB.h @@ -26,10 +26,10 @@ #include #include +#include "shared_mutex" #include -namespace dev { -namespace db { +namespace dev::db { class LevelDB : public DatabaseFace { public: static leveldb::ReadOptions defaultReadOptions(); @@ -41,7 +41,7 @@ class LevelDB : public DatabaseFace { explicit LevelDB( boost::filesystem::path const& _path, leveldb::ReadOptions _readOptions = defaultReadOptions(), leveldb::WriteOptions _writeOptions = defaultWriteOptions(), - leveldb::Options _dbOptions = defaultDBOptions() ); + leveldb::Options _dbOptions = defaultDBOptions(), int64_t _reopenPeriodMs = -1 ); ~LevelDB(); @@ -79,8 +79,52 @@ class LevelDB : public DatabaseFace { leveldb::Options m_options; boost::filesystem::path const m_path; + // periodic reopen is disabled by default + int64_t m_reopenPeriodMs = -1; + uint64_t m_lastDBOpenTimeMs; + mutable std::shared_mutex m_dbMutex; + + static const size_t BATCH_CHUNK_SIZE; + + class SharedDBGuard { + const LevelDB& m_levedlDB; + + + public: + explicit SharedDBGuard( const LevelDB& _levedDB ) : m_levedlDB( _levedDB ) { + if ( m_levedlDB.m_reopenPeriodMs < 0 ) + return; + m_levedlDB.m_dbMutex.lock_shared(); + } + + + ~SharedDBGuard() { + if ( m_levedlDB.m_reopenPeriodMs < 0 ) + return; + m_levedlDB.m_dbMutex.unlock_shared(); + } + }; + + class ExclusiveDBGuard { + LevelDB& m_levedlDB; + + public: + ExclusiveDBGuard( LevelDB& _levedDB ) : m_levedlDB( _levedDB ) { + if ( m_levedlDB.m_reopenPeriodMs < 0 ) + return; + m_levedlDB.m_dbMutex.lock(); + } + + ~ExclusiveDBGuard() { + if ( m_levedlDB.m_reopenPeriodMs < 0 ) + return; + m_levedlDB.m_dbMutex.unlock(); + } + }; + void openDBInstanceUnsafe(); + uint64_t getCurrentTimeMs(); + void reopenDataBaseIfNeeded(); }; -} // namespace db -} // namespace dev +} // namespace dev::db diff --git a/libethcore/ChainOperationParams.h b/libethcore/ChainOperationParams.h index 678619900..b6e182d65 100644 --- a/libethcore/ChainOperationParams.h +++ b/libethcore/ChainOperationParams.h @@ -68,6 +68,9 @@ class PrecompiledContract { }; static constexpr int64_t c_infiniteBlockNumber = std::numeric_limits< int64_t >::max(); +// default value for leveldbReopenIntervalMs is 1 day +// negative value means reopenings are disabled +static constexpr int64_t c_defaultLevelDBReopenIntervalMs = 24 * 60 * 60 * 1000; /// skale struct NodeInfo { @@ -168,6 +171,7 @@ struct SChain { bool freeContractDeployment = false; bool multiTransactionMode = false; int emptyBlockIntervalMs = -1; + int64_t levelDBReopenIntervalMs = -1; size_t t = 1; time_t revertableFSPatchTimestamp = 0; time_t contractStoragePatchTimestamp = 0; diff --git a/libethereum/Block.cpp b/libethereum/Block.cpp index d98705d88..9198a9daa 100644 --- a/libethereum/Block.cpp +++ b/libethereum/Block.cpp @@ -792,24 +792,60 @@ u256 Block::enact( VerifiedBlockRef const& _block, BlockChain const& _bc ) { #ifdef HISTORIC_STATE -ExecutionResult Block::executeHistoricCall( - LastBlockHashesFace const& _lh, Transaction const& _t ) { - auto p = Permanence::Reverted; +ExecutionResult Block::executeHistoricCall( LastBlockHashesFace const& _lh, Transaction const& _t, + std::shared_ptr< AlethStandardTrace > _tracer, uint64_t _transactionIndex ) { + try { + auto onOp = OnOpFunc(); - auto onOp = OnOpFunc(); + if ( _tracer ) { + onOp = _tracer->functionToExecuteOnEachOperation(); + } - if ( isSealed() ) - BOOST_THROW_EXCEPTION( InvalidOperationOnSealedBlock() ); - // Uncommitting is a non-trivial operation - only do it once we've verified as much of the - // transaction as possible. - uncommitToSeal(); + if ( isSealed() ) + BOOST_THROW_EXCEPTION( InvalidOperationOnSealedBlock() ); - EnvInfo const envInfo{ info(), _lh, gasUsed(), m_sealEngine->chainParams().chainID }; - std::pair< ExecutionResult, TransactionReceipt > resultReceipt = - m_state.mutableHistoricState().execute( envInfo, *m_sealEngine, _t, p, onOp ); + uncommitToSeal(); - return resultReceipt.first; + STATE_CHECK( _transactionIndex <= m_receipts.size() ) + + u256 const gasUsed = + _transactionIndex ? receipt( _transactionIndex - 1 ).cumulativeGasUsed() : 0; + + EnvInfo const envInfo{ info(), _lh, gasUsed, m_sealEngine->chainParams().chainID }; + + if ( _tracer ) { + try { + HistoricState stateBefore( m_state.mutableHistoricState() ); + + auto resultReceipt = m_state.mutableHistoricState().execute( + envInfo, *m_sealEngine, _t, skale::Permanence::Uncommitted, onOp ); + + _tracer->finalizeAndPrintTrace( + resultReceipt.first, stateBefore, m_state.mutableHistoricState() ); + // for tracing the entire block is traced therefore, we save transaction receipt + // as it is used for execution of the next transaction + m_receipts.push_back( resultReceipt.second ); + return resultReceipt.first; + } catch ( std::exception& e ) { + throw dev::eth::VMTracingError( "Exception doing trace for transaction index:" + + std::to_string( _transactionIndex ) + ":" + + e.what() ); + } + } else { + auto resultReceipt = m_state.mutableHistoricState().execute( + envInfo, *m_sealEngine, _t, skale::Permanence::Reverted, onOp ); + return resultReceipt.first; + } + } catch ( std::exception& e ) { + BOOST_THROW_EXCEPTION( + std::runtime_error( "Could not execute historic call for transactionIndex:" + + to_string( _transactionIndex ) + ":" + e.what() ) ); + } catch ( ... ) { + BOOST_THROW_EXCEPTION( + std::runtime_error( "Could not execute historic call for transactionIndex:" + + to_string( _transactionIndex ) + ": unknown error" ) ); + } } #endif diff --git a/libethereum/Block.h b/libethereum/Block.h index 3dff5b034..204224248 100644 --- a/libethereum/Block.h +++ b/libethereum/Block.h @@ -35,7 +35,9 @@ #include #include #include - +#ifdef HISTORIC_STATE +#include +#endif #include "Account.h" #include "GasPricer.h" #include "Transaction.h" @@ -176,6 +178,9 @@ class Block { // Information concerning ongoing transactions + /// Get the gas limit in this block. + u256 gasLimit() const { return m_currentBlock.gasLimit(); } + /// Get the remaining gas limit in this block. u256 gasLimitRemaining() const { return m_currentBlock.gasLimit() - gasUsed(); } @@ -214,9 +219,9 @@ class Block { ExecutionResult execute( LastBlockHashesFace const& _lh, Transaction const& _t, skale::Permanence _p = skale::Permanence::Committed, OnOpFunc const& _onOp = OnOpFunc() ); - #ifdef HISTORIC_STATE - ExecutionResult executeHistoricCall( LastBlockHashesFace const& _lh, Transaction const& _t ); + ExecutionResult executeHistoricCall( LastBlockHashesFace const& _lh, Transaction const& _t, + std::shared_ptr< AlethStandardTrace > _tracer, uint64_t _transactionIndex ); #endif diff --git a/libethereum/CMakeLists.txt b/libethereum/CMakeLists.txt index 1f5ae78e1..0a79f6baa 100644 --- a/libethereum/CMakeLists.txt +++ b/libethereum/CMakeLists.txt @@ -10,7 +10,7 @@ target_include_directories( ethereum PRIVATE "${UTILS_INCLUDE_DIR}" ${SKUTILS_IN ${CMAKE_SOURCE_DIR}/libconsensus/jsoncpp/include ${CMAKE_SOURCE_DIR}/libconsensus/spdlog/include ${CMAKE_SOURCE_DIR}/libconsensus/libjson/include) -target_link_libraries( ethereum PUBLIC evm ethcore p2p devcrypto devcore skale PRIVATE skutils Snappy::snappy +target_link_libraries( ethereum PUBLIC evm ethcore p2p devcrypto devcore skale PRIVATE historic skutils Snappy::snappy jsoncpp # ${CMAKE_SOURCE_DIR}/libconsensus/jsoncpp/build/src/lib_json/libjsoncpp.a Boost::fiber Boost::context Boost::chrono batched-io diff --git a/libethereum/ChainParams.cpp b/libethereum/ChainParams.cpp index 52d3fade1..23134a877 100644 --- a/libethereum/ChainParams.cpp +++ b/libethereum/ChainParams.cpp @@ -105,282 +105,10 @@ ChainParams ChainParams::loadConfig( params[c_skaleDisableChainIdCheck].get_bool() : false; - /// skale - if ( obj.count( c_skaleConfig ) ) { - auto skaleObj = obj[c_skaleConfig].get_obj(); - - auto infoObj = skaleObj.at( "nodeInfo" ).get_obj(); - - auto nodeName = infoObj.at( "nodeName" ).get_str(); - auto nodeID = infoObj.at( "nodeID" ).get_uint64(); - bool syncNode = false; - bool archiveMode = false; - bool syncFromCatchup = false; - std::string ip, ip6, keyShareName, sgxServerUrl; - size_t t = 0; - uint64_t port = 0, port6 = 0; - try { - ip = infoObj.at( "bindIP" ).get_str(); - } catch ( ... ) { - } - try { - port = infoObj.at( "basePort" ).get_int(); - } catch ( ... ) { - } - try { - ip6 = infoObj.at( "bindIP6" ).get_str(); - } catch ( ... ) { - } - try { - port6 = infoObj.at( "basePort6" ).get_int(); - } catch ( ... ) { - } - try { - syncNode = infoObj.at( "syncNode" ).get_bool(); - } catch ( ... ) { - } - try { - archiveMode = infoObj.at( "archiveMode" ).get_bool(); - } catch ( ... ) { - } - try { - syncFromCatchup = infoObj.at( "syncFromCatchup" ).get_bool(); - } catch ( ... ) { - } - - try { - cp.rotateAfterBlock_ = infoObj.at( "rotateAfterBlock" ).get_int(); - } catch ( ... ) { - } - if ( cp.rotateAfterBlock_ < 0 ) - cp.rotateAfterBlock_ = 0; - - std::string ecdsaKeyName; - try { - ecdsaKeyName = infoObj.at( "ecdsaKeyName" ).get_str(); - } catch ( ... ) { - } - - std::array< std::string, 4 > BLSPublicKeys; - std::array< std::string, 4 > commonBLSPublicKeys; - - try { - js::mObject ima = infoObj.at( "wallets" ).get_obj().at( "ima" ).get_obj(); - - keyShareName = ima.at( "keyShareName" ).get_str(); - - t = ima.at( "t" ).get_int(); - - BLSPublicKeys[0] = ima["BLSPublicKey0"].get_str(); - BLSPublicKeys[1] = ima["BLSPublicKey1"].get_str(); - BLSPublicKeys[2] = ima["BLSPublicKey2"].get_str(); - BLSPublicKeys[3] = ima["BLSPublicKey3"].get_str(); - - commonBLSPublicKeys[0] = ima["commonBLSPublicKey0"].get_str(); - commonBLSPublicKeys[1] = ima["commonBLSPublicKey1"].get_str(); - commonBLSPublicKeys[2] = ima["commonBLSPublicKey2"].get_str(); - commonBLSPublicKeys[3] = ima["commonBLSPublicKey3"].get_str(); - } catch ( ... ) { - // all or nothing - if ( !keyShareName.empty() ) - throw; - } - - cp.nodeInfo = { nodeName, nodeID, ip, static_cast< uint16_t >( port ), ip6, - static_cast< uint16_t >( port6 ), sgxServerUrl, ecdsaKeyName, keyShareName, - BLSPublicKeys, commonBLSPublicKeys, syncNode, archiveMode, syncFromCatchup }; - - auto sChainObj = skaleObj.at( "sChain" ).get_obj(); - SChain s{}; - s.nodes.clear(); - - s.name = sChainObj.at( "schainName" ).get_str(); - s.id = sChainObj.at( "schainID" ).get_uint64(); - s.t = t; - if ( sChainObj.count( "schainOwner" ) ) { - s.owner = dev::jsToAddress( sChainObj.at( "schainOwner" ).get_str() ); - s.blockAuthor = dev::jsToAddress( sChainObj.at( "schainOwner" ).get_str() ); - } - if ( sChainObj.count( "blockAuthor" ) ) - s.blockAuthor = dev::jsToAddress( sChainObj.at( "blockAuthor" ).get_str() ); - - s.snapshotIntervalSec = sChainObj.count( "snapshotIntervalSec" ) ? - sChainObj.at( "snapshotIntervalSec" ).get_int() : - 0; - - s.snapshotDownloadTimeout = sChainObj.count( "snapshotDownloadTimeout" ) ? - sChainObj.at( "snapshotDownloadTimeout" ).get_int() : - 3600; - - s.snapshotDownloadInactiveTimeout = - sChainObj.count( "snapshotDownloadInactiveTimeout" ) ? - sChainObj.at( "snapshotDownloadInactiveTimeout" ).get_int() : - 3600; - - s.emptyBlockIntervalMs = sChainObj.count( "emptyBlockIntervalMs" ) ? - sChainObj.at( "emptyBlockIntervalMs" ).get_int() : - 0; - - s.contractStorageLimit = sChainObj.count( "contractStorageLimit" ) ? - sChainObj.at( "contractStorageLimit" ).get_int64() : - 0; - - s.dbStorageLimit = - sChainObj.count( "dbStorageLimit" ) ? sChainObj.at( "dbStorageLimit" ).get_int64() : 0; - - - if ( sChainObj.count( "maxConsensusStorageBytes" ) ) { - s.consensusStorageLimit = sChainObj.at( "maxConsensusStorageBytes" ).get_int64(); - } - - if ( sChainObj.count( "freeContractDeployment" ) ) - s.freeContractDeployment = sChainObj.at( "freeContractDeployment" ).get_bool(); - - if ( sChainObj.count( "multiTransactionMode" ) ) - s.multiTransactionMode = sChainObj.at( "multiTransactionMode" ).get_bool(); - - if ( sChainObj.count( "revertableFSPatchTimestamp" ) ) - s.revertableFSPatchTimestamp = sChainObj.at( "revertableFSPatchTimestamp" ).get_int64(); - - s.contractStoragePatchTimestamp = - sChainObj.count( "contractStoragePatchTimestamp" ) ? - sChainObj.at( "contractStoragePatchTimestamp" ).get_int64() : - 0; - - s.contractStorageZeroValuePatchTimestamp = - sChainObj.count( "contractStorageZeroValuePatchTimestamp" ) ? - sChainObj.at( "contractStorageZeroValuePatchTimestamp" ).get_int64() : - 0; - - s.verifyDaSigsPatchTimestamp = - sChainObj.count( "verifyDaSigsPatchTimestamp" ) ? - sChainObj.at( "verifyDaSigsPatchTimestamp" ).get_int64() : - 0; - - s.storageDestructionPatchTimestamp = - sChainObj.count( "storageDestructionPatchTimestamp" ) ? - sChainObj.at( "storageDestructionPatchTimestamp" ).get_int64() : - 0; - - s.powCheckPatchTimestamp = sChainObj.count( "powCheckPatchTimestamp" ) ? - sChainObj.at( "powCheckPatchTimestamp" ).get_int64() : - 0; - - s.precompiledConfigPatchTimestamp = - sChainObj.count( "precompiledConfigPatchTimestamp" ) ? - sChainObj.at( "precompiledConfigPatchTimestamp" ).get_int64() : - 0; - - s.pushZeroPatchTimestamp = sChainObj.count( "pushZeroPatchTimestamp" ) ? - sChainObj.at( "pushZeroPatchTimestamp" ).get_int64() : - 0; - - s.skipInvalidTransactionsPatchTimestamp = - sChainObj.count( "skipInvalidTransactionsPatchTimestamp" ) ? - sChainObj.at( "skipInvalidTransactionsPatchTimestamp" ).get_int64() : - 0; - - s.correctForkInPowPatchTimestamp = - sChainObj.count( "correctForkInPowPatchTimestamp" ) ? - sChainObj.at( "correctForkInPowPatchTimestamp" ).get_int64() : - 0; - - if ( sChainObj.count( "nodeGroups" ) ) { - std::vector< NodeGroup > nodeGroups; - for ( const auto& nodeGroupConf : sChainObj["nodeGroups"].get_obj() ) { - NodeGroup nodeGroup; - auto nodeGroupObj = nodeGroupConf.second.get_obj(); - if ( nodeGroupObj["bls_public_key"].is_null() ) - // failed dkg, skip it - continue; - - std::vector< GroupNode > groupNodes; - auto groupNodesObj = nodeGroupObj["nodes"].get_obj(); - for ( const auto& groupNodeConf : groupNodesObj ) { - auto groupNodeConfObj = groupNodeConf.second.get_array(); - u256 sChainIndex = groupNodeConfObj.at( 0 ).get_uint64(); - u256 id = groupNodeConfObj.at( 1 ).get_uint64(); - std::string publicKey = groupNodeConfObj.at( 2 ).get_str(); - if ( publicKey.empty() ) { - BOOST_THROW_EXCEPTION( std::runtime_error( "Empty public key in config" ) ); - } - groupNodes.push_back( { id, sChainIndex, publicKey } ); - } - std::sort( groupNodes.begin(), groupNodes.end(), - []( const GroupNode& lhs, const GroupNode& rhs ) { - return lhs.schainIndex < rhs.schainIndex; - } ); - nodeGroup.nodes = groupNodes; - - std::array< std::string, 4 > nodeGroupBlsPublicKey; - auto nodeGroupBlsPublicKeyObj = nodeGroupObj["bls_public_key"].get_obj(); - nodeGroupBlsPublicKey[0] = nodeGroupBlsPublicKeyObj["blsPublicKey0"].get_str(); - nodeGroupBlsPublicKey[1] = nodeGroupBlsPublicKeyObj["blsPublicKey1"].get_str(); - nodeGroupBlsPublicKey[2] = nodeGroupBlsPublicKeyObj["blsPublicKey2"].get_str(); - nodeGroupBlsPublicKey[3] = nodeGroupBlsPublicKeyObj["blsPublicKey3"].get_str(); - nodeGroup.blsPublicKey = nodeGroupBlsPublicKey; - - if ( !nodeGroupObj["finish_ts"].is_null() ) - nodeGroup.finishTs = nodeGroupObj["finish_ts"].get_uint64(); - else - nodeGroup.finishTs = uint64_t( -1 ); - nodeGroups.push_back( nodeGroup ); - } - std::sort( nodeGroups.begin(), nodeGroups.end(), - []( const NodeGroup& lhs, const NodeGroup& rhs ) { - return lhs.finishTs < rhs.finishTs; - } ); - s.nodeGroups = nodeGroups; - } - - for ( auto nodeConf : sChainObj.at( "nodes" ).get_array() ) { - auto nodeConfObj = nodeConf.get_obj(); - sChainNode node{}; - node.id = nodeConfObj.at( "nodeID" ).get_uint64(); - node.ip = nodeConfObj.at( "ip" ).get_str(); - node.port = nodeConfObj.at( "basePort" ).get_uint64(); - try { - node.ip6 = nodeConfObj.at( "ip6" ).get_str(); - } catch ( ... ) { - node.ip6 = ""; - } - try { - node.port6 = nodeConfObj.at( "basePort6" ).get_uint64(); - } catch ( ... ) { - node.port6 = 0; - } - node.sChainIndex = nodeConfObj.at( "schainIndex" ).get_uint64(); - try { - node.publicKey = nodeConfObj.at( "publicKey" ).get_str(); - } catch ( ... ) { - } - if ( !keyShareName.empty() ) { - try { - node.blsPublicKey[0] = nodeConfObj.at( "blsPublicKey0" ).get_str(); - node.blsPublicKey[1] = nodeConfObj.at( "blsPublicKey1" ).get_str(); - node.blsPublicKey[2] = nodeConfObj.at( "blsPublicKey2" ).get_str(); - node.blsPublicKey[3] = nodeConfObj.at( "blsPublicKey3" ).get_str(); - } catch ( ... ) { - node.blsPublicKey[0] = ""; - node.blsPublicKey[1] = ""; - node.blsPublicKey[2] = ""; - node.blsPublicKey[3] = ""; - } - } - s.nodes.push_back( node ); - } - cp.sChain = s; - cp.vecAdminOrigins.clear(); - if ( infoObj.count( "adminOrigins" ) ) { - for ( auto nodeOrigun : infoObj.at( "adminOrigins" ).get_array() ) { - std::string strOriginWildcardFilter = nodeOrigun.get_str(); - cp.vecAdminOrigins.push_back( strOriginWildcardFilter ); - } - } else { - cp.vecAdminOrigins.push_back( "*" ); - } - } // if skale + if ( obj.count( c_skaleConfig ) ) { + processSkaleConfigItems( cp, obj ); + } auto setOptionalU256Parameter = [¶ms]( u256& _destination, string const& _name ) { if ( params.count( _name ) ) @@ -437,6 +165,285 @@ ChainParams ChainParams::loadConfig( return cp; } +void ChainParams::processSkaleConfigItems( ChainParams& cp, json_spirit::mObject& obj ) { + auto skaleObj = obj[c_skaleConfig].get_obj(); + + auto infoObj = skaleObj.at( "nodeInfo" ).get_obj(); + + auto nodeName = infoObj.at( "nodeName" ).get_str(); + auto nodeID = infoObj.at( "nodeID" ).get_uint64(); + bool syncNode = false; + bool archiveMode = false; + bool syncFromCatchup = false; + string ip, ip6, keyShareName, sgxServerUrl; + size_t t = 0; + uint64_t port = 0, port6 = 0; + try { + ip = infoObj.at( "bindIP" ).get_str(); + } catch ( ... ) { + } + try { + port = infoObj.at( "basePort" ).get_int(); + } catch ( ... ) { + } + try { + ip6 = infoObj.at( "bindIP6" ).get_str(); + } catch ( ... ) { + } + try { + port6 = infoObj.at( "basePort6" ).get_int(); + } catch ( ... ) { + } + try { + syncNode = infoObj.at( "syncNode" ).get_bool(); + } catch ( ... ) { + } + try { + archiveMode = infoObj.at( "archiveMode" ).get_bool(); + } catch ( ... ) { + } + try { + syncFromCatchup = infoObj.at( "syncFromCatchup" ).get_bool(); + } catch ( ... ) { + } + + try { + cp.rotateAfterBlock_ = infoObj.at( "rotateAfterBlock" ).get_int(); + } catch ( ... ) { + } + if ( cp.rotateAfterBlock_ < 0 ) + cp.rotateAfterBlock_ = 0; + + string ecdsaKeyName; + try { + ecdsaKeyName = infoObj.at( "ecdsaKeyName" ).get_str(); + } catch ( ... ) { + } + + array< string, 4 > BLSPublicKeys; + array< string, 4 > commonBLSPublicKeys; + + try { + js::mObject ima = infoObj.at( "wallets" ).get_obj().at( "ima" ).get_obj(); + + keyShareName = ima.at( "keyShareName" ).get_str(); + + t = ima.at( "t" ).get_int(); + + BLSPublicKeys[0] = ima["BLSPublicKey0"].get_str(); + BLSPublicKeys[1] = ima["BLSPublicKey1"].get_str(); + BLSPublicKeys[2] = ima["BLSPublicKey2"].get_str(); + BLSPublicKeys[3] = ima["BLSPublicKey3"].get_str(); + + commonBLSPublicKeys[0] = ima["commonBLSPublicKey0"].get_str(); + commonBLSPublicKeys[1] = ima["commonBLSPublicKey1"].get_str(); + commonBLSPublicKeys[2] = ima["commonBLSPublicKey2"].get_str(); + commonBLSPublicKeys[3] = ima["commonBLSPublicKey3"].get_str(); + } catch ( ... ) { + // all or nothing + if ( !keyShareName.empty() ) + throw; + } + + cp.nodeInfo = { nodeName, nodeID, ip, static_cast< uint16_t >( port ), ip6, + static_cast< uint16_t >( port6 ), sgxServerUrl, ecdsaKeyName, keyShareName, BLSPublicKeys, + commonBLSPublicKeys, syncNode, archiveMode, syncFromCatchup }; + + auto sChainObj = skaleObj.at( "sChain" ).get_obj(); + SChain s{}; + s.nodes.clear(); + + s.name = sChainObj.at( "schainName" ).get_str(); + s.id = sChainObj.at( "schainID" ).get_uint64(); + s.t = t; + if ( sChainObj.count( "schainOwner" ) ) { + s.owner = jsToAddress( sChainObj.at( "schainOwner" ).get_str() ); + s.blockAuthor = jsToAddress( sChainObj.at( "schainOwner" ).get_str() ); + } + if ( sChainObj.count( "blockAuthor" ) ) + s.blockAuthor = jsToAddress( sChainObj.at( "blockAuthor" ).get_str() ); + + s.snapshotIntervalSec = sChainObj.count( "snapshotIntervalSec" ) ? + sChainObj.at( "snapshotIntervalSec" ).get_int() : + 0; + + s.snapshotDownloadTimeout = sChainObj.count( "snapshotDownloadTimeout" ) ? + sChainObj.at( "snapshotDownloadTimeout" ).get_int() : + 3600; + + s.snapshotDownloadInactiveTimeout = + sChainObj.count( "snapshotDownloadInactiveTimeout" ) ? + sChainObj.at( "snapshotDownloadInactiveTimeout" ).get_int() : + 3600; + + s.emptyBlockIntervalMs = sChainObj.count( "emptyBlockIntervalMs" ) ? + sChainObj.at( "emptyBlockIntervalMs" ).get_int() : + 0; + + // negative levelDBReopenIntervalMs means restarts are disabled + s.levelDBReopenIntervalMs = sChainObj.count( "levelDBReopenIntervalMs" ) ? + sChainObj.at( "levelDBReopenIntervalMs" ).get_int64() : + c_defaultLevelDBReopenIntervalMs; + + s.contractStorageLimit = sChainObj.count( "contractStorageLimit" ) ? + sChainObj.at( "contractStorageLimit" ).get_int64() : + 0; + + s.dbStorageLimit = + sChainObj.count( "dbStorageLimit" ) ? sChainObj.at( "dbStorageLimit" ).get_int64() : 0; + + + if ( sChainObj.count( "maxConsensusStorageBytes" ) ) { + s.consensusStorageLimit = sChainObj.at( "maxConsensusStorageBytes" ).get_int64(); + } + + if ( sChainObj.count( "freeContractDeployment" ) ) + s.freeContractDeployment = sChainObj.at( "freeContractDeployment" ).get_bool(); + + if ( sChainObj.count( "multiTransactionMode" ) ) + s.multiTransactionMode = sChainObj.at( "multiTransactionMode" ).get_bool(); + + if ( sChainObj.count( "revertableFSPatchTimestamp" ) ) + s.revertableFSPatchTimestamp = sChainObj.at( "revertableFSPatchTimestamp" ).get_int64(); + + s.contractStoragePatchTimestamp = + sChainObj.count( "contractStoragePatchTimestamp" ) ? + sChainObj.at( "contractStoragePatchTimestamp" ).get_int64() : + 0; + + s.contractStorageZeroValuePatchTimestamp = + sChainObj.count( "contractStorageZeroValuePatchTimestamp" ) ? + sChainObj.at( "contractStorageZeroValuePatchTimestamp" ).get_int64() : + 0; + + s.verifyDaSigsPatchTimestamp = sChainObj.count( "verifyDaSigsPatchTimestamp" ) ? + sChainObj.at( "verifyDaSigsPatchTimestamp" ).get_int64() : + 0; + + s.storageDestructionPatchTimestamp = + sChainObj.count( "storageDestructionPatchTimestamp" ) ? + sChainObj.at( "storageDestructionPatchTimestamp" ).get_int64() : + 0; + + s.powCheckPatchTimestamp = sChainObj.count( "powCheckPatchTimestamp" ) ? + sChainObj.at( "powCheckPatchTimestamp" ).get_int64() : + 0; + + s.precompiledConfigPatchTimestamp = + sChainObj.count( "precompiledConfigPatchTimestamp" ) ? + sChainObj.at( "precompiledConfigPatchTimestamp" ).get_int64() : + 0; + + s.pushZeroPatchTimestamp = sChainObj.count( "pushZeroPatchTimestamp" ) ? + sChainObj.at( "pushZeroPatchTimestamp" ).get_int64() : + 0; + + s.skipInvalidTransactionsPatchTimestamp = + sChainObj.count( "skipInvalidTransactionsPatchTimestamp" ) ? + sChainObj.at( "skipInvalidTransactionsPatchTimestamp" ).get_int64() : + 0; + + s.correctForkInPowPatchTimestamp = + sChainObj.count( "correctForkInPowPatchTimestamp" ) ? + sChainObj.at( "correctForkInPowPatchTimestamp" ).get_int64() : + 0; + + if ( sChainObj.count( "nodeGroups" ) ) { + vector< NodeGroup > nodeGroups; + for ( const auto& nodeGroupConf : sChainObj["nodeGroups"].get_obj() ) { + NodeGroup nodeGroup; + auto nodeGroupObj = nodeGroupConf.second.get_obj(); + if ( nodeGroupObj["bls_public_key"].is_null() ) + // failed dkg, skip it + continue; + + vector< GroupNode > groupNodes; + auto groupNodesObj = nodeGroupObj["nodes"].get_obj(); + for ( const auto& groupNodeConf : groupNodesObj ) { + auto groupNodeConfObj = groupNodeConf.second.get_array(); + u256 sChainIndex = groupNodeConfObj.at( 0 ).get_uint64(); + u256 id = groupNodeConfObj.at( 1 ).get_uint64(); + string publicKey = groupNodeConfObj.at( 2 ).get_str(); + if ( publicKey.empty() ) { + BOOST_THROW_EXCEPTION( runtime_error( "Empty public key in config" ) ); + } + groupNodes.push_back( { id, sChainIndex, publicKey } ); + } + sort( groupNodes.begin(), groupNodes.end(), + []( const GroupNode& lhs, const GroupNode& rhs ) { + return lhs.schainIndex < rhs.schainIndex; + } ); + nodeGroup.nodes = groupNodes; + + array< string, 4 > nodeGroupBlsPublicKey; + auto nodeGroupBlsPublicKeyObj = nodeGroupObj["bls_public_key"].get_obj(); + nodeGroupBlsPublicKey[0] = nodeGroupBlsPublicKeyObj["blsPublicKey0"].get_str(); + nodeGroupBlsPublicKey[1] = nodeGroupBlsPublicKeyObj["blsPublicKey1"].get_str(); + nodeGroupBlsPublicKey[2] = nodeGroupBlsPublicKeyObj["blsPublicKey2"].get_str(); + nodeGroupBlsPublicKey[3] = nodeGroupBlsPublicKeyObj["blsPublicKey3"].get_str(); + nodeGroup.blsPublicKey = nodeGroupBlsPublicKey; + + if ( !nodeGroupObj["finish_ts"].is_null() ) + nodeGroup.finishTs = nodeGroupObj["finish_ts"].get_uint64(); + else + nodeGroup.finishTs = uint64_t( -1 ); + nodeGroups.push_back( nodeGroup ); + } + sort( + nodeGroups.begin(), nodeGroups.end(), []( const NodeGroup& lhs, const NodeGroup& rhs ) { + return lhs.finishTs < rhs.finishTs; + } ); + s.nodeGroups = nodeGroups; + } + + for ( auto nodeConf : sChainObj.at( "nodes" ).get_array() ) { + auto nodeConfObj = nodeConf.get_obj(); + sChainNode node{}; + node.id = nodeConfObj.at( "nodeID" ).get_uint64(); + node.ip = nodeConfObj.at( "ip" ).get_str(); + node.port = nodeConfObj.at( "basePort" ).get_uint64(); + try { + node.ip6 = nodeConfObj.at( "ip6" ).get_str(); + } catch ( ... ) { + node.ip6 = ""; + } + try { + node.port6 = nodeConfObj.at( "basePort6" ).get_uint64(); + } catch ( ... ) { + node.port6 = 0; + } + node.sChainIndex = nodeConfObj.at( "schainIndex" ).get_uint64(); + try { + node.publicKey = nodeConfObj.at( "publicKey" ).get_str(); + } catch ( ... ) { + } + if ( !keyShareName.empty() ) { + try { + node.blsPublicKey[0] = nodeConfObj.at( "blsPublicKey0" ).get_str(); + node.blsPublicKey[1] = nodeConfObj.at( "blsPublicKey1" ).get_str(); + node.blsPublicKey[2] = nodeConfObj.at( "blsPublicKey2" ).get_str(); + node.blsPublicKey[3] = nodeConfObj.at( "blsPublicKey3" ).get_str(); + } catch ( ... ) { + node.blsPublicKey[0] = ""; + node.blsPublicKey[1] = ""; + node.blsPublicKey[2] = ""; + node.blsPublicKey[3] = ""; + } + } + s.nodes.push_back( node ); + } + cp.sChain = s; + + cp.vecAdminOrigins.clear(); + if ( infoObj.count( "adminOrigins" ) ) { + for ( auto nodeOrigun : infoObj.at( "adminOrigins" ).get_array() ) { + string strOriginWildcardFilter = nodeOrigun.get_str(); + cp.vecAdminOrigins.push_back( strOriginWildcardFilter ); + } + } else { + cp.vecAdminOrigins.push_back( "*" ); + } +} ChainParams ChainParams::loadGenesis( string const& _json ) const { ChainParams cp( *this ); diff --git a/libethereum/ChainParams.h b/libethereum/ChainParams.h index c0cb92ee5..60c763398 100644 --- a/libethereum/ChainParams.h +++ b/libethereum/ChainParams.h @@ -24,13 +24,13 @@ #pragma once #include "Account.h" +#include #include #include #include #include -namespace dev { -namespace eth { +namespace dev::eth { class SealEngineFace; struct ChainParams : public ChainOperationParams { @@ -74,6 +74,9 @@ struct ChainParams : public ChainOperationParams { const std::string& getOriginalJson() const; void resetJson() { originalJSON = ""; } + bool checkAdminOriginAllowed( const std::string& origin ) const; + static void processSkaleConfigItems( ChainParams& _cp, json_spirit::mObject& _obj ); + private: void populateFromGenesis( bytes const& _genesisRLP, AccountMap const& _state ); @@ -81,10 +84,6 @@ struct ChainParams : public ChainOperationParams { ChainParams loadGenesis( std::string const& _json ) const; mutable std::string originalJSON; - -public: - bool checkAdminOriginAllowed( const std::string& origin ) const; }; -} // namespace eth -} // namespace dev +} // namespace dev::eth diff --git a/libethereum/Client.cpp b/libethereum/Client.cpp index f2c34239f..19bd071b8 100644 --- a/libethereum/Client.cpp +++ b/libethereum/Client.cpp @@ -47,7 +47,9 @@ #include #ifdef HISTORIC_STATE +#include #include +#include #endif @@ -141,7 +143,12 @@ Client::Client( ChainParams const& _params, int _networkID, m_snapshotAgent( make_shared< SnapshotAgent >( _params.sChain.snapshotIntervalSec, _snapshotManager, m_debugTracer ) ), m_instanceMonitor( _instanceMonitor ), - m_dbPath( _dbPath ) { + m_dbPath( _dbPath ) +#ifdef HISTORIC_STATE + , + m_blockTraceCache( MAX_BLOCK_TRACES_CACHE_ITEMS, MAX_BLOCK_TRACES_CACHE_SIZE ) +#endif +{ #if ( defined __HAVE_SKALED_LOCK_FILE_INDICATING_CRITICAL_STOP__ ) create_lock_file_or_fail( m_dbPath ); #endif /// (defined __HAVE_SKALED_LOCK_FILE_INDICATING_CRITICAL_STOP__) @@ -1252,7 +1259,7 @@ h256 Client::importTransaction( Transaction const& _t ) { ExecutionResult Client::call( Address const& _from, u256 _value, Address _dest, bytes const& _data, - u256 _gas, u256 _gasPrice, + u256 _gasLimit, u256 _gasPrice, #ifdef HISTORIC_STATE BlockNumber _blockNumber, #endif @@ -1265,18 +1272,21 @@ ExecutionResult Client::call( Address const& _from, u256 _value, Address _dest, // historic state try { u256 nonce = historicBlock.mutableState().mutableHistoricState().getNonce( _from ); - u256 gas = _gas == Invalid256 ? gasLimitRemaining() : _gas; + // if the user did not specify transaction gas limit, we give transaction block gas + // limit of gas + u256 gasLimit = _gasLimit == Invalid256 ? historicBlock.gasLimit() : _gasLimit; u256 gasPrice = _gasPrice == Invalid256 ? gasBidPrice() : _gasPrice; - Transaction t( _value, gasPrice, gas, _dest, _data, nonce ); + Transaction t( _value, gasPrice, gasLimit, _dest, _data, nonce ); t.forceSender( _from ); t.forceChainId( chainParams().chainID ); t.ignoreExternalGas(); - if ( _ff == FudgeFactor::Lenient ) { - historicBlock.mutableState().mutableHistoricState().addBalance( - _from, ( u256 )( t.gas() * t.gasPrice() + t.value() ) ); - } - - ret = historicBlock.executeHistoricCall( bc().lastBlockHashes(), t ); + // if we are in a call, we add to the balance of the account + // value needed for the call to guaranteed pass + // geth does a similar thing, we need to check whether it is fully compatible with + // geth + historicBlock.mutableState().mutableHistoricState().addBalance( + _from, ( u256 )( t.gas() * t.gasPrice() + t.value() ) ); + ret = historicBlock.executeHistoricCall( bc().lastBlockHashes(), t, nullptr, 0 ); } catch ( ... ) { cwarn << boost::current_exception_diagnostic_information(); throw; @@ -1290,9 +1300,11 @@ ExecutionResult Client::call( Address const& _from, u256 _value, Address _dest, // TODO there can be race conditions between prev and next line! State readStateForLock = temp.mutableState().createStateReadOnlyCopy(); u256 nonce = max< u256 >( temp.transactionsFrom( _from ), m_tq.maxNonce( _from ) ); - u256 gas = _gas == Invalid256 ? gasLimitRemaining() : _gas; + // if the user did not specify transaction gas limit, we give transaction block gas + // limit of gas + u256 gasLimit = _gasLimit == Invalid256 ? temp.gasLimit() : _gasLimit; u256 gasPrice = _gasPrice == Invalid256 ? gasBidPrice() : _gasPrice; - Transaction t( _value, gasPrice, gas, _dest, _data, nonce ); + Transaction t( _value, gasPrice, gasLimit, _dest, _data, nonce ); t.forceSender( _from ); t.forceChainId( chainParams().chainID ); t.ignoreExternalGas(); @@ -1311,6 +1323,102 @@ ExecutionResult Client::call( Address const& _from, u256 _value, Address _dest, return ret; } + +#ifdef HISTORIC_STATE + +Json::Value Client::traceCall( Address const& _from, u256 _value, Address _to, bytes const& _data, + u256 _gasLimit, u256 _gasPrice, BlockNumber _blockNumber, + Json::Value const& _jsonTraceConfig ) { + try { + Block historicBlock = blockByNumber( _blockNumber ); + auto nonce = historicBlock.mutableState().mutableHistoricState().getNonce( _from ); + // if the user did not specify transaction gas limit, we give transaction block gas + // limit of gas + auto gasLimit = _gasLimit == Invalid256 ? historicBlock.gasLimit() : _gasLimit; + + Transaction t = createTransactionForCallOrTraceCall( + _from, _value, _to, _data, gasLimit, _gasPrice, nonce ); + // record original t.from balance for trace and then give + // lots of gas to it + auto originalFromBalance = historicBlock.mutableState().balance( _from ); + historicBlock.mutableState().mutableHistoricState().addBalance( + _from, ( u256 )( t.gas() * t.gasPrice() + t.value() ) ); + auto traceOptions = TraceOptions::make( _jsonTraceConfig ); + auto tracer = + make_shared< AlethStandardTrace >( t, historicBlock.author(), traceOptions, true ); + tracer->setOriginalFromBalance( originalFromBalance ); + auto er = historicBlock.executeHistoricCall( bc().lastBlockHashes(), t, tracer, 0 ); + return tracer->getJSONResult(); + } catch ( ... ) { + cwarn << boost::current_exception_diagnostic_information(); + throw; + } +} + + +Transaction Client::createTransactionForCallOrTraceCall( const Address& _from, const u256& _value, + const Address& _to, const bytes& _data, const u256& _gasLimit, const u256& _gasPrice, + const u256& _nonce ) const { + auto gasPrice = _gasPrice == Invalid256 ? gasBidPrice() : _gasPrice; + Transaction t( _value, gasPrice, _gasLimit, _to, _data, _nonce ); + // if call or trace call request did not specify from address, zero address is used + auto from = _from ? _from : ZeroAddress; + t.forceSender( from ); + t.forceChainId( chainParams().chainID ); + // call and traceCall do not use PoW + t.ignoreExternalGas(); + return t; +} + + +Json::Value Client::traceBlock( BlockNumber _blockNumber, Json::Value const& _jsonTraceConfig ) { + try { + Block previousBlock = blockByNumber( _blockNumber - 1 ); + Block historicBlock = blockByNumber( _blockNumber ); + + Json::Value traces( Json::arrayValue ); + + auto hash = ClientBase::hashFromNumber( _blockNumber ); + Transactions transactions = this->transactions( hash ); + + auto traceOptions = TraceOptions::make( _jsonTraceConfig ); + + // cache results for better peformance + string key = to_string( _blockNumber ) + traceOptions.toString(); + + auto cachedResult = m_blockTraceCache.getIfExists( key ); + if ( cachedResult.has_value() ) { + return std::any_cast< Json::Value >( cachedResult ); + } + + for ( unsigned k = 0; k < transactions.size(); k++ ) { + Json::Value transactionLog( Json::objectValue ); + Transaction tx = transactions.at( k ); + auto hashString = toHexPrefixed( tx.sha3() ); + transactionLog["txHash"] = hashString; + tx.checkOutExternalGas( chainParams(), _blockNumber ); + auto tracer = + std::make_shared< AlethStandardTrace >( tx, historicBlock.author(), traceOptions ); + auto executionResult = + previousBlock.executeHistoricCall( bc().lastBlockHashes(), tx, tracer, k ); + auto result = tracer->getJSONResult(); + transactionLog["result"] = result; + traces.append( transactionLog ); + } + + auto tracesSize = traces.toStyledString().size(); + m_blockTraceCache.put( key, traces, tracesSize ); + + return traces; + } catch ( std::exception& e ) { + BOOST_THROW_EXCEPTION( std::runtime_error( + "Could not trace block:" + to_string( _blockNumber ) + ":" + e.what() ) ); + } +} + +#endif + + void Client::initHistoricGroupIndex() { if ( number() == 0 ) { historicGroupIndex = 0; diff --git a/libethereum/Client.h b/libethereum/Client.h index d62af01b1..4f7b8ea3d 100644 --- a/libethereum/Client.h +++ b/libethereum/Client.h @@ -37,6 +37,7 @@ #include #include +#include #include #include @@ -55,6 +56,7 @@ #include "StateImporter.h" #include "ThreadSafeQueue.h" +#include #include #include @@ -75,6 +77,12 @@ struct ActivityReport { std::ostream& operator<<( std::ostream& _out, ActivityReport const& _r ); + +#ifdef HISTORIC_STATE +constexpr size_t MAX_BLOCK_TRACES_CACHE_SIZE = 64 * 1024 * 1024; +constexpr size_t MAX_BLOCK_TRACES_CACHE_ITEMS = 1024 * 1024; +#endif + /** * @brief Main API hub for interfacing with Ethereum. */ @@ -121,6 +129,16 @@ class Client : public ClientBase, protected Worker { #endif FudgeFactor _ff = FudgeFactor::Strict ) override; +#ifdef HISTORIC_STATE + Json::Value traceCall( Address const& _from, u256 _value, Address _to, bytes const& _data, + u256 _gas, u256 _gasPrice, BlockNumber _blockNumber, Json::Value const& _jsonTraceConfig ); + Json::Value traceBlock( BlockNumber _blockNumber, Json::Value const& _jsonTraceConfig ); + Transaction createTransactionForCallOrTraceCall( const Address& _from, const u256& _value, + const Address& _to, const bytes& _data, const u256& _gasLimit, const u256& _gasPrice, + const u256& nonce ) const; +#endif + + /// Blocks until all pending transactions have been processed. void flushTransactions() override; @@ -550,6 +568,9 @@ class Client : public ClientBase, protected Worker { const static dev::h256 empty_str_hash; std::shared_ptr< InstanceMonitor > m_instanceMonitor; fs::path m_dbPath; +#ifdef HISTORIC_STATE + cache::lru_ordered_memory_constrained_cache< std::string, Json::Value > m_blockTraceCache; +#endif private: void initHistoricGroupIndex(); diff --git a/libethereum/Transaction.cpp b/libethereum/Transaction.cpp index de556a0f9..5bd057524 100644 --- a/libethereum/Transaction.cpp +++ b/libethereum/Transaction.cpp @@ -124,6 +124,18 @@ std::ostream& dev::eth::operator<<( std::ostream& _out, TransactionException con case TransactionException::InvalidContractDeployer: _out << "InvalidContractDeployer"; break; + case TransactionException::RevertInstruction: + _out << "RevertInstruction"; + break; + case TransactionException::InvalidZeroSignatureFormat: + _out << "InvalidZeroSignatureFormat"; + break; + case TransactionException::AddressAlreadyUsed: + _out << "AddressAlreadyUsed"; + break; + case TransactionException::WouldNotBeInBlock: + _out << "WouldNotBeInBlock"; + break; default: _out << "Unknown"; break; diff --git a/libethereum/ValidationSchemes.cpp b/libethereum/ValidationSchemes.cpp index 1f7243e31..bcd49dd33 100644 --- a/libethereum/ValidationSchemes.cpp +++ b/libethereum/ValidationSchemes.cpp @@ -154,6 +154,7 @@ void validateConfigJson( js::mObject const& _obj ) { { "emptyBlockIntervalMs", { { js::int_type }, JsonFieldPresence::Optional } }, { "emptyBlockIntervalAfterCatchupMs", { { js::int_type }, JsonFieldPresence::Optional } }, + { "leveldbReopenIntervalMs", { { js::int_type }, JsonFieldPresence::Optional } }, { "snapshotIntervalSec", { { js::int_type }, JsonFieldPresence::Optional } }, { "rotateAfterBlock", { { js::int_type }, JsonFieldPresence::Optional } }, { "wallets", { { js::obj_type }, JsonFieldPresence::Optional } }, @@ -246,6 +247,7 @@ void validateConfigJson( js::mObject const& _obj ) { { "emptyBlockIntervalMs", { { js::int_type }, JsonFieldPresence::Optional } }, { "emptyBlockIntervalAfterCatchupMs", { { js::int_type }, JsonFieldPresence::Optional } }, + { "levelDBReopenIntervalMs", { { js::int_type }, JsonFieldPresence::Optional } }, { "snapshotIntervalSec", { { js::int_type }, JsonFieldPresence::Optional } }, { "snapshotDownloadTimeout", { { js::int_type }, JsonFieldPresence::Optional } }, { "snapshotDownloadInactiveTimeout", diff --git a/libevm/LegacyVM.cpp b/libevm/LegacyVM.cpp index a987a3b0c..2fdbf431d 100644 --- a/libevm/LegacyVM.cpp +++ b/libevm/LegacyVM.cpp @@ -231,7 +231,9 @@ void LegacyVM::interpretCases() { // CASE( CREATE2 ) { - ON_OP(); + // for CREATE and CREATE2 we call ON_OP in caseCreate, since it calculates + // correct gas cost + // ON_OP(); if ( !m_schedule->haveCreate2 ) throwBadInstruction(); if ( m_ext->staticCall ) @@ -242,7 +244,9 @@ void LegacyVM::interpretCases() { BREAK CASE( CREATE ) { - ON_OP(); + // for CREATE and CREATE2 we call ON_OP in caseCreate, since it calculates + // correct gas cost + // ON_OP(); if ( m_ext->staticCall ) throwDisallowedStateChange(); @@ -266,9 +270,9 @@ void LegacyVM::interpretCases() { BREAK CASE( RETURN ) { - ON_OP(); m_copyMemSize = 0; updateMem( memNeed( m_SP[0], m_SP[1] ) ); + ON_OP(); updateIOGas(); uint64_t b = ( uint64_t ) m_SP[0]; @@ -280,25 +284,29 @@ void LegacyVM::interpretCases() { CASE( REVERT ) { // Pre-byzantium - if ( !m_schedule->haveRevert ) + if ( !m_schedule->haveRevert ) { + ON_OP(); throwBadInstruction(); + } + - ON_OP(); m_copyMemSize = 0; updateMem( memNeed( m_SP[0], m_SP[1] ) ); + ON_OP(); updateIOGas(); uint64_t b = ( uint64_t ) m_SP[0]; uint64_t s = ( uint64_t ) m_SP[1]; - owning_bytes_ref output{ move( m_mem ), b, s }; - throwRevertInstruction( move( output ) ); + owning_bytes_ref output{ std::move( m_mem ), b, s }; + throwRevertInstruction( std::move( output ) ); } BREAK; CASE( SUICIDE ) { - ON_OP(); - if ( m_ext->staticCall ) + if ( m_ext->staticCall ) { + ON_OP(); throwDisallowedStateChange(); + } // Self-destructs only have gas cost starting with EIP 150 m_runGas = toInt63( m_schedule->suicideGas ); @@ -312,7 +320,7 @@ void LegacyVM::interpretCases() { if ( !m_ext->exists( dest ) ) m_runGas += m_schedule->callNewAccountGas; } - + ON_OP(); updateIOGas(); m_ext->suicide( dest ); m_bounce = 0; @@ -332,8 +340,8 @@ void LegacyVM::interpretCases() { // CASE( MLOAD ) { - ON_OP(); updateMem( toInt63( m_SP[0] ) + 32 ); + ON_OP(); updateIOGas(); m_SPP[0] = ( u256 ) * ( h256 const* ) ( m_mem.data() + ( unsigned ) m_SP[0] ); @@ -341,8 +349,8 @@ void LegacyVM::interpretCases() { NEXT CASE( MSTORE ) { - ON_OP(); updateMem( toInt63( m_SP[0] ) + 32 ); + ON_OP(); updateIOGas(); *( h256* ) &m_mem[( unsigned ) m_SP[0]] = ( h256 ) m_SP[1]; @@ -350,8 +358,8 @@ void LegacyVM::interpretCases() { NEXT CASE( MSTORE8 ) { - ON_OP(); updateMem( toInt63( m_SP[0] ) + 1 ); + ON_OP(); updateIOGas(); m_mem[( unsigned ) m_SP[0]] = ( _byte_ )( m_SP[1] & 0xff ); @@ -359,10 +367,10 @@ void LegacyVM::interpretCases() { NEXT CASE( SHA3 ) { - ON_OP(); m_runGas = toInt63( m_schedule->sha3Gas + ( u512( m_SP[1] ) + 31 ) / 32 * m_schedule->sha3WordGas ); updateMem( memNeed( m_SP[0], m_SP[1] ) ); + ON_OP(); updateIOGas(); uint64_t inOff = ( uint64_t ) m_SP[0]; @@ -372,11 +380,13 @@ void LegacyVM::interpretCases() { NEXT CASE( LOG0 ) { - ON_OP(); - if ( m_ext->staticCall ) + if ( m_ext->staticCall ) { + ON_OP(); throwDisallowedStateChange(); + } logGasMem(); + ON_OP(); updateIOGas(); m_ext->log( @@ -385,11 +395,13 @@ void LegacyVM::interpretCases() { NEXT CASE( LOG1 ) { - ON_OP(); - if ( m_ext->staticCall ) + if ( m_ext->staticCall ) { + ON_OP(); throwDisallowedStateChange(); + } logGasMem(); + ON_OP(); updateIOGas(); m_ext->log( { m_SP[2] }, @@ -398,11 +410,13 @@ void LegacyVM::interpretCases() { NEXT CASE( LOG2 ) { - ON_OP(); - if ( m_ext->staticCall ) + if ( m_ext->staticCall ) { + ON_OP(); throwDisallowedStateChange(); + } logGasMem(); + ON_OP(); updateIOGas(); m_ext->log( { m_SP[2], m_SP[3] }, @@ -411,11 +425,13 @@ void LegacyVM::interpretCases() { NEXT CASE( LOG3 ) { - ON_OP(); - if ( m_ext->staticCall ) + if ( m_ext->staticCall ) { + ON_OP(); throwDisallowedStateChange(); + } logGasMem(); + ON_OP(); updateIOGas(); m_ext->log( { m_SP[2], m_SP[3], m_SP[4] }, @@ -424,11 +440,13 @@ void LegacyVM::interpretCases() { NEXT CASE( LOG4 ) { - ON_OP(); - if ( m_ext->staticCall ) + if ( m_ext->staticCall ) { + ON_OP(); throwDisallowedStateChange(); + } logGasMem(); + ON_OP(); updateIOGas(); m_ext->log( { m_SP[2], m_SP[3], m_SP[4], m_SP[5] }, @@ -603,8 +621,10 @@ void LegacyVM::interpretCases() { CASE( SHL ) { // Pre-constantinople - if ( !m_schedule->haveBitwiseShifting ) + if ( !m_schedule->haveBitwiseShifting ) { + ON_OP(); throwBadInstruction(); + } ON_OP(); updateIOGas(); @@ -618,8 +638,10 @@ void LegacyVM::interpretCases() { CASE( SHR ) { // Pre-constantinople - if ( !m_schedule->haveBitwiseShifting ) + if ( !m_schedule->haveBitwiseShifting ) { + ON_OP(); throwBadInstruction(); + } ON_OP(); updateIOGas(); @@ -633,16 +655,15 @@ void LegacyVM::interpretCases() { CASE( SAR ) { // Pre-constantinople - if ( !m_schedule->haveBitwiseShifting ) + if ( !m_schedule->haveBitwiseShifting ) { + ON_OP(); throwBadInstruction(); - + } ON_OP(); updateIOGas(); - static u256 const hibit = u256( 1 ) << 255; static u256 const allbits = u256( "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ); - u256 shiftee = m_SP[1]; if ( m_SP[0] >= 256 ) { if ( shiftee & hibit ) @@ -661,7 +682,6 @@ void LegacyVM::interpretCases() { CASE( ADDMOD ) { ON_OP(); updateIOGas(); - m_SPP[0] = m_SP[2] ? u256( ( u512( m_SP[0] ) + u512( m_SP[1] ) ) % m_SP[2] ) : 0; } NEXT @@ -669,7 +689,6 @@ void LegacyVM::interpretCases() { CASE( MULMOD ) { ON_OP(); updateIOGas(); - m_SPP[0] = m_SP[2] ? u256( ( u512( m_SP[0] ) * u512( m_SP[1] ) ) % m_SP[2] ) : 0; } NEXT @@ -677,7 +696,6 @@ void LegacyVM::interpretCases() { CASE( SIGNEXTEND ) { ON_OP(); updateIOGas(); - if ( m_SP[0] < 31 ) { unsigned testBit = static_cast< unsigned >( m_SP[0] ) * 8 + 7; u256& number = m_SP[1]; @@ -767,6 +785,7 @@ void LegacyVM::interpretCases() { #else CASE( JUMPTO ) CASE( JUMPIF ) CASE( JUMPV ) CASE( JUMPSUB ) CASE( JUMPSUBV ) CASE( RETURNSUB ) CASE( BEGINSUB ) CASE( BEGINDATA ) CASE( GETLOCAL ) CASE( PUTLOCAL ) { + ON_OP(); throwBadInstruction(); } CONTINUE @@ -1090,7 +1109,6 @@ void LegacyVM::interpretCases() { CASE( ADDRESS ) { ON_OP(); updateIOGas(); - m_SPP[0] = fromAddress( m_ext->myAddress ); } NEXT @@ -1098,7 +1116,6 @@ void LegacyVM::interpretCases() { CASE( ORIGIN ) { ON_OP(); updateIOGas(); - m_SPP[0] = fromAddress( m_ext->origin ); } NEXT @@ -1107,7 +1124,6 @@ void LegacyVM::interpretCases() { m_runGas = toInt63( m_schedule->balanceGas ); ON_OP(); updateIOGas(); - m_SPP[0] = m_ext->balance( asAddress( m_SP[0] ) ); } NEXT @@ -1116,7 +1132,6 @@ void LegacyVM::interpretCases() { CASE( CALLER ) { ON_OP(); updateIOGas(); - m_SPP[0] = fromAddress( m_ext->caller ); } NEXT @@ -1124,7 +1139,6 @@ void LegacyVM::interpretCases() { CASE( CALLVALUE ) { ON_OP(); updateIOGas(); - m_SPP[0] = m_ext->value; } NEXT @@ -1133,7 +1147,6 @@ void LegacyVM::interpretCases() { CASE( CALLDATALOAD ) { ON_OP(); updateIOGas(); - if ( u512( m_SP[0] ) + 31 < m_ext->data.size() ) m_SP[0] = ( u256 ) * ( h256 const* ) ( m_ext->data.data() + ( size_t ) m_SP[0] ); else if ( m_SP[0] >= m_ext->data.size() ) @@ -1153,18 +1166,17 @@ void LegacyVM::interpretCases() { CASE( CALLDATASIZE ) { ON_OP(); updateIOGas(); - m_SPP[0] = m_ext->data.size(); } NEXT CASE( RETURNDATASIZE ) { - if ( !m_schedule->haveReturnData ) + if ( !m_schedule->haveReturnData ) { + ON_OP(); throwBadInstruction(); - + } ON_OP(); updateIOGas(); - m_SPP[0] = m_returnData.size(); } NEXT @@ -1172,7 +1184,6 @@ void LegacyVM::interpretCases() { CASE( CODESIZE ) { ON_OP(); updateIOGas(); - m_SPP[0] = m_ext->code.size(); } NEXT @@ -1181,31 +1192,31 @@ void LegacyVM::interpretCases() { m_runGas = toInt63( m_schedule->extcodesizeGas ); ON_OP(); updateIOGas(); - m_SPP[0] = m_ext->codeSizeAt( asAddress( m_SP[0] ) ); } NEXT CASE( CALLDATACOPY ) { - ON_OP(); m_copyMemSize = toInt63( m_SP[2] ); updateMem( memNeed( m_SP[0], m_SP[2] ) ); + ON_OP(); updateIOGas(); - copyDataToMemory( m_ext->data, m_SP ); } NEXT CASE( RETURNDATACOPY ) { - ON_OP(); - if ( !m_schedule->haveReturnData ) + if ( !m_schedule->haveReturnData ) { + ON_OP(); throwBadInstruction(); + } bigint const endOfAccess = bigint( m_SP[1] ) + bigint( m_SP[2] ); if ( m_returnData.size() < endOfAccess ) throwBufferOverrun( endOfAccess ); m_copyMemSize = toInt63( m_SP[2] ); updateMem( memNeed( m_SP[0], m_SP[2] ) ); + ON_OP(); updateIOGas(); copyDataToMemory( &m_returnData, m_SP ); @@ -1213,32 +1224,31 @@ void LegacyVM::interpretCases() { NEXT CASE( EXTCODEHASH ) { - ON_OP(); - if ( !m_schedule->haveExtcodehash ) + if ( !m_schedule->haveExtcodehash ) { + ON_OP(); throwBadInstruction(); - + } m_runGas = toInt63( m_schedule->extcodehashGas ); + ON_OP(); updateIOGas(); - m_SPP[0] = u256{ m_ext->codeHashAt( asAddress( m_SP[0] ) ) }; } NEXT CASE( CODECOPY ) { - ON_OP(); m_copyMemSize = toInt63( m_SP[2] ); updateMem( memNeed( m_SP[0], m_SP[2] ) ); + ON_OP(); updateIOGas(); - copyDataToMemory( &m_ext->code, m_SP ); } NEXT CASE( EXTCODECOPY ) { - ON_OP(); m_runGas = toInt63( m_schedule->extcodecopyGas ); m_copyMemSize = toInt63( m_SP[3] ); updateMem( memNeed( m_SP[1], m_SP[3] ) ); + ON_OP(); updateIOGas(); Address a = asAddress( m_SP[0] ); @@ -1256,8 +1266,8 @@ void LegacyVM::interpretCases() { NEXT CASE( BLOCKHASH ) { - ON_OP(); m_runGas = toInt63( m_schedule->blockhashGas ); + ON_OP(); updateIOGas(); m_SPP[0] = ( u256 ) m_ext->blockHash( m_SP[0] ); @@ -1511,6 +1521,7 @@ void LegacyVM::interpretCases() { CASE( SLOAD ) { m_runGas = toInt63( m_schedule->sloadGas ); + ON_OP(); updateIOGas(); @@ -1519,11 +1530,15 @@ void LegacyVM::interpretCases() { NEXT CASE( SSTORE ) { - ON_OP(); - if ( m_ext->staticCall ) + if ( m_ext->staticCall ) { + ON_OP(); throwDisallowedStateChange(); + } updateSSGas(); + // ON_OP must be called when m_runGas is already set + ON_OP(); + updateIOGas(); try { @@ -1566,6 +1581,7 @@ void LegacyVM::interpretCases() { NEXT CASE( INVALID ) DEFAULT { + ON_OP(); throwBadInstruction(); } } diff --git a/libevm/LegacyVM.h b/libevm/LegacyVM.h index 8a5e20704..c805f7f11 100644 --- a/libevm/LegacyVM.h +++ b/libevm/LegacyVM.h @@ -36,12 +36,32 @@ class LegacyVM : public VMFace { #endif bytes const& memory() const { return m_mem; } + u256s stack() const { u256s stack( m_SP, m_stackEnd ); reverse( stack.begin(), stack.end() ); return stack; }; + size_t stackSize() const { return m_stackEnd - m_SP; } + +#ifdef HISTORIC_STATE + // these calls are used by tracing + + u256& getStackElement( uint64_t _index ) const { + if ( _index >= stackSize() ) { + BOOST_THROW_EXCEPTION( + std::runtime_error( std::string( "Out of bound stack access" ) ) ); + } + return m_SP[_index]; + } + + evmc_status_code getAndClearLastCallStatus() const; + const bytes& getReturnData() const; + +#endif + + private: u256* m_io_gas_p = 0; uint64_t m_io_gas = 0; @@ -69,11 +89,10 @@ class LegacyVM : public VMFace { /// RETURNDATA buffer for memory returned from direct subcalls. bytes m_returnData; - // space for data stack, grows towards smaller addresses from the end u256 m_stack[1024]; u256* m_stackEnd = &m_stack[1024]; - size_t stackSize() { return m_stackEnd - m_SP; } + #if EIP_615 // space for return stack @@ -91,7 +110,13 @@ class LegacyVM : public VMFace { uint64_t m_PC = 0; // program counter u256* m_SP = m_stackEnd; // stack pointer u256* m_SPP = m_SP; // stack pointer prime (next SP) +#ifdef HISTORIC_STATE + // this is used by tracing + mutable evmc_status_code m_lastCallStatus = EVMC_SUCCESS; +#endif #if EIP_615 + +private: uint64_t* m_RP = m_return - 1; // return pointer #endif diff --git a/libevm/LegacyVMCalls.cpp b/libevm/LegacyVMCalls.cpp index ff6beb71d..e8efa7201 100644 --- a/libevm/LegacyVMCalls.cpp +++ b/libevm/LegacyVMCalls.cpp @@ -128,6 +128,10 @@ void LegacyVM::caseCreate() { } updateMem( memNeed( initOff, initSize ) ); + + // we have calculated gas required. Now we can call ON_OP + ON_OP(); + updateIOGas(); // Clear the return data buffer. This will not free the memory. @@ -148,6 +152,7 @@ void LegacyVM::caseCreate() { CreateResult result = m_ext->create( endowment, gas, initCode, m_OP, salt, m_onOp ); m_SPP[0] = ( u160 ) result.address; // Convert address to integer. + m_returnData = result.output.toBytes(); *m_io_gas_p -= ( createGas - gas ); @@ -181,6 +186,10 @@ void LegacyVM::caseCall() { m_returnData = result.output.toBytes(); m_SPP[0] = result.status == EVMC_SUCCESS ? 1 : 0; +#ifdef HISTORIC_STATE + // this is used by tracing + m_lastCallStatus = result.status; +#endif } else m_SPP[0] = 0; m_io_gas += uint64_t( callParams->gas ); @@ -263,3 +272,17 @@ bool LegacyVM::caseCallSetup( CallParameters* callParams, bytesRef& o_output ) { } return false; } + +#ifdef HISTORIC_STATE +evmc_status_code LegacyVM::getAndClearLastCallStatus() const { + auto ret = m_lastCallStatus; + m_lastCallStatus = evmc_status_code::EVMC_SUCCESS; + return ret; +} + + +const bytes& LegacyVM::getReturnData() const { + return m_returnData; +} + +#endif diff --git a/libevm/LegacyVMConfig.h b/libevm/LegacyVMConfig.h index 9908d712c..596433270 100644 --- a/libevm/LegacyVMConfig.h +++ b/libevm/LegacyVMConfig.h @@ -64,7 +64,12 @@ namespace eth { #endif #if EVM_OPTIMIZE #define EVM_REPLACE_CONST_JUMP true +// We do not optimize constant pool on +// historic node because it introduces a non-standard instruction PUSHC +// which leads to non-geth-compatibe traces +#ifndef HISTORIC_STATE #define EVM_USE_CONSTANT_POOL true +#endif #define EVM_DO_FIRST_PASS_OPTIMIZATION ( EVM_REPLACE_CONST_JUMP || EVM_USE_CONSTANT_POOL ) #endif diff --git a/libevm/VMFace.h b/libevm/VMFace.h index bef7c17e5..d463a2883 100644 --- a/libevm/VMFace.h +++ b/libevm/VMFace.h @@ -43,6 +43,14 @@ ETH_SIMPLE_EXCEPTION_VM( InvalidContractDeployer ); /// differently than defined consensus exceptions. struct InternalVMError : Exception {}; +#ifdef HISTORIC_STATE +struct VMTracingError : Exception { + std::string message; + explicit VMTracingError( const std::string& message ) : message( message ) {} + const char* what() const noexcept override { return message.c_str(); } +}; +#endif + /// Error info for EVMC status code. using errinfo_evmcStatusCode = boost::error_info< struct tag_evmcStatusCode, evmc_status_code >; diff --git a/libhistoric/AlethExecutive.cpp b/libhistoric/AlethExecutive.cpp index ebc687dd0..f65a5bc58 100644 --- a/libhistoric/AlethExecutive.cpp +++ b/libhistoric/AlethExecutive.cpp @@ -356,6 +356,13 @@ bool AlethExecutive::go( OnOpFunc const& _onOp ) { << *boost::get_error_info< errinfo_evmcStatusCode >( _e ) << ")"; revert(); throw; +#ifdef HISTORIC_STATE + } catch ( VMTracingError const& _e ) { + cwarn << "Tracing error: " << *boost::get_error_info< errinfo_evmcStatusCode >( _e ) + << ")"; + revert(); + throw; +#endif } catch ( Exception const& _e ) { // TODO: AUDIT: check that this can never reasonably happen. Consider what to do if it // does. diff --git a/libhistoric/AlethExtVM.cpp b/libhistoric/AlethExtVM.cpp index 4e4c2eb5a..ab7f12199 100644 --- a/libhistoric/AlethExtVM.cpp +++ b/libhistoric/AlethExtVM.cpp @@ -56,7 +56,7 @@ void goOnOffloadedStack( AlethExecutive& _e, OnOpFunc const& _onOp ) { _e.go( _onOp ); } catch ( ... ) { exception = boost::current_exception(); // Catch all exceptions to be rethrown in - // parent thread. + // parent thread. } } }.join(); @@ -77,17 +77,26 @@ void go( unsigned _depth, AlethExecutive& _e, OnOpFunc const& _onOp ) { _e.go( _onOp ); } -evmc_status_code transactionExceptionToEvmcStatusCode( TransactionException ex ) noexcept { - switch ( ex ) { +} // anonymous namespace + + +evmc_status_code AlethExtVM::transactionExceptionToEvmcStatusCode( TransactionException _ex ) { + switch ( _ex ) { case TransactionException::None: return EVMC_SUCCESS; case TransactionException::RevertInstruction: return EVMC_REVERT; + case TransactionException::OutOfGasIntrinsic: + return EVMC_OUT_OF_GAS; + case TransactionException::OutOfGas: return EVMC_OUT_OF_GAS; + case TransactionException::OutOfGasBase: + return EVMC_OUT_OF_GAS; + case TransactionException::BadInstruction: return EVMC_UNDEFINED_INSTRUCTION; @@ -97,16 +106,17 @@ evmc_status_code transactionExceptionToEvmcStatusCode( TransactionException ex ) case TransactionException::StackUnderflow: return EVMC_STACK_UNDERFLOW; - case TransactionException ::BadJumpDestination: + case TransactionException::BadJumpDestination: return EVMC_BAD_JUMP_DESTINATION; + case TransactionException::InvalidContractDeployer: + return EVMC_CONTRACT_VALIDATION_FAILURE; + default: return EVMC_FAILURE; } } -} // anonymous namespace - CallResult AlethExtVM::call( CallParameters& _p ) { dev::eth::AlethExecutive e{ m_s, envInfo(), m_sealEngine, depth + 1 }; diff --git a/libhistoric/AlethExtVM.h b/libhistoric/AlethExtVM.h index 4e63e0674..41eed8015 100644 --- a/libhistoric/AlethExtVM.h +++ b/libhistoric/AlethExtVM.h @@ -94,6 +94,8 @@ class AlethExtVM : public ExtVMFace { /// Hash of a block if within the last 256 blocks, or h256() otherwise. h256 blockHash( u256 _number ) final; + static evmc_status_code transactionExceptionToEvmcStatusCode( TransactionException ex ); + private: EVMSchedule const& initEvmSchedule( int64_t _blockNumber, u256 const& _version ) const { // If _version is latest for the block, select corresponding latest schedule. diff --git a/libhistoric/AlethStandardTrace.cpp b/libhistoric/AlethStandardTrace.cpp index 2c93ece95..affcdf988 100644 --- a/libhistoric/AlethStandardTrace.cpp +++ b/libhistoric/AlethStandardTrace.cpp @@ -1,95 +1,592 @@ -// Aleth: Ethereum C++ client, tools and libraries. -// Copyright 2014-2019 Aleth Authors. -// Licensed under the GNU General Public License, Version 3. +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#ifdef HISTORIC_STATE #include "AlethStandardTrace.h" -#include "libethereum/ExtVM.h" -#include "libevm/LegacyVM.h" +#include "FunctionCallRecord.h" +#include "TraceOptions.h" +#include + +namespace dev::eth { -namespace dev { -namespace eth { -namespace { -bool changesStorage( Instruction _inst ) { - return _inst == Instruction::SSTORE; +TraceOptions eth::AlethStandardTrace::getOptions() const { + STATE_CHECK( m_isFinalized ) + return m_options; } -} // namespace +void AlethStandardTrace::analyzeInstructionAndRecordNeededInformation( uint64_t, Instruction& _inst, + uint64_t _gasRemaining, const ExtVMFace* _face, AlethExtVM& _ext, const LegacyVM* _vm ) { + STATE_CHECK( _face ) + STATE_CHECK( _vm ) + STATE_CHECK( !m_isFinalized ) -void AlethStandardTrace::operator()( uint64_t _steps, uint64_t PC, Instruction inst, - bigint newMemSize, bigint gasCost, bigint gas, VMFace const* _vm, ExtVMFace const* voidExt ) { - ( void ) _steps; + // check if instruction depth changed. This means a function has been called or has returned + processFunctionCallOrReturnIfHappened( _ext, _vm, ( uint64_t ) _gasRemaining ); - ExtVM const& ext = dynamic_cast< ExtVM const& >( *voidExt ); - auto vm = dynamic_cast< LegacyVM const* >( _vm ); - Json::Value r( Json::objectValue ); - - Json::Value stack( Json::arrayValue ); - if ( vm && !m_options.disableStack ) { - // Try extracting information about the stack from the VM is supported. - for ( auto const& i : vm->stack() ) - stack.append( toCompactHexPrefixed( i, 1 ) ); - r["stack"] = stack; - } - - bool newContext = false; - Instruction lastInst = Instruction::STOP; - - if ( m_lastInst.size() == ext.depth ) { - // starting a new context - assert( m_lastInst.size() == ext.depth ); - m_lastInst.push_back( inst ); - newContext = true; - } else if ( m_lastInst.size() == ext.depth + 2 ) { - m_lastInst.pop_back(); - lastInst = m_lastInst.back(); - } else if ( m_lastInst.size() == ext.depth + 1 ) { - // continuing in previous context - lastInst = m_lastInst.back(); - m_lastInst.back() = inst; + m_accessedAccounts.insert( _ext.myAddress ); + + + // main analysis switch + // analyze and record acceses to storage and accounts. as well as return data and logs + vector< uint8_t > returnData; + uint64_t logTopicsCount = 0; + switch ( _inst ) { + // record storage accesses + case Instruction::SLOAD: + // SLOAD - record storage access + // the stackSize() check prevents malicios code crashing the tracer + // by issuing SLOAD with nothing on the stack + if ( _vm->stackSize() > 0 ) { + m_accessedStorageValues[_ext.myAddress][_vm->getStackElement( 0 )] = + _ext.store( _vm->getStackElement( 0 ) ); + } + break; + case Instruction::SSTORE: + // STORAGE - record storage access + if ( _vm->stackSize() > 1 ) { + m_accessedStorageValues[_ext.myAddress][_vm->getStackElement( 0 )] = + _vm->getStackElement( 1 ); + } + break; + // NOW HANDLE CONTRACT FUNCTION CALL INSTRUCTIONS + case Instruction::CALL: + case Instruction::CALLCODE: + case Instruction::DELEGATECALL: + case Instruction::STATICCALL: + // record the contract that is called + if ( _vm->stackSize() > 1 ) { + auto address = asAddress( _vm->getStackElement( 1 ) ); + m_accessedAccounts.insert( address ); + } + break; + // NOW HANDLE SUICIDE + case Instruction::SUICIDE: + if ( _vm->stackSize() > 0 ) { + m_accessedAccounts.insert( asAddress( _vm->getStackElement( 0 ) ) ); + } + break; + // NOW HANDLE LOGS + case Instruction::LOG0: + case Instruction::LOG1: + case Instruction::LOG2: + case Instruction::LOG3: + case Instruction::LOG4: { + logTopicsCount = ( uint64_t ) _inst - ( uint64_t ) Instruction::LOG0; + STATE_CHECK( logTopicsCount <= 4 ) + if ( _vm->stackSize() < 2 + logTopicsCount ) // incorrectly issued log instruction + break; + auto logData = extractSmartContractMemoryByteArrayFromStackPointer( _vm ); + vector< u256 > topics; + for ( uint64_t i = 0; i < logTopicsCount; i++ ) { + topics.push_back( _vm->getStackElement( 2 + i ) ); + }; + getCurrentlyExecutingFunctionCall()->addLogEntry( logData, topics ); + } + default: + break; + } +} + +void AlethStandardTrace::processFunctionCallOrReturnIfHappened( + const AlethExtVM& _ext, const LegacyVM* _vm, uint64_t _gasRemaining ) { + STATE_CHECK( !m_isFinalized ) + STATE_CHECK( _vm ) + + auto currentDepth = _ext.depth; + + // check if instruction depth changed. This means a function has been called or has returned + + if ( currentDepth == getLastOpRecord()->m_depth + 1 ) { + recordFunctionIsCalled( + _ext.caller, _ext.myAddress, _gasRemaining, getInputData( _ext ), _ext.value ); + } else if ( currentDepth == getLastOpRecord()->m_depth - 1 ) { + auto status = _vm->getAndClearLastCallStatus(); + + recordFunctionReturned( status, _vm->getReturnData(), + getCurrentlyExecutingFunctionCall()->getGasRemainingBeforeCall() - _gasRemaining ); + } else { + // depth did not increase or decrease by one, therefore it should be the same + STATE_CHECK( currentDepth == getLastOpRecord()->m_depth ) + } +} + +vector< uint8_t > AlethStandardTrace::getInputData( const AlethExtVM& _ext ) const { + if ( getLastOpRecord()->m_op == Instruction::CREATE || + getLastOpRecord()->m_op == Instruction::CREATE2 ) { + // we are in a constructor code, so input to the function is current + // code + return _ext.code; + } else { + // we are in a regular function so input is inputData field of _ext + return _ext.data.toVector(); + } +} + +const Address& AlethStandardTrace::getFrom() const { + STATE_CHECK( m_isFinalized ) + return m_from; +} + +vector< uint8_t > AlethStandardTrace::extractSmartContractMemoryByteArrayFromStackPointer( + const LegacyVM* _vm ) { + STATE_CHECK( _vm ) + + vector< uint8_t > result{}; + + if ( _vm->stackSize() > 2 ) { + auto b = ( uint32_t ) _vm->getStackElement( 0 ); + auto s = ( uint32_t ) _vm->getStackElement( 1 ); + if ( _vm->memory().size() > b + s ) { + result = { _vm->memory().begin() + b, _vm->memory().begin() + b + s }; + } + } + return result; +} + +void AlethStandardTrace::recordFunctionIsCalled( const Address& _from, const Address& _to, + uint64_t _gasLimit, const vector< uint8_t >& _inputData, const u256& _value ) { + STATE_CHECK( !m_isFinalized ) + + auto functionCall = make_shared< FunctionCallRecord >( getLastOpRecord()->m_op, _from, _to, + _gasLimit, m_currentlyExecutingFunctionCall, _inputData, _value, + getLastOpRecord()->m_depth + 1, getLastOpRecord()->m_gasRemaining ); + + if ( getLastOpRecord()->m_depth >= 0 ) { + // we are not in the top smartcontract call + // add this call to the as a nested call to the currently + // executing function call + STATE_CHECK( getCurrentlyExecutingFunctionCall()->getDepth() == getLastOpRecord()->m_depth ) + getCurrentlyExecutingFunctionCall()->addNestedCall( functionCall ); + + auto lastOpRecordIndex = m_executionRecordSequence->size() - 1; + auto lastOp = getLastOpRecord()->m_op; + + if ( lastOp == Instruction::CALL || lastOp == Instruction::DELEGATECALL || + lastOp == Instruction::CALLCODE || lastOp == Instruction::STATICCALL ) { + STATE_CHECK( m_callInstructionCounterToFunctionRecord.count( lastOpRecordIndex ) == 0 ); + m_callInstructionCounterToFunctionRecord.emplace( lastOpRecordIndex, functionCall ); + } + } else { - cwarn << "GAA!!! Tracing VM and more than one new/deleted stack frame between steps!"; - cwarn << "Attmepting naive recovery..."; - m_lastInst.resize( ext.depth + 1 ); + // the top function is called + // this happens at the beginning of the execution. When this happens, we init + // m_executionRecordSequence.m_depth to -1 + STATE_CHECK( getLastOpRecord()->m_depth == -1 ) + STATE_CHECK( !m_currentlyExecutingFunctionCall ) + // at init, m_topFuntionCall is null, set it now. + setTopFunctionCall( functionCall ); + } + // set the currently executing call to the funtionCall we just created + setCurrentlyExecutingFunctionCall( functionCall ); +} + +void AlethStandardTrace::setTopFunctionCall( + const shared_ptr< FunctionCallRecord >& _topFunctionCall ) { + STATE_CHECK( _topFunctionCall ) + STATE_CHECK( !m_isFinalized ) + m_topFunctionCall = _topFunctionCall; +} + +void AlethStandardTrace::recordFunctionReturned( + evmc_status_code _status, const vector< uint8_t >& _returnData, uint64_t _gasUsed ) { + STATE_CHECK( getLastOpRecord()->m_gasRemaining >= getLastOpRecord()->m_opGas ) + STATE_CHECK( m_currentlyExecutingFunctionCall ) + STATE_CHECK( !m_isFinalized ) + + // record return values + getCurrentlyExecutingFunctionCall()->setReturnValues( _status, _returnData, _gasUsed ); + + if ( m_currentlyExecutingFunctionCall == m_topFunctionCall ) { + // the top function returned. This is the end of the execution. + return; + } else { + // move m_currentlyExecutingFunctionCall to the parent function + // we are using a weak pointer here to avoid circular references in shared pointers + auto parentCall = getCurrentlyExecutingFunctionCall()->getParentCall().lock(); + setCurrentlyExecutingFunctionCall( parentCall ); + } +} + +// the getter functions are called by printer classes after the trace has been generated +const shared_ptr< FunctionCallRecord >& AlethStandardTrace::getTopFunctionCall() const { + STATE_CHECK( m_isFinalized ) + return m_topFunctionCall; +} + +// get the printed result. This happens at the end of the execution +Json::Value AlethStandardTrace::getJSONResult() const { + STATE_CHECK( m_isFinalized ) + STATE_CHECK( !m_jsonTrace.isNull() ) + return m_jsonTrace; +} + +uint64_t AlethStandardTrace::getTotalGasUsed() const { + STATE_CHECK( m_isFinalized ) + return m_totalGasUsed; +} + +AlethStandardTrace::AlethStandardTrace( + Transaction& _t, const Address& _blockAuthor, const TraceOptions& _options, bool _isCall ) + : m_from{ _t.from() }, + m_to( _t.to() ), + m_options( _options ), + // if it is a call trace, the transaction does not have signature + // therefore, its hash should not include signature + m_txHash( _t.sha3( _isCall ? dev::eth::WithoutSignature : dev::eth::WithSignature ) ), + m_noopTracePrinter( *this ), + m_fourByteTracePrinter( *this ), + m_callTracePrinter( *this ), + m_replayTracePrinter( *this ), + m_prestateTracePrinter( *this ), + m_defaultTracePrinter( *this ), + m_tracePrinters{ { TraceType::DEFAULT_TRACER, m_defaultTracePrinter }, + { TraceType::PRESTATE_TRACER, m_prestateTracePrinter }, + { TraceType::CALL_TRACER, m_callTracePrinter }, + { TraceType::REPLAY_TRACER, m_replayTracePrinter }, + { TraceType::FOUR_BYTE_TRACER, m_fourByteTracePrinter }, + { TraceType::NOOP_TRACER, m_noopTracePrinter } }, + m_blockAuthor( _blockAuthor ), + m_isCall( _isCall ), + m_value( _t.value() ), + m_gasLimit( _t.gas() ), + m_inputData( _t.data() ), + m_gasPrice( _t.gasPrice() ) { + // set the initial lastOpRecord + m_executionRecordSequence = make_shared< vector< shared_ptr< OpExecutionRecord > > >(); + m_executionRecordSequence->push_back( make_shared< OpExecutionRecord >( + // the top function is executed at depth 0 + // therefore it is called from depth -1 + -1, + // when we start execution a user transaction the top level function can be a call + // or a contract create + _t.isCreation() ? Instruction::CREATE : Instruction::CALL, 0, 0, 0, 0, "" ) ); + + + // mark from and to accounts as accessed + m_accessedAccounts.insert( m_from ); + m_accessedAccounts.insert( m_to ); +} + +const u256& AlethStandardTrace::getGasLimit() const { + STATE_CHECK( m_isFinalized ) + return m_gasLimit; +} + +void AlethStandardTrace::setOriginalFromBalance( const u256& _originalFromBalance ) { + STATE_CHECK( !m_isFinalized ) + m_originalFromBalance = _originalFromBalance; +} + +/* + * This function is called by EVM on each instruction + */ +void AlethStandardTrace::operator()( uint64_t _counter, uint64_t _pc, Instruction _inst, bigint, + bigint _gasOpGas, bigint _gasRemaining, VMFace const* _vm, ExtVMFace const* _ext ) { + STATE_CHECK( !m_isFinalized ) + if ( _counter ) { + recordMinerPayment( u256( _gasOpGas ) ); + } + + recordInstructionIsExecuted( _pc, _inst, _gasOpGas, _gasRemaining, _vm, _ext ); +} + +// this will be called each time before an instruction is executed by evm +void AlethStandardTrace::recordInstructionIsExecuted( uint64_t _pc, Instruction _inst, + bigint _gasOpGas, bigint _gasRemaining, VMFace const* _vm, ExtVMFace const* _voidExt ) { + STATE_CHECK( _vm ) + STATE_CHECK( _voidExt ) + STATE_CHECK( !m_isFinalized ) + + // remove const qualifier since we need to set tracing values in AlethExtVM + AlethExtVM& ext = ( AlethExtVM& ) ( *_voidExt ); + auto vm = dynamic_cast< LegacyVM const* >( _vm ); + if ( !vm ) { + BOOST_THROW_EXCEPTION( std::runtime_error( std::string( "Null _vm in" ) + __FUNCTION__ ) ); + } + + analyzeInstructionAndRecordNeededInformation( + _pc, _inst, ( uint64_t ) _gasRemaining, _voidExt, ext, vm ); + + auto executionRecord = createOpExecutionRecord( _pc, _inst, _gasOpGas, _gasRemaining, ext, vm ); + STATE_CHECK( executionRecord ) + STATE_CHECK( m_executionRecordSequence ) + + m_executionRecordSequence->push_back( executionRecord ); +} + +shared_ptr< OpExecutionRecord > AlethStandardTrace::createOpExecutionRecord( uint64_t _pc, + Instruction& _inst, const bigint& _gasOpGas, const bigint& _gasRemaining, const AlethExtVM& ext, + const LegacyVM* _vm ) { + STATE_CHECK( _vm ) + + string opName( instructionInfo( _inst ).name ); + + // make strings compatible to geth trace + if ( opName == "JUMPCI" ) { + opName = "JUMPI"; + } else if ( opName == "JUMPC" ) { + opName = "JUMP"; + } else if ( opName == "SHA3" ) { + opName = "KECCAK256"; } - if ( vm ) { - bytes const& memory = vm->memory(); - Json::Value memJson( Json::arrayValue ); - if ( !m_options.disableMemory ) { - for ( unsigned i = 0; i < memory.size(); i += 32 ) { - bytesConstRef memRef( memory.data() + i, 32 ); - memJson.append( toHex( memRef ) ); + auto executionRecord = std::make_shared< OpExecutionRecord >( ext.depth, _inst, + ( uint64_t ) _gasRemaining, ( uint64_t ) _gasOpGas, _pc, ext.sub.refunds, opName ); + + // this info is only required by DEFAULT_TRACER + if ( m_options.tracerType == TraceType::DEFAULT_TRACER || + m_options.tracerType == TraceType::ALL_TRACER ) { + if ( !m_options.disableStorage ) { + if ( _inst == Instruction::SSTORE || _inst == Instruction::SLOAD ) { + executionRecord->m_accessedStorageValues = + std::make_shared< std::map< u256, u256 > >( + m_accessedStorageValues[ext.myAddress] ); } - r["memory"] = memJson; } - r["memSize"] = static_cast< uint64_t >( memory.size() ); - } - - if ( !m_options.disableStorage && - ( m_options.fullStorage || changesStorage( lastInst ) || newContext ) ) { - Json::Value storage( Json::objectValue ); - for ( auto const& i : ext.state().storage( ext.myAddress ) ) - storage[toCompactHexPrefixed( i.second.first, 1 )] = - toCompactHexPrefixed( i.second.second, 1 ); - r["storage"] = storage; - } - - r["op"] = static_cast< uint8_t >( inst ); - if ( m_showMnemonics ) - r["opName"] = instructionInfo( inst ).name; - r["pc"] = PC; - r["gas"] = toString( gas ); - r["gasCost"] = toString( gasCost ); - r["depth"] = ext.depth + 1; // depth in standard trace is 1-based - if ( !!newMemSize ) - r["memexpand"] = toString( newMemSize ); - - if ( m_outValue ) - m_outValue->append( r ); - else - *m_outStream << m_fastWriter.write( r ) << std::flush; -} -} // namespace eth -} // namespace dev + + if ( !m_options.disableStack ) { + executionRecord->m_stack = std::make_shared< u256s >( _vm->stack() ); + } + + if ( m_options.enableMemory ) { + executionRecord->m_memory = make_shared< bytes >( _vm->memory() ); + } + } + + return executionRecord; +} + + +string AlethStandardTrace::toGethCompatibleCompactHexPrefixed( const u256& _value ) { + auto hexStr = toCompactHex( _value ); + // now make it compatible with the way geth prints string + if ( hexStr.empty() ) { + hexStr = "0"; + } else if ( hexStr.front() == '0' ) { + hexStr = hexStr.substr( 1 ); + } + return "0x" + hexStr; +} + +// execution completed. Now finalize the trace and use the tracer that the user requested +// to print the resulting trace to json +void eth::AlethStandardTrace::finalizeAndPrintTrace( + ExecutionResult& _er, HistoricState& _statePre, HistoricState& _statePost ) { + m_totalGasUsed = ( uint64_t ) _er.gasUsed; + + m_output = _er.output; + m_deployedContractAddress = _er.newAddress; + m_evmcStatusCode = AlethExtVM::transactionExceptionToEvmcStatusCode( _er.excepted ); + + STATE_CHECK( m_topFunctionCall == m_currentlyExecutingFunctionCall ) + + // if transaction is not just ETH transfer + // record return of the top function. + if ( m_topFunctionCall ) { + recordFunctionReturned( m_evmcStatusCode, m_output, m_totalGasUsed ); + } + + recordMinerFeePayment( _statePost ); + + // we are done. Set the trace to finalized + STATE_CHECK( !m_isFinalized.exchange( true ) ) + // now print trace + printTrace( _er, _statePre, _statePost ); +} + +void eth::AlethStandardTrace::recordMinerFeePayment( HistoricState& _statePost ) { + if ( !m_isCall ) { // geth does not record miner fee payments in call traces + auto fee = m_gasPrice * m_totalGasUsed; + auto fromPostBalance = _statePost.balance( m_from ); + STATE_CHECK( fromPostBalance >= fee ) + _statePost.setBalance( m_from, fromPostBalance - fee ); + auto minerBalance = _statePost.balance( m_blockAuthor ); + _statePost.setBalance( m_blockAuthor, minerBalance + fee ); + } +} + +const bytes& AlethStandardTrace::getOutput() const { + STATE_CHECK( m_isFinalized ) + return m_output; +} + +bool AlethStandardTrace::isFailed() const { + STATE_CHECK( m_isFinalized ) + return m_evmcStatusCode != EVMC_SUCCESS; +} + +void eth::AlethStandardTrace::printTrace( ExecutionResult& _er, const HistoricState& _statePre, + const HistoricState& _statePost ) { // now print the trace + m_jsonTrace = Json::Value( Json::objectValue ); + // now run the trace that the user wants based on options provided + if ( m_tracePrinters.count( m_options.tracerType ) > 0 ) { + m_tracePrinters.at( m_options.tracerType ).print( m_jsonTrace, _er, _statePre, _statePost ); + } else if ( m_options.tracerType == TraceType::ALL_TRACER ) { + printAllTraces( m_jsonTrace, _er, _statePre, _statePost ); + } else { + // this should never happen + STATE_CHECK( false ); + } +} + +// print all supported traces. This is useful for testing. +void eth::AlethStandardTrace::printAllTraces( Json::Value& _jsonTrace, ExecutionResult& _er, + const HistoricState& _statePre, const HistoricState& _statePost ) { + STATE_CHECK( _jsonTrace.isObject() ) + STATE_CHECK( m_isFinalized ) + Json::Value result = Json::Value( Json::ValueType::objectValue ); + + for ( auto&& entry : m_tracePrinters ) { + TracePrinter& printer = entry.second; + printer.print( result, _er, _statePre, _statePost ); + m_jsonTrace[printer.getJsonName()] = result; + result.clear(); + } +} + +const h256& AlethStandardTrace::getTxHash() const { + STATE_CHECK( m_isFinalized ) + return m_txHash; +} + +const set< Address >& AlethStandardTrace::getAccessedAccounts() const { + STATE_CHECK( m_isFinalized ) + return m_accessedAccounts; +} + +const map< Address, map< u256, u256 > >& AlethStandardTrace::getAccessedStorageValues() const { + STATE_CHECK( m_isFinalized ) + return m_accessedStorageValues; +} + +const shared_ptr< vector< shared_ptr< OpExecutionRecord > > >& +AlethStandardTrace::getOpRecordsSequence() const { + STATE_CHECK( m_isFinalized ) + STATE_CHECK( m_executionRecordSequence ); + return m_executionRecordSequence; +} + +const shared_ptr< FunctionCallRecord >& AlethStandardTrace::getCurrentlyExecutingFunctionCall() + const { + STATE_CHECK( !m_isFinalized ) + STATE_CHECK( m_currentlyExecutingFunctionCall ) + return m_currentlyExecutingFunctionCall; +} + +void AlethStandardTrace::setCurrentlyExecutingFunctionCall( + const shared_ptr< FunctionCallRecord >& _currentlyExecutingFunctionCall ) { + STATE_CHECK( !m_isFinalized ) + STATE_CHECK( _currentlyExecutingFunctionCall ) + m_currentlyExecutingFunctionCall = _currentlyExecutingFunctionCall; +} + +const Address& AlethStandardTrace::getBlockAuthor() const { + STATE_CHECK( m_isFinalized ) + return m_blockAuthor; +} + +const u256& AlethStandardTrace::getMinerPayment() const { + STATE_CHECK( m_isFinalized ) + return m_minerPayment; +} + +void AlethStandardTrace::recordMinerPayment( u256 _minerGasPayment ) { + STATE_CHECK( !m_isFinalized ) + m_minerPayment = _minerGasPayment; + // add miner to the list of accessed accounts, since the miner is paid + // transaction fee + m_accessedAccounts.insert( m_blockAuthor ); +} + +bool AlethStandardTrace::isCall() const { + STATE_CHECK( m_isFinalized ) + return m_isCall; +} + +const u256& AlethStandardTrace::getOriginalFromBalance() const { + STATE_CHECK( m_isFinalized ) + return m_originalFromBalance; +} + +const bytes& AlethStandardTrace::getInputData() const { + STATE_CHECK( m_isFinalized ) + return m_inputData; +} + +const u256& AlethStandardTrace::getValue() const { + STATE_CHECK( m_isFinalized ) + return m_value; +} + +const Address& AlethStandardTrace::getTo() const { + STATE_CHECK( m_isFinalized ) + return m_to; +} + +const u256& AlethStandardTrace::getGasPrice() const { + STATE_CHECK( m_isFinalized ) + return m_gasPrice; +} + +evmc_status_code AlethStandardTrace::getEVMCStatusCode() const { + STATE_CHECK( m_isFinalized ) + return m_evmcStatusCode; +} + +const Address& AlethStandardTrace::getDeployedContractAddress() const { + return m_deployedContractAddress; +} + +// return true if transaction is a simple Eth transfer +[[nodiscard]] bool AlethStandardTrace::isSimpleTransfer() { + return !m_topFunctionCall; +} + +// return true if transaction is contract creation +bool AlethStandardTrace::isContractCreation() { + return m_topFunctionCall && m_topFunctionCall->getType() == Instruction::CREATE; +} + +std::shared_ptr< OpExecutionRecord > AlethStandardTrace::getLastOpRecord() const { + STATE_CHECK( !m_isFinalized ); + STATE_CHECK( m_executionRecordSequence ); + STATE_CHECK( !m_executionRecordSequence->empty() ) + auto lastOpRecord = m_executionRecordSequence->back(); + STATE_CHECK( lastOpRecord ) + return lastOpRecord; +} + +// this will return function call record if the instruction at a given execution +// counter created a new function +// will return nullptr otherwise +shared_ptr< FunctionCallRecord > AlethStandardTrace::getNewFunction( uint64_t _executionCounter ) { + if ( m_callInstructionCounterToFunctionRecord.count( _executionCounter ) == 0 ) { + return nullptr; + } + + return m_callInstructionCounterToFunctionRecord.at( _executionCounter ); +} + +} // namespace dev::eth + + +#endif diff --git a/libhistoric/AlethStandardTrace.h b/libhistoric/AlethStandardTrace.h index b251f6ca8..a07133697 100644 --- a/libhistoric/AlethStandardTrace.h +++ b/libhistoric/AlethStandardTrace.h @@ -1,57 +1,237 @@ -// Aleth: Ethereum C++ client, tools and libraries. -// Copyright 2014-2019 Aleth Authors. -// Licensed under the GNU General Public License, Version 3. +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ #pragma once +#include "AlethExtVM.h" +#include "CallTracePrinter.h" +#include "DefaultTracePrinter.h" +#include "FourByteTracePrinter.h" +#include "NoopTracePrinter.h" +#include "PrestateTracePrinter.h" +#include "ReplayTracePrinter.h" +#include "TraceOptions.h" +#include "TraceStructuresAndDefs.h" #include "json/json.h" #include "libdevcore/Common.h" #include "libevm/Instruction.h" +#include "libevm/LegacyVM.h" #include "libevm/VMFace.h" #include +#include namespace Json { class Value; } -namespace dev { -namespace eth { +namespace dev::eth { +// It is important that trace functions do not throw exceptions and do not modify state +// so that they do not interfere with EVM execution + +class FunctionCallRecord; + +// This class collects information during EVM execution. The oollected information +// is then used by trace printers to print the trace requested by the user class AlethStandardTrace { public: - struct DebugOptions { - bool disableStorage = false; - bool disableMemory = false; - bool disableStack = false; - bool fullStorage = false; - }; - - // Output json trace to stream, one line per op - explicit AlethStandardTrace( std::ostream& _outStream ) noexcept : m_outStream{ &_outStream } {} // Append json trace to given (array) value - explicit AlethStandardTrace( Json::Value& _outValue ) noexcept : m_outValue{ &_outValue } {} - - void operator()( uint64_t _steps, uint64_t _PC, Instruction _inst, bigint _newMemSize, - bigint _gasCost, bigint _gas, VMFace const* _vm, ExtVMFace const* _extVM ); - - void setShowMnemonics() { m_showMnemonics = true; } - void setOptions( DebugOptions _options ) { m_options = _options; } + explicit AlethStandardTrace( Transaction& _t, const Address& _blockAuthor, + const TraceOptions& _options, bool _isCall = false ); - OnOpFunc onOp() { - return [=]( uint64_t _steps, uint64_t _PC, Instruction _inst, bigint _newMemSize, + // this function is executed on each operation + [[nodiscard]] OnOpFunc functionToExecuteOnEachOperation() { + return [=]( uint64_t _steps, uint64_t _pc, Instruction _inst, bigint _newMemSize, bigint _gasCost, bigint _gas, VMFace const* _vm, ExtVMFace const* _extVM ) { - ( *this )( _steps, _PC, _inst, _newMemSize, _gasCost, _gas, _vm, _extVM ); + ( *this )( _steps, _pc, _inst, _newMemSize, _gasCost, _gas, _vm, _extVM ); }; } + // this function will be called at the end of executions + void finalizeAndPrintTrace( + ExecutionResult& _er, HistoricState& _statePre, HistoricState& _statePost ); + + + // this is to set original from balance for calls + // in a geth call, the from account balance is always incremented to + // make sure account has enough funds for block gas limit of gas + // we need to save original from account balance since it is printed in trace + void setOriginalFromBalance( const u256& _originalFromBalance ); + + [[nodiscard]] Json::Value getJSONResult() const; + + [[nodiscard]] const std::shared_ptr< FunctionCallRecord >& getTopFunctionCall() const; + + [[nodiscard]] TraceOptions getOptions() const; + + [[nodiscard]] const std::map< Address, std::map< u256, u256 > >& getAccessedStorageValues() + const; + + [[nodiscard]] const std::set< Address >& getAccessedAccounts() const; + + [[nodiscard]] const h256& getTxHash() const; + + [[nodiscard]] const shared_ptr< vector< shared_ptr< OpExecutionRecord > > >& + getOpRecordsSequence() const; + + [[nodiscard]] const Address& getDeployedContractAddress() const; + + [[nodiscard]] const std::shared_ptr< FunctionCallRecord >& getCurrentlyExecutingFunctionCall() + const; + + [[nodiscard]] const Address& getBlockAuthor() const; + + [[nodiscard]] const u256& getMinerPayment() const; + + [[nodiscard]] const u256& getOriginalFromBalance() const; + + [[nodiscard]] bool isCall() const; + + [[nodiscard]] const Address& getFrom() const; + + [[nodiscard]] uint64_t getTotalGasUsed() const; + + [[nodiscard]] const u256& getGasLimit() const; + + [[nodiscard]] const u256& getValue() const; + + [[nodiscard]] const bytes& getInputData() const; + + [[nodiscard]] const Address& getTo() const; + + [[nodiscard]] const u256& getGasPrice() const; + + [[nodiscard]] const bytes& getOutput() const; + + [[nodiscard]] bool isFailed() const; + + [[nodiscard]] evmc_status_code getEVMCStatusCode() const; + + [[nodiscard]] bool isSimpleTransfer(); + + [[nodiscard]] bool isContractCreation(); + + [[nodiscard]] shared_ptr< FunctionCallRecord > getNewFunction( uint64_t _executionCounter ); + + [[nodiscard]] static string toGethCompatibleCompactHexPrefixed( const u256& _value ); + + private: - bool m_showMnemonics = false; + void setCurrentlyExecutingFunctionCall( + const std::shared_ptr< FunctionCallRecord >& _currentlyExecutingFunctionCall ); + + void setTopFunctionCall( const std::shared_ptr< FunctionCallRecord >& _topFunctionCall ); + + // this operator will be executed by skaled on each EVM instruction + void operator()( uint64_t _steps, uint64_t _pc, Instruction _inst, bigint _newMemSize, + bigint _gasOpGas, bigint _gasRemaining, VMFace const* _vm, ExtVMFace const* _voidExt ); + + // called to record execution of each instruction + void recordInstructionIsExecuted( uint64_t _pc, Instruction _inst, bigint _gasOpGas, + bigint _gasRemaining, VMFace const* _vm, ExtVMFace const* _voidExt ); + + // called to record function execution when a function of this or other contract is called + void recordFunctionIsCalled( const Address& _from, const Address& _to, uint64_t _gasLimit, + const std::vector< std::uint8_t >& _inputData, const u256& _value ); + + // called when a function returns + void recordFunctionReturned( evmc_status_code _status, + const std::vector< std::uint8_t >& _returnData, uint64_t _gasUsed ); + + // analyze instruction and record function calls, returns and storage value + // accesses + void analyzeInstructionAndRecordNeededInformation( uint64_t, Instruction& _inst, + uint64_t _gasRemaining, const ExtVMFace* _face, AlethExtVM& _ext, const LegacyVM* _vm ); + + // get the currently executing smartcontract memory from EVM + [[nodiscard]] static std::vector< std::uint8_t > + extractSmartContractMemoryByteArrayFromStackPointer( const LegacyVM* _vm ); + + // this is called when the function call depth of the current instruction is different from the + // previous instruction. This happens when a function is called or returned. + void processFunctionCallOrReturnIfHappened( + const AlethExtVM& _ext, const LegacyVM* _vm, std::uint64_t _gasRemaining ); + + + // print all supported traces. This can be used for QA + void printAllTraces( Json::Value& _jsonTrace, ExecutionResult& _er, + const HistoricState& _statePre, const HistoricState& _statePost ); + + void recordMinerPayment( u256 _minerGasPayment ); + + void printTrace( + ExecutionResult& _er, const HistoricState& _statePre, const HistoricState& _statePost ); + + [[nodiscard]] vector< uint8_t > getInputData( const AlethExtVM& _ext ) const; + + void recordMinerFeePayment( HistoricState& _statePost ); + + [[nodiscard]] std::shared_ptr< OpExecutionRecord > getLastOpRecord() const; + + std::shared_ptr< FunctionCallRecord > m_topFunctionCall; + std::shared_ptr< FunctionCallRecord > m_currentlyExecutingFunctionCall; std::vector< Instruction > m_lastInst; - std::ostream* m_outStream = nullptr; - Json::Value* m_outValue = nullptr; Json::FastWriter m_fastWriter; - DebugOptions m_options; + Address m_from; + Address m_to; + TraceOptions m_options; + h256 m_txHash; + Json::Value m_jsonTrace; + // set of all storage values accessed during execution + std::set< Address > m_accessedAccounts; + // std::map of all storage addresses accessed (read or write) during execution + // for each storage address the current value if recorded + std::map< Address, std::map< dev::u256, dev::u256 > > m_accessedStorageValues; + + std::shared_ptr< std::vector< std::shared_ptr< OpExecutionRecord > > > + m_executionRecordSequence = nullptr; + std::atomic< bool > m_isFinalized = false; + NoopTracePrinter m_noopTracePrinter; + FourByteTracePrinter m_fourByteTracePrinter; + CallTracePrinter m_callTracePrinter; + ReplayTracePrinter m_replayTracePrinter; + PrestateTracePrinter m_prestateTracePrinter; + DefaultTracePrinter m_defaultTracePrinter; + + const std::map< TraceType, TracePrinter& > m_tracePrinters; + + const Address m_blockAuthor; + u256 m_minerPayment; + u256 m_originalFromBalance; + bool m_isCall; + uint64_t m_totalGasUsed; + u256 m_value; + u256 m_gasLimit; + bytes m_inputData; + u256 m_gasPrice; + bytes m_output; + evmc_status_code m_evmcStatusCode; + // this will include deployed contract address if the transaction was CREATE + Address m_deployedContractAddress; + + // this map maps CALL or DELEGATECALL instruction counter to the corresponding + // function record + std::map< uint64_t, shared_ptr< FunctionCallRecord > > m_callInstructionCounterToFunctionRecord; + + shared_ptr< OpExecutionRecord > createOpExecutionRecord( uint64_t _pc, Instruction& _inst, + const bigint& _gasOpGas, const bigint& _gasRemaining, const AlethExtVM& ext, + const LegacyVM* _vm ); }; -} // namespace eth -} // namespace dev +} // namespace dev::eth diff --git a/libhistoric/CMakeLists.txt b/libhistoric/CMakeLists.txt index 5a74de499..96476ed15 100644 --- a/libhistoric/CMakeLists.txt +++ b/libhistoric/CMakeLists.txt @@ -10,7 +10,7 @@ target_include_directories( historic PRIVATE "${UTILS_INCLUDE_DIR}" ${SKUTILS_IN ${CMAKE_SOURCE_DIR}/libconsensus/jsoncpp/include ${CMAKE_SOURCE_DIR}/libconsensus/spdlog/include ${CMAKE_SOURCE_DIR}/libconsensus/libjson/include) -target_link_libraries( historic PUBLIC evm ethcore p2p devcrypto devcore skale PRIVATE skutils Snappy::snappy +target_link_libraries( historic PRIVATE evm ethcore p2p devcrypto devcore skale skutils Snappy::snappy jsoncpp # ${CMAKE_SOURCE_DIR}/libconsensus/jsoncpp/build/src/lib_json/libjsoncpp.a Boost::fiber Boost::context Boost::chrono batched-io diff --git a/libhistoric/CallTracePrinter.cpp b/libhistoric/CallTracePrinter.cpp new file mode 100644 index 000000000..ea7a46ab9 --- /dev/null +++ b/libhistoric/CallTracePrinter.cpp @@ -0,0 +1,87 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#ifdef HISTORIC_STATE + + +#include "CallTracePrinter.h" +#include "AlethStandardTrace.h" +#include "FunctionCallRecord.h" +#include "TraceStructuresAndDefs.h" + +namespace dev::eth { + +// call tracer as implemented by geth +void CallTracePrinter::print( Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, + const HistoricState& _statePost ) { + STATE_CHECK( _jsonTrace.isObject() ) + + // first print error description if the transaction failed + if ( m_trace.isFailed() ) { + _jsonTrace["error"] = getEvmErrorDescription( m_trace.getEVMCStatusCode() ); + } + + // now deal with the cases of simple ETH transfer vs contract interaction + if ( m_trace.isSimpleTransfer() ) { + // no bytecode was executed + printTransferTrace( _jsonTrace ); + } else { + printContractTransactionTrace( _jsonTrace, _statePost ); + } +} +void CallTracePrinter::printContractTransactionTrace( + Json::Value& _jsonTrace, const HistoricState& _statePost ) { + auto topFunctionCall = m_trace.getTopFunctionCall(); + STATE_CHECK( topFunctionCall ); + // call trace on the top Solidity function call in the stack + // this will also recursively call printTrace on nested calls if exist + topFunctionCall->printTrace( _jsonTrace, _statePost, 0, m_trace.getOptions() ); + // handle the case of a transaction that deploys a contract + // in this case geth prints transaction input data as input + // end prints to as newly created contract address + if ( m_trace.isContractCreation() ) { + _jsonTrace["input"] = toHexPrefixed( m_trace.getInputData() ); + _jsonTrace["to"] = toHexPrefixed( m_trace.getDeployedContractAddress() ); + } +} + +CallTracePrinter::CallTracePrinter( AlethStandardTrace& _standardTrace ) + : TracePrinter( _standardTrace, "callTrace" ) {} + + +void CallTracePrinter::printTransferTrace( Json::Value& _jsonTrace ) { + STATE_CHECK( _jsonTrace.isObject() ) + + _jsonTrace["type"] = "CALL"; + _jsonTrace["from"] = toHexPrefixed( m_trace.getFrom() ); + _jsonTrace["to"] = toHexPrefixed( m_trace.getTo() ); + _jsonTrace["gas"] = + AlethStandardTrace::toGethCompatibleCompactHexPrefixed( m_trace.getGasLimit() ); + _jsonTrace["gasUsed"] = + AlethStandardTrace::toGethCompatibleCompactHexPrefixed( m_trace.getTotalGasUsed() ); + _jsonTrace["value"] = + AlethStandardTrace::toGethCompatibleCompactHexPrefixed( m_trace.getValue() ); + _jsonTrace["input"] = toHexPrefixed( m_trace.getInputData() ); +} + + +} // namespace dev::eth + + +#endif \ No newline at end of file diff --git a/libhistoric/CallTracePrinter.h b/libhistoric/CallTracePrinter.h new file mode 100644 index 000000000..78d60316c --- /dev/null +++ b/libhistoric/CallTracePrinter.h @@ -0,0 +1,45 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#pragma once + +#include "TracePrinter.h" + +namespace Json { +class Value; +} + +namespace dev::eth { + +struct ExecutionResult; +class HistoricState; + +class CallTracePrinter : public TracePrinter { +public: + explicit CallTracePrinter( AlethStandardTrace& standardTrace ); + + void print( Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, + const HistoricState& ) override; + +private: + void printTransferTrace( Json::Value& _jsonTrace ); + + void printContractTransactionTrace( Json::Value& _jsonTrace, const HistoricState& _statePost ); +}; +} // namespace dev::eth diff --git a/libhistoric/DefaultTracePrinter.cpp b/libhistoric/DefaultTracePrinter.cpp new file mode 100644 index 000000000..bef36663e --- /dev/null +++ b/libhistoric/DefaultTracePrinter.cpp @@ -0,0 +1,133 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#ifdef HISTORIC_STATE + +#include "AlethStandardTrace.h" + +#include "DefaultTracePrinter.h" +#include "FunctionCallRecord.h" +#include "TraceStructuresAndDefs.h" + + +namespace dev::eth { + +// default tracer as implemented by geth. Runs when no specific tracer is specified +void DefaultTracePrinter::print( + Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, const HistoricState& ) { + STATE_CHECK( _jsonTrace.isObject() ) + auto opRecordsSequence = m_trace.getOpRecordsSequence(); + STATE_CHECK( opRecordsSequence ); + auto opTrace = std::make_shared< Json::Value >(); + auto options = m_trace.getOptions(); + + for ( uint64_t i = 1; i < opRecordsSequence->size(); i++ ) { // skip first dummy entry + auto executionRecord = opRecordsSequence->at( i ); + + // geth reports function gas cost as op cost for CALL and DELEGATE CALL + auto newFunction = m_trace.getNewFunction( i ); + if ( newFunction ) { + executionRecord->m_opGas = newFunction->getGasUsed(); + } + + appendOpToDefaultTrace( executionRecord, opTrace, options ); + } + + if ( opTrace->empty() ) { + // make it compatible with geth in cases where + // no contract was called so there is no opTrace + _jsonTrace["structLogs"] = Json::Value( Json::arrayValue ); + } else { + _jsonTrace["structLogs"] = *opTrace; + } + + _jsonTrace["failed"] = m_trace.isFailed(); + _jsonTrace["gas"] = m_trace.getTotalGasUsed(); + + if ( m_trace.getOptions().enableReturnData ) { + _jsonTrace["returnValue"] = toHex( m_trace.getOutput() ); + } +} + +DefaultTracePrinter::DefaultTracePrinter( AlethStandardTrace& standardTrace ) + : TracePrinter( standardTrace, "defaultTrace" ) {} + + +void DefaultTracePrinter::appendOpToDefaultTrace( + std::shared_ptr< OpExecutionRecord > _opExecutionRecord, + std::shared_ptr< Json::Value >& _defaultTrace, TraceOptions& _traceOptions ) { + Json::Value result( Json::objectValue ); + + STATE_CHECK( _defaultTrace ); + STATE_CHECK( _opExecutionRecord ) + + result["op"] = _opExecutionRecord->m_opName; + result["pc"] = _opExecutionRecord->m_pc; + result["gas"] = _opExecutionRecord->m_gasRemaining; + + + result["gasCost"] = static_cast< uint64_t >( _opExecutionRecord->m_opGas ); + + + result["depth"] = _opExecutionRecord->m_depth + 1; // depth in standard trace is 1-based + + if ( _opExecutionRecord->m_refund > 0 ) { + result["refund"] = _opExecutionRecord->m_refund; + } + + if ( !_traceOptions.disableStack ) { + Json::Value stack( Json::arrayValue ); + // Try extracting information about the stack from the VM is supported. + STATE_CHECK( _opExecutionRecord->m_stack ) + for ( auto const& i : *_opExecutionRecord->m_stack ) { + string stackStr = AlethStandardTrace::toGethCompatibleCompactHexPrefixed( i ); + stack.append( stackStr ); + } + result["stack"] = stack; + } + + Json::Value memJson( Json::arrayValue ); + if ( _traceOptions.enableMemory ) { + STATE_CHECK( _opExecutionRecord->m_memory ) + for ( unsigned i = 0; + ( i < _opExecutionRecord->m_memory->size() && i < MAX_MEMORY_VALUES_RETURNED ); + i += 32 ) { + bytesConstRef memRef( _opExecutionRecord->m_memory->data() + i, 32 ); + memJson.append( toHex( memRef ) ); + } + result["memory"] = memJson; + } + + if ( !_traceOptions.disableStorage ) { + if ( _opExecutionRecord->m_op == Instruction::SSTORE || + _opExecutionRecord->m_op == Instruction::SLOAD ) { + Json::Value storage( Json::objectValue ); + STATE_CHECK( _opExecutionRecord->m_accessedStorageValues ) + for ( auto const& i : *_opExecutionRecord->m_accessedStorageValues ) + storage[toHex( i.first )] = toHex( i.second ); + result["storage"] = storage; + } + } + + _defaultTrace->append( result ); +} + +} // namespace dev::eth + +#endif \ No newline at end of file diff --git a/libhistoric/DefaultTracePrinter.h b/libhistoric/DefaultTracePrinter.h new file mode 100644 index 000000000..9c62ceffb --- /dev/null +++ b/libhistoric/DefaultTracePrinter.h @@ -0,0 +1,46 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#pragma once + + +#include "TraceOptions.h" +#include "TracePrinter.h" + +namespace Json { +class Value; +} + +namespace dev::eth { + +struct ExecutionResult; +class HistoricState; + +class DefaultTracePrinter : public TracePrinter { +public: + explicit DefaultTracePrinter( AlethStandardTrace& standardTrace ); + + virtual void print( Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, + const HistoricState& ) override; + +private: + static void appendOpToDefaultTrace( std::shared_ptr< OpExecutionRecord > _opExecutionRecord, + std::shared_ptr< Json::Value >& _defaultTrace, TraceOptions& _traceOptions ); +}; +} // namespace dev::eth diff --git a/libhistoric/FourByteTracePrinter.cpp b/libhistoric/FourByteTracePrinter.cpp new file mode 100644 index 000000000..eaa089da6 --- /dev/null +++ b/libhistoric/FourByteTracePrinter.cpp @@ -0,0 +1,74 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#ifdef HISTORIC_STATE + + +#include "FourByteTracePrinter.h" +#include "AlethStandardTrace.h" +#include "FunctionCallRecord.h" +#include "TraceStructuresAndDefs.h" + +namespace dev::eth { + +// fourbyte trace printer as implemented by geth +void FourByteTracePrinter::print( + Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, const HistoricState& ) { + STATE_CHECK( _jsonTrace.isObject() ) + std::map< string, uint64_t > callMap; + + auto topFunctionCallRecord = m_trace.getTopFunctionCall(); + if ( !topFunctionCallRecord ) { + // no bytecodes were executed, this was purely ETH transfer + // print nothing + return; + } + + topFunctionCallRecord->collectFourByteTrace( callMap ); + for ( auto&& key : callMap ) { + _jsonTrace[key.first] = key.second; + } + + // there is a special case of contract creation. In this case, geth adds + // a special entry to the fourbyte trace as specified below + + if ( m_trace.isContractCreation() ) { + addContractCreationEntry( _jsonTrace ); + } +} +void FourByteTracePrinter::addContractCreationEntry( Json::Value& _jsonTrace ) const { + auto inputBytes = m_trace.getInputData(); + // input data needs to be at least four bytes, otherwise it is an incorrect + // Solidity constructor call + if ( inputBytes.size() < 4 ) { + return; + } + // the format geth uses in this case. Take first 8 symbols of hex and add hex size + auto key = + toHexPrefixed( inputBytes ).substr( 0, 10 ) + "-" + to_string( inputBytes.size() - 4 ); + _jsonTrace[key] = 1; +} + +FourByteTracePrinter::FourByteTracePrinter( AlethStandardTrace& standardTrace ) + : TracePrinter( standardTrace, "4byteTrace" ) {} + + +} // namespace dev::eth + +#endif \ No newline at end of file diff --git a/libhistoric/FourByteTracePrinter.h b/libhistoric/FourByteTracePrinter.h new file mode 100644 index 000000000..68ca0d73c --- /dev/null +++ b/libhistoric/FourByteTracePrinter.h @@ -0,0 +1,42 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#pragma once + +#include "TracePrinter.h" + +namespace Json { +class Value; +} + +namespace dev::eth { + +struct ExecutionResult; +class HistoricState; + +class FourByteTracePrinter : public TracePrinter { +public: + explicit FourByteTracePrinter( AlethStandardTrace& standardTrace ); + +public: + void print( Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, + const HistoricState& ) override; + void addContractCreationEntry( Json::Value& _jsonTrace ) const; +}; +} // namespace dev::eth diff --git a/libhistoric/FunctionCallRecord.cpp b/libhistoric/FunctionCallRecord.cpp new file mode 100644 index 000000000..571add5b9 --- /dev/null +++ b/libhistoric/FunctionCallRecord.cpp @@ -0,0 +1,331 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#ifdef HISTORIC_STATE + +#include "FunctionCallRecord.h" +#include "AlethStandardTrace.h" +#include + +// disable recursive warning since we are using recursion +#pragma clang diagnostic ignored "-Wrecursive-macro" + + +// this class collect information about functions called during execution + +namespace dev::eth { + +void FunctionCallRecord::setGasUsed( uint64_t _gasUsed ) { + STATE_CHECK( _gasUsed < std::numeric_limits< uint32_t >::max() ); + m_gasUsed = _gasUsed; +} + +uint64_t FunctionCallRecord::getFunctionGasLimit() const { + return m_functionGasLimit; +} + +void FunctionCallRecord::setOutputData( const vector< uint8_t >& _outputData ) { + m_outputData = _outputData; +} + +void FunctionCallRecord::addNestedCall( shared_ptr< FunctionCallRecord >& _nestedCall ) { + STATE_CHECK( _nestedCall ); + m_nestedCalls.push_back( _nestedCall ); +} + +void FunctionCallRecord::setError( const string& _error ) { + m_error = _error; +} + +// decode 4 consequitive byes in a byte array to uint32_t +uint32_t FunctionCallRecord::bytesToUint32( + const std::vector< uint8_t >& _bytes, size_t _startIndex ) { + STATE_CHECK( ( _startIndex + 4 ) < _bytes.size() ) + + return ( uint32_t( _bytes[_startIndex] ) << 24 ) | + ( uint32_t( _bytes[_startIndex + 1] ) << 16 ) | + ( uint32_t( _bytes[_startIndex + 2] ) << 8 ) | uint32_t( _bytes[_startIndex + 3] ); +} + +constexpr uint64_t FUNCTION_SELECTOR_SIZE = 4; +constexpr uint64_t OFFSET_SIZE = 32; +constexpr uint64_t STRING_LENGTH_SIZE = 32; + +void FunctionCallRecord::setRevertReason( const bytes& _encodedRevertReason ) { + static unsigned char functionSelector[] = { 0x08, 0xC3, 0x79, 0xA0 }; + + m_reverted = true; + + // Check if the encoded data is at least long enough for a function selector, offset, and + // length. + if ( _encodedRevertReason.size() < FUNCTION_SELECTOR_SIZE + OFFSET_SIZE + STRING_LENGTH_SIZE ) { + // incorrect encoding - setting revert reason to empty + m_revertReason = ""; + return; + } + + + if ( !std::equal( functionSelector, functionSelector + 4, _encodedRevertReason.begin() ) ) { + m_revertReason = ""; + } + + u256 offset; + + boost::multiprecision::import_bits( offset, + _encodedRevertReason.begin() + FUNCTION_SELECTOR_SIZE, + _encodedRevertReason.begin() + FUNCTION_SELECTOR_SIZE + OFFSET_SIZE ); + + // offset is always 0x20 + if ( offset != u256( 0x20 ) ) { + // incorrect offset - setting revert reason to empty + m_revertReason = ""; + return; + } + + + u256 stringLength; + + boost::multiprecision::import_bits( stringLength, + _encodedRevertReason.begin() + FUNCTION_SELECTOR_SIZE + OFFSET_SIZE, + _encodedRevertReason.begin() + FUNCTION_SELECTOR_SIZE + OFFSET_SIZE + STRING_LENGTH_SIZE ); + + // Ensure the encoded data is long enough to contain the described string. + if ( _encodedRevertReason.size() < + FUNCTION_SELECTOR_SIZE + OFFSET_SIZE + STRING_LENGTH_SIZE + stringLength ) { + m_revertReason = ""; + } + + // Extract the string itself. + std::string result; + for ( size_t i = 0; i < stringLength; ++i ) { + result += char( + _encodedRevertReason[FUNCTION_SELECTOR_SIZE + OFFSET_SIZE + STRING_LENGTH_SIZE + i] ); + } + + m_revertReason = result; +} + +const weak_ptr< FunctionCallRecord >& FunctionCallRecord::getParentCall() const { + return m_parentCall; +} + +int64_t FunctionCallRecord::getDepth() const { + return m_depth; +} + +void FunctionCallRecord::printFunctionExecutionDetail( + Json::Value& _jsonTrace, const HistoricState& _statePost, const TraceOptions& _debugOptions ) { + STATE_CHECK( _jsonTrace.isObject() ) + + _jsonTrace["type"] = instructionInfo( m_type ).name; + _jsonTrace["from"] = toHexPrefixed( m_from ); + _jsonTrace["to"] = toHexPrefixed( m_to ); + _jsonTrace["gas"] = + AlethStandardTrace::toGethCompatibleCompactHexPrefixed( m_functionGasLimit ); + _jsonTrace["gasUsed"] = AlethStandardTrace::toGethCompatibleCompactHexPrefixed( m_gasUsed ); + if ( !m_error.empty() ) { + _jsonTrace["error"] = m_error; + } + if ( !m_revertReason.empty() ) { + _jsonTrace["revertReason"] = m_revertReason; + } + + // geth always prints value when there is not revert + // in case of revert value is printed only in top lavel functions + if ( m_error.empty() || m_depth == 0 ) { + _jsonTrace["value"] = AlethStandardTrace::toGethCompatibleCompactHexPrefixed( m_value ); + } + + + // treat the special case when the function is a constructor. Then output data is the code of + // the constructed contract + if ( m_type == Instruction::CREATE || m_type == Instruction::CREATE2 ) { + m_outputData = _statePost.code( m_to ); + } + + + if ( !m_outputData.empty() ) { + _jsonTrace["output"] = toHexPrefixed( m_outputData ); + } + + if ( !m_inputData.empty() ) { + _jsonTrace["input"] = toHexPrefixed( m_inputData ); + } else { + } + + if ( !_debugOptions.withLog ) + return; + + if ( !m_logRecords.empty() && m_type != Instruction::CREATE && + m_type != Instruction::CREATE2 ) { + _jsonTrace["logs"] = Json::arrayValue; + for ( auto&& log : m_logRecords ) { + // no logs in contract creation + _jsonTrace["logs"] = Json::arrayValue; + if ( m_type != Instruction::CREATE && m_type != Instruction::CREATE2 ) { + Json::Value currentLogRecord = Json::objectValue; + currentLogRecord["address"] = toHexPrefixed( m_to ); + currentLogRecord["data"] = toHexPrefixed( log.m_data ); + currentLogRecord["topics"] = Json::arrayValue; + for ( auto&& topic : log.m_topics ) { + currentLogRecord["topics"].append( toHexPrefixed( topic ) ); + } + _jsonTrace["logs"].append( currentLogRecord ); + } + } + } +} + +void FunctionCallRecord::printTrace( Json::Value& _jsonTrace, const HistoricState& _statePost, + int64_t _depth, const TraceOptions& _debugOptions ) { + STATE_CHECK( _jsonTrace.isObject() ) + // prevent Denial of service + STATE_CHECK( _depth < MAX_TRACE_DEPTH ) + STATE_CHECK( _depth == m_depth ) + + printFunctionExecutionDetail( _jsonTrace, _statePost, _debugOptions ); + + if ( !m_nestedCalls.empty() ) { + if ( _debugOptions.onlyTopCall ) + return; + _jsonTrace["calls"] = Json::arrayValue; + for ( uint32_t i = 0; i < m_nestedCalls.size(); i++ ) { + _jsonTrace["calls"].append( Json::objectValue ); + m_nestedCalls.at( i )->printTrace( + _jsonTrace["calls"][i], _statePost, _depth + 1, _debugOptions ); + } + } +} + +FunctionCallRecord::FunctionCallRecord( Instruction _type, const Address& _from, const Address& _to, + uint64_t _functionGasLimit, const weak_ptr< FunctionCallRecord >& _parentCall, + const vector< uint8_t >& _inputData, const u256& _value, int64_t _depth, + uint64_t _gasRemainingBeforeCall ) + : m_type( _type ), + m_from( _from ), + m_to( _to ), + m_functionGasLimit( _functionGasLimit ), + m_parentCall( _parentCall ), + m_inputData( _inputData ), + m_value( _value ), + m_depth( _depth ), + m_gasRemainingBeforeCall( _gasRemainingBeforeCall ){ STATE_CHECK( m_depth >= 0 ) } + + uint64_t FunctionCallRecord::getGasRemainingBeforeCall() const { + return m_gasRemainingBeforeCall; +} + + +void FunctionCallRecord::addLogEntry( + const vector< uint8_t >& _data, const vector< u256 >& _topics ) { + m_logRecords.emplace_back( _data, _topics ); +} + +string FunctionCallRecord::getParityTraceType() { + return boost::algorithm::to_lower_copy( string( instructionInfo( m_type ).name ) ); +} + +void FunctionCallRecord::printParityFunctionTrace( + Json::Value& _outputArray, Json::Value _address ) { + Json::Value functionTrace( Json::objectValue ); + + Json::Value action( Json::objectValue ); + action["from"] = toHexPrefixed( m_from ); + action["to"] = toHexPrefixed( m_to ); + action["gas"] = toHexPrefixed( u256( m_functionGasLimit ) ); + action["input"] = toHexPrefixed( m_inputData ); + action["value"] = toHexPrefixed( m_value ); + action["callType"] = getParityTraceType(); + functionTrace["action"] = action; + + + Json::Value result( Json::objectValue ); + result["gasUsed"] = toHexPrefixed( u256( m_gasUsed ) ); + result["output"] = toHexPrefixed( m_outputData ); + functionTrace["result"] = result; + + functionTrace["subtraces"] = m_nestedCalls.size(); + functionTrace["traceAddress"] = _address; + functionTrace["type"] = getParityTraceType(); + _outputArray.append( functionTrace ); + + for ( uint64_t i = 0; i < m_nestedCalls.size(); i++ ) { + auto nestedFunctionAddress = _address; + nestedFunctionAddress.append( i ); + auto nestedCall = m_nestedCalls.at( i ); + STATE_CHECK( nestedCall ); + nestedCall->printParityFunctionTrace( _outputArray, nestedFunctionAddress ); + } +} + +void FunctionCallRecord::collectFourByteTrace( std::map< string, uint64_t >& _callMap ) { + Json::Value functionTrace( Json::objectValue ); + + constexpr int FOUR_BYTES = 4; + + if ( m_depth > 0 && ( m_type == Instruction::CREATE || m_type == Instruction::CREATE2 ) ) { + // geth does not print 4byte traces for constructors called by contracts + return; + } + + // a call with less than four bytes of data is not a valid solidity call + if ( m_inputData.size() >= FOUR_BYTES ) { + vector< uint8_t > fourBytes( m_inputData.begin(), m_inputData.begin() + FOUR_BYTES ); + auto key = toHexPrefixed( fourBytes ) + .append( "-" ) + .append( to_string( m_inputData.size() - FOUR_BYTES ) ); + auto count = _callMap[key] + 1; + _callMap[key] = count; + } + + for ( uint64_t i = 0; i < m_nestedCalls.size(); i++ ) { + auto nestedCall = m_nestedCalls.at( i ); + STATE_CHECK( nestedCall ); + nestedCall->collectFourByteTrace( _callMap ); + } +} + + +void FunctionCallRecord::setReturnValues( + evmc_status_code _status, const vector< uint8_t >& _returnData, uint64_t _gasUsed ) { + setGasUsed( _gasUsed ); + + if ( _status != evmc_status_code::EVMC_SUCCESS ) { + setError( TracePrinter::getEvmErrorDescription( _status ) ); + } + + if ( _status == evmc_status_code::EVMC_REVERT ) { + setRevertReason( _returnData ); + } + + setOutputData( _returnData ); +} + +Instruction FunctionCallRecord::getType() const { + return m_type; +} + +uint64_t FunctionCallRecord::getGasUsed() const { + return m_gasUsed; +} + +} // namespace dev::eth +// namespace dev + +#endif \ No newline at end of file diff --git a/libhistoric/FunctionCallRecord.h b/libhistoric/FunctionCallRecord.h new file mode 100644 index 000000000..fc55e3fd0 --- /dev/null +++ b/libhistoric/FunctionCallRecord.h @@ -0,0 +1,115 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + + +#pragma once + + +#include "AlethExtVM.h" +#include "libevm/LegacyVM.h" +#include +#include + + +namespace dev::eth { + +using std::string, std::shared_ptr, std::make_shared, std::to_string, std::set, std::map, + std::vector, std::weak_ptr; + + +struct TraceOptions; + +// It is important that trace functions do not throw exceptions and do not modify state +// so that they do not interfere with EVM execution + +struct LogRecord; + +struct OpExecutionRecord; + +class FunctionCallRecord { +public: + FunctionCallRecord( Instruction _type, const Address& _from, const Address& _to, + uint64_t _functionGasLimit, const weak_ptr< FunctionCallRecord >& _parentCall, + const vector< uint8_t >& _inputData, const u256& _value, int64_t _depth, + uint64_t _gasRemainingBeforeCall ); + + [[nodiscard]] int64_t getDepth() const; + + [[nodiscard]] const weak_ptr< FunctionCallRecord >& getParentCall() const; + + [[nodiscard]] uint64_t getFunctionGasLimit() const; + + [[nodiscard]] string getParityTraceType(); + + void setGasUsed( uint64_t _gasUsed ); + + void setOutputData( const vector< uint8_t >& _outputData ); + + void addNestedCall( shared_ptr< FunctionCallRecord >& _nestedCall ); + + void setError( const string& _error ); + + void setRevertReason( const bytes& _encodedRevertReason ); + + void printTrace( Json::Value& _jsonTrace, const HistoricState& _statePost, int64_t _depth, + const TraceOptions& _debugOptions ); + + void printFunctionExecutionDetail( Json::Value& _jsonTrace, const HistoricState& _statePost, + const TraceOptions& _debugOptions ); + + void addLogEntry( const vector< uint8_t >& _data, const vector< u256 >& _topics ); + + void printParityFunctionTrace( Json::Value& _outputArray, Json::Value _address ); + + void collectFourByteTrace( std::map< string, uint64_t >& _callMap ); + + void setReturnValues( + evmc_status_code _status, const vector< uint8_t >& _returnData, uint64_t _gasUsed ); + + Instruction getType() const; + + uint64_t getGasUsed() const; + uint64_t getGasRemainingBeforeCall() const; + + static uint32_t bytesToUint32( const std::vector< uint8_t >& _bytes, size_t _startIndex ); + +private: + Instruction m_type; + Address m_from; + Address m_to; + uint64_t m_functionGasLimit = 0; + uint64_t m_gasUsed = 0; + vector< shared_ptr< FunctionCallRecord > > m_nestedCalls; + weak_ptr< FunctionCallRecord > m_parentCall; + + +private: + vector< uint8_t > m_inputData; + vector< uint8_t > m_outputData; + bool m_reverted = false; + string m_error; + string m_revertReason; + u256 m_value; + int64_t m_depth = 0; + vector< LogRecord > m_logRecords; + uint64_t m_gasRemainingBeforeCall; +}; + + +} // namespace dev::eth diff --git a/libhistoric/HistoricState.cpp b/libhistoric/HistoricState.cpp index ecb4a49f7..d1e8f6d57 100644 --- a/libhistoric/HistoricState.cpp +++ b/libhistoric/HistoricState.cpp @@ -65,7 +65,8 @@ OverlayDB HistoricState::openDB( try { clog( VerbosityTrace, "statedb" ) << "Opening state database"; - std::unique_ptr< db::DatabaseFace > db = db::DBFactory::create( dbPaths.statePath() ); + std::unique_ptr< db::DatabaseFace > db = + db::DBFactory::createHistoric( db::DatabaseKind::LevelDB, dbPaths.statePath() ); return OverlayDB( std::move( db ) ); } catch ( boost::exception const& ex ) { if ( db::isDiskDatabase() ) { @@ -599,6 +600,8 @@ std::pair< ExecutionResult, TransactionReceipt > HistoricState::execute( EnvInfo #endif u256 const startGasUsed = _envInfo.gasUsed(); + + bool const statusCode = executeTransaction( e, _t, onOp ); @@ -620,6 +623,7 @@ std::pair< ExecutionResult, TransactionReceipt > HistoricState::execute( EnvInfo _envInfo.number() >= _sealEngine.chainParams().byzantiumForkBlock ? TransactionReceipt( statusCode, startGasUsed + e.gasUsed(), e.logs() ) : TransactionReceipt( globalRoot(), startGasUsed + e.gasUsed(), e.logs() ); + return make_pair( res, receipt ); } diff --git a/libhistoric/NoopTracePrinter.cpp b/libhistoric/NoopTracePrinter.cpp new file mode 100644 index 000000000..fce741f84 --- /dev/null +++ b/libhistoric/NoopTracePrinter.cpp @@ -0,0 +1,41 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#ifdef HISTORIC_STATE + +#include "AlethStandardTrace.h" +#include "FourByteTracePrinter.h" +#include "FunctionCallRecord.h" +#include "TraceStructuresAndDefs.h" + +namespace dev::eth { + +void NoopTracePrinter::print( + Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, const HistoricState& ) { + STATE_CHECK( _jsonTrace.isObject() ); + _jsonTrace.clear(); + // do nothing +} + +NoopTracePrinter::NoopTracePrinter( AlethStandardTrace& standardTrace ) + : TracePrinter( standardTrace, "noopTrace" ) {} + +} // namespace dev::eth + +#endif \ No newline at end of file diff --git a/libhistoric/NoopTracePrinter.h b/libhistoric/NoopTracePrinter.h new file mode 100644 index 000000000..fbc4d188d --- /dev/null +++ b/libhistoric/NoopTracePrinter.h @@ -0,0 +1,40 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#pragma once + +#include "TracePrinter.h" + +namespace Json { +class Value; +} + +namespace dev::eth { + +struct ExecutionResult; +class HistoricState; + +class NoopTracePrinter : public TracePrinter { +public: + explicit NoopTracePrinter( AlethStandardTrace& standardTrace ); + + void print( Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, + const HistoricState& ) override; +}; +} // namespace dev::eth diff --git a/libhistoric/PrestateTracePrinter.cpp b/libhistoric/PrestateTracePrinter.cpp new file mode 100644 index 000000000..be65e97dc --- /dev/null +++ b/libhistoric/PrestateTracePrinter.cpp @@ -0,0 +1,450 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + + skaled 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. + + skaled 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 skaled. If not, see . +*/ + + +#ifdef HISTORIC_STATE + +#include "PrestateTracePrinter.h" +#include "AlethStandardTrace.h" +#include "FunctionCallRecord.h" +#include "TraceStructuresAndDefs.h" + +namespace dev::eth { + +void PrestateTracePrinter::print( Json::Value& _jsonTrace, const ExecutionResult& _er, + const HistoricState& _statePre, const HistoricState& _statePost ) { + STATE_CHECK( _jsonTrace.isObject() ); + if ( m_trace.getOptions().prestateDiffMode ) { + printDiffTrace( _jsonTrace, _er, _statePre, _statePost ); + } else { + printPreStateTrace( _jsonTrace, _statePre, _statePost ); + } +} + +void PrestateTracePrinter::printPreStateTrace( + Json::Value& _jsonTrace, const HistoricState& _statePre, const HistoricState& _statePost ) { + for ( auto&& item : m_trace.getAccessedAccounts() ) { + printAllAccessedAccountPreValues( _jsonTrace, _statePre, _statePost, item ); + }; + + // geth always prints the balance of block miner balance + + Address minerAddress = m_trace.getBlockAuthor(); + u256 minerBalance = getBalancePre( _statePre, minerAddress ); + _jsonTrace[toHexPrefixed( minerAddress )]["balance"] = + AlethStandardTrace::toGethCompatibleCompactHexPrefixed( minerBalance ); +} + + +void PrestateTracePrinter::printDiffTrace( Json::Value& _jsonTrace, const ExecutionResult&, + const HistoricState& _statePre, const HistoricState& _statePost ) { + STATE_CHECK( _jsonTrace.isObject() ) + + Json::Value preDiff( Json::objectValue ); + Json::Value postDiff( Json::objectValue ); + + for ( auto&& item : m_trace.getAccessedAccounts() ) { + printAccountPreDiff( preDiff, _statePre, _statePost, item ); + printAccountPostDiff( postDiff, _statePre, _statePost, item ); + }; + + + // now deal with miner balance change as a result of transaction + // geth always prints miner balance change when NOT in call + if ( !m_trace.isCall() ) { + printMinerBalanceChange( _statePre, _statePost, preDiff, postDiff ); + } + + // we are done, complete the trace JSON + + _jsonTrace["pre"] = preDiff; + _jsonTrace["post"] = postDiff; +} + +void PrestateTracePrinter::printMinerBalanceChange( const HistoricState& _statePre, + const HistoricState& _statePost, Json::Value& preDiff, Json::Value& postDiff ) const { + Address minerAddress = m_trace.getBlockAuthor(); + u256 minerBalancePre = getBalancePre( _statePre, minerAddress ); + u256 minerBalancePost = getBalancePost( _statePost, minerAddress ); + + preDiff[toHexPrefixed( minerAddress )]["balance"] = + AlethStandardTrace::toGethCompatibleCompactHexPrefixed( minerBalancePre ); + postDiff[toHexPrefixed( minerAddress )]["balance"] = + AlethStandardTrace::toGethCompatibleCompactHexPrefixed( minerBalancePost ); +} + + +// this function returns original values (pre) to result +void PrestateTracePrinter::printAllAccessedAccountPreValues( Json::Value& _jsonTrace, + const HistoricState& _statePre, const HistoricState& _statePost, const Address& _address ) { + STATE_CHECK( _jsonTrace.isObject() ) + + Json::Value accountPreValues; + // if this _address did not exist, we do not include it in the diff + // unless it is contract deploy + if ( !_statePre.addressInUse( _address ) && !m_trace.isContractCreation() ) + return; + + auto balance = _statePre.balance( _address ); + + // take into account that for calls balance is modified in the state before execution + if ( m_trace.isCall() && _address == m_trace.getFrom() ) { + balance = m_trace.getOriginalFromBalance(); + } + printNonce( _statePre, _statePost, _address, accountPreValues ); + + + accountPreValues["balance"] = AlethStandardTrace::toGethCompatibleCompactHexPrefixed( balance ); + + bytes const& code = _statePre.code( _address ); + if ( code != NullBytes ) { + accountPreValues["code"] = toHexPrefixed( code ); + } + + Json::Value storagePairs; + + auto& accessedStoragedValues = m_trace.getAccessedStorageValues(); + + // now print all storage values that were accessed (written or read) during the transaction + if ( accessedStoragedValues.count( _address ) ) { + for ( auto&& storageAddressValuePair : accessedStoragedValues.at( _address ) ) { + auto& storageAddress = storageAddressValuePair.first; + auto originalValue = _statePre.originalStorageValue( _address, storageAddress ); + storagePairs[toHexPrefixed( storageAddress )] = toHexPrefixed( originalValue ); + // return limited number of values to prevent DOS attacks + m_storageValuesReturnedAll++; + if ( m_storageValuesReturnedAll >= MAX_STORAGE_VALUES_RETURNED ) + break; + } + } + + if ( storagePairs ) { + accountPreValues["storage"] = storagePairs; + } + + // if nothing changed we do not add it to the diff + if ( accountPreValues ) + _jsonTrace[toHexPrefixed( _address )] = accountPreValues; +} + +void PrestateTracePrinter::printNonce( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, + Json::Value& accountPreValues ) const { + // geth does not print nonce for from address in debug_traceCall; + + + if ( m_trace.isCall() && _address == m_trace.getFrom() ) { + return; + } + + // handle special case of contract creation transaction + // in this case geth prints nonce = 1 for the contract + // that has been created + if ( isNewContract( _statePre, _statePost, _address ) ) { + accountPreValues["nonce"] = 1; + return; + } + + // now handle the generic case + + auto preNonce = ( uint64_t ) _statePre.getNonce( _address ); + auto postNonce = ( uint64_t ) _statePost.getNonce( _address ); + // in calls nonce is always printed by geth + // find out if the address is a contract. Geth always prints nonce for contracts + + if ( postNonce != preNonce || m_trace.isCall() || + isPreExistingContract( _statePre, _address ) ) { + accountPreValues["nonce"] = preNonce; + } +} + +void PrestateTracePrinter::printAccountPreDiff( Json::Value& _preDiffTrace, + const HistoricState& _statePre, const HistoricState& _statePost, const Address& _address ) { + Json::Value diffPre( Json::objectValue ); + + // If the account did not exist before the transaction, geth does not print it in pre trace + // exception is a top level contract created during the CREATE transaction. Geth always prints + // it in pre diff + if ( !_statePre.addressInUse( _address ) && + !( m_trace.isContractCreation() && isNewContract( _statePre, _statePost, _address ) ) ) { + return; + } + + printPreDiffBalance( _statePre, _statePost, _address, diffPre ); + + printPreDiffNonce( _statePre, _statePost, _address, diffPre ); + + printPreDiffCode( _statePre, _statePost, _address, diffPre ); + + printPreDiffStorage( _statePre, _statePost, _address, diffPre ); + + if ( !diffPre.empty() ) + _preDiffTrace[toHexPrefixed( _address )] = diffPre; +} + +void PrestateTracePrinter::printPreDiffCode( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, Json::Value& diffPre ) const { + auto& code = _statePre.code( _address ); + + if ( !_statePost.addressInUse( _address ) || _statePost.code( _address ) != code || + _statePre.getNonce( _address ) != + _statePost.getNonce( _address ) // geth always prints code here if nonce changed + ) { + if ( code != NullBytes ) { + diffPre["code"] = toHexPrefixed( code ); + } + } +} + +void PrestateTracePrinter::printPreDiffBalance( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, Json::Value& _diffPre ) const { + auto balancePre = getBalancePre( _statePre, _address ); + auto balancePost = getBalancePost( _statePost, _address ); + + + // always print balance of from address in calls + if ( m_trace.isCall() && _address == m_trace.getFrom() ) { + _diffPre["balance"] = AlethStandardTrace::toGethCompatibleCompactHexPrefixed( balancePre ); + return; + } + + // handle the case of a contract creation. Geth always prints balance 0 as pre for new contract + // geth does always print pre nonce equal 1 for newly created contract + if ( isNewContract( _statePre, _statePost, _address ) ) { + _diffPre["balance"] = "0x0"; + return; + } + + // now handle generic case + + if ( !_statePost.addressInUse( _address ) || balancePost != balancePre || + _statePre.getNonce( _address ) != + _statePost.getNonce( _address ) ) { // geth alw prints balance if nonce changed + _diffPre["balance"] = AlethStandardTrace::toGethCompatibleCompactHexPrefixed( balancePre ); + } +} + +u256 PrestateTracePrinter::getBalancePre( + const HistoricState& _statePre, const Address& _address ) const { + auto balancePre = _statePre.balance( _address ); + + if ( m_trace.isCall() && _address == m_trace.getFrom() ) { + // take into account that for calls balance is modified in the state before execution + balancePre = m_trace.getOriginalFromBalance(); + } + + return balancePre; +} + +u256 PrestateTracePrinter::getBalancePost( + const HistoricState& _statePost, const Address& _address ) const { + auto balancePost = _statePost.balance( _address ); + return balancePost; +} + +void PrestateTracePrinter::printPreDiffStorage( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, Json::Value& _diffPre ) { + // if its a new contract that did not exist before the transaction, + // then geth does not print its storage in pre + if ( isNewContract( _statePre, _statePost, _address ) ) { + return; + } + + // now handle generic case + + if ( m_trace.getAccessedStorageValues().find( _address ) != + m_trace.getAccessedStorageValues().end() ) { + Json::Value storagePairs; + + for ( auto&& it : m_trace.getAccessedStorageValues().at( _address ) ) { + auto& storageAddress = it.first; + auto storageValuePost = _statePost.storage( _address, storageAddress ); + bool includePair; + if ( !_statePost.addressInUse( _address ) ) { + // contract has been deleted. Include in diff + includePair = true; + } else if ( storageValuePost == 0 ) { + // storage has been deleted. Do not include + includePair = false; + } else { + auto storageValuePre = _statePre.originalStorageValue( _address, storageAddress ); + includePair = + storageValuePre != storageValuePost && + storageValuePre != 0; // geth does not print storage in pre if it is zero + } + + if ( includePair ) { + storagePairs[toHexPrefixed( it.first )] = + toHexPrefixed( _statePre.originalStorageValue( _address, it.first ) ); + // return limited number of storage pairs to prevent DOS attacks + m_storageValuesReturnedPre++; + if ( m_storageValuesReturnedPre >= MAX_STORAGE_VALUES_RETURNED ) + break; + } + } + + if ( !storagePairs.empty() ) + _diffPre["storage"] = storagePairs; + } +} + +void PrestateTracePrinter::printPreDiffNonce( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, Json::Value& _diff ) const { + // geth does not print pre from nonce in calls + if ( m_trace.isCall() && _address == m_trace.getFrom() ) { + return; + }; + + + // geth does always print pre nonce equal 1 for newly created contract + + + if ( isNewContract( _statePre, _statePost, _address ) ) { + _diff["nonce"] = 1; + return; + } + + // now handle generic case + auto noncePre = _statePre.getNonce( _address ); + if ( !_statePost.addressInUse( _address ) || _statePost.getNonce( _address ) != noncePre ) { + _diff["nonce"] = ( uint64_t ) noncePre; + } +} + +void PrestateTracePrinter::printPostDiffNonce( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, Json::Value& _diff ) const { + // geth does noty print post diff nonce for newly created contract + if ( isNewContract( _statePre, _statePost, _address ) ) { + return; + } + + // now handle generic case + + auto noncePost = _statePost.getNonce( _address ); + + if ( _statePre.getNonce( _address ) != noncePost ) { + _diff["nonce"] = ( uint64_t ) noncePost; + } +} + +void PrestateTracePrinter::printAccountPostDiff( Json::Value& _postDiffTrace, + const HistoricState& _statePre, const HistoricState& _statePost, const Address& _address ) { + Json::Value diffPost( Json::objectValue ); + + + // if this address does not exist post-transaction we dot include it in the trace + if ( !_statePost.addressInUse( _address ) ) + return; + + printPostDiffBalance( _statePre, _statePost, _address, diffPost ); + + printPostDiffNonce( _statePre, _statePost, _address, diffPost ); + + diffPost = printPostDiffCode( _statePre, _statePost, _address, diffPost ); + + printPostDiffStorage( _statePre, _statePost, _address, diffPost ); + + if ( !diffPost.empty() ) + _postDiffTrace[toHexPrefixed( _address )] = diffPost; +} + +Json::Value& PrestateTracePrinter::printPostDiffCode( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, Json::Value& diffPost ) const { + auto& codePost = _statePost.code( _address ); + + if ( !_statePre.addressInUse( _address ) || _statePre.code( _address ) != codePost ) { + if ( codePost != NullBytes ) { + diffPost["code"] = toHexPrefixed( codePost ); + } + } + return diffPost; +} + +void PrestateTracePrinter::printPostDiffBalance( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, Json::Value& diffPost ) const { + auto balancePre = getBalancePre( _statePre, _address ); + auto balancePost = getBalancePost( _statePost, _address ); + + // geth does not postbalance of from address in calls + if ( m_trace.isCall() && _address == m_trace.getFrom() ) { + return; + } + + // geth does not print postbalance for a newly created contract + if ( isNewContract( _statePre, _statePost, _address ) ) { + return; + } + + + // now handle generic case + if ( !_statePre.addressInUse( _address ) || balancePre != balancePost ) { + // if the new address, ot if the value changed, include in post trace + diffPost["balance"] = AlethStandardTrace::toGethCompatibleCompactHexPrefixed( balancePost ); + } +} + +void PrestateTracePrinter::printPostDiffStorage( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, + Json::Value& diffPost ) { // post diffs for storage values + if ( m_trace.getAccessedStorageValues().find( _address ) != + m_trace.getAccessedStorageValues().end() ) { + Json::Value storagePairs( Json::objectValue ); + + // iterate over all accessed storage values + for ( auto&& it : m_trace.getAccessedStorageValues().at( _address ) ) { + auto& storageAddress = it.first; + // take into account the fact that the change could have been reverted + // so we cannot use the value set by the last SSTORE + auto storageValue = _statePost.storage( _address, it.first ); + + bool includePair; + if ( !_statePre.addressInUse( _address ) ) { + // a new storage pair created. Include it in post diff + includePair = true; + } else if ( storageValue == 0 ) { + // the value has been deleted. We do not include it in post diff + includePair = false; + } else { + // see if the storage value has been changed + includePair = + _statePre.originalStorageValue( _address, storageAddress ) != storageValue; + } + + if ( includePair ) { + storagePairs[toHexPrefixed( storageAddress )] = toHexPrefixed( storageValue ); + // return limited number of storage pairs to prevent DOS attacks + m_storageValuesReturnedPost++; + if ( m_storageValuesReturnedPost >= MAX_STORAGE_VALUES_RETURNED ) + break; + } + } + + if ( !storagePairs.empty() ) + diffPost["storage"] = storagePairs; + } +} + + +PrestateTracePrinter::PrestateTracePrinter( AlethStandardTrace& standardTrace ) + : TracePrinter( standardTrace, "prestateTrace" ) {} + + +} // namespace dev::eth + +#endif \ No newline at end of file diff --git a/libhistoric/PrestateTracePrinter.h b/libhistoric/PrestateTracePrinter.h new file mode 100644 index 000000000..2b6ec4f52 --- /dev/null +++ b/libhistoric/PrestateTracePrinter.h @@ -0,0 +1,85 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#pragma once + +#include "TracePrinter.h" + + +namespace Json { +class Value; +} + +namespace dev::eth { + +struct ExecutionResult; +class HistoricState; + +class PrestateTracePrinter : public TracePrinter { +public: + void print( Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, + const HistoricState& ) override; + + explicit PrestateTracePrinter( AlethStandardTrace& standardTrace ); + +private: + void printDiffTrace( Json::Value& _jsonTrace, const ExecutionResult&, + const HistoricState& _statePre, const HistoricState& _statePost ); + + void printAllAccessedAccountPreValues( Json::Value& _jsonTrace, const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address ); + + void printAccountPreDiff( Json::Value& _preDiffTrace, const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address ); + + void printAccountPostDiff( Json::Value& _postDiffTrace, const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address ); + + void printPreStateTrace( + Json::Value& _jsonTrace, const HistoricState& _statePre, const HistoricState& _statePost ); + + void printMinerBalanceChange( const HistoricState& _statePre, const HistoricState& _statePost, + Json::Value& preDiff, Json::Value& postDiff ) const; + void printNonce( const HistoricState& _statePre, const HistoricState& _statePost, + const Address& _address, Json::Value& accountPreValues ) const; + void printPreDiffNonce( const HistoricState& _statePre, const HistoricState& _statePost, + const Address& _address, Json::Value& _diff ) const; + void printPostDiffNonce( const HistoricState& _statePre, const HistoricState& _statePost, + const Address& _address, Json::Value& _diff ) const; + void printPreDiffStorage( const HistoricState& _statePre, const HistoricState& _statePost, + const Address& _address, Json::Value& _diffPre ); + void printPostDiffStorage( const HistoricState& _statePre, const HistoricState& _statePost, + const Address& _address, Json::Value& diffPost ); + void printPreDiffBalance( const HistoricState& _statePre, const HistoricState& _statePost, + const Address& _address, Json::Value& _diffPre ) const; + void printPreDiffCode( const HistoricState& _statePre, const HistoricState& _statePost, + const Address& _address, Json::Value& diffPre ) const; + void printPostDiffBalance( const HistoricState& _statePre, const HistoricState& _statePost, + const Address& _address, Json::Value& diffPost ) const; + [[nodiscard]] Json::Value& printPostDiffCode( const HistoricState& _statePre, + const HistoricState& _statePost, const Address& _address, Json::Value& diffPost ) const; + + + uint64_t m_storageValuesReturnedPre = 0; + uint64_t m_storageValuesReturnedPost = 0; + uint64_t m_storageValuesReturnedAll = 0; + u256 getBalancePost( const HistoricState& _statePost, const Address& _address ) const; + u256 getBalancePre( const HistoricState& _statePre, const Address& _address ) const; +}; +} // namespace dev::eth diff --git a/libhistoric/ReplayTracePrinter.cpp b/libhistoric/ReplayTracePrinter.cpp new file mode 100644 index 000000000..86d2ab5a3 --- /dev/null +++ b/libhistoric/ReplayTracePrinter.cpp @@ -0,0 +1,64 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#ifdef HISTORIC_STATE + + +#include "ReplayTracePrinter.h" +#include "AlethStandardTrace.h" +#include "FunctionCallRecord.h" +#include "TraceStructuresAndDefs.h" + +namespace dev::eth { + +// print replay trace as implemented by parity +void ReplayTracePrinter::print( Json::Value& _jsonTrace, const ExecutionResult& _er, + const HistoricState&, const HistoricState& ) { + STATE_CHECK( _jsonTrace.isObject() ) + _jsonTrace["vmTrace"] = Json::Value::null; + _jsonTrace["stateDiff"] = Json::Value::null; + _jsonTrace["transactionHash"] = toHexPrefixed( m_trace.getTxHash() ); + _jsonTrace["output"] = toHexPrefixed( _er.output ); + auto failed = _er.excepted != TransactionException::None; + + if ( failed ) { + _jsonTrace["error"] = getEvmErrorDescription( m_trace.getEVMCStatusCode() ); + } + + Json::Value functionTraceArray( Json::arrayValue ); + Json::Value emptyAddress( Json::arrayValue ); + + auto topFunctionCallRecord = m_trace.getTopFunctionCall(); + + + // if topFunctionCallRecord is null + // it means that no bytecodes were executed, this was purely ETH transfer + // print nothing + if ( topFunctionCallRecord ) { + topFunctionCallRecord->printParityFunctionTrace( functionTraceArray, emptyAddress ); + } + _jsonTrace["trace"] = functionTraceArray; +} + +ReplayTracePrinter::ReplayTracePrinter( AlethStandardTrace& _standardTrace ) + : TracePrinter( _standardTrace, "replayTrace" ) {} + +} // namespace dev::eth + +#endif diff --git a/libhistoric/ReplayTracePrinter.h b/libhistoric/ReplayTracePrinter.h new file mode 100644 index 000000000..22c53d8a7 --- /dev/null +++ b/libhistoric/ReplayTracePrinter.h @@ -0,0 +1,41 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#pragma once + +#include "TracePrinter.h" + +namespace Json { +class Value; +} + +namespace dev::eth { + +struct ExecutionResult; +class HistoricState; + +class ReplayTracePrinter : public TracePrinter { +public: + explicit ReplayTracePrinter( AlethStandardTrace& standardTrace ); + +public: + void print( Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, + const HistoricState& ) override; +}; +} // namespace dev::eth diff --git a/libhistoric/TraceOptions.cpp b/libhistoric/TraceOptions.cpp new file mode 100644 index 000000000..6e97e48e1 --- /dev/null +++ b/libhistoric/TraceOptions.cpp @@ -0,0 +1,88 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + + +#ifdef HISTORIC_STATE + + +#include "TraceOptions.h" +#include "boost/throw_exception.hpp" + + +using namespace std; + +namespace dev::eth { + +const map< string, TraceType > TraceOptions::s_stringToTracerMap = { + { "", TraceType::DEFAULT_TRACER }, { "callTracer", TraceType::CALL_TRACER }, + { "prestateTracer", TraceType::PRESTATE_TRACER }, { "replayTracer", TraceType::REPLAY_TRACER }, + { "4byteTracer", TraceType::FOUR_BYTE_TRACER }, { "noopTracer", TraceType::NOOP_TRACER }, + { "allTracer", TraceType::ALL_TRACER } +}; + +TraceOptions TraceOptions::make( Json::Value const& _json ) { + TraceOptions op; + + if ( !_json.isObject() ) + BOOST_THROW_EXCEPTION( jsonrpc::JsonRpcException( + jsonrpc::Errors::ERROR_RPC_INVALID_PARAMS, "Invalid options" ) ); + + if ( !_json["disableStorage"].empty() ) + op.disableStorage = _json["disableStorage"].asBool(); + + if ( !_json["enableMemory"].empty() ) + op.enableMemory = _json["enableMemory"].asBool(); + if ( !_json["disableStack"].empty() ) + op.disableStack = _json["disableStack"].asBool(); + if ( !_json["enableReturnData"].empty() ) + op.enableReturnData = _json["enableReturnData"].asBool(); + + if ( !_json["tracer"].empty() ) { + auto tracerStr = _json["tracer"].asString(); + + if ( s_stringToTracerMap.count( tracerStr ) ) { + op.tracerType = s_stringToTracerMap.at( tracerStr ); + } else { + BOOST_THROW_EXCEPTION( jsonrpc::JsonRpcException( + jsonrpc::Errors::ERROR_RPC_INVALID_PARAMS, "Invalid tracer type:" + tracerStr ) ); + } + } + + if ( !_json["tracerConfig"].empty() && _json["tracerConfig"].isObject() ) { + if ( !_json["tracerConfig"]["diffMode"].empty() && + _json["tracerConfig"]["diffMode"].isBool() ) { + op.prestateDiffMode = _json["tracerConfig"]["diffMode"].asBool(); + } + + if ( !_json["tracerConfig"]["onlyTopCall"].empty() && + _json["tracerConfig"]["onlyTopCall"].isBool() ) { + op.onlyTopCall = _json["tracerConfig"]["onlyTopCall"].asBool(); + } + + if ( !_json["tracerConfig"]["withLog"].empty() && + _json["tracerConfig"]["withLog"].isBool() ) { + op.withLog = _json["tracerConfig"]["withLog"].asBool(); + } + } + + return op; +} +} // namespace dev::eth + +#endif \ No newline at end of file diff --git a/libhistoric/TraceOptions.h b/libhistoric/TraceOptions.h new file mode 100644 index 000000000..92e8c4d66 --- /dev/null +++ b/libhistoric/TraceOptions.h @@ -0,0 +1,70 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#pragma once + +#include +#include +#include +#include + +namespace dev::eth { + +enum class TraceType { + DEFAULT_TRACER, + PRESTATE_TRACER, + CALL_TRACER, + REPLAY_TRACER, + FOUR_BYTE_TRACER, + NOOP_TRACER, + ALL_TRACER +}; + +class TraceOptions { +public: + bool disableStorage = false; + bool enableMemory = false; + bool disableStack = false; + // geth enables return data by default + bool enableReturnData = true; + bool prestateDiffMode = false; + bool onlyTopCall = false; + bool withLog = false; + + [[nodiscard]] std::string toString() { + std::stringstream s; + s << ( uint64_t ) tracerType; + s << disableStorage; + s << enableMemory; + s << disableStack; + s << enableReturnData; + s << prestateDiffMode; + s << onlyTopCall; + s << withLog; + return s.str(); + } + + + TraceType tracerType = TraceType::DEFAULT_TRACER; + + static const std::map< std::string, TraceType > s_stringToTracerMap; + [[nodiscard]] static TraceOptions make( Json::Value const& _json ); +}; + +} // namespace dev::eth diff --git a/libhistoric/TracePrinter.cpp b/libhistoric/TracePrinter.cpp new file mode 100644 index 000000000..08471f1df --- /dev/null +++ b/libhistoric/TracePrinter.cpp @@ -0,0 +1,98 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#ifdef HISTORIC_STATE + +#include "FunctionCallRecord.h" +#include "NoopTracePrinter.h" +#include "TraceStructuresAndDefs.h" + +namespace dev::eth { + +// we try to be compatible with geth messages as much as we can +string TracePrinter::getEvmErrorDescription( evmc_status_code _error ) { + // this function should not be called if the status code is success + STATE_CHECK( _error != EVMC_SUCCESS ); + switch ( _error ) { + case EVMC_FAILURE: + return "evm failure"; + case EVMC_REVERT: + return "execution reverted"; + case EVMC_OUT_OF_GAS: + return "out of gas"; + case EVMC_INVALID_INSTRUCTION: + return "invalid instruction"; + case EVMC_UNDEFINED_INSTRUCTION: + return "undefined instruction"; + case EVMC_STACK_OVERFLOW: + return "stack overflow"; + case EVMC_STACK_UNDERFLOW: + return "stack underflow"; + case EVMC_BAD_JUMP_DESTINATION: + return "invalid jump"; + case EVMC_INVALID_MEMORY_ACCESS: + return "invalid memory access"; + case EVMC_CALL_DEPTH_EXCEEDED: + return "call depth exceeded"; + case EVMC_STATIC_MODE_VIOLATION: + return "static mode violation"; + case EVMC_PRECOMPILE_FAILURE: + return "precompile failure"; + case EVMC_CONTRACT_VALIDATION_FAILURE: + return "contract validation failure"; + case EVMC_ARGUMENT_OUT_OF_RANGE: + return "argument out of range"; + case EVMC_INTERNAL_ERROR: + return "internal error"; + case EVMC_REJECTED: + return "evm rejected"; + case EVMC_OUT_OF_MEMORY: + return "out of memory"; + default: + return "unexpected EVM error status code"; + }; +} + +TracePrinter::TracePrinter( AlethStandardTrace& _standardTrace, const string _jsonName ) + : m_trace( _standardTrace ), m_jsonName( _jsonName ) {} + +const string& TracePrinter::getJsonName() const { + return m_jsonName; +} + + +// this will return true if the contract existed before the transaction happened +bool TracePrinter::isPreExistingContract( + const HistoricState& _statePre, const Address& _address ) { + return _statePre.addressHasCode( _address ); +} + + +// this will return true if the address is a contract that has been created +// during the current transaction and has not been deleted +bool TracePrinter::isNewContract( + const HistoricState& _statePre, const HistoricState& _statePost, const Address& _address ) { + auto isNewContract = + !_statePre.addressHasCode( _address ) && _statePost.addressHasCode( _address ); + return isNewContract; +} + +} // namespace dev::eth + +#endif \ No newline at end of file diff --git a/libhistoric/TracePrinter.h b/libhistoric/TracePrinter.h new file mode 100644 index 000000000..e9c6d1018 --- /dev/null +++ b/libhistoric/TracePrinter.h @@ -0,0 +1,58 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + +#pragma once + +#include "TraceStructuresAndDefs.h" +#include "evmc/evmc.h" +#include "libdevcore/Address.h" +#include + +namespace Json { +class Value; +} + +namespace dev::eth { + +struct ExecutionResult; +class HistoricState; +class AlethStandardTrace; + +class TracePrinter { +public: + TracePrinter( AlethStandardTrace& _standardTrace, const std::string jsonName ); + + virtual void print( Json::Value& _jsonTrace, const ExecutionResult&, const HistoricState&, + const HistoricState& ) = 0; + + [[nodiscard]] const std::string& getJsonName() const; + + static std::string getEvmErrorDescription( evmc_status_code _error ); + +protected: + [[nodiscard]] static bool isNewContract( + const HistoricState& _statePre, const HistoricState& _statePost, const Address& _address ); + + [[nodiscard]] static bool isPreExistingContract( + const HistoricState& _statePre, const Address& _address ); + + AlethStandardTrace& m_trace; + const std::string m_jsonName; +}; +} // namespace dev::eth diff --git a/libhistoric/TraceStructuresAndDefs.h b/libhistoric/TraceStructuresAndDefs.h new file mode 100644 index 000000000..4ab241c43 --- /dev/null +++ b/libhistoric/TraceStructuresAndDefs.h @@ -0,0 +1,80 @@ +/* +Copyright (C) 2023-present, SKALE Labs + +This file is part of skaled. + +skaled 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. + +skaled 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 skaled. If not, see . +*/ + + +#pragma once + +#include "libdevcore/Common.h" +#include "libevm/Instruction.h" + + +// we limit the memory and storage entries returned to avoid +// denial of service attack. +// see here https://banteg.mirror.xyz/3dbuIlaHh30IPITWzfT1MFfSg6fxSssMqJ7TcjaWecM + +constexpr std::uint64_t MAX_MEMORY_VALUES_RETURNED = 1024; +constexpr std::uint64_t MAX_STORAGE_VALUES_RETURNED = 1024; +constexpr std::int64_t MAX_TRACE_DEPTH = 256; + + +#define STATE_CHECK( _EXPRESSION_ ) \ + if ( !( _EXPRESSION_ ) ) { \ + auto __msg__ = std::string( "State check failed::" ) + #_EXPRESSION_ + " " + \ + std::string( __FILE__ ) + ":" + to_string( __LINE__ ); \ + throw dev::eth::VMTracingError( __msg__ ); \ + } + + +namespace dev::eth { + +using std::string, std::shared_ptr, std::make_shared, std::to_string, std::set, std::map, + std::vector; + +struct LogRecord { + LogRecord( const std::vector< std::uint8_t >& _data, const std::vector< dev::u256 >& _topics ) + : m_data( _data ), m_topics( _topics ) {} + + const std::vector< std::uint8_t > m_data; + const std::vector< dev::u256 > m_topics; +}; + +struct OpExecutionRecord { + OpExecutionRecord( int64_t _depth, Instruction _op, uint64_t _gasRemaining, uint64_t _opGas, + uint64_t _pc, int64_t _refund, string _opName ) + : m_depth( _depth ), + m_op( _op ), + m_gasRemaining( _gasRemaining ), + m_opGas( _opGas ), + m_pc( _pc ), + m_refund( _refund ), + m_opName( _opName ) {} + + std::int64_t m_depth; + Instruction m_op; + std::uint64_t m_gasRemaining; + std::uint64_t m_opGas; + std::uint64_t m_pc; + std::int64_t m_refund; + std::string m_opName; + std::shared_ptr< std::map< dev::u256, dev::u256 > > m_accessedStorageValues = nullptr; + std::shared_ptr< u256s > m_stack = nullptr; + std::shared_ptr< bytes > m_memory = nullptr; +}; + +} // namespace dev::eth diff --git a/libskale-interpreter/VMConfig.h b/libskale-interpreter/VMConfig.h index 98431a0e2..48bf5a85d 100644 --- a/libskale-interpreter/VMConfig.h +++ b/libskale-interpreter/VMConfig.h @@ -53,7 +53,12 @@ namespace eth { #endif #if EVM_OPTIMIZE #define EVM_REPLACE_CONST_JUMP true +// We do not optimize constant pool on +// historic nodes because it introduces a non-standard instruction PUSHC +// which leads to non-geth-compatibe traces +#ifndef HISTORIC_STATE #define EVM_USE_CONSTANT_POOL true +#endif #define EVM_DO_FIRST_PASS_OPTIMIZATION ( EVM_REPLACE_CONST_JUMP || EVM_USE_CONSTANT_POOL ) #endif diff --git a/libskale/CMakeLists.txt b/libskale/CMakeLists.txt index 1a0fb8ff1..26b492aa1 100644 --- a/libskale/CMakeLists.txt +++ b/libskale/CMakeLists.txt @@ -65,7 +65,7 @@ target_include_directories( skale PUBLIC ${CMAKE_SOURCE_DIR}/libconsensus/jsoncpp/include ) #target_link_libraries(skale PUBLIC evm ethcore p2p devcrypto devcore ethereum PRIVATE jsoncpp Snappy::snappy Boost::fiber Boost::context) -target_link_libraries(skale PUBLIC ethereum web3jsonrpc skutils +target_link_libraries(skale PRIVATE ethereum web3jsonrpc historic skutils "${DEPS_INSTALL_ROOT}/lib/libzmq.a" "${DEPS_INSTALL_ROOT}/lib/libsodium.a" bls diff --git a/libskale/State.cpp b/libskale/State.cpp index 5bf4433d5..3e3526610 100644 --- a/libskale/State.cpp +++ b/libskale/State.cpp @@ -1033,8 +1033,7 @@ std::pair< ExecutionResult, TransactionReceipt > State::execute( EnvInfo const& strRevertReason = skutils::eth::call_error_message_2_str( res.output ); if ( strRevertReason.empty() ) strRevertReason = "EVM revert instruction without description message"; - std::string strOut = cc::fatal( "Error message from eth_call():" ) + cc::error( " " ) + - cc::warn( strRevertReason ); + std::string strOut = "Error message from State::execute(): " + strRevertReason; cerror << strOut; } diff --git a/libskale/httpserveroverride.cpp b/libskale/httpserveroverride.cpp index 70175a404..f76c94c69 100644 --- a/libskale/httpserveroverride.cpp +++ b/libskale/httpserveroverride.cpp @@ -60,7 +60,6 @@ #include #include #include -#include #include #include @@ -71,8 +70,6 @@ #include -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #if INT_MAX == 32767 // 16 bits @@ -271,9 +268,6 @@ bool checkParamsIsObject( const char* strMethodName, const rapidjson::Document& }; // namespace skale -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - namespace stats { typedef skutils::multithreading::recursive_mutex_type mutex_type_stats; @@ -512,8 +506,6 @@ static nlohmann::json generate_subsystem_stats( const char* strSubSystem ) { }; // namespace stats -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// const char* esm2str( e_server_mode_t esm ) { switch ( esm ) { @@ -525,8 +517,6 @@ const char* esm2str( e_server_mode_t esm ) { } } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SkaleStatsSubscriptionManager::SkaleStatsSubscriptionManager() : next_subscription_( 1 ) {} SkaleStatsSubscriptionManager::~SkaleStatsSubscriptionManager() { @@ -673,8 +663,6 @@ void SkaleStatsSubscriptionManager::unsubscribeAll() { } } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SkaleServerConnectionsTrackHelper::SkaleServerConnectionsTrackHelper( SkaleServerOverride& sso ) : m_sso( sso ) { @@ -685,8 +673,6 @@ SkaleServerConnectionsTrackHelper::~SkaleServerConnectionsTrackHelper() { m_sso.connection_counter_dec(); } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SkaleWsPeer::SkaleWsPeer( skutils::ws::server& srv, const skutils::ws::hdl_t& hdl ) : skutils::ws::peer( srv, hdl ), @@ -845,7 +831,6 @@ void SkaleWsPeer::onMessage( const std::string& msg, skutils::ws::opcv eOpCode ) stats::register_stats_exception( ( std::string( "RPC/" ) + pThis->getRelay().nfoGetSchemeUC() ).c_str(), "messages" ); stats::register_stats_exception( pThis->getRelay().nfoGetSchemeUC().c_str(), "messages" ); - // stats::register_stats_exception( "RPC", strMethod.c_str() ); pThis.get_unconst()->sendMessage( skutils::tools::trim_copy( strResponse ) ); stats::register_stats_answer( pThis->getRelay().nfoGetSchemeUC().c_str(), "messages", strResponse.size() ); @@ -1041,7 +1026,6 @@ void SkaleWsPeer::onMessage( const std::string& msg, skutils::ws::opcv eOpCode ) } }; // WS-processing-lambda skutils::dispatch::async( pThis->m_strPeerQueueID, fnAsyncMessageHandler ); - // skutils::ws::peer::onMessage( msg, eOpCode ); } void SkaleWsPeer::onClose( @@ -1314,8 +1298,6 @@ void SkaleWsPeer::eth_subscribe_logs( << ( pThis->desc() + cc::ws_tx( " <<< " ) + pThis->implPreformatTrafficJsonMessage( strNotification, false ) ); - // skutils::dispatch::async( pThis->m_strPeerQueueID, - // [pThis, strNotification]() -> void { bool bMessageSentOK = false; try { bMessageSentOK = const_cast< SkaleWsPeer* >( pThis.get() ) @@ -1433,8 +1415,6 @@ void SkaleWsPeer::eth_subscribe_newPendingTransactions( " <<< " + pThis->getRelay().nfoGetSchemeUC() + "/TX <<< " ) + pThis->desc() + cc::ws_tx( " <<< " ) + pThis->implPreformatTrafficJsonMessage( strNotification, false ) ); - // skutils::dispatch::async( pThis->m_strPeerQueueID, [pThis, strNotification]() -> - // void { bool bMessageSentOK = false; try { bMessageSentOK = @@ -1846,8 +1826,6 @@ std::string SkaleWsPeer::implPreformatTrafficJsonMessage( return cc::j( jo2 ); } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SkaleRelayWS::SkaleRelayWS( int ipVer, const char* strBindAddr, const char* strScheme, // "ws" or "wss" @@ -2001,37 +1979,6 @@ dev::eth::Interface* SkaleRelayWS::ethereum() const { return pSO->ethereum(); } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/* -SkaleRelayMiniHTTP::SkaleRelayMiniHTTP( SkaleServerOverride* pSO, int ipVer, - const char* strBindAddr, int nPort, const char* cert_path, const char* private_key_path, - const char*, // ca_path - int nServerIndex, size_t a_max_http_handler_queues, - bool is_async_http_transfer_mode ) - : SkaleServerHelper( nServerIndex ), - m_pSO( pSO ), - ipVer_( ipVer ), - strBindAddr_( strBindAddr ), - nPort_( nPort ), - m_bHelperIsSSL( ( cert_path && cert_path[0] && private_key_path && private_key_path[0] ) ? - true : - false ) { - if ( m_bHelperIsSSL ) - m_pServer.reset( new skutils::http::SSL_server( - cert_path, private_key_path, a_max_http_handler_queues, is_async_http_transfer_mode ) ); - else - m_pServer.reset( - new skutils::http::server( a_max_http_handler_queues, is_async_http_transfer_mode ) ); - m_pServer->ipVer_ = ipVer_; // not known before listen -} - -SkaleRelayMiniHTTP::~SkaleRelayMiniHTTP() { - m_pServer.reset(); -} -*/ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SkaleRelayProxygenHTTP::SkaleRelayProxygenHTTP( SkaleServerOverride* pSO, int ipVer, const char* strBindAddr, int nPort, const char* cert_path, const char* private_key_path, @@ -2066,8 +2013,6 @@ bool SkaleRelayProxygenHTTP::is_running() const { void SkaleRelayProxygenHTTP::stop() {} -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// const double SkaleServerOverride::g_lfDefaultExecutionDurationMaxForPerformanceWarning = 1.0; // in seconds, default 1 second @@ -2379,28 +2324,23 @@ skutils::result_of_http_request SkaleServerOverride::implHandleHttpRequest( jarrRequest = nlohmann::json::array(); jarrRequest.push_back( joIn ); } - for ( const nlohmann::json& joRequest : jarrRequest ) { - std::string strMethodWalk = - skutils::tools::getFieldSafe< std::string >( joRequest, "method" ); - if ( strMethodWalk.empty() ) + for ( const nlohmann::json& jsonRpcRequest : jarrRequest ) { + std::string methodName = + skutils::tools::getFieldSafe< std::string >( jsonRpcRequest, "method" ); + if ( methodName.empty() ) throw std::runtime_error( "Bad JSON RPC request, \"method\" name is missing" ); - strMethod = strMethodWalk; - if ( joRequest.count( "id" ) == 0 ) + + strMethod = methodName; + if ( jsonRpcRequest.count( "id" ) == 0 ) throw std::runtime_error( "Bad JSON RPC request, \"id\" name is missing" ); - joID = joRequest["id"]; - } // for( const nlohmann::json & joRequest : jarrRequest ) + joID = jsonRpcRequest["id"]; + } if ( isBatch ) { size_t cntInBatch = jarrRequest.size(); if ( cntInBatch > maxCountInBatchJsonRpcRequest_ ) throw std::runtime_error( "Bad JSON RPC request, too much requests in batch" ); } } catch ( ... ) { - // if ( strMethod.empty() ) { - // if ( isBatch ) - // strMethod = "batch_json_rpc_request"; - // else - // strMethod = "unknown_json_rpc_method"; - // } std::string e = "Bad JSON RPC request: " + joIn.dump(); throw std::runtime_error( e ); } @@ -2575,143 +2515,6 @@ skutils::result_of_http_request SkaleServerOverride::implHandleHttpRequest( return rslt; } -/* -bool SkaleServerOverride::implStartListening( // mini HTTP - std::shared_ptr< SkaleRelayMiniHTTP >& pSrv, int ipVer, const std::string& strAddr, int nPort, - const std::string& strPathSslKey, const std::string& strPathSslCert, - const std::string& strPathSslCA, int nServerIndex, e_server_mode_t esm, - size_t a_max_http_handler_queues, bool is_async_http_transfer_mode ) { - bool bIsSSL = false; - SkaleServerOverride* pSO = this; - if ( ( !strPathSslKey.empty() ) && ( !strPathSslCert.empty() ) ) - bIsSSL = true; - try { - implStopListening( pSrv, ipVer, bIsSSL, esm ); - if ( strAddr.empty() || nPort <= 0 ) - return true; - logTraceServerEvent( false, ipVer, bIsSSL ? "HTTPS" : "HTTP", -1, esm, - cc::debug( "starting " ) + cc::attention( "mini" ) + cc::debug( "/" ) + - cc::info( bIsSSL ? "HTTPS" : "HTTP" ) + cc::debug( "/" ) + - cc::num10( nServerIndex ) + cc::debug( "/" ) + cc::notice( esm2str( esm ) ) + - cc::debug( " server on address " ) + cc::info( strAddr ) + - cc::debug( " and port " ) + cc::c( nPort ) + cc::debug( "..." ) ); - if ( bIsSSL ) - pSrv.reset( new SkaleRelayMiniHTTP( pSO, ipVer, strAddr.c_str(), nPort, - strPathSslCert.c_str(), strPathSslKey.c_str(), strPathSslCA.c_str(), nServerIndex, - a_max_http_handler_queues, is_async_http_transfer_mode ) ); - else - pSrv.reset( new SkaleRelayMiniHTTP( pSO, ipVer, strAddr.c_str(), nPort, nullptr, - nullptr, nullptr, nServerIndex, a_max_http_handler_queues, - is_async_http_transfer_mode ) ); - pSrv->m_pServer->Options( - "/", [=]( const skutils::http::request& req, skutils::http::response& res ) { - stats::register_stats_message( - bIsSSL ? "HTTPS" : "HTTP", "query options", req.body_.size() ); - if ( opts_.isTraceCalls_ ) - logTraceServerTraffic( true, dev::VerbosityTrace, ipVer, - bIsSSL ? "HTTPS" : "HTTP", nServerIndex, esm, req.origin_.c_str(), - cc::info( "OPTTIONS" ) + cc::debug( " request handler" ) ); - res.set_header( "access-control-allow-headers", "Content-Type" ); - res.set_header( "access-control-allow-methods", "POST" ); - res.set_header( "access-control-allow-origin", "*" ); - res.set_header( "content-length", "0" ); - res.set_header( "vary", - "Origin, Access-Control-request-Method, Access-Control-request-Headers" ); - stats::register_stats_answer( - bIsSSL ? "HTTPS" : "HTTP", "query options", res.body_.size() ); - } ); - pSrv->m_pServer->Post( "/", [=, &pSrv]( const skutils::http::request& req, - skutils::http::response& res ) { - nlohmann::json joID = "-1"; - try { - if ( isShutdownMode() ) - throw std::runtime_error( "query was cancelled due to server shutdown mode" ); - nlohmann::json joIn = nlohmann::json::parse( req.body_ ); - if ( joIn.count( "id" ) > 0 ) - joID = joIn["id"]; - skutils::result_of_http_request rslt = implHandleHttpRequest( - joIn, bIsSSL ? "HTTPS" : "HTTP", nServerIndex, req.origin_, ipVer, nPort, esm ); - res.set_header( "access-control-allow-origin", "*" ); - res.set_header( "vary", "Origin" ); - if ( rslt.isBinary_ ) { - res.set_content( ( char* ) rslt.vecBytes_.data(), rslt.vecBytes_.size(), - "application/octet-stream" ); - } else { - std::string strOut = rslt.joOut_.dump(); - res.set_content( - ( char* ) strOut.c_str(), strOut.size(), "application/octet-stream" ); - } - return true; - } catch ( const std::exception& ex ) { - logTraceServerTraffic( false, dev::VerbosityError, ipVer, bIsSSL ? "HTTPS" : "HTTP", - nServerIndex, esm, req.origin_.c_str(), cc::warn( ex.what() ) ); - nlohmann::json joErrorResponce; - joErrorResponce["id"] = joID; - joErrorResponce["result"] = "error"; - joErrorResponce["error"] = std::string( ex.what() ); - std::string strOut = joErrorResponce.dump(); - stats::register_stats_exception( bIsSSL ? "HTTPS" : "HTTP", "POST" ); - res.set_header( "access-control-allow-origin", "*" ); - res.set_header( "vary", "Origin" ); - res.set_content( - ( char* ) strOut.c_str(), strOut.size(), "application/octet-stream" ); - return true; - } catch ( ... ) { - const char* e = "unknown exception in SkaleServerOverride"; - logTraceServerTraffic( false, dev::VerbosityError, ipVer, bIsSSL ? "HTTPS" : "HTTP", - nServerIndex, esm, req.origin_.c_str(), cc::warn( e ) ); - nlohmann::json joErrorResponce; - joErrorResponce["id"] = joID; - joErrorResponce["result"] = "error"; - joErrorResponce["error"] = std::string( e ); - std::string strOut = joErrorResponce.dump(); - stats::register_stats_exception( bIsSSL ? "HTTPS" : "HTTP", "POST" ); - res.set_header( "access-control-allow-origin", "*" ); - res.set_header( "vary", "Origin" ); - res.set_content( - ( char* ) strOut.c_str(), strOut.size(), "application/octet-stream" ); - return true; - } - } ); - // check if somebody is already listening - stat_check_port_availability_for_server_to_start_listen( - ipVer, strAddr.c_str(), nPort, esm, bIsSSL ? "HTTPS" : "HTTP", nServerIndex, this ); - // make server listen in its dedicated thread - std::thread( [=]() { - skutils::multithreading::threadNameAppender tn( - "/" + std::string( bIsSSL ? "HTTPS" : "HTTP" ) + "-listener" ); - if ( !pSrv->m_pServer->listen( ipVer, strAddr.c_str(), nPort ) ) { - stats::register_stats_error( bIsSSL ? "HTTPS" : "HTTP", "LISTEN" ); - return; - } - stats::register_stats_message( bIsSSL ? "HTTPS" : "HTTP", "LISTEN" ); - } ) - .detach(); - logTraceServerEvent( false, ipVer, bIsSSL ? "HTTPS" : "HTTP", nServerIndex, esm, - cc::success( "OK, started " ) + cc::attention( "mini" ) + cc::debug( "/" ) + - cc::info( bIsSSL ? "HTTPS" : "HTTP" ) + cc::debug( "/" ) + - cc::num10( nServerIndex ) + cc::success( " server on address " ) + - cc::info( strAddr ) + cc::success( " and port " ) + cc::c( nPort ) + - cc::success( "/" ) + cc::notice( esm2str( esm ) ) + " " ); - return true; - } catch ( const std::exception& ex ) { - logTraceServerEvent( false, ipVer, bIsSSL ? "HTTPS" : "HTTP", nServerIndex, esm, - cc::fatal( "FAILED" ) + cc::error( " to start " ) + cc::attention( "mini" ) + - cc::debug( "/" ) + cc::warn( bIsSSL ? "HTTPS" : "HTTP" ) + - cc::error( " server: " ) + cc::warn( ex.what() ) ); - } catch ( ... ) { - logTraceServerEvent( false, ipVer, bIsSSL ? "HTTPS" : "HTTP", nServerIndex, esm, - cc::fatal( "FAILED" ) + cc::error( " to start " ) + cc::attention( "mini" ) + - cc::debug( "/" ) + cc::warn( bIsSSL ? "HTTPS" : "HTTP" ) + - cc::error( " server: " ) + cc::warn( "unknown exception" ) ); - } - try { - implStopListening( pSrv, ipVer, bIsSSL, esm ); - } catch ( ... ) { - } - return false; -} -*/ bool SkaleServerOverride::implStartListening( // web socket std::shared_ptr< SkaleRelayWS >& pSrv, int ipVer, const std::string& strAddr, int nPort, @@ -2821,43 +2624,6 @@ bool SkaleServerOverride::implStartListening( // proxygen HTTP return false; } -/* -bool SkaleServerOverride::implStopListening( // mini HTTP - std::shared_ptr< SkaleRelayMiniHTTP >& pSrv, int ipVer, bool bIsSSL, e_server_mode_t esm ) { - try { - if ( !pSrv ) - return true; - const net_bind_opts_t& bo = ( esm == e_server_mode_t::esm_standard ) ? - opts_.netOpts_.bindOptsStandard_ : - opts_.netOpts_.bindOptsInformational_; - int nServerIndex = pSrv->serverIndex(); - std::string strAddr = ( ipVer == 4 ) ? - ( bIsSSL ? bo.strAddrMiniHTTPS4_ : bo.strAddrMiniHTTP4_ ) : - ( bIsSSL ? bo.strAddrMiniHTTPS6_ : bo.strAddrMiniHTTP6_ ); - int nPort = - ( ( ipVer == 4 ) ? ( bIsSSL ? bo.nBasePortMiniHTTPS4_ : bo.nBasePortMiniHTTP4_ ) : - ( bIsSSL ? bo.nBasePortMiniHTTPS6_ : bo.nBasePortMiniHTTP6_ ) ) + - nServerIndex; - logTraceServerEvent( false, ipVer, bIsSSL ? "HTTPS" : "HTTP", nServerIndex, esm, - cc::notice( "Will stop " ) + cc::attention( "mini" ) + cc::debug( "/" ) + - cc::info( bIsSSL ? "HTTPS" : "HTTP" ) + cc::notice( " server on address " ) + - cc::info( strAddr ) + cc::success( " and port " ) + cc::c( nPort ) + - cc::debug( "/" ) + cc::notice( esm2str( esm ) ) + cc::notice( "..." ) ); - if ( pSrv->m_pServer && pSrv->m_pServer->is_running() ) { - pSrv->m_pServer->stop(); - stats::register_stats_message( bIsSSL ? "HTTPS" : "HTTP", "STOP" ); - } - pSrv.reset(); - logTraceServerEvent( false, ipVer, bIsSSL ? "HTTPS" : "HTTP", nServerIndex, esm, - cc::success( "OK, stopped " ) + cc::attention( "mini" ) + cc::debug( "/" ) + - cc::info( bIsSSL ? "HTTPS" : "HTTP" ) + cc::success( " server on address " ) + - cc::info( strAddr ) + cc::success( " and port " ) + cc::c( nPort ) + - cc::debug( "/" ) + cc::notice( esm2str( esm ) ) ); - } catch ( ... ) { - } - return true; -} -*/ bool SkaleServerOverride::implStopListening( // web socket std::shared_ptr< SkaleRelayWS >& pSrv, int ipVer, bool bIsSSL, e_server_mode_t esm ) { @@ -2931,78 +2697,7 @@ bool SkaleServerOverride::StartListening( e_server_mode_t esm ) { opts_.netOpts_.bindOptsStandard_ : opts_.netOpts_.bindOptsInformational_; size_t nServerIndex; - // - // - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTP4 = - // ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTP4std_ : - // serversMiniHTTP4nfo_; - // if ( 0 <= bo.nBasePortMiniHTTP4_ && bo.nBasePortMiniHTTP4_ <= 65535 ) { - // for ( nServerIndex = 0; nServerIndex < bo.cntServers_; ++nServerIndex ) { - // std::shared_ptr< SkaleRelayMiniHTTP > pServer; - // if ( !implStartListening( // mini HTTP - // pServer, 4, bo.strAddrMiniHTTP4_, bo.nBasePortMiniHTTP4_ + nServerIndex, - // "", - // "", "", nServerIndex, esm, max_http_handler_queues_, - // is_async_http_transfer_mode_ ) ) - // return false; - // serversMiniHTTP4.push_back( pServer ); - // } - // } - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTP6 = - // ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTP6std_ : - // serversMiniHTTP6nfo_; - // if ( 0 <= bo.nBasePortMiniHTTP6_ && bo.nBasePortMiniHTTP6_ <= 65535 ) { - // for ( nServerIndex = 0; nServerIndex < bo.cntServers_; ++nServerIndex ) { - // std::shared_ptr< SkaleRelayMiniHTTP > pServer; - // if ( !implStartListening( // mini HTTP - // pServer, 6, bo.strAddrMiniHTTP6_, bo.nBasePortMiniHTTP6_ + nServerIndex, - // "", - // "", "", nServerIndex, esm, max_http_handler_queues_, - // is_async_http_transfer_mode_ ) ) - // return false; - // serversMiniHTTP6.push_back( pServer ); - // } - // } - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTPS4 = - // ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTPS4std_ : - // serversMiniHTTPS4nfo_; - // if ( 0 <= bo.nBasePortMiniHTTPS4_ && bo.nBasePortMiniHTTPS4_ <= 65535 && - // ( !opts_.netOpts_.strPathSslKey_.empty() ) && - // ( !opts_.netOpts_.strPathSslCert_.empty() ) && - // bo.nBasePortMiniHTTPS4_ != bo.nBasePortMiniHTTP4_ ) { - // for ( nServerIndex = 0; nServerIndex < bo.cntServers_; ++nServerIndex ) { - // std::shared_ptr< SkaleRelayMiniHTTP > pServer; - // if ( !implStartListening( // mini HTTP - // pServer, 4, bo.strAddrMiniHTTPS4_, bo.nBasePortMiniHTTPS4_ + - // nServerIndex, opts_.netOpts_.strPathSslKey_, - // opts_.netOpts_.strPathSslCert_, opts_.netOpts_.strPathSslCA_, - // nServerIndex, esm, max_http_handler_queues_, is_async_http_transfer_mode_ - // ) ) - // return false; - // serversMiniHTTPS4.push_back( pServer ); - // } - // } - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTPS6 = - // ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTPS6std_ : - // serversMiniHTTPS6nfo_; - // if ( 0 <= bo.nBasePortMiniHTTPS6_ && bo.nBasePortMiniHTTPS6_ <= 65535 && - // ( !opts_.netOpts_.strPathSslKey_.empty() ) && - // ( !opts_.netOpts_.strPathSslCert_.empty() ) && - // bo.nBasePortMiniHTTPS6_ != bo.nBasePortMiniHTTP6_ ) { - // for ( nServerIndex = 0; nServerIndex < bo.cntServers_; ++nServerIndex ) { - // std::shared_ptr< SkaleRelayMiniHTTP > pServer; - // if ( !implStartListening( // mini HTTP - // pServer, 6, bo.strAddrMiniHTTPS6_, bo.nBasePortMiniHTTPS6_ + - // nServerIndex, opts_.netOpts_.strPathSslKey_, - // opts_.netOpts_.strPathSslCert_, opts_.netOpts_.strPathSslCA_, - // nServerIndex, esm, max_http_handler_queues_, is_async_http_transfer_mode_ - // ) ) - // return false; - // serversMiniHTTPS6.push_back( pServer ); - // } - // } - // - // + std::list< std::shared_ptr< SkaleRelayWS > >& serversWS4 = ( esm == e_server_mode_t::esm_standard ) ? serversWS4std_ : serversWS4nfo_; if ( 0 <= bo.nBasePortWS4_ && bo.nBasePortWS4_ <= 65535 && @@ -3183,9 +2878,6 @@ bool SkaleServerOverride::StartListening() { skutils::url u( strOrigin ); std::string strSchemeUC = skutils::tools::to_upper( skutils::tools::trim_copy( u.scheme() ) ); - // std::string strAddress = skutils::tools::to_upper( skutils::tools::trim_copy( - // u.host() ) ); int ipVer = ( skutils::is_ipv6( strClientAddress ) && - // skutils::is_valid_ipv6( strClientAddress ) ) ? 6 : 4; std::string strPort = skutils::tools::trim_copy( u.port() ); int nPort = 0; if ( strPort.empty() ) { @@ -3221,44 +2913,7 @@ bool SkaleServerOverride::StopListening( e_server_mode_t esm ) { skutils::http_pg::pg_stop( hProxygenServer_ ); hProxygenServer_ = nullptr; } - // - // - // - // - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTP4 = - // ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTP4std_ : - // serversMiniHTTP4nfo_; - // for ( auto pServer : serversMiniHTTP4 ) { - // if ( !implStopListening( pServer, 4, false, esm ) ) - // bRetVal = false; - // } - // serversMiniHTTP4.clear(); - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTP6 = - // ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTP6std_ : - // serversMiniHTTP6nfo_; - // for ( auto pServer : serversMiniHTTP6 ) { - // if ( !implStopListening( pServer, 6, false, esm ) ) - // bRetVal = false; - // } - // serversMiniHTTP6.clear(); - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTPS4 = - // ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTPS4std_ : - // serversMiniHTTPS4nfo_; - // for ( auto pServer : serversMiniHTTPS4 ) { - // if ( !implStopListening( pServer, 4, true, esm ) ) - // bRetVal = false; - // } - // serversMiniHTTPS4.clear(); - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTPS6 = - // ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTPS6std_ : - // serversMiniHTTPS6nfo_; - // for ( auto pServer : serversMiniHTTPS6 ) { - // if ( !implStopListening( pServer, 6, true, esm ) ) - // bRetVal = false; - // } - // serversMiniHTTPS6.clear(); - // - // + std::list< std::shared_ptr< SkaleRelayWS > >& serversWS4 = ( esm == e_server_mode_t::esm_standard ) ? serversWS4std_ : serversWS4nfo_; for ( auto pServer : serversWS4 ) { @@ -3321,8 +2976,6 @@ bool SkaleServerOverride::StopListening( e_server_mode_t esm ) { bRetVal = false; } serversProxygenHTTPS6.clear(); - // - // return bRetVal; } bool SkaleServerOverride::StopListening() { @@ -3333,38 +2986,6 @@ bool SkaleServerOverride::StopListening() { return b; } -/* -int SkaleServerOverride::getServerPortStatusMiniHTTP( int ipVer, e_server_mode_t esm ) const { - const net_bind_opts_t& bo = ( esm == e_server_mode_t::esm_standard ) ? - opts_.netOpts_.bindOptsStandard_ : - opts_.netOpts_.bindOptsInformational_; - const std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTP4 = - ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTP4std_ : serversMiniHTTP4nfo_; - const std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTP6 = - ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTP6std_ : serversMiniHTTP6nfo_; - for ( auto pServer : ( ( ipVer == 4 ) ? serversMiniHTTP4 : serversMiniHTTP6 ) ) { - if ( pServer && pServer->m_pServer && pServer->m_pServer->is_running() ) - return ( ( ipVer == 4 ) ? bo.nBasePortMiniHTTP4_ : bo.nBasePortMiniHTTP6_ ) + - pServer->serverIndex(); - } - return -1; -} -int SkaleServerOverride::getServerPortStatusMiniHTTPS( int ipVer, e_server_mode_t esm ) const { - const net_bind_opts_t& bo = ( esm == e_server_mode_t::esm_standard ) ? - opts_.netOpts_.bindOptsStandard_ : - opts_.netOpts_.bindOptsInformational_; - const std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTPS4 = - ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTPS4std_ : serversMiniHTTPS4nfo_; - const std::list< std::shared_ptr< SkaleRelayMiniHTTP > >& serversMiniHTTPS6 = - ( esm == e_server_mode_t::esm_standard ) ? serversMiniHTTPS6std_ : serversMiniHTTPS6nfo_; - for ( auto pServer : ( ( ipVer == 4 ) ? serversMiniHTTPS4 : serversMiniHTTPS6 ) ) { - if ( pServer && pServer->m_pServer && pServer->m_pServer->is_running() ) - return ( ( ipVer == 4 ) ? bo.nBasePortMiniHTTPS4_ : bo.nBasePortMiniHTTPS6_ ) + - pServer->serverIndex(); - } - return -1; -} -*/ int SkaleServerOverride::getServerPortStatusWS( int ipVer, e_server_mode_t esm ) const { const net_bind_opts_t& bo = ( esm == e_server_mode_t::esm_standard ) ? @@ -3484,13 +3105,9 @@ nlohmann::json SkaleServerOverride::provideSkaleStats() { // abstract from skutils::stats::time_tracker::queue::getQueueForSubsystem( "RPC" ).getAllStats(); joStats["executionPerformance"] = joExecutionPerformance; joStats["protocols"]["http"]["listenerCount"] = - // serversMiniHTTP4std_.size() + serversMiniHTTP4nfo_.size() + - // serversMiniHTTP6std_.size() + serversMiniHTTP6nfo_.size() + serversProxygenHTTP4std_.size() + serversProxygenHTTP4nfo_.size() + serversProxygenHTTP6std_.size() + serversProxygenHTTP6nfo_.size(); joStats["protocols"]["https"]["listenerCount"] = - // serversMiniHTTPS4std_.size() + serversMiniHTTPS4nfo_.size() + - // serversMiniHTTPS6std_.size() + serversMiniHTTPS6nfo_.size() + serversProxygenHTTPS4std_.size() + serversProxygenHTTPS4nfo_.size() + serversProxygenHTTPS6std_.size() + serversProxygenHTTPS6nfo_.size(); joStats["protocols"]["wss"]["listenerCount"] = serversWSS4std_.size() + serversWSS4nfo_.size() + @@ -3656,10 +3273,6 @@ bool SkaleServerOverride::handleRequestWithBinaryAnswer( buffer.clear(); std::string strMethodName = skutils::tools::getFieldSafe< std::string >( joRequest, "method" ); if ( strMethodName == "skale_downloadSnapshotFragment" && opts_.fn_binary_snapshot_download_ ) { - // std::cout << cc::attention( "------------ " ) - // << cc::info( "skale_downloadSnapshotFragment" ) << cc::normal( " call - // with " ) - // << cc::j( joRequest ) << "\n"; const nlohmann::json& joParams = joRequest["params"]; if ( joParams.count( "isBinary" ) > 0 ) { bool isBinary = joParams["isBinary"].get< bool >(); @@ -3674,9 +3287,6 @@ bool SkaleServerOverride::handleRequestWithBinaryAnswer( bool SkaleServerOverride::handleAdminOriginFilter( const std::string& strMethod, const std::string& strOriginURL ) { - // std::cout << cc::attention( "------------ " ) << cc::info( strOriginURL ) << - // cc::attention( " - // ------------> " ) << cc::info( strMethod ) << "\n"; static const std::set< std::string > g_setAdminMethods = { "skale_getSnapshot", "skale_downloadSnapshotFragment" }; if ( g_setAdminMethods.find( strMethod ) == g_setAdminMethods.end() ) @@ -3692,8 +3302,6 @@ bool SkaleServerOverride::handleAdminOriginFilter( return true; } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// bool SkaleServerOverride::handleProtocolSpecificRequest( const std::string& strOrigin, const rapidjson::Document& joRequest, rapidjson::Document& joResponse ) { @@ -3716,8 +3324,6 @@ const SkaleServerOverride::protocol_rpc_map_t SkaleServerOverride::g_protocol_rp { "eth_getCode", &SkaleServerOverride::eth_getCode } }; -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void SkaleServerOverride::setSchainExitTime( const std::string& strOrigin, const rapidjson::Document& joRequest, rapidjson::Document& joResponse ) { @@ -3896,10 +3502,6 @@ bool SkaleServerOverride::handleHttpSpecificRequest( const std::string& strOrigi d.SetObject(); joResponse.AddMember( "result", d, joResponse.GetAllocator() ); - // rapidjson::StringBuffer buffer; - // rapidjson::Writer< rapidjson::StringBuffer > writer( buffer ); - // joRequest.Accept( writer ); - // std::string strRequest = buffer.GetString(); rapidjson::StringBuffer bufferResponse; rapidjson::Writer< rapidjson::StringBuffer > writerResponse( bufferResponse ); @@ -4020,6 +3622,3 @@ void SkaleServerOverride::stat_transformJsonForLogOutput( nlohmann::json& jo, bo } } } - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/libskale/httpserveroverride.h b/libskale/httpserveroverride.h index 670a61027..0cce6a132 100644 --- a/libskale/httpserveroverride.h +++ b/libskale/httpserveroverride.h @@ -82,15 +82,11 @@ class SkaleWsPeer; class SkaleRelayWS; class SkaleServerOverride; -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// enum class e_server_mode_t { esm_standard, esm_informational }; extern const char* esm2str( e_server_mode_t esm ); -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class SkaleStatsSubscriptionManager { public: @@ -123,8 +119,6 @@ class SkaleStatsSubscriptionManager { virtual SkaleServerOverride& getSSO() = 0; }; // class SkaleStatsSubscriptionManager -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct SkaleServerConnectionsTrackHelper { SkaleServerOverride& m_sso; @@ -132,8 +126,6 @@ struct SkaleServerConnectionsTrackHelper { ~SkaleServerConnectionsTrackHelper(); }; /// struct SkaleServerConnectionsTrackHelper -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class SkaleWsPeer : public skutils::ws::peer { public: @@ -206,8 +198,6 @@ class SkaleWsPeer : public skutils::ws::peer { std::string implPreformatTrafficJsonMessage( const nlohmann::json& jo, bool isRequest ) const; }; /// class SkaleWsPeer -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class SkaleServerHelper { protected: @@ -219,8 +209,6 @@ class SkaleServerHelper { int serverIndex() const { return m_nServerIndex; } }; /// class SkaleServerHelper -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class SkaleRelayWS : public skutils::ws::server, public SkaleServerHelper { protected: @@ -267,36 +255,10 @@ class SkaleRelayWS : public skutils::ws::server, public SkaleServerHelper { friend class SkaleWsPeer; }; /// class SkaleRelayWS -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/* -class SkaleRelayMiniHTTP : public SkaleServerHelper { -protected: - SkaleServerOverride* m_pSO = nullptr; - -public: - int ipVer_; - std::string strBindAddr_; - int nPort_; - const bool m_bHelperIsSSL : 1; - std::shared_ptr< skutils::http::server > m_pServer; - SkaleRelayMiniHTTP( SkaleServerOverride* pSO, int ipVer, const char* strBindAddr, int nPort, - const char* cert_path = nullptr, const char* private_key_path = nullptr, - const char* ca_path = nullptr, int nServerIndex = -1, - size_t a_max_http_handler_queues = __SKUTILS_HTTP_DEFAULT_MAX_PARALLEL_QUEUES_COUNT__, - bool is_async_http_transfer_mode = true ); - ~SkaleRelayMiniHTTP() override; - SkaleServerOverride* pso() { return m_pSO; } - const SkaleServerOverride* pso() const { return m_pSO; } -}; /// class SkaleRelayMiniHTTP -*/ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class SkaleRelayProxygenHTTP : public SkaleServerHelper { protected: SkaleServerOverride* m_pSO = nullptr; - // skutils::http_pg::wrapped_proxygen_server_handle hProxygenServer_ = nullptr; public: int ipVer_; @@ -317,8 +279,6 @@ class SkaleRelayProxygenHTTP : public SkaleServerHelper { void stop(); }; /// class SkaleRelayProxygenHTTP -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class SkaleServerOverride : public jsonrpc::AbstractServerConnector, public SkaleStatsSubscriptionManager, @@ -465,12 +425,6 @@ class SkaleServerOverride : public jsonrpc::AbstractServerConnector, int nPort, e_server_mode_t esm ); private: - // bool implStartListening( // mini HTTP - // std::shared_ptr< SkaleRelayMiniHTTP >& pSrv, int ipVer, const std::string& strAddr, - // int nPort, const std::string& strPathSslKey, const std::string& strPathSslCert, - // const std::string& strPathSslCA, int nServerIndex, e_server_mode_t esm, - // size_t a_max_http_handler_queues = __SKUTILS_HTTP_DEFAULT_MAX_PARALLEL_QUEUES_COUNT__, - // bool is_async_http_transfer_mode = true ); bool implStartListening( // web socket std::shared_ptr< SkaleRelayWS >& pSrv, int ipVer, const std::string& strAddr, int nPort, const std::string& strPathSslKey, const std::string& strPathSslCert, @@ -481,9 +435,6 @@ class SkaleServerOverride : public jsonrpc::AbstractServerConnector, const std::string& strPathSslCA, int nServerIndex, e_server_mode_t esm, int32_t threads = 0, int32_t threads_limit = 0 ); - // bool implStopListening( // mini HTTP - // std::shared_ptr< SkaleRelayMiniHTTP >& pSrv, int ipVer, bool bIsSSL, e_server_mode_t - // esm ); bool implStopListening( // web socket std::shared_ptr< SkaleRelayWS >& pSrv, int ipVer, bool bIsSSL, e_server_mode_t esm ); bool implStopListening( // proxygen HTTP @@ -519,10 +470,6 @@ class SkaleServerOverride : public jsonrpc::AbstractServerConnector, std::atomic_bool m_bShutdownMode = false; private: - // std::list< std::shared_ptr< SkaleRelayMiniHTTP > > serversMiniHTTP4std_, - // serversMiniHTTP6std_, - // serversMiniHTTPS4std_, serversMiniHTTPS6std_, serversMiniHTTP4nfo_, - // serversMiniHTTP6nfo_, serversMiniHTTPS4nfo_, serversMiniHTTPS6nfo_; std::list< std::shared_ptr< SkaleRelayWS > > serversWS4std_, serversWS6std_, serversWSS4std_, serversWSS6std_, serversWS4nfo_, serversWS6nfo_, serversWSS4nfo_, serversWSS6nfo_; std::list< std::shared_ptr< SkaleRelayProxygenHTTP > > serversProxygenHTTP4std_, @@ -535,9 +482,6 @@ class SkaleServerOverride : public jsonrpc::AbstractServerConnector, const std::string& strDstAddress, int nDstPort, e_server_mode_t& esm ); public: - // status API, returns running server port or -1 if server is not started - // int getServerPortStatusMiniHTTP( int ipVer, e_server_mode_t esm ) const; - // int getServerPortStatusMiniHTTPS( int ipVer, e_server_mode_t esm ) const; int getServerPortStatusWS( int ipVer, e_server_mode_t esm ) const; int getServerPortStatusWSS( int ipVer, e_server_mode_t esm ) const; int getServerPortStatusProxygenHTTP( int ipVer, e_server_mode_t esm ) const; @@ -631,13 +575,10 @@ class SkaleServerOverride : public jsonrpc::AbstractServerConnector, size_t nMaxStringValueLengthForJsonLogs, size_t nMaxStringValueLengthForTransactionParams, size_t nCallIndent = 0 ); - // friend class SkaleRelayMiniHTTP; friend class SkaleRelayProxygenHTTP; friend class SkaleRelayWS; friend class SkaleWsPeer; }; /// class SkaleServerOverride -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #endif ///(!defined __HTTP_SERVER_OVERRIDE_H) diff --git a/libweb3jsonrpc/AdminEth.cpp b/libweb3jsonrpc/AdminEth.cpp index 5a228bba5..983dcdb7c 100644 --- a/libweb3jsonrpc/AdminEth.cpp +++ b/libweb3jsonrpc/AdminEth.cpp @@ -163,7 +163,7 @@ Json::Value AdminEth::admin_eth_vmTrace( // st.setShowMnemonics(); // e.initialize(t); // if (!e.execute()) - // e.go(st.onOp()); + // e.go(st.functionToExecuteOnEachOperation()); // e.finalize(); // Json::Reader().parse(st.json(), ret); } catch ( Exception const& _e ) { diff --git a/libweb3jsonrpc/Debug.cpp b/libweb3jsonrpc/Debug.cpp index 91cc76bca..dc7de9e52 100644 --- a/libweb3jsonrpc/Debug.cpp +++ b/libweb3jsonrpc/Debug.cpp @@ -1,7 +1,8 @@ + #include "Debug.h" #include "JsonHelper.h" -#include + #include #include @@ -9,7 +10,14 @@ #include #include #include -#include +#include + + +#ifdef HISTORIC_STATE + +#include +#include +#endif using namespace std; using namespace dev; @@ -17,246 +25,277 @@ using namespace dev::rpc; using namespace dev::eth; using namespace skale; -Debug::Debug( eth::Client const& _eth, SkaleDebugInterface* _debugInterface, const string& argv ) - : m_eth( _eth ), m_debugInterface( _debugInterface ), argv_options( argv ) {} - -StandardTrace::DebugOptions dev::eth::debugOptions( Json::Value const& _json ) { - StandardTrace::DebugOptions op; - if ( !_json.isObject() || _json.empty() ) - return op; - if ( !_json["disableStorage"].empty() ) - op.disableStorage = _json["disableStorage"].asBool(); - if ( !_json["disableMemory"].empty() ) - op.disableMemory = _json["disableMemory"].asBool(); - if ( !_json["disableStack"].empty() ) - op.disableStack = _json["disableStack"].asBool(); - if ( !_json["fullStorage"].empty() ) - op.fullStorage = _json["fullStorage"].asBool(); - return op; + +#define THROW_TRACE_JSON_EXCEPTION( __MSG__ ) \ + throw jsonrpc::JsonRpcException( std::string( __FUNCTION__ ) + ":" + \ + std::to_string( __LINE__ ) + ":" + std::string( __MSG__ ) ) + + +void Debug::checkPrivilegedAccess() const { + if ( !m_enablePrivilegedApis ) { + BOOST_THROW_EXCEPTION( jsonrpc::JsonRpcException( "This API call is not enabled" ) ); + } } +void Debug::checkHistoricStateEnabled() const { +#ifndef HISTORIC_STATE + BOOST_THROW_EXCEPTION( + jsonrpc::JsonRpcException( "This API call is available on archive nodes only" ) ); +#endif +} + +Debug::Debug( eth::Client& _eth, SkaleDebugInterface* _debugInterface, const string& argv, + bool _enablePrivilegedApis ) + : m_eth( _eth ), + m_debugInterface( _debugInterface ), + m_argvOptions( argv ), + m_blockTraceCache( MAX_BLOCK_TRACES_CACHE_ITEMS, MAX_BLOCK_TRACES_CACHE_SIZE ), + m_enablePrivilegedApis( _enablePrivilegedApis ) {} + + h256 Debug::blockHash( string const& _blockNumberOrHash ) const { + checkPrivilegedAccess(); if ( isHash< h256 >( _blockNumberOrHash ) ) return h256( _blockNumberOrHash.substr( _blockNumberOrHash.size() - 64, 64 ) ); try { return m_eth.blockChain().numberHash( stoul( _blockNumberOrHash ) ); } catch ( ... ) { - throw jsonrpc::JsonRpcException( "Invalid argument" ); + THROW_TRACE_JSON_EXCEPTION( "Invalid argument" ); } } -State Debug::stateAt( std::string const& /*_blockHashOrNumber*/, int _txIndex ) const { - if ( _txIndex < 0 ) - throw jsonrpc::JsonRpcException( "Negative index" ); - - throw logic_error( "State at is not supported in Skale state" ); +Json::Value Debug::debug_traceBlockByNumber( const string& +#ifdef HISTORIC_STATE + _blockNumber +#endif + , + Json::Value const& +#ifdef HISTORIC_STATE + _jsonTraceConfig +#endif +) { + Json::Value ret; + checkHistoricStateEnabled(); +#ifdef HISTORIC_STATE + auto bN = jsToBlockNumber( _blockNumber ); - // Block block = m_eth.block(blockHash(_blockHashOrNumber)); - // auto const txCount = block.pending().size(); + if ( bN == LatestBlock || bN == PendingBlock ) { + bN = m_eth.number(); + } - // State state(State::Null); - // if (static_cast(_txIndex) < txCount) - // createIntermediateState(state, block, _txIndex, m_eth.blockChain()); - // else if (static_cast(_txIndex) == txCount) - // // the final state of block (after applying rewards) - // state = block.state(); - // else - // throw jsonrpc::JsonRpcException("Transaction index " + toString(_txIndex) + - // " out of range for block " + _blockHashOrNumber); + if ( !m_eth.isKnown( bN ) ) { + THROW_TRACE_JSON_EXCEPTION( "Unknown block number:" + _blockNumber ); + } - // return state; -} + if ( bN == 0 ) { + THROW_TRACE_JSON_EXCEPTION( "Block number must be more than zero" ); + } -Json::Value Debug::traceTransaction( - Executive& _e, Transaction const& _t, Json::Value const& _json ) { - Json::Value trace; - StandardTrace st; - st.setShowMnemonics(); - st.setOptions( debugOptions( _json ) ); - _e.initialize( _t ); - if ( !_e.execute() ) - _e.go( st.onOp() ); - _e.finalize(); - Json::Reader().parse( st.json(), trace ); - return trace; + try { + return m_eth.traceBlock( bN, _jsonTraceConfig ); + } catch ( std::exception const& _e ) { + THROW_TRACE_JSON_EXCEPTION( _e.what() ); + } catch ( ... ) { + THROW_TRACE_JSON_EXCEPTION( "Unknown server error" ); + } +#else + THROW_TRACE_JSON_EXCEPTION( "This API call is only supported on archive nodes" ); +#endif } -Json::Value Debug::traceBlock( Block const& _block, Json::Value const& _json ) { - State s( _block.state() ); - // s.setRoot(_block.stateRootBeforeTx(0)); - - Json::Value traces( Json::arrayValue ); - for ( unsigned k = 0; k < _block.pending().size(); k++ ) { - Transaction t = _block.pending()[k]; +Json::Value Debug::debug_traceBlockByHash( string const& +#ifdef HISTORIC_STATE + _blockHash +#endif + , + Json::Value const& +#ifdef HISTORIC_STATE + _jsonTraceConfig +#endif +) { + checkHistoricStateEnabled(); + +#ifdef HISTORIC_STATE + h256 h = jsToFixed< 32 >( _blockHash ); + + if ( !m_eth.isKnown( h ) ) { + THROW_TRACE_JSON_EXCEPTION( "Unknown block hash" + _blockHash ); + } - u256 const gasUsed = k ? _block.receipt( k - 1 ).cumulativeGasUsed() : 0; - auto const& bc = m_eth.blockChain(); - EnvInfo envInfo( - _block.info(), m_eth.blockChain().lastBlockHashes(), gasUsed, bc.chainID() ); - // HACK 0 here is for gasPrice - Executive e( s, envInfo, *m_eth.blockChain().sealEngine(), 0 ); + BlockNumber bN = m_eth.numberFromHash( h ); - eth::ExecutionResult er; - e.setResultRecipient( er ); - traces.append( traceTransaction( e, t, _json ) ); + if ( bN == 0 ) { + THROW_TRACE_JSON_EXCEPTION( "Block number must be more than zero" ); } - return traces; -} -Json::Value Debug::debug_traceTransaction( - string const& /*_txHash*/, Json::Value const& /*_json*/ ) { - Json::Value ret; try { - throw std::logic_error( "Historical state is not supported in Skale" ); - // Executive e(s, block, t.transactionIndex(), m_eth.blockChain()); - // e.setResultRecipient(er); - // Json::Value trace = traceTransaction(e, t, _json); - // ret["gas"] = toJS(t.gas()); - // ret["return"] = toHexPrefixed(er.output); - // ret["structLogs"] = trace; - } catch ( Exception const& _e ) { - cwarn << diagnostic_information( _e ); + return m_eth.traceBlock( bN, _jsonTraceConfig ); + } catch ( std::exception const& _e ) { + THROW_TRACE_JSON_EXCEPTION( _e.what() ); + } catch ( ... ) { + THROW_TRACE_JSON_EXCEPTION( "Unknown server error" ); } - return ret; +#else + THROW_TRACE_JSON_EXCEPTION( "This API call is only supported on archive nodes" ); +#endif } -Json::Value Debug::debug_traceBlock( string const& _blockRLP, Json::Value const& _json ) { - bytes bytes = fromHex( _blockRLP ); - BlockHeader blockHeader( bytes ); - return debug_traceBlockByHash( blockHeader.hash().hex(), _json ); -} -// TODO Make function without "block" parameter -Json::Value Debug::debug_traceBlockByHash( - string const& /*_blockHash*/, Json::Value const& _json ) { - Json::Value ret; - Block block = m_eth.latestBlock(); - ret["structLogs"] = traceBlock( block, _json ); - return ret; -} +Json::Value Debug::debug_traceTransaction( string const& +#ifdef HISTORIC_STATE + _txHashStr +#endif + , + Json::Value const& +#ifdef HISTORIC_STATE + _jsonTraceConfig +#endif +) { -// TODO Make function without "block" parameter -Json::Value Debug::debug_traceBlockByNumber( int /*_blockNumber*/, Json::Value const& _json ) { - Json::Value ret; - Block block = m_eth.latestBlock(); - ret["structLogs"] = traceBlock( block, _json ); - return ret; -} + checkHistoricStateEnabled(); +#ifdef HISTORIC_STATE + auto txHash = h256( _txHashStr ); -Json::Value Debug::debug_accountRangeAt( string const& _blockHashOrNumber, int _txIndex, - string const& /*_addressHash*/, int _maxResults ) { - Json::Value ret( Json::objectValue ); + LocalisedTransaction localisedTransaction = m_eth.localisedTransaction( txHash ); - if ( _maxResults <= 0 ) - throw jsonrpc::JsonRpcException( "Nonpositive maxResults" ); + if ( localisedTransaction.blockHash() == h256( 0 ) ) { + THROW_TRACE_JSON_EXCEPTION( + "Can't find committed transaction with this hash:" + _txHashStr ); + } - try { - State const state = stateAt( _blockHashOrNumber, _txIndex ); + auto blockNumber = localisedTransaction.blockNumber(); - throw std::logic_error( "Addresses list is not suppoted in Skale state" ); - // auto const addressMap = state.addresses(h256(_addressHash), _maxResults); - // Json::Value addressList(Json::objectValue); - // for (auto const& record : addressMap.first) - // addressList[toString(record.first)] = toString(record.second); + if ( !m_eth.isKnown( blockNumber ) ) { + THROW_TRACE_JSON_EXCEPTION( "Unknown block number:" + to_string( blockNumber ) ); + } - // ret["addressMap"] = addressList; - // ret["nextKey"] = toString(addressMap.second); - } catch ( Exception const& _e ) { - cwarn << diagnostic_information( _e ); - throw jsonrpc::JsonRpcException( jsonrpc::Errors::ERROR_RPC_INVALID_PARAMS ); + if ( blockNumber == 0 ) { + THROW_TRACE_JSON_EXCEPTION( "Block number must be more than zero" ); } - return ret; -} + try { + Json::Value tracedBlock; -Json::Value Debug::debug_storageRangeAt( string const& _blockHashOrNumber, int _txIndex, - string const& /*_address*/, string const& /*_begin*/, int _maxResults ) { - Json::Value ret( Json::objectValue ); - ret["complete"] = true; - ret["storage"] = Json::Value( Json::objectValue ); + tracedBlock = m_eth.traceBlock( blockNumber, _jsonTraceConfig ); + STATE_CHECK( tracedBlock.isArray() ) + STATE_CHECK( !tracedBlock.empty() ) - if ( _maxResults <= 0 ) - throw jsonrpc::JsonRpcException( "Nonpositive maxResults" ); - try { - State const state = stateAt( _blockHashOrNumber, _txIndex ); - - throw std::logic_error( "Obtaining of full storage is not suppoted in Skale state" ); - // map> const storage(state.storage(Address(_address))); - - // // begin is inclusive - // auto itBegin = storage.lower_bound(h256fromHex(_begin)); - // for (auto it = itBegin; it != storage.end(); ++it) - // { - // if (ret["storage"].size() == static_cast(_maxResults)) - // { - // ret["nextKey"] = toCompactHexPrefixed(it->first, 1); - // break; - // } - - // Json::Value keyValue(Json::objectValue); - // std::string hashedKey = toCompactHexPrefixed(it->first, 1); - // keyValue["key"] = toCompactHexPrefixed(it->second.first, 1); - // keyValue["value"] = toCompactHexPrefixed(it->second.second, 1); - - // ret["storage"][hashedKey] = keyValue; - // } - } catch ( Exception const& _e ) { - cwarn << diagnostic_information( _e ); - throw jsonrpc::JsonRpcException( jsonrpc::Errors::ERROR_RPC_INVALID_PARAMS ); - } + string lowerCaseTxStr = _txHashStr; + for ( auto& c : lowerCaseTxStr ) { + c = std::tolower( static_cast< unsigned char >( c ) ); + } - return ret; -} -std::string Debug::debug_preimage( std::string const& /*_hashedKey*/ ) { - throw std::logic_error( "Preimages do not exist in Skale state" ); - // h256 const hashedKey(h256fromHex(_hashedKey)); - // bytes const key = m_eth.state().lookupAux(hashedKey); + for ( Json::Value::ArrayIndex i = 0; i < tracedBlock.size(); i++ ) { + Json::Value& transactionTrace = tracedBlock[i]; + STATE_CHECK( transactionTrace.isObject() ); + STATE_CHECK( transactionTrace.isMember( "txHash" ) ); + if ( transactionTrace["txHash"] == lowerCaseTxStr ) { + STATE_CHECK( transactionTrace.isMember( "result" ) ); + return transactionTrace["result"]; + } + } + + THROW_TRACE_JSON_EXCEPTION( "Transaction not found in block" ); - // return key.empty() ? std::string() : toHexPrefixed(key); + } catch ( jsonrpc::JsonRpcException& ) { + throw; + } catch ( std::exception const& _e ) { + THROW_TRACE_JSON_EXCEPTION( _e.what() ); + } catch ( ... ) { + THROW_TRACE_JSON_EXCEPTION( "Unknown server error" ); + } +#else + BOOST_THROW_EXCEPTION( + jsonrpc::JsonRpcException( "This API call is only supported on archive nodes" ) ); +#endif } -Json::Value Debug::debug_traceCall( Json::Value const& _call, Json::Value const& _options ) { +Json::Value Debug::debug_traceCall( Json::Value const& +#ifdef HISTORIC_STATE + _call +#endif + , + std::string const& +#ifdef HISTORIC_STATE + _blockNumber +#endif + , + Json::Value const& +#ifdef HISTORIC_STATE + _jsonTraceConfig +#endif +) { + Json::Value ret; + checkHistoricStateEnabled(); + +#ifdef HISTORIC_STATE + try { - Block temp = m_eth.latestBlock(); - TransactionSkeleton ts = toTransactionSkeleton( _call ); - if ( !ts.from ) { - ts.from = Address(); + auto bN = jsToBlockNumber( _blockNumber ); + + if ( bN == LatestBlock || bN == PendingBlock ) { + bN = m_eth.number(); } - u256 nonce = temp.transactionsFrom( ts.from ); - u256 gas = ts.gas == Invalid256 ? m_eth.gasLimitRemaining() : ts.gas; - u256 gasPrice = ts.gasPrice == Invalid256 ? m_eth.gasBidPrice() : ts.gasPrice; - temp.mutableState().addBalance( ts.from, gas * gasPrice + ts.value ); - Transaction transaction( ts.value, gasPrice, gas, ts.to, ts.data, nonce ); - transaction.forceSender( ts.from ); - eth::ExecutionResult er; - // HACK 0 here is for gasPrice - Executive e( temp, m_eth.blockChain().lastBlockHashes(), 0 ); - e.setResultRecipient( er ); - Json::Value trace = traceTransaction( e, transaction, _options ); - ret["gas"] = toJS( transaction.gas() ); - ret["return"] = toHexPrefixed( er.output ); - ret["structLogs"] = trace; - } catch ( Exception const& _e ) { - cwarn << diagnostic_information( _e ); + + if ( !m_eth.isKnown( bN ) ) { + THROW_TRACE_JSON_EXCEPTION( "Unknown block number:" + _blockNumber ); + } + + if ( bN == 0 ) { + THROW_TRACE_JSON_EXCEPTION( "Block number must be more than zero" ); + } + + TransactionSkeleton ts = toTransactionSkeleton( _call ); + + return m_eth.traceCall( + ts.from, ts.value, ts.to, ts.data, ts.gas, ts.gasPrice, bN, _jsonTraceConfig ); + } catch ( jsonrpc::JsonRpcException& ) { + throw; + } catch ( std::exception const& _e ) { + THROW_TRACE_JSON_EXCEPTION( _e.what() ); + } catch ( ... ) { + THROW_TRACE_JSON_EXCEPTION( "Unknown server error" ); } - return ret; + +#else + BOOST_THROW_EXCEPTION( + jsonrpc::JsonRpcException( "This API call is only supported on archive nodes" ) ); +#endif } + +Json::Value Debug::debug_accountRangeAt( string const&, int, string const&, int ) { + BOOST_THROW_EXCEPTION( jsonrpc::JsonRpcException( "This API call is not supported" ) ); +} + +Json::Value Debug::debug_storageRangeAt( string const&, int, string const&, string const&, int ) { + BOOST_THROW_EXCEPTION( jsonrpc::JsonRpcException( "This API call is not supported" ) ); +} + +string Debug::debug_preimage( string const& ) { + BOOST_THROW_EXCEPTION( jsonrpc::JsonRpcException( "This API call is not supported" ) ); +} + + void Debug::debug_pauseBroadcast( bool _pause ) { + checkPrivilegedAccess(); m_eth.skaleHost()->pauseBroadcast( _pause ); } void Debug::debug_pauseConsensus( bool _pause ) { + checkPrivilegedAccess(); m_eth.skaleHost()->pauseConsensus( _pause ); } void Debug::debug_forceBlock() { + checkPrivilegedAccess(); m_eth.skaleHost()->forceEmptyBlock(); } -void Debug::debug_forceBroadcast( const std::string& _transactionHash ) { +void Debug::debug_forceBroadcast( const string& _transactionHash ) { + checkPrivilegedAccess(); try { h256 h = jsToFixed< 32 >( _transactionHash ); if ( !m_eth.isKnownTransaction( h ) ) @@ -271,27 +310,33 @@ void Debug::debug_forceBroadcast( const std::string& _transactionHash ) { } } -std::string Debug::debug_interfaceCall( const std::string& _arg ) { +string Debug::debug_interfaceCall( const string& _arg ) { + checkPrivilegedAccess(); return m_debugInterface->call( _arg ); } -std::string Debug::debug_getVersion() { +string Debug::debug_getVersion() { + checkPrivilegedAccess(); return Version; } -std::string Debug::debug_getArguments() { - return argv_options; +string Debug::debug_getArguments() { + checkPrivilegedAccess(); + return m_argvOptions; } -std::string Debug::debug_getConfig() { +string Debug::debug_getConfig() { + checkPrivilegedAccess(); return m_eth.chainParams().getOriginalJson(); } -std::string Debug::debug_getSchainName() { +string Debug::debug_getSchainName() { + checkPrivilegedAccess(); return m_eth.chainParams().sChain.name; } uint64_t Debug::debug_getSnapshotCalculationTime() { + checkPrivilegedAccess(); return m_eth.getSnapshotCalculationTime(); } @@ -300,6 +345,7 @@ uint64_t Debug::debug_getSnapshotHashCalculationTime() { } uint64_t Debug::debug_doStateDbCompaction() { + checkPrivilegedAccess(); auto t1 = boost::chrono::high_resolution_clock::now(); m_eth.doStateDbCompaction(); auto t2 = boost::chrono::high_resolution_clock::now(); @@ -308,6 +354,7 @@ uint64_t Debug::debug_doStateDbCompaction() { } uint64_t Debug::debug_doBlocksDbCompaction() { + checkPrivilegedAccess(); auto t1 = boost::chrono::high_resolution_clock::now(); m_eth.doBlocksDbCompaction(); auto t2 = boost::chrono::high_resolution_clock::now(); diff --git a/libweb3jsonrpc/Debug.h b/libweb3jsonrpc/Debug.h index 6d85b9d7d..63c88405a 100644 --- a/libweb3jsonrpc/Debug.h +++ b/libweb3jsonrpc/Debug.h @@ -1,10 +1,12 @@ #pragma once #include "DebugFace.h" +#include "test/tools/libtestutils/FixedClient.h" #include - +#include #include +#include class SkaleHost; class SkaleDebugInterface; @@ -13,16 +15,17 @@ namespace dev { namespace eth { class Client; -StandardTrace::DebugOptions debugOptions( Json::Value const& _json ); } // namespace eth - namespace rpc { class SessionManager; +constexpr size_t MAX_BLOCK_TRACES_CACHE_SIZE = 64 * 1024 * 1024; +constexpr size_t MAX_BLOCK_TRACES_CACHE_ITEMS = 1024 * 1024; + class Debug : public DebugFace { public: - explicit Debug( eth::Client const& _eth, SkaleDebugInterface* _debugInterface = nullptr, - const std::string& argv = std::string() ); + explicit Debug( eth::Client& _eth, SkaleDebugInterface* _debugInterface = nullptr, + const std::string& argv = std::string(), bool _enablePrivilegedApis = false ); virtual RPCModules implementedModules() const override { return RPCModules{ RPCModule{ "debug", "1.0" } }; @@ -32,16 +35,15 @@ class Debug : public DebugFace { std::string const& _addressHash, int _maxResults ) override; virtual Json::Value debug_traceTransaction( std::string const& _txHash, Json::Value const& _json ) override; - virtual Json::Value debug_traceCall( - Json::Value const& _call, Json::Value const& _options ) override; + virtual Json::Value debug_traceCall( Json::Value const& _call, std::string const& _blockNumber, + Json::Value const& _options ) override; virtual Json::Value debug_traceBlockByNumber( - int _blockNumber, Json::Value const& _json ) override; + std::string const& _blockNumber, Json::Value const& _json ) override; virtual Json::Value debug_traceBlockByHash( std::string const& _blockHash, Json::Value const& _json ) override; virtual Json::Value debug_storageRangeAt( std::string const& _blockHashOrNumber, int _txIndex, std::string const& _address, std::string const& _begin, int _maxResults ) override; virtual std::string debug_preimage( std::string const& _hashedKey ) override; - virtual Json::Value debug_traceBlock( std::string const& _blockRlp, Json::Value const& _json ); void debug_pauseBroadcast( bool pause ) override; void debug_pauseConsensus( bool pause ) override; @@ -63,15 +65,18 @@ class Debug : public DebugFace { virtual Json::Value debug_getFutureTransactions() override; private: - eth::Client const& m_eth; + eth::Client& m_eth; SkaleDebugInterface* m_debugInterface = nullptr; - std::string argv_options; + std::string m_argvOptions; + cache::lru_ordered_memory_constrained_cache< std::string, Json::Value > m_blockTraceCache; + bool m_enablePrivilegedApis; + h256 blockHash( std::string const& _blockHashOrNumber ) const; - skale::State stateAt( std::string const& _blockHashOrNumber, int _txIndex ) const; - Json::Value traceTransaction( - dev::eth::Executive& _e, dev::eth::Transaction const& _t, Json::Value const& _json ); - Json::Value traceBlock( dev::eth::Block const& _block, Json::Value const& _json ); + + void checkPrivilegedAccess() const; + + void checkHistoricStateEnabled() const; }; } // namespace rpc diff --git a/libweb3jsonrpc/DebugFace.h b/libweb3jsonrpc/DebugFace.h index ade7094b0..cfee3b7cb 100644 --- a/libweb3jsonrpc/DebugFace.h +++ b/libweb3jsonrpc/DebugFace.h @@ -6,6 +6,7 @@ #define JSONRPC_CPP_STUB_DEV_RPC_DEBUGFACE_H_ #include "ModularServer.h" +#include "boost/throw_exception.hpp" namespace dev { namespace rpc { @@ -17,9 +18,10 @@ class DebugFace : public ServerInterface< DebugFace > { jsonrpc::JSON_STRING, "param2", jsonrpc::JSON_INTEGER, "param3", jsonrpc::JSON_STRING, "param4", jsonrpc::JSON_INTEGER, NULL ), &dev::rpc::DebugFace::debug_accountRangeAtI ); + + this->bindAndAddMethod( jsonrpc::Procedure( "debug_traceTransaction", - jsonrpc::PARAMS_BY_POSITION, jsonrpc::JSON_OBJECT, "param1", - jsonrpc::JSON_STRING, "param2", jsonrpc::JSON_OBJECT, NULL ), + jsonrpc::PARAMS_BY_POSITION, jsonrpc::JSON_OBJECT, NULL ), &dev::rpc::DebugFace::debug_traceTransactionI ); this->bindAndAddMethod( jsonrpc::Procedure( "debug_storageRangeAt", jsonrpc::PARAMS_BY_POSITION, @@ -31,12 +33,10 @@ class DebugFace : public ServerInterface< DebugFace > { jsonrpc::JSON_OBJECT, "param1", jsonrpc::JSON_STRING, NULL ), &dev::rpc::DebugFace::debug_preimageI ); this->bindAndAddMethod( jsonrpc::Procedure( "debug_traceBlockByNumber", - jsonrpc::PARAMS_BY_POSITION, jsonrpc::JSON_OBJECT, "param1", - jsonrpc::JSON_INTEGER, "param2", jsonrpc::JSON_OBJECT, NULL ), + jsonrpc::PARAMS_BY_POSITION, jsonrpc::JSON_OBJECT, NULL ), &dev::rpc::DebugFace::debug_traceBlockByNumberI ); this->bindAndAddMethod( jsonrpc::Procedure( "debug_traceBlockByHash", - jsonrpc::PARAMS_BY_POSITION, jsonrpc::JSON_OBJECT, "param1", - jsonrpc::JSON_STRING, "param2", jsonrpc::JSON_OBJECT, NULL ), + jsonrpc::PARAMS_BY_POSITION, jsonrpc::JSON_OBJECT, NULL ), &dev::rpc::DebugFace::debug_traceBlockByHashI ); this->bindAndAddMethod( jsonrpc::Procedure( "debug_traceCall", jsonrpc::PARAMS_BY_POSITION, jsonrpc::JSON_OBJECT, "param1", jsonrpc::JSON_OBJECT, "param2", @@ -107,10 +107,25 @@ class DebugFace : public ServerInterface< DebugFace > { response = this->debug_accountRangeAt( request[0u].asString(), request[1u].asInt(), request[2u].asString(), request[3u].asInt() ); } - inline virtual void debug_traceTransactionI( - const Json::Value& request, Json::Value& response ) { - response = this->debug_traceTransaction( request[0u].asString(), request[1u] ); + + inline virtual Json::Value getTracer( const Json::Value& request ) { + if ( !request.isArray() || request.empty() || request.size() > 2 ) { + BOOST_THROW_EXCEPTION( + jsonrpc::JsonRpcException( jsonrpc::Errors::ERROR_RPC_INVALID_PARAMS ) ); + } + if ( request.size() == 2 ) { + if ( !request[1u].isObject() ) { + BOOST_THROW_EXCEPTION( + jsonrpc::JsonRpcException( jsonrpc::Errors::ERROR_RPC_INVALID_PARAMS ) ); + } + return request[1u]; + + } else { + return { Json::objectValue }; + } } + + inline virtual void debug_storageRangeAtI( const Json::Value& request, Json::Value& response ) { response = this->debug_storageRangeAt( request[0u].asString(), request[1u].asInt(), request[2u].asString(), request[3u].asString(), request[4u].asInt() ); @@ -118,16 +133,22 @@ class DebugFace : public ServerInterface< DebugFace > { inline virtual void debug_preimageI( const Json::Value& request, Json::Value& response ) { response = this->debug_preimage( request[0u].asString() ); } + + inline virtual void debug_traceTransactionI( + const Json::Value& request, Json::Value& response ) { + response = this->debug_traceTransaction( request[0u].asString(), getTracer( request ) ); + } + inline virtual void debug_traceBlockByNumberI( const Json::Value& request, Json::Value& response ) { - response = this->debug_traceBlockByNumber( request[0u].asInt(), request[1u] ); + response = this->debug_traceBlockByNumber( request[0u].asString(), getTracer( request ) ); } inline virtual void debug_traceBlockByHashI( const Json::Value& request, Json::Value& response ) { - response = this->debug_traceBlockByHash( request[0u].asString(), request[1u] ); + response = this->debug_traceBlockByHash( request[0u].asString(), getTracer( request ) ); } inline virtual void debug_traceCallI( const Json::Value& request, Json::Value& response ) { - response = this->debug_traceCall( request[0u], request[1u] ); + response = this->debug_traceCall( request[0u], request[1u].asString(), request[2u] ); } virtual void debug_pauseBroadcastI( const Json::Value& request, Json::Value& response ) { @@ -194,11 +215,12 @@ class DebugFace : public ServerInterface< DebugFace > { virtual Json::Value debug_storageRangeAt( const std::string& param1, int param2, const std::string& param3, const std::string& param4, int param5 ) = 0; virtual std::string debug_preimage( const std::string& param1 ) = 0; - virtual Json::Value debug_traceBlockByNumber( int param1, const Json::Value& param2 ) = 0; + virtual Json::Value debug_traceBlockByNumber( + const std::string& param1, const Json::Value& param2 ) = 0; virtual Json::Value debug_traceBlockByHash( const std::string& param1, const Json::Value& param2 ) = 0; - virtual Json::Value debug_traceCall( const Json::Value& param1, const Json::Value& param2 ) = 0; - + virtual Json::Value debug_traceCall( Json::Value const& _call, std::string const& _blockNumber, + Json::Value const& _options ) = 0; virtual void debug_pauseBroadcast( bool pause ) = 0; virtual void debug_pauseConsensus( bool pause ) = 0; virtual void debug_forceBlock() = 0; diff --git a/libweb3jsonrpc/Eth.cpp b/libweb3jsonrpc/Eth.cpp index 63d4a8ff3..dad59ce88 100644 --- a/libweb3jsonrpc/Eth.cpp +++ b/libweb3jsonrpc/Eth.cpp @@ -53,7 +53,7 @@ const uint64_t MAX_RECEIPT_CACHE_ENTRIES = 1024; using namespace dev::rpc::_detail; -// TODO Check LatestBlock number - update! +// TODO Check LatestBlock number - update // Needs external locks to exchange read one to write one void GappedTransactionIndexCache::ensureCached( BlockNumber _bn, std::shared_lock< std::shared_mutex >& _readLock, @@ -66,13 +66,17 @@ void GappedTransactionIndexCache::ensureCached( BlockNumber _bn, _readLock.unlock(); _writeLock.lock(); + unsigned realBn = _bn; if ( _bn == LatestBlock ) realBn = client.number(); else if ( _bn == PendingBlock ) - realBn = client.number() + 1; // TODO test this case and decide + realBn = client.number() + 1; + + if ( real2gappedCache.size() > cacheSize ) { + throw std::runtime_error( "real2gappedCache.size() > cacheSize" ); + } - assert( real2gappedCache.size() <= cacheSize ); if ( real2gappedCache.size() >= cacheSize ) { real2gappedCache.erase( real2gappedCache.begin() ); gapped2realCache.erase( gapped2realCache.begin() ); @@ -94,7 +98,7 @@ void GappedTransactionIndexCache::ensureCached( BlockNumber _bn, pair< h256, unsigned > loc = client.transactionLocation( th ); - // ignore transactions with 0 gas usage OR different location! + // ignore transactions with 0 gas usage OR different location if ( diff == 0 || client.numberFromHash( loc.first ) != realBn || loc.second != realIndex ) continue; @@ -177,6 +181,7 @@ string Eth::eth_blockNumber( const Json::Value& request ) { if ( !request.empty() ) { BOOST_THROW_EXCEPTION( JsonRpcException( Errors::ERROR_RPC_INVALID_PARAMS ) ); } + return toJS( client()->number() ); } @@ -432,7 +437,7 @@ Json::Value Eth::eth_inspectTransaction( std::string const& _rlp ) { } } -// TODO Catch exceptions for all calls other eth_-calls in outer scope! +// TODO Catch exceptions for all calls other eth_-calls in outer scope /// skale string Eth::eth_sendRawTransaction( std::string const& _rlp ) { // Don't need to check the transaction signature (CheckTransaction::None) since it diff --git a/skaled/main.cpp b/skaled/main.cpp index b0ad1aca8..57f86caf9 100644 --- a/skaled/main.cpp +++ b/skaled/main.cpp @@ -43,6 +43,7 @@ #include +#include #include #include #include @@ -1066,33 +1067,33 @@ int main( int argc, char** argv ) try { try { configPath = vm["config"].as< string >(); if ( !fs::is_regular_file( configPath.string() ) ) - throw "Bad config file path"; + throw std::runtime_error( "Bad config file path" ); configJSON = contentsString( configPath.string() ); if ( configJSON.empty() ) - throw "Config file probably not found"; + throw std::runtime_error( "Config file probably not found" ); chainParams = chainParams.loadConfig( configJSON, configPath ); chainConfigIsSet = true; - // TODO avoid double-parse!! + // TODO avoid double-parse joConfig = nlohmann::json::parse( configJSON ); chainConfigParsed = true; dev::eth::g_configAccesssor.reset( new skutils::json_config_file_accessor( configPath.string() ) ); + dev::db::DBFactory::setReopenPeriodMs( chainParams.sChain.levelDBReopenIntervalMs ); } catch ( const char* str ) { - clog( VerbosityError, "main" ) << "Error: " << str << ": " << configPath << "\n"; + clog( VerbosityError, "main" ) << "Error: " << str << ": " << configPath; return EX_USAGE; } catch ( const json_spirit::Error_position& err ) { - clog( VerbosityError, "main" ) << "error in parsing config json:\n"; + clog( VerbosityError, "main" ) << "error in parsing config json:"; clog( VerbosityError, "main" ) << configJSON; clog( VerbosityError, "main" ) << err.reason_ << " line " << err.line_; return EX_CONFIG; } catch ( const std::exception& ex ) { - clog( VerbosityError, "main" ) << "provided configuration is incorrect\n"; + clog( VerbosityError, "main" ) << "provided configuration is incorrect"; clog( VerbosityError, "main" ) << configJSON; clog( VerbosityError, "main" ) << nested_exception_what( ex ); return EX_CONFIG; } catch ( ... ) { - clog( VerbosityError, "main" ) << "provided configuration is incorrect\n"; - // cerr << "sample: \n" << genesisInfo(eth::Network::MainNetworkTest) << "\n"; + clog( VerbosityError, "main" ) << "provided configuration is incorrect"; clog( VerbosityError, "main" ) << configJSON; return EX_CONFIG; } @@ -1979,9 +1980,19 @@ int main( int argc, char** argv ) try { auto pAdminEthFace = bEnabledAPIs_admin ? new rpc::AdminEth( *g_client, *gasPricer.get(), keyManager, *sessionManager.get() ) : nullptr; +#ifdef HISTORIC_STATE + // debug interface is always enabled in historic state, but + // non-tracing calls are only available if bEnabledAPIs_debug is true + auto pDebugFace = + new rpc::Debug( *g_client, &debugInterface, argv_string, bEnabledAPIs_debug ); +#else + // debug interface is enabled on core node if bEnabledAPIs_debug is true auto pDebugFace = bEnabledAPIs_debug ? new rpc::Debug( *g_client, &debugInterface, argv_string ) : nullptr; +#endif + + auto pPerformanceTrackerFace = bEnabledAPIs_performanceTracker ? new rpc::SkalePerformanceTracker( configPath.string() ) : nullptr; diff --git a/storage_benchmark/CMakeLists.txt b/storage_benchmark/CMakeLists.txt index 67b410f4b..0022c6690 100644 --- a/storage_benchmark/CMakeLists.txt +++ b/storage_benchmark/CMakeLists.txt @@ -17,6 +17,7 @@ target_link_libraries( ${executable_name} PRIVATE ethereum + skale historic skutils devcore @@ -25,7 +26,7 @@ target_link_libraries( "${DEPS_INSTALL_ROOT}/lib/liblzma.a" ) -#target_include_directories(evm_benchmark PRIVATE ../utils) +target_include_directories(${executable_name} PRIVATE ../utils ${SKUTILS_INCLUDE_DIRS}) #if(MINIUPNPC) # target_compile_definitions(evm_benchmark PRIVATE ETH_MINIUPNPC) diff --git a/test/historicstate/configs/basic_config.json b/test/historicstate/configs/basic_config.json index ea3bbf1d6..a108a100f 100644 --- a/test/historicstate/configs/basic_config.json +++ b/test/historicstate/configs/basic_config.json @@ -327,6 +327,8 @@ "contractStorageLimit": 10000000000, "emptyBlockIntervalMs": 10000, "pushZeroPatchTimestamp": 1, + "multiTransactionMode": true, + "levelDBReopenIntervalMs": 1, "nodes": [ { "nodeID": 1112, "ip": "127.0.0.1", "basePort": 1231, "schainIndex" : 1, "publicKey":""} ] diff --git a/test/historicstate/hardhat/README.md b/test/historicstate/hardhat/README.md index e9dd5f348..74fca7e30 100644 --- a/test/historicstate/hardhat/README.md +++ b/test/historicstate/hardhat/README.md @@ -1,13 +1,41 @@ -# Sample Hardhat Project +# Run skaled for tests -This project demonstrates a basic Hardhat use case. It comes with a sample contract, a test for that contract, and a script that deploys that contract. +``` +build/skaled/skaled --config test/historicstate/configs/basic_config.json +``` + +# Run local geth for tests + +First install web3 + +``` +pip3 install web3 +``` + +Then run geth container + +``` +cd test/historicstate/hardhat +python3 run_geth.py +``` -Try running some of the following tasks: + +# Install hardhat and run tests + +```shell +sudo apt install nodejs +npm install +``` + +Now run test against skaled ```shell -npx hardhat help -npx hardhat test -REPORT_GAS=true npx hardhat test -npx hardhat node -npx hardhat run scripts/deploy.js +npx hardhat run scripts/trace.js --network skaled ``` + +To run the same test against geth + +```shell +npx hardhat run scripts/trace.js --network geth +``` + diff --git a/test/historicstate/hardhat/contracts/Lock.sol b/test/historicstate/hardhat/contracts/Lock.sol index 14762d32e..c32a86022 100644 --- a/test/historicstate/hardhat/contracts/Lock.sol +++ b/test/historicstate/hardhat/contracts/Lock.sol @@ -2,7 +2,10 @@ pragma solidity ^0.8.9; -contract Lock { +contract Lock { + + event LogMint(address indexed minter, uint256 amount, string topic); + uint public totalSupply; mapping(address => uint) public balanceOf; mapping(address => mapping(address => uint)) public allowance; @@ -30,7 +33,7 @@ contract Lock { } - function die(address payable recipient) external { + function die(address payable recipient) external { selfdestruct(recipient); } @@ -46,17 +49,21 @@ contract Lock { address recipient, uint amount ) external returns (bool) { - // allowance[sender][msg.sender] -= amount; - // balanceOf[sender] -= amount; - // balanceOf[recipient] += amount; - // emit Transfer(sender, recipient, amount); + allowance[sender][msg.sender] -= amount; + balanceOf[sender] -= amount; + balanceOf[recipient] += amount; + emit Transfer(sender, recipient, amount); return true; } - function mint(uint amount) public { + + + function mint(uint amount) public returns (uint256) { + emit LogMint(msg.sender, amount, "amount"); balanceOf[msg.sender] += amount; totalSupply += amount; emit Transfer(address(0), msg.sender, amount); + return 1; } function burn(uint amount) external { @@ -66,29 +73,20 @@ contract Lock { } - - - - function initialize() public { - require(!initialized, "Contract instance has already been initialized"); - initialized = true; + constructor() { + require(!initialized, "Contract instance has already been initialized"); + initialized = true; name = "Lock"; symbol = "LOCK"; decimals = 18; owner = msg.sender; counter = 1; - - mint(10000000000000000000000000000000000000000); - - } - - function store() public { // Uncomment this line, and the import of "hardhat/console.sol", to print a log in your terminal // console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp); diff --git a/test/historicstate/hardhat/contracts/Tracer.sol b/test/historicstate/hardhat/contracts/Tracer.sol new file mode 100644 index 000000000..e7b68778c --- /dev/null +++ b/test/historicstate/hardhat/contracts/Tracer.sol @@ -0,0 +1,152 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.9; + +contract SecondContract { + + + event InternalCallEvent(address indexed minter, uint256 amount, string topic); + + uint256 public balance; + bool constructorVar = false; + uint256 internalVar; + + + function die(address payable recipient) external { + selfdestruct(recipient); + } + + function mint(uint amount) public returns (uint256) { + emit InternalCallEvent(msg.sender, amount, "topic"); + balance += amount; + internalCall(amount + 1); + precompileCall(); + return 1; + } + + function internalCall(uint amount) public returns (uint256) { + emit InternalCallEvent(msg.sender, amount, "internal topic"); + internalVar += amount; + return 2; + } + + + constructor() { + require(!constructorVar, "Contract instance has already been initialized"); + constructorVar = true; + mint(10000000000000000000000000000000000000000); + } + + function precompileCall() public pure returns (bytes32) { + string memory input = "Hello, world!"; + bytes32 expectedHash = keccak256(bytes(input)); + return expectedHash; + } + + function riskyFunction() public pure{ + revert("This function reverted!"); + } +} + +contract Tracer { + + SecondContract secondContract; + + event InternalCallEvent(address indexed minter, uint256 amount, string topic); + + uint256 public balance; + bool constructorVar = false; + uint256 internalVar; + + + function die(address payable recipient) external { + selfdestruct(recipient); + } + + + error InsufficientBalance(uint256 requested, uint256 available); + + function riskyFunction() public pure { + revert("This function reverted!"); + } + + + function riskyFunction2() public pure { + revert InsufficientBalance(1, 1); + } + + + function mint(uint amount) public returns (uint256) { + emit InternalCallEvent(msg.sender, amount, "topic"); + balance += amount; + internalCall(amount + 1); + precompileCall(); + secondContract.mint(amount); + return 1; + } + + function mint2(uint amount) public returns (uint256) { + emit InternalCallEvent(msg.sender, amount, "topic"); + secondContract = new SecondContract(); + balance += amount; + internalCall(amount + 1); + precompileCall(); + secondContract.mint(amount); + return 1; + } + + + event ErrorHandled(string message); + + // test revert + function readableRevert(uint) public returns (uint256) { + + try this.riskyFunction() { + // If the call succeeds, this block is executed + } catch Error(string memory reason) { + // If the call reverts with an error message, this block is executed + emit ErrorHandled(reason); + } catch (bytes memory) { + // If the call reverts without an error message, this block is executed + emit ErrorHandled("External call failed without an error message"); + } + + try this.riskyFunction2() { + // If the call succeeds, this block is executed + } catch Error(string memory reason) { + // If the call reverts with an error message, this block is executed + emit ErrorHandled(reason); + } catch (bytes memory ) { + // If the call reverts without an error message, this block is executed + emit ErrorHandled("External call failed without an error message"); + } + + + require(false, "INSUFFICIENT BALANCE"); + return 1; + } + + + + function internalCall(uint amount) public returns (uint256) { + emit InternalCallEvent(msg.sender, amount, "internal topic"); + internalVar += amount; + return 2; + } + + + constructor() { + require(!constructorVar, "Contract instance has already been initialized"); + constructorVar = true; + //mint(10000000000000000000000000000000000000000); + } + + function precompileCall() public pure returns (bytes32) { + string memory input = "Hello, world!"; + bytes32 expectedHash = keccak256(bytes(input)); + return expectedHash; + } + + function getBalance() external view returns (uint256) { + return balance; + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/hardhat.config.js b/test/historicstate/hardhat/hardhat.config.js index 3ff48bfba..78f7f8c07 100644 --- a/test/historicstate/hardhat/hardhat.config.js +++ b/test/historicstate/hardhat/hardhat.config.js @@ -17,6 +17,13 @@ module.exports = { accounts: [INSECURE_PRIVATE_KEY], chainId: 74565, gas: 0x10000000 + }, + geth: { + url: `http://localhost:8545`, + accounts: [INSECURE_PRIVATE_KEY], + chainId: 1337, + gas: 0x10000000 } + } }; diff --git a/test/historicstate/hardhat/package.json b/test/historicstate/hardhat/package.json index 60594b93e..93dfb86ff 100644 --- a/test/historicstate/hardhat/package.json +++ b/test/historicstate/hardhat/package.json @@ -3,11 +3,20 @@ "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^2.0.0", "@openzeppelin/hardhat-upgrades": "^1.22.0", - "hardhat": "^2.12.2", + "@types/chai": "^4.3.11", + "@types/deep-diff": "^1.0.2", + "@types/mocha": "^10.0.6", + "@types/node": "^20.10.4", + "chai": "^4.3.10", + "ethereum-waffle": "^4.0.10", + "hardhat": "^2.17.4", + "ts-node": "^10.9.2", + "typescript": "^5.3.3", "wait-for-user-input": "^1.0.0" }, "dependencies": { "@openzeppelin/contracts": "^4.8.0", - "@openzeppelin/contracts-upgradeable": "^4.8.0" + "@openzeppelin/contracts-upgradeable": "^4.8.0", + "deep-diff": "^1.0.2" } } diff --git a/test/historicstate/hardhat/run_geth.py b/test/historicstate/hardhat/run_geth.py new file mode 100755 index 000000000..22d576487 --- /dev/null +++ b/test/historicstate/hardhat/run_geth.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +import subprocess +import time +from web3 import Web3, HTTPProvider + + +def is_container_running(container_name): + try: + result = subprocess.run(["docker", "inspect", "-f", "{{.State.Running}}", container_name], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True) + + if result.returncode != 0: + print(f"Error: {result.stderr.strip()}") + return False + + return result.stdout.strip() == 'true' + + except Exception as e: + print(f"Exception occurred: {e}") + return False + +def run_geth_container(): + # Pull the Docker image + subprocess.run(["docker", "pull", "ethereum/client-go"]) + + is_running : bool = is_container_running("geth") + + if (is_running): + return + + + # Run the Geth container in detached mode + subprocess.run([ + "docker", "run", "-d", "--name", "geth", + "-p", "8545:8545", "-p", "30303:30303", + "ethereum/client-go", "--dev", "--http", + "--http.addr", "0.0.0.0", "--http.corsdomain", "*", "--allow-insecure-unlock", + "--http.api", "personal,eth,net,web3,debug" + ]) + +def add_ether_to_account(address, amount): + # Connect to the Geth node + w3 = Web3(HTTPProvider("http://localhost:8545")) + + # Check if the connection is successful + if not w3.is_connected(): + print("Failed to connect to the Ethereum node.") + return + + # Unlock the default account (coinbase) + coinbase = w3.eth.coinbase + w3.geth.personal.unlock_account(coinbase, '', 0) + + # Convert Ether to Wei + value = w3.to_wei(amount, 'ether') + + # Create and send the transaction + tx_hash = w3.eth.send_transaction({'from': coinbase, 'to': address, 'value': value}) + + # Wait for the transaction to be mined + w3.eth.wait_for_transaction_receipt(tx_hash) + + print(f"Successfully sent {amount} ETH to {address}") + +# Main execution +if __name__ == "__main__": + try: + run_geth_container() + # Wait a bit for the node to be fully up and running + time.sleep(10) + add_ether_to_account("0x907cd0881E50d359bb9Fd120B1A5A143b1C97De6", 1000) + except Exception as e: + print(f"An error occurred: {e}") diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.4byteTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.4byteTracer.json new file mode 100644 index 000000000..77ad47965 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.4byteTracer.json @@ -0,0 +1,3 @@ +{ + "0x60806040-7464": 1 +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.callTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.callTracer.json new file mode 100644 index 000000000..69c028a91 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.callTracer.json @@ -0,0 +1,10 @@ +{ + "from": "OWNER.address", + "gas": "0x200b20", + "gasUsed": "0x18928c", + "to": "Tracer.address", + "input": "0x60806040526000600260006101000a81548160ff02191690831515021790555034801561002b57600080fd5b50600260009054906101000a900460ff161561007c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100739061011f565b60405180910390fd5b6001600260006101000a81548160ff02191690831515021790555061013f565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000610109602e8361009c565b9150610114826100ad565b604082019050919050565b60006020820190508181036000830152610138816100fc565b9050919050565b611bde8061014e6000396000f3fe60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "output": "0x60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "value": "0x0", + "type": "CREATE" +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.defaultTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.defaultTracer.json new file mode 100644 index 000000000..3f83b34c4 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.defaultTracer.json @@ -0,0 +1,908 @@ +{ + "gas": 1610380, + "failed": false, + "returnValue": "60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 1940508, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 1940505, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 1940502, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "PUSH1", + "gas": 1940490, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 7, + "op": "PUSH1", + "gas": 1940487, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 9, + "op": "PUSH1", + "gas": 1940484, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2" + ] + }, + { + "pc": 11, + "op": "PUSH2", + "gas": 1940481, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x0" + ] + }, + { + "pc": 14, + "op": "EXP", + "gas": 1940478, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x0", + "0x100" + ] + }, + { + "pc": 15, + "op": "DUP2", + "gas": 1940468, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x1" + ] + }, + { + "pc": 16, + "op": "SLOAD", + "gas": 1940465, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x1", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 17, + "op": "DUP2", + "gas": 1938365, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x1", + "0x0" + ] + }, + { + "pc": 18, + "op": "PUSH1", + "gas": 1938362, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 20, + "op": "MUL", + "gas": 1938359, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x1", + "0x0", + "0x1", + "0xff" + ] + }, + { + "pc": 21, + "op": "NOT", + "gas": 1938354, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x1", + "0x0", + "0xff" + ] + }, + { + "pc": 22, + "op": "AND", + "gas": 1938351, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x1", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + ] + }, + { + "pc": 23, + "op": "SWAP1", + "gas": 1938348, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x1", + "0x0" + ] + }, + { + "pc": 24, + "op": "DUP4", + "gas": 1938345, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x0", + "0x1" + ] + }, + { + "pc": 25, + "op": "ISZERO", + "gas": 1938342, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 26, + "op": "ISZERO", + "gas": 1938339, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 27, + "op": "MUL", + "gas": 1938336, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 28, + "op": "OR", + "gas": 1938331, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x0", + "0x0" + ] + }, + { + "pc": 29, + "op": "SWAP1", + "gas": 1938328, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x2", + "0x0" + ] + }, + { + "pc": 30, + "op": "SSTORE", + "gas": 1938325, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x0", + "0x0", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 31, + "op": "POP", + "gas": 1938225, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 32, + "op": "CALLVALUE", + "gas": 1938223, + "gasCost": 2, + "depth": 1, + "stack": [] + }, + { + "pc": 33, + "op": "DUP1", + "gas": 1938221, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 34, + "op": "ISZERO", + "gas": 1938218, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 35, + "op": "PUSH2", + "gas": 1938215, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 38, + "op": "JUMPI", + "gas": 1938212, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x1", + "0x2b" + ] + }, + { + "pc": 43, + "op": "JUMPDEST", + "gas": 1938202, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 44, + "op": "POP", + "gas": 1938201, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 45, + "op": "PUSH1", + "gas": 1938199, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 47, + "op": "PUSH1", + "gas": 1938196, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x2" + ] + }, + { + "pc": 49, + "op": "SWAP1", + "gas": 1938193, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x2", + "0x0" + ] + }, + { + "pc": 50, + "op": "SLOAD", + "gas": 1938190, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x0", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 51, + "op": "SWAP1", + "gas": 1938090, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 52, + "op": "PUSH2", + "gas": 1938087, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 55, + "op": "EXP", + "gas": 1938084, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x0", + "0x100" + ] + }, + { + "pc": 56, + "op": "SWAP1", + "gas": 1938074, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 57, + "op": "DIV", + "gas": 1938071, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1", + "0x0" + ] + }, + { + "pc": 58, + "op": "PUSH1", + "gas": 1938066, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 60, + "op": "AND", + "gas": 1938063, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0xff" + ] + }, + { + "pc": 61, + "op": "ISZERO", + "gas": 1938060, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 62, + "op": "PUSH2", + "gas": 1938057, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1" + ] + }, + { + "pc": 65, + "op": "JUMPI", + "gas": 1938054, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1", + "0x7c" + ] + }, + { + "pc": 124, + "op": "JUMPDEST", + "gas": 1938044, + "gasCost": 1, + "depth": 1, + "stack": [] + }, + { + "pc": 125, + "op": "PUSH1", + "gas": 1938043, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 127, + "op": "PUSH1", + "gas": 1938040, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1" + ] + }, + { + "pc": 129, + "op": "PUSH1", + "gas": 1938037, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2" + ] + }, + { + "pc": 131, + "op": "PUSH2", + "gas": 1938034, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x0" + ] + }, + { + "pc": 134, + "op": "EXP", + "gas": 1938031, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x0", + "0x100" + ] + }, + { + "pc": 135, + "op": "DUP2", + "gas": 1938021, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1" + ] + }, + { + "pc": 136, + "op": "SLOAD", + "gas": 1938018, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 137, + "op": "DUP2", + "gas": 1937918, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1", + "0x0" + ] + }, + { + "pc": 138, + "op": "PUSH1", + "gas": 1937915, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 140, + "op": "MUL", + "gas": 1937912, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1", + "0x0", + "0x1", + "0xff" + ] + }, + { + "pc": 141, + "op": "NOT", + "gas": 1937907, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1", + "0x0", + "0xff" + ] + }, + { + "pc": 142, + "op": "AND", + "gas": 1937904, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + ] + }, + { + "pc": 143, + "op": "SWAP1", + "gas": 1937901, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1", + "0x0" + ] + }, + { + "pc": 144, + "op": "DUP4", + "gas": 1937898, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x0", + "0x1" + ] + }, + { + "pc": 145, + "op": "ISZERO", + "gas": 1937895, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 146, + "op": "ISZERO", + "gas": 1937892, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 147, + "op": "MUL", + "gas": 1937889, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 148, + "op": "OR", + "gas": 1937884, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x0", + "0x1" + ] + }, + { + "pc": 149, + "op": "SWAP1", + "gas": 1937881, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1", + "0x2", + "0x1" + ] + }, + { + "pc": 150, + "op": "SSTORE", + "gas": 1937878, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x1", + "0x1", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000000000000000000000000000000000000001" + } + }, + { + "pc": 151, + "op": "POP", + "gas": 1917878, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1" + ] + }, + { + "pc": 152, + "op": "PUSH2", + "gas": 1917876, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 155, + "op": "JUMP", + "gas": 1917873, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x13f" + ] + }, + { + "pc": 319, + "op": "JUMPDEST", + "gas": 1917865, + "gasCost": 1, + "depth": 1, + "stack": [] + }, + { + "pc": 320, + "op": "PUSH2", + "gas": 1917864, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 323, + "op": "DUP1", + "gas": 1917861, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1bde" + ] + }, + { + "pc": 324, + "op": "PUSH2", + "gas": 1917858, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1bde", + "0x1bde" + ] + }, + { + "pc": 327, + "op": "PUSH1", + "gas": 1917855, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1bde", + "0x1bde", + "0x14e" + ] + }, + { + "pc": 329, + "op": "CODECOPY", + "gas": 1917852, + "gasCost": 1429, + "depth": 1, + "stack": [ + "0x1bde", + "0x1bde", + "0x14e", + "0x0" + ] + }, + { + "pc": 330, + "op": "PUSH1", + "gas": 1916423, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1bde" + ] + }, + { + "pc": 332, + "op": "RETURN", + "gas": 1916420, + "gasCost": 0, + "depth": 1, + "stack": [ + "0x1bde", + "0x0" + ] + } + ] +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.prestateDiffTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.prestateDiffTracer.json new file mode 100644 index 000000000..fc07703fa --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.prestateDiffTracer.json @@ -0,0 +1,30 @@ +{ + "post": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b4d4a6" + }, + "OWNER.address": { + "balance": "0x3611ac5ad359e668e5", + "nonce": 79 + }, + "Tracer.address": { + "code": "0x60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + } + }, + "pre": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x19c421a" + }, + "OWNER.address": { + "balance": "0x3611ac5ae39cd182dd", + "nonce": 78 + }, + "Tracer.address": { + "balance": "0x0", + "nonce": 1 + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.prestateTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.prestateTracer.json new file mode 100644 index 000000000..321757829 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.deploy.prestateTracer.json @@ -0,0 +1,16 @@ +{ + "0x0000000000000000000000000000000000000000": { + "balance": "0x19c421a" + }, + "OWNER.address": { + "balance": "0x3611ac5ae39cd182dd", + "nonce": 78 + }, + "Tracer.address": { + "balance": "0x0", + "nonce": 1, + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.4byteTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.4byteTracer.json new file mode 100644 index 000000000..125e46e85 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.4byteTracer.json @@ -0,0 +1,3 @@ +{ + "0x12065fe0-0": 1 +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.callTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.callTracer.json new file mode 100644 index 000000000..eb1061ac5 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.callTracer.json @@ -0,0 +1,10 @@ +{ + "from": "CALL.address", + "gas": "0x2faf080", + "gasUsed": "0x5bce", + "to": "Tracer.address", + "input": "0x12065fe0", + "output": "0x00000000000000000000000000000000000000000000000000000000000003e8", + "value": "0x0", + "type": "CALL" +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.defaultTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.defaultTracer.json new file mode 100644 index 000000000..820376d8d --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.defaultTracer.json @@ -0,0 +1,1325 @@ +{ + "gas": 23502, + "failed": false, + "returnValue": "00000000000000000000000000000000000000000000000000000000000003e8", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 49978936, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 49978933, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 49978930, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "CALLVALUE", + "gas": 49978918, + "gasCost": 2, + "depth": 1, + "stack": [] + }, + { + "pc": 6, + "op": "DUP1", + "gas": 49978916, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 7, + "op": "ISZERO", + "gas": 49978913, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 8, + "op": "PUSH3", + "gas": 49978910, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 49978907, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x1", + "0x11" + ] + }, + { + "pc": 17, + "op": "JUMPDEST", + "gas": 49978897, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 18, + "op": "POP", + "gas": 49978896, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 19, + "op": "PUSH1", + "gas": 49978894, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 21, + "op": "CALLDATASIZE", + "gas": 49978891, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 22, + "op": "LT", + "gas": 49978889, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x4" + ] + }, + { + "pc": 23, + "op": "PUSH3", + "gas": 49978886, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 27, + "op": "JUMPI", + "gas": 49978883, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0xac" + ] + }, + { + "pc": 28, + "op": "PUSH1", + "gas": 49978873, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 30, + "op": "CALLDATALOAD", + "gas": 49978870, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 31, + "op": "PUSH1", + "gas": 49978867, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 33, + "op": "SHR", + "gas": 49978864, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe000000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 34, + "op": "DUP1", + "gas": 49978861, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0" + ] + }, + { + "pc": 35, + "op": "PUSH4", + "gas": 49978858, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x12065fe0" + ] + }, + { + "pc": 40, + "op": "GT", + "gas": 49978855, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x12065fe0", + "0x8bfe44ff" + ] + }, + { + "pc": 41, + "op": "PUSH3", + "gas": 49978852, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x1" + ] + }, + { + "pc": 45, + "op": "JUMPI", + "gas": 49978849, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x1", + "0x6f" + ] + }, + { + "pc": 111, + "op": "JUMPDEST", + "gas": 49978839, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0" + ] + }, + { + "pc": 112, + "op": "DUP1", + "gas": 49978838, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0" + ] + }, + { + "pc": 113, + "op": "PUSH4", + "gas": 49978835, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x12065fe0" + ] + }, + { + "pc": 118, + "op": "EQ", + "gas": 49978832, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x12065fe0", + "0x12065fe0" + ] + }, + { + "pc": 119, + "op": "PUSH3", + "gas": 49978829, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x1" + ] + }, + { + "pc": 123, + "op": "JUMPI", + "gas": 49978826, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x1", + "0xb1" + ] + }, + { + "pc": 177, + "op": "JUMPDEST", + "gas": 49978816, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0" + ] + }, + { + "pc": 178, + "op": "PUSH3", + "gas": 49978815, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0" + ] + }, + { + "pc": 182, + "op": "PUSH3", + "gas": 49978812, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb" + ] + }, + { + "pc": 186, + "op": "JUMP", + "gas": 49978809, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb", + "0x227" + ] + }, + { + "pc": 551, + "op": "JUMPDEST", + "gas": 49978801, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb" + ] + }, + { + "pc": 552, + "op": "PUSH1", + "gas": 49978800, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb" + ] + }, + { + "pc": 554, + "op": "PUSH1", + "gas": 49978797, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb", + "0x0" + ] + }, + { + "pc": 556, + "op": "SLOAD", + "gas": 49978794, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb", + "0x0", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8" + } + }, + { + "pc": 557, + "op": "SWAP1", + "gas": 49976694, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb", + "0x0", + "0x3e8" + ] + }, + { + "pc": 558, + "op": "POP", + "gas": 49976691, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb", + "0x3e8", + "0x0" + ] + }, + { + "pc": 559, + "op": "SWAP1", + "gas": 49976689, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xbb", + "0x3e8" + ] + }, + { + "pc": 560, + "op": "JUMP", + "gas": 49976686, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x3e8", + "0xbb" + ] + }, + { + "pc": 187, + "op": "JUMPDEST", + "gas": 49976678, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x3e8" + ] + }, + { + "pc": 188, + "op": "PUSH1", + "gas": 49976677, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x3e8" + ] + }, + { + "pc": 190, + "op": "MLOAD", + "gas": 49976674, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x3e8", + "0x40" + ] + }, + { + "pc": 191, + "op": "PUSH3", + "gas": 49976671, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x3e8", + "0x80" + ] + }, + { + "pc": 195, + "op": "SWAP2", + "gas": 49976668, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x3e8", + "0x80", + "0xca" + ] + }, + { + "pc": 196, + "op": "SWAP1", + "gas": 49976665, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x80", + "0x3e8" + ] + }, + { + "pc": 197, + "op": "PUSH3", + "gas": 49976662, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80" + ] + }, + { + "pc": 201, + "op": "JUMP", + "gas": 49976659, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0x997" + ] + }, + { + "pc": 2455, + "op": "JUMPDEST", + "gas": 49976651, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80" + ] + }, + { + "pc": 2456, + "op": "PUSH1", + "gas": 49976650, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80" + ] + }, + { + "pc": 2458, + "op": "PUSH1", + "gas": 49976647, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0x0" + ] + }, + { + "pc": 2460, + "op": "DUP3", + "gas": 49976644, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0x0", + "0x20" + ] + }, + { + "pc": 2461, + "op": "ADD", + "gas": 49976641, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0x0", + "0x20", + "0x80" + ] + }, + { + "pc": 2462, + "op": "SWAP1", + "gas": 49976638, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0x0", + "0xa0" + ] + }, + { + "pc": 2463, + "op": "POP", + "gas": 49976635, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x0" + ] + }, + { + "pc": 2464, + "op": "PUSH3", + "gas": 49976633, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0" + ] + }, + { + "pc": 2468, + "op": "PUSH1", + "gas": 49976630, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae" + ] + }, + { + "pc": 2470, + "op": "DUP4", + "gas": 49976627, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x0" + ] + }, + { + "pc": 2471, + "op": "ADD", + "gas": 49976624, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x0", + "0x80" + ] + }, + { + "pc": 2472, + "op": "DUP5", + "gas": 49976621, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80" + ] + }, + { + "pc": 2473, + "op": "PUSH3", + "gas": 49976618, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2477, + "op": "JUMP", + "gas": 49976615, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x986" + ] + }, + { + "pc": 2438, + "op": "JUMPDEST", + "gas": 49976607, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2439, + "op": "PUSH3", + "gas": 49976606, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2443, + "op": "DUP2", + "gas": 49976603, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2444, + "op": "PUSH3", + "gas": 49976600, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2448, + "op": "JUMP", + "gas": 49976597, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 49976589, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 49976588, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 49976585, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 49976582, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 49976579, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 49976577, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 49976574, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 49976571, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 49976569, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2449, + "op": "JUMPDEST", + "gas": 49976561, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2450, + "op": "DUP3", + "gas": 49976560, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2451, + "op": "MSTORE", + "gas": 49976557, + "gasCost": 9, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8", + "0x3e8", + "0x80" + ] + }, + { + "pc": 2452, + "op": "POP", + "gas": 49976548, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2453, + "op": "POP", + "gas": 49976546, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae", + "0x80" + ] + }, + { + "pc": 2454, + "op": "JUMP", + "gas": 49976544, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0", + "0x9ae" + ] + }, + { + "pc": 2478, + "op": "JUMPDEST", + "gas": 49976536, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0" + ] + }, + { + "pc": 2479, + "op": "SWAP3", + "gas": 49976535, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xca", + "0x3e8", + "0x80", + "0xa0" + ] + }, + { + "pc": 2480, + "op": "SWAP2", + "gas": 49976532, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0", + "0x3e8", + "0x80", + "0xca" + ] + }, + { + "pc": 2481, + "op": "POP", + "gas": 49976529, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0", + "0xca", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2482, + "op": "POP", + "gas": 49976527, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0", + "0xca", + "0x80" + ] + }, + { + "pc": 2483, + "op": "JUMP", + "gas": 49976525, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0", + "0xca" + ] + }, + { + "pc": 202, + "op": "JUMPDEST", + "gas": 49976517, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0" + ] + }, + { + "pc": 203, + "op": "PUSH1", + "gas": 49976516, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0" + ] + }, + { + "pc": 205, + "op": "MLOAD", + "gas": 49976513, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0", + "0x40" + ] + }, + { + "pc": 206, + "op": "DUP1", + "gas": 49976510, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0", + "0x80" + ] + }, + { + "pc": 207, + "op": "SWAP2", + "gas": 49976507, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0xa0", + "0x80", + "0x80" + ] + }, + { + "pc": 208, + "op": "SUB", + "gas": 49976504, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x80", + "0x80", + "0xa0" + ] + }, + { + "pc": 209, + "op": "SWAP1", + "gas": 49976501, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x80", + "0x20" + ] + }, + { + "pc": 210, + "op": "RETURN", + "gas": 49976498, + "gasCost": 0, + "depth": 1, + "stack": [ + "0x12065fe0", + "0x20", + "0x80" + ] + } + ] +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.prestateDiffTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.prestateDiffTracer.json new file mode 100644 index 000000000..204b247ee --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.prestateDiffTracer.json @@ -0,0 +1,12 @@ +{ + "post": { + "CALL.address": { + "nonce": 1 + } + }, + "pre": { + "CALL.address": { + "balance": "0x0" + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.prestateTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.prestateTracer.json new file mode 100644 index 000000000..5b933285f --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.prestateTracer.json @@ -0,0 +1,16 @@ +{ + "0x0000000000000000000000000000000000000000": { + "balance": "0x1bf279a" + }, + "Tracer.address": { + "balance": "0x0", + "code": "0x60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "nonce": 2, + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000000000000000003e8" + } + }, + "CALL.address": { + "balance": "0x0" + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.replayTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.replayTracer.json new file mode 100644 index 000000000..9bf648a70 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.getBalance.replayTracer.json @@ -0,0 +1,25 @@ +{ + "output": "0x00000000000000000000000000000000000000000000000000000000000003e8", + "stateDiff": null, + "trace": [ + { + "action": { + "callType": "call", + "from": "CALL.address", + "gas": "0x0000000000000000000000000000000000000000000000000000000ffffface7", + "input": "0x12065fe0", + "to": "Tracer.address", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "result": { + "gasUsed": "0x0000000000000000000000000000000000000000000000000000000000005532", + "output": "0x00000000000000000000000000000000000000000000000000000000000003e8" + }, + "subtraces": 0, + "traceAddress": [], + "type": "call" + } + ], + "transactionHash": "0x9ad9cd25ca343d5251c2c2e73ae88d0079496279e5ee21ed294795ed27b5ea62", + "vmTrace": null +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.4byteTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.4byteTracer.json new file mode 100644 index 000000000..00cc957e2 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.4byteTracer.json @@ -0,0 +1,3 @@ +{ + "0xa0712d68-32": 1 +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.callTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.callTracer.json new file mode 100644 index 000000000..8988acd9d --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.callTracer.json @@ -0,0 +1,10 @@ +{ + "from": "OWNER.address", + "gas": "0x200b20", + "gasUsed": "0x1221b", + "to": "Tracer.address", + "input": "0xa0712d6800000000000000000000000000000000000000000000000000000000000003e8", + "error": "execution reverted", + "value": "0x0", + "type": "CALL" +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.defaultTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.defaultTracer.json new file mode 100644 index 000000000..50d146e7f --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.defaultTracer.json @@ -0,0 +1,14639 @@ +{ + "gas": 74267, + "failed": true, + "returnValue": "", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 2078784, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 2078781, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 2078778, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "CALLVALUE", + "gas": 2078766, + "gasCost": 2, + "depth": 1, + "stack": [] + }, + { + "pc": 6, + "op": "DUP1", + "gas": 2078764, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 7, + "op": "ISZERO", + "gas": 2078761, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 8, + "op": "PUSH3", + "gas": 2078758, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 2078755, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x1", + "0x11" + ] + }, + { + "pc": 17, + "op": "JUMPDEST", + "gas": 2078745, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 18, + "op": "POP", + "gas": 2078744, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 19, + "op": "PUSH1", + "gas": 2078742, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 21, + "op": "CALLDATASIZE", + "gas": 2078739, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 22, + "op": "LT", + "gas": 2078737, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x24" + ] + }, + { + "pc": 23, + "op": "PUSH3", + "gas": 2078734, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 27, + "op": "JUMPI", + "gas": 2078731, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0xac" + ] + }, + { + "pc": 28, + "op": "PUSH1", + "gas": 2078721, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 30, + "op": "CALLDATALOAD", + "gas": 2078718, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 31, + "op": "PUSH1", + "gas": 2078715, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d6800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 33, + "op": "SHR", + "gas": 2078712, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d6800000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 34, + "op": "DUP1", + "gas": 2078709, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 35, + "op": "PUSH4", + "gas": 2078706, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 40, + "op": "GT", + "gas": 2078703, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0xa0712d68", + "0x8bfe44ff" + ] + }, + { + "pc": 41, + "op": "PUSH3", + "gas": 2078700, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x0" + ] + }, + { + "pc": 45, + "op": "JUMPI", + "gas": 2078697, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x0", + "0x6f" + ] + }, + { + "pc": 46, + "op": "DUP1", + "gas": 2078687, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 47, + "op": "PUSH4", + "gas": 2078684, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 52, + "op": "EQ", + "gas": 2078681, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0xa0712d68", + "0x8bfe44ff" + ] + }, + { + "pc": 53, + "op": "PUSH3", + "gas": 2078678, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x0" + ] + }, + { + "pc": 57, + "op": "JUMPI", + "gas": 2078675, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x0", + "0x197" + ] + }, + { + "pc": 58, + "op": "DUP1", + "gas": 2078665, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 59, + "op": "PUSH4", + "gas": 2078662, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 64, + "op": "EQ", + "gas": 2078659, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0xa0712d68", + "0x92954362" + ] + }, + { + "pc": 65, + "op": "PUSH3", + "gas": 2078656, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x0" + ] + }, + { + "pc": 69, + "op": "JUMPI", + "gas": 2078653, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x0", + "0x1a3" + ] + }, + { + "pc": 70, + "op": "DUP1", + "gas": 2078643, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 71, + "op": "PUSH4", + "gas": 2078640, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 76, + "op": "EQ", + "gas": 2078637, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 77, + "op": "PUSH3", + "gas": 2078634, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1" + ] + }, + { + "pc": 81, + "op": "JUMPI", + "gas": 2078631, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1", + "0x1af" + ] + }, + { + "pc": 431, + "op": "JUMPDEST", + "gas": 2078621, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 432, + "op": "PUSH3", + "gas": 2078620, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 436, + "op": "PUSH1", + "gas": 2078617, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd" + ] + }, + { + "pc": 438, + "op": "DUP1", + "gas": 2078614, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x4" + ] + }, + { + "pc": 439, + "op": "CALLDATASIZE", + "gas": 2078611, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x4", + "0x4" + ] + }, + { + "pc": 440, + "op": "SUB", + "gas": 2078609, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x4", + "0x4", + "0x24" + ] + }, + { + "pc": 441, + "op": "DUP2", + "gas": 2078606, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x4", + "0x20" + ] + }, + { + "pc": 442, + "op": "ADD", + "gas": 2078603, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x4", + "0x20", + "0x4" + ] + }, + { + "pc": 443, + "op": "SWAP1", + "gas": 2078600, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x4", + "0x24" + ] + }, + { + "pc": 444, + "op": "PUSH3", + "gas": 2078597, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x24", + "0x4" + ] + }, + { + "pc": 448, + "op": "SWAP2", + "gas": 2078594, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x24", + "0x4", + "0x1c7" + ] + }, + { + "pc": 449, + "op": "SWAP1", + "gas": 2078591, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x4", + "0x24" + ] + }, + { + "pc": 450, + "op": "PUSH3", + "gas": 2078588, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4" + ] + }, + { + "pc": 454, + "op": "JUMP", + "gas": 2078585, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0xa2c" + ] + }, + { + "pc": 2604, + "op": "JUMPDEST", + "gas": 2078577, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4" + ] + }, + { + "pc": 2605, + "op": "PUSH1", + "gas": 2078576, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4" + ] + }, + { + "pc": 2607, + "op": "PUSH1", + "gas": 2078573, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2609, + "op": "DUP3", + "gas": 2078570, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x20" + ] + }, + { + "pc": 2610, + "op": "DUP5", + "gas": 2078567, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x20", + "0x4" + ] + }, + { + "pc": 2611, + "op": "SUB", + "gas": 2078564, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x20", + "0x4", + "0x24" + ] + }, + { + "pc": 2612, + "op": "SLT", + "gas": 2078561, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x20", + "0x20" + ] + }, + { + "pc": 2613, + "op": "ISZERO", + "gas": 2078558, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 2614, + "op": "PUSH3", + "gas": 2078555, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x1" + ] + }, + { + "pc": 2618, + "op": "JUMPI", + "gas": 2078552, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x1", + "0xa45" + ] + }, + { + "pc": 2629, + "op": "JUMPDEST", + "gas": 2078542, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2630, + "op": "PUSH1", + "gas": 2078541, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2632, + "op": "PUSH3", + "gas": 2078538, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 2636, + "op": "DUP5", + "gas": 2078535, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55" + ] + }, + { + "pc": 2637, + "op": "DUP3", + "gas": 2078532, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24" + ] + }, + { + "pc": 2638, + "op": "DUP6", + "gas": 2078529, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x0" + ] + }, + { + "pc": 2639, + "op": "ADD", + "gas": 2078526, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x0", + "0x4" + ] + }, + { + "pc": 2640, + "op": "PUSH3", + "gas": 2078523, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2644, + "op": "JUMP", + "gas": 2078520, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0xa15" + ] + }, + { + "pc": 2581, + "op": "JUMPDEST", + "gas": 2078512, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2582, + "op": "PUSH1", + "gas": 2078511, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2584, + "op": "DUP2", + "gas": 2078508, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2585, + "op": "CALLDATALOAD", + "gas": 2078505, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0", + "0x4" + ] + }, + { + "pc": 2586, + "op": "SWAP1", + "gas": 2078502, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2587, + "op": "POP", + "gas": 2078499, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2588, + "op": "PUSH3", + "gas": 2078497, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2592, + "op": "DUP2", + "gas": 2078494, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26" + ] + }, + { + "pc": 2593, + "op": "PUSH3", + "gas": 2078491, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2597, + "op": "JUMP", + "gas": 2078488, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x9fb" + ] + }, + { + "pc": 2555, + "op": "JUMPDEST", + "gas": 2078480, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2556, + "op": "PUSH3", + "gas": 2078479, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2560, + "op": "DUP2", + "gas": 2078476, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2561, + "op": "PUSH3", + "gas": 2078473, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2565, + "op": "JUMP", + "gas": 2078470, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2078462, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2078461, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2078458, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2078455, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2078452, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2078450, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2078447, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2078444, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2078442, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2566, + "op": "JUMPDEST", + "gas": 2078434, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2567, + "op": "DUP2", + "gas": 2078433, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2568, + "op": "EQ", + "gas": 2078430, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2569, + "op": "PUSH3", + "gas": 2078427, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x1" + ] + }, + { + "pc": 2573, + "op": "JUMPI", + "gas": 2078424, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x1", + "0xa12" + ] + }, + { + "pc": 2578, + "op": "JUMPDEST", + "gas": 2078414, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2579, + "op": "POP", + "gas": 2078413, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2580, + "op": "JUMP", + "gas": 2078411, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26" + ] + }, + { + "pc": 2598, + "op": "JUMPDEST", + "gas": 2078403, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2599, + "op": "SWAP3", + "gas": 2078402, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2600, + "op": "SWAP2", + "gas": 2078399, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0x24", + "0x4", + "0xa55" + ] + }, + { + "pc": 2601, + "op": "POP", + "gas": 2078396, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55", + "0x4", + "0x24" + ] + }, + { + "pc": 2602, + "op": "POP", + "gas": 2078394, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55", + "0x4" + ] + }, + { + "pc": 2603, + "op": "JUMP", + "gas": 2078392, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55" + ] + }, + { + "pc": 2645, + "op": "JUMPDEST", + "gas": 2078384, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2646, + "op": "SWAP2", + "gas": 2078383, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2647, + "op": "POP", + "gas": 2078380, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 2648, + "op": "POP", + "gas": 2078378, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2649, + "op": "SWAP3", + "gas": 2078376, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x1c7", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2650, + "op": "SWAP2", + "gas": 2078373, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x24", + "0x4", + "0x1c7" + ] + }, + { + "pc": 2651, + "op": "POP", + "gas": 2078370, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x1c7", + "0x4", + "0x24" + ] + }, + { + "pc": 2652, + "op": "POP", + "gas": 2078368, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x1c7", + "0x4" + ] + }, + { + "pc": 2653, + "op": "JUMP", + "gas": 2078366, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x1c7" + ] + }, + { + "pc": 455, + "op": "JUMPDEST", + "gas": 2078358, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8" + ] + }, + { + "pc": 456, + "op": "PUSH3", + "gas": 2078357, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8" + ] + }, + { + "pc": 460, + "op": "JUMP", + "gas": 2078354, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x802" + ] + }, + { + "pc": 2050, + "op": "JUMPDEST", + "gas": 2078346, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8" + ] + }, + { + "pc": 2051, + "op": "PUSH1", + "gas": 2078345, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8" + ] + }, + { + "pc": 2053, + "op": "CALLER", + "gas": 2078342, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2054, + "op": "PUSH20", + "gas": 2078340, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address" + ] + }, + { + "pc": 2075, + "op": "AND", + "gas": 2078337, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 2076, + "op": "PUSH32", + "gas": 2078334, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address" + ] + }, + { + "pc": 2109, + "op": "DUP4", + "gas": 2078331, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0" + ] + }, + { + "pc": 2110, + "op": "PUSH1", + "gas": 2078328, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8" + ] + }, + { + "pc": 2112, + "op": "MLOAD", + "gas": 2078325, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x40" + ] + }, + { + "pc": 2113, + "op": "PUSH3", + "gas": 2078322, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x80" + ] + }, + { + "pc": 2117, + "op": "SWAP2", + "gas": 2078319, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x80", + "0x84c" + ] + }, + { + "pc": 2118, + "op": "SWAP1", + "gas": 2078316, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2119, + "op": "PUSH3", + "gas": 2078313, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80" + ] + }, + { + "pc": 2123, + "op": "JUMP", + "gas": 2078310, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc64" + ] + }, + { + "pc": 3172, + "op": "JUMPDEST", + "gas": 2078302, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80" + ] + }, + { + "pc": 3173, + "op": "PUSH1", + "gas": 2078301, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80" + ] + }, + { + "pc": 3175, + "op": "PUSH1", + "gas": 2078298, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0x0" + ] + }, + { + "pc": 3177, + "op": "DUP3", + "gas": 2078295, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0x0", + "0x40" + ] + }, + { + "pc": 3178, + "op": "ADD", + "gas": 2078292, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0x0", + "0x40", + "0x80" + ] + }, + { + "pc": 3179, + "op": "SWAP1", + "gas": 2078289, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0x0", + "0xc0" + ] + }, + { + "pc": 3180, + "op": "POP", + "gas": 2078286, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x0" + ] + }, + { + "pc": 3181, + "op": "PUSH3", + "gas": 2078284, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 3185, + "op": "PUSH1", + "gas": 2078281, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b" + ] + }, + { + "pc": 3187, + "op": "DUP4", + "gas": 2078278, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x0" + ] + }, + { + "pc": 3188, + "op": "ADD", + "gas": 2078275, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x0", + "0x80" + ] + }, + { + "pc": 3189, + "op": "DUP5", + "gas": 2078272, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80" + ] + }, + { + "pc": 3190, + "op": "PUSH3", + "gas": 2078269, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8" + ] + }, + { + "pc": 3194, + "op": "JUMP", + "gas": 2078266, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x986" + ] + }, + { + "pc": 2438, + "op": "JUMPDEST", + "gas": 2078258, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2439, + "op": "PUSH3", + "gas": 2078257, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2443, + "op": "DUP2", + "gas": 2078254, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2444, + "op": "PUSH3", + "gas": 2078251, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2448, + "op": "JUMP", + "gas": 2078248, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2078240, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2078239, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2078236, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2078233, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2078230, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2078228, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2078225, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2078222, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2078220, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2449, + "op": "JUMPDEST", + "gas": 2078212, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2450, + "op": "DUP3", + "gas": 2078211, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2451, + "op": "MSTORE", + "gas": 2078208, + "gasCost": 9, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8", + "0x80" + ] + }, + { + "pc": 2452, + "op": "POP", + "gas": 2078199, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2453, + "op": "POP", + "gas": 2078197, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80" + ] + }, + { + "pc": 2454, + "op": "JUMP", + "gas": 2078195, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc7b" + ] + }, + { + "pc": 3195, + "op": "JUMPDEST", + "gas": 2078187, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 3196, + "op": "DUP2", + "gas": 2078186, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 3197, + "op": "DUP2", + "gas": 2078183, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x80" + ] + }, + { + "pc": 3198, + "op": "SUB", + "gas": 2078180, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x80", + "0xc0" + ] + }, + { + "pc": 3199, + "op": "PUSH1", + "gas": 2078177, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 3201, + "op": "DUP4", + "gas": 2078174, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0x20" + ] + }, + { + "pc": 3202, + "op": "ADD", + "gas": 2078171, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0x20", + "0x80" + ] + }, + { + "pc": 3203, + "op": "MSTORE", + "gas": 2078168, + "gasCost": 6, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0xa0" + ] + }, + { + "pc": 3204, + "op": "PUSH3", + "gas": 2078162, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 3208, + "op": "DUP2", + "gas": 2078159, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e" + ] + }, + { + "pc": 3209, + "op": "PUSH3", + "gas": 2078156, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0" + ] + }, + { + "pc": 3213, + "op": "JUMP", + "gas": 2078153, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0xc3d" + ] + }, + { + "pc": 3133, + "op": "JUMPDEST", + "gas": 2078145, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0" + ] + }, + { + "pc": 3134, + "op": "PUSH1", + "gas": 2078144, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0" + ] + }, + { + "pc": 3136, + "op": "PUSH3", + "gas": 2078141, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0" + ] + }, + { + "pc": 3140, + "op": "PUSH1", + "gas": 2078138, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c" + ] + }, + { + "pc": 3142, + "op": "DUP4", + "gas": 2078135, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5" + ] + }, + { + "pc": 3143, + "op": "PUSH3", + "gas": 2078132, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0" + ] + }, + { + "pc": 3147, + "op": "JUMP", + "gas": 2078129, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0xaf5" + ] + }, + { + "pc": 2805, + "op": "JUMPDEST", + "gas": 2078121, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0" + ] + }, + { + "pc": 2806, + "op": "PUSH1", + "gas": 2078120, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0" + ] + }, + { + "pc": 2808, + "op": "DUP3", + "gas": 2078117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0" + ] + }, + { + "pc": 2809, + "op": "DUP3", + "gas": 2078114, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0x5" + ] + }, + { + "pc": 2810, + "op": "MSTORE", + "gas": 2078111, + "gasCost": 6, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0x5", + "0xc0" + ] + }, + { + "pc": 2811, + "op": "PUSH1", + "gas": 2078105, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0" + ] + }, + { + "pc": 2813, + "op": "DUP3", + "gas": 2078102, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 2814, + "op": "ADD", + "gas": 2078099, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 2815, + "op": "SWAP1", + "gas": 2078096, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 2816, + "op": "POP", + "gas": 2078093, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 2817, + "op": "SWAP3", + "gas": 2078091, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0xe0" + ] + }, + { + "pc": 2818, + "op": "SWAP2", + "gas": 2078088, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0", + "0x5", + "0xc0", + "0xc4c" + ] + }, + { + "pc": 2819, + "op": "POP", + "gas": 2078085, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0", + "0xc4c", + "0xc0", + "0x5" + ] + }, + { + "pc": 2820, + "op": "POP", + "gas": 2078083, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0", + "0xc4c", + "0xc0" + ] + }, + { + "pc": 2821, + "op": "JUMP", + "gas": 2078081, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0", + "0xc4c" + ] + }, + { + "pc": 3148, + "op": "JUMPDEST", + "gas": 2078073, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 3149, + "op": "SWAP2", + "gas": 2078072, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 3150, + "op": "POP", + "gas": 2078069, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 3151, + "op": "PUSH3", + "gas": 2078067, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0" + ] + }, + { + "pc": 3155, + "op": "DUP3", + "gas": 2078064, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59" + ] + }, + { + "pc": 3156, + "op": "PUSH3", + "gas": 2078061, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0" + ] + }, + { + "pc": 3160, + "op": "JUMP", + "gas": 2078058, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0xc14" + ] + }, + { + "pc": 3092, + "op": "JUMPDEST", + "gas": 2078050, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0" + ] + }, + { + "pc": 3093, + "op": "PUSH32", + "gas": 2078049, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0" + ] + }, + { + "pc": 3126, + "op": "PUSH1", + "gas": 2078046, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3128, + "op": "DUP3", + "gas": 2078043, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 3129, + "op": "ADD", + "gas": 2078040, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0x0", + "0xe0" + ] + }, + { + "pc": 3130, + "op": "MSTORE", + "gas": 2078037, + "gasCost": 6, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 3131, + "op": "POP", + "gas": 2078031, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0" + ] + }, + { + "pc": 3132, + "op": "JUMP", + "gas": 2078029, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59" + ] + }, + { + "pc": 3161, + "op": "JUMPDEST", + "gas": 2078021, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0" + ] + }, + { + "pc": 3162, + "op": "PUSH1", + "gas": 2078020, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0" + ] + }, + { + "pc": 3164, + "op": "DUP3", + "gas": 2078017, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 3165, + "op": "ADD", + "gas": 2078014, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 3166, + "op": "SWAP1", + "gas": 2078011, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 3167, + "op": "POP", + "gas": 2078008, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 3168, + "op": "SWAP2", + "gas": 2078006, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x100" + ] + }, + { + "pc": 3169, + "op": "SWAP1", + "gas": 2078003, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0xe0", + "0xc8e" + ] + }, + { + "pc": 3170, + "op": "POP", + "gas": 2078000, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0xc8e", + "0xe0" + ] + }, + { + "pc": 3171, + "op": "JUMP", + "gas": 2077998, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0xc8e" + ] + }, + { + "pc": 3214, + "op": "JUMPDEST", + "gas": 2077990, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 3215, + "op": "SWAP1", + "gas": 2077989, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 3216, + "op": "POP", + "gas": 2077986, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0x100", + "0xc0" + ] + }, + { + "pc": 3217, + "op": "SWAP3", + "gas": 2077984, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x84c", + "0x3e8", + "0x80", + "0x100" + ] + }, + { + "pc": 3218, + "op": "SWAP2", + "gas": 2077981, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x3e8", + "0x80", + "0x84c" + ] + }, + { + "pc": 3219, + "op": "POP", + "gas": 2077978, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x84c", + "0x80", + "0x3e8" + ] + }, + { + "pc": 3220, + "op": "POP", + "gas": 2077976, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x84c", + "0x80" + ] + }, + { + "pc": 3221, + "op": "JUMP", + "gas": 2077974, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x84c" + ] + }, + { + "pc": 2124, + "op": "JUMPDEST", + "gas": 2077966, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 2125, + "op": "PUSH1", + "gas": 2077965, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 2127, + "op": "MLOAD", + "gas": 2077962, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x40" + ] + }, + { + "pc": 2128, + "op": "DUP1", + "gas": 2077959, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80" + ] + }, + { + "pc": 2129, + "op": "SWAP2", + "gas": 2077956, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80", + "0x80" + ] + }, + { + "pc": 2130, + "op": "SUB", + "gas": 2077953, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80", + "0x100" + ] + }, + { + "pc": 2131, + "op": "SWAP1", + "gas": 2077950, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 2132, + "op": "LOG2", + "gas": 2077947, + "gasCost": 2149, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 2133, + "op": "DUP2", + "gas": 2075798, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2134, + "op": "PUSH1", + "gas": 2075795, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2136, + "op": "PUSH1", + "gas": 2075792, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1" + ] + }, + { + "pc": 2138, + "op": "DUP3", + "gas": 2075789, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0" + ] + }, + { + "pc": 2139, + "op": "DUP3", + "gas": 2075786, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2140, + "op": "SLOAD", + "gas": 2075783, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 2141, + "op": "PUSH3", + "gas": 2073683, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2145, + "op": "SWAP2", + "gas": 2073680, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x0", + "0x868" + ] + }, + { + "pc": 2146, + "op": "SWAP1", + "gas": 2073677, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2147, + "op": "PUSH3", + "gas": 2073674, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2151, + "op": "JUMP", + "gas": 2073671, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0xbb7" + ] + }, + { + "pc": 2999, + "op": "JUMPDEST", + "gas": 2073663, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3000, + "op": "PUSH1", + "gas": 2073662, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3002, + "op": "PUSH3", + "gas": 2073659, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3006, + "op": "DUP3", + "gas": 2073656, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3007, + "op": "PUSH3", + "gas": 2073653, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 3011, + "op": "JUMP", + "gas": 2073650, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2073642, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2073641, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2073638, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2073635, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2073632, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2073630, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2073627, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2073624, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2073622, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3012, + "op": "JUMPDEST", + "gas": 2073614, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3013, + "op": "SWAP2", + "gas": 2073613, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3014, + "op": "POP", + "gas": 2073610, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3015, + "op": "PUSH3", + "gas": 2073608, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3019, + "op": "DUP4", + "gas": 2073605, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1" + ] + }, + { + "pc": 3020, + "op": "PUSH3", + "gas": 2073602, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8" + ] + }, + { + "pc": 3024, + "op": "JUMP", + "gas": 2073599, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2073591, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2073590, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2073587, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2073584, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2073581, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2073579, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2073576, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0x3e8", + "0xbd1" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2073573, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0xbd1", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2073571, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0xbd1" + ] + }, + { + "pc": 3025, + "op": "JUMPDEST", + "gas": 2073563, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3026, + "op": "SWAP3", + "gas": 2073562, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3027, + "op": "POP", + "gas": 2073559, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3028, + "op": "DUP3", + "gas": 2073557, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3029, + "op": "PUSH32", + "gas": 2073554, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3062, + "op": "SUB", + "gas": 2073551, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 3063, + "op": "DUP3", + "gas": 2073548, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc17" + ] + }, + { + "pc": 3064, + "op": "GT", + "gas": 2073545, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc17", + "0x0" + ] + }, + { + "pc": 3065, + "op": "ISZERO", + "gas": 2073542, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3066, + "op": "PUSH3", + "gas": 2073539, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 3070, + "op": "JUMPI", + "gas": 2073536, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x1", + "0xc09" + ] + }, + { + "pc": 3081, + "op": "JUMPDEST", + "gas": 2073526, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3082, + "op": "DUP3", + "gas": 2073525, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3083, + "op": "DUP3", + "gas": 2073522, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3084, + "op": "ADD", + "gas": 2073519, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3085, + "op": "SWAP1", + "gas": 2073516, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3086, + "op": "POP", + "gas": 2073513, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3087, + "op": "SWAP3", + "gas": 2073511, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x868", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3088, + "op": "SWAP2", + "gas": 2073508, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x3e8", + "0x0", + "0x868" + ] + }, + { + "pc": 3089, + "op": "POP", + "gas": 2073505, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x868", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3090, + "op": "POP", + "gas": 2073503, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x868", + "0x0" + ] + }, + { + "pc": 3091, + "op": "JUMP", + "gas": 2073501, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x868" + ] + }, + { + "pc": 2152, + "op": "JUMPDEST", + "gas": 2073493, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2153, + "op": "SWAP3", + "gas": 2073492, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2154, + "op": "POP", + "gas": 2073489, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2155, + "op": "POP", + "gas": 2073487, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0" + ] + }, + { + "pc": 2156, + "op": "DUP2", + "gas": 2073485, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1" + ] + }, + { + "pc": 2157, + "op": "SWAP1", + "gas": 2073482, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x3e8" + ] + }, + { + "pc": 2158, + "op": "SSTORE", + "gas": 2073479, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8", + "0x3e8", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8" + } + }, + { + "pc": 2159, + "op": "POP", + "gas": 2053479, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2160, + "op": "PUSH3", + "gas": 2053477, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2164, + "op": "PUSH1", + "gas": 2053474, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888" + ] + }, + { + "pc": 2166, + "op": "DUP4", + "gas": 2053471, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x1" + ] + }, + { + "pc": 2167, + "op": "PUSH3", + "gas": 2053468, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x1", + "0x3e8" + ] + }, + { + "pc": 2171, + "op": "SWAP2", + "gas": 2053465, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x1", + "0x3e8", + "0x882" + ] + }, + { + "pc": 2172, + "op": "SWAP1", + "gas": 2053462, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x3e8", + "0x1" + ] + }, + { + "pc": 2173, + "op": "PUSH3", + "gas": 2053459, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8" + ] + }, + { + "pc": 2177, + "op": "JUMP", + "gas": 2053456, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0xbb7" + ] + }, + { + "pc": 2999, + "op": "JUMPDEST", + "gas": 2053448, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8" + ] + }, + { + "pc": 3000, + "op": "PUSH1", + "gas": 2053447, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8" + ] + }, + { + "pc": 3002, + "op": "PUSH3", + "gas": 2053444, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3006, + "op": "DUP3", + "gas": 2053441, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3007, + "op": "PUSH3", + "gas": 2053438, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8" + ] + }, + { + "pc": 3011, + "op": "JUMP", + "gas": 2053435, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2053427, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2053426, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2053423, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2053420, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2053417, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2053415, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2053412, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0x3e8", + "0xbc4" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2053409, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0xbc4", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2053407, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0xbc4" + ] + }, + { + "pc": 3012, + "op": "JUMPDEST", + "gas": 2053399, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3013, + "op": "SWAP2", + "gas": 2053398, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3014, + "op": "POP", + "gas": 2053395, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3015, + "op": "PUSH3", + "gas": 2053393, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3019, + "op": "DUP4", + "gas": 2053390, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1" + ] + }, + { + "pc": 3020, + "op": "PUSH3", + "gas": 2053387, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1" + ] + }, + { + "pc": 3024, + "op": "JUMP", + "gas": 2053384, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2053376, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2053375, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2053372, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2053369, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2053366, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2053364, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x1" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2053361, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x1", + "0xbd1" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2053358, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xbd1", + "0x1" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2053356, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xbd1" + ] + }, + { + "pc": 3025, + "op": "JUMPDEST", + "gas": 2053348, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3026, + "op": "SWAP3", + "gas": 2053347, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3027, + "op": "POP", + "gas": 2053344, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3028, + "op": "DUP3", + "gas": 2053342, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3029, + "op": "PUSH32", + "gas": 2053339, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3062, + "op": "SUB", + "gas": 2053336, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 3063, + "op": "DUP3", + "gas": 2053333, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + ] + }, + { + "pc": 3064, + "op": "GT", + "gas": 2053330, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x3e8" + ] + }, + { + "pc": 3065, + "op": "ISZERO", + "gas": 2053327, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3066, + "op": "PUSH3", + "gas": 2053324, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3070, + "op": "JUMPI", + "gas": 2053321, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xc09" + ] + }, + { + "pc": 3081, + "op": "JUMPDEST", + "gas": 2053311, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3082, + "op": "DUP3", + "gas": 2053310, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3083, + "op": "DUP3", + "gas": 2053307, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3084, + "op": "ADD", + "gas": 2053304, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x3e8" + ] + }, + { + "pc": 3085, + "op": "SWAP1", + "gas": 2053301, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3086, + "op": "POP", + "gas": 2053298, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3087, + "op": "SWAP3", + "gas": 2053296, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x882", + "0x1", + "0x3e8", + "0x3e9" + ] + }, + { + "pc": 3088, + "op": "SWAP2", + "gas": 2053293, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x1", + "0x3e8", + "0x882" + ] + }, + { + "pc": 3089, + "op": "POP", + "gas": 2053290, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x882", + "0x3e8", + "0x1" + ] + }, + { + "pc": 3090, + "op": "POP", + "gas": 2053288, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x882", + "0x3e8" + ] + }, + { + "pc": 3091, + "op": "JUMP", + "gas": 2053286, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x882" + ] + }, + { + "pc": 2178, + "op": "JUMPDEST", + "gas": 2053278, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9" + ] + }, + { + "pc": 2179, + "op": "PUSH3", + "gas": 2053277, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9" + ] + }, + { + "pc": 2183, + "op": "JUMP", + "gas": 2053274, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x280" + ] + }, + { + "pc": 640, + "op": "JUMPDEST", + "gas": 2053266, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9" + ] + }, + { + "pc": 641, + "op": "PUSH1", + "gas": 2053265, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9" + ] + }, + { + "pc": 643, + "op": "CALLER", + "gas": 2053262, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0" + ] + }, + { + "pc": 644, + "op": "PUSH20", + "gas": 2053260, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address" + ] + }, + { + "pc": 665, + "op": "AND", + "gas": 2053257, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 666, + "op": "PUSH32", + "gas": 2053254, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address" + ] + }, + { + "pc": 699, + "op": "DUP4", + "gas": 2053251, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0" + ] + }, + { + "pc": 700, + "op": "PUSH1", + "gas": 2053248, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9" + ] + }, + { + "pc": 702, + "op": "MLOAD", + "gas": 2053245, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x40" + ] + }, + { + "pc": 703, + "op": "PUSH3", + "gas": 2053242, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x80" + ] + }, + { + "pc": 707, + "op": "SWAP2", + "gas": 2053239, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x80", + "0x2ca" + ] + }, + { + "pc": 708, + "op": "SWAP1", + "gas": 2053236, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x80", + "0x3e9" + ] + }, + { + "pc": 709, + "op": "PUSH3", + "gas": 2053233, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80" + ] + }, + { + "pc": 713, + "op": "JUMP", + "gas": 2053230, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xb56" + ] + }, + { + "pc": 2902, + "op": "JUMPDEST", + "gas": 2053222, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80" + ] + }, + { + "pc": 2903, + "op": "PUSH1", + "gas": 2053221, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80" + ] + }, + { + "pc": 2905, + "op": "PUSH1", + "gas": 2053218, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x0" + ] + }, + { + "pc": 2907, + "op": "DUP3", + "gas": 2053215, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x0", + "0x40" + ] + }, + { + "pc": 2908, + "op": "ADD", + "gas": 2053212, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x0", + "0x40", + "0x80" + ] + }, + { + "pc": 2909, + "op": "SWAP1", + "gas": 2053209, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x0", + "0xc0" + ] + }, + { + "pc": 2910, + "op": "POP", + "gas": 2053206, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x0" + ] + }, + { + "pc": 2911, + "op": "PUSH3", + "gas": 2053204, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 2915, + "op": "PUSH1", + "gas": 2053201, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d" + ] + }, + { + "pc": 2917, + "op": "DUP4", + "gas": 2053198, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x0" + ] + }, + { + "pc": 2918, + "op": "ADD", + "gas": 2053195, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x0", + "0x80" + ] + }, + { + "pc": 2919, + "op": "DUP5", + "gas": 2053192, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80" + ] + }, + { + "pc": 2920, + "op": "PUSH3", + "gas": 2053189, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2924, + "op": "JUMP", + "gas": 2053186, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x986" + ] + }, + { + "pc": 2438, + "op": "JUMPDEST", + "gas": 2053178, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2439, + "op": "PUSH3", + "gas": 2053177, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2443, + "op": "DUP2", + "gas": 2053174, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991" + ] + }, + { + "pc": 2444, + "op": "PUSH3", + "gas": 2053171, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9" + ] + }, + { + "pc": 2448, + "op": "JUMP", + "gas": 2053168, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2053160, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2053159, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2053156, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2053153, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2053150, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x3e9", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2053148, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2053145, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9", + "0x3e9", + "0x991" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2053142, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9", + "0x991", + "0x3e9" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2053140, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9", + "0x991" + ] + }, + { + "pc": 2449, + "op": "JUMPDEST", + "gas": 2053132, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 2450, + "op": "DUP3", + "gas": 2053131, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 2451, + "op": "MSTORE", + "gas": 2053128, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9", + "0x80" + ] + }, + { + "pc": 2452, + "op": "POP", + "gas": 2053125, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2453, + "op": "POP", + "gas": 2053123, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80" + ] + }, + { + "pc": 2454, + "op": "JUMP", + "gas": 2053121, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d" + ] + }, + { + "pc": 2925, + "op": "JUMPDEST", + "gas": 2053113, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 2926, + "op": "DUP2", + "gas": 2053112, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 2927, + "op": "DUP2", + "gas": 2053109, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x80" + ] + }, + { + "pc": 2928, + "op": "SUB", + "gas": 2053106, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x80", + "0xc0" + ] + }, + { + "pc": 2929, + "op": "PUSH1", + "gas": 2053103, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 2931, + "op": "DUP4", + "gas": 2053100, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0x20" + ] + }, + { + "pc": 2932, + "op": "ADD", + "gas": 2053097, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0x20", + "0x80" + ] + }, + { + "pc": 2933, + "op": "MSTORE", + "gas": 2053094, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0xa0" + ] + }, + { + "pc": 2934, + "op": "PUSH3", + "gas": 2053091, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 2938, + "op": "DUP2", + "gas": 2053088, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80" + ] + }, + { + "pc": 2939, + "op": "PUSH3", + "gas": 2053085, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0" + ] + }, + { + "pc": 2943, + "op": "JUMP", + "gas": 2053082, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0xb2f" + ] + }, + { + "pc": 2863, + "op": "JUMPDEST", + "gas": 2053074, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0" + ] + }, + { + "pc": 2864, + "op": "PUSH1", + "gas": 2053073, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0" + ] + }, + { + "pc": 2866, + "op": "PUSH3", + "gas": 2053070, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0" + ] + }, + { + "pc": 2870, + "op": "PUSH1", + "gas": 2053067, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e" + ] + }, + { + "pc": 2872, + "op": "DUP4", + "gas": 2053064, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe" + ] + }, + { + "pc": 2873, + "op": "PUSH3", + "gas": 2053061, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0" + ] + }, + { + "pc": 2877, + "op": "JUMP", + "gas": 2053058, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0xaf5" + ] + }, + { + "pc": 2805, + "op": "JUMPDEST", + "gas": 2053050, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0" + ] + }, + { + "pc": 2806, + "op": "PUSH1", + "gas": 2053049, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0" + ] + }, + { + "pc": 2808, + "op": "DUP3", + "gas": 2053046, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0" + ] + }, + { + "pc": 2809, + "op": "DUP3", + "gas": 2053043, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0xe" + ] + }, + { + "pc": 2810, + "op": "MSTORE", + "gas": 2053040, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0xe", + "0xc0" + ] + }, + { + "pc": 2811, + "op": "PUSH1", + "gas": 2053037, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0" + ] + }, + { + "pc": 2813, + "op": "DUP3", + "gas": 2053034, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 2814, + "op": "ADD", + "gas": 2053031, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 2815, + "op": "SWAP1", + "gas": 2053028, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 2816, + "op": "POP", + "gas": 2053025, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 2817, + "op": "SWAP3", + "gas": 2053023, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0xe0" + ] + }, + { + "pc": 2818, + "op": "SWAP2", + "gas": 2053020, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0", + "0xe", + "0xc0", + "0xb3e" + ] + }, + { + "pc": 2819, + "op": "POP", + "gas": 2053017, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0", + "0xb3e", + "0xc0", + "0xe" + ] + }, + { + "pc": 2820, + "op": "POP", + "gas": 2053015, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0", + "0xb3e", + "0xc0" + ] + }, + { + "pc": 2821, + "op": "JUMP", + "gas": 2053013, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0", + "0xb3e" + ] + }, + { + "pc": 2878, + "op": "JUMPDEST", + "gas": 2053005, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 2879, + "op": "SWAP2", + "gas": 2053004, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 2880, + "op": "POP", + "gas": 2053001, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 2881, + "op": "PUSH3", + "gas": 2052999, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0" + ] + }, + { + "pc": 2885, + "op": "DUP3", + "gas": 2052996, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b" + ] + }, + { + "pc": 2886, + "op": "PUSH3", + "gas": 2052993, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0" + ] + }, + { + "pc": 2890, + "op": "JUMP", + "gas": 2052990, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0xb06" + ] + }, + { + "pc": 2822, + "op": "JUMPDEST", + "gas": 2052982, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0" + ] + }, + { + "pc": 2823, + "op": "PUSH32", + "gas": 2052981, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0" + ] + }, + { + "pc": 2856, + "op": "PUSH1", + "gas": 2052978, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000" + ] + }, + { + "pc": 2858, + "op": "DUP3", + "gas": 2052975, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 2859, + "op": "ADD", + "gas": 2052972, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0x0", + "0xe0" + ] + }, + { + "pc": 2860, + "op": "MSTORE", + "gas": 2052969, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 2861, + "op": "POP", + "gas": 2052966, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0" + ] + }, + { + "pc": 2862, + "op": "JUMP", + "gas": 2052964, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b" + ] + }, + { + "pc": 2891, + "op": "JUMPDEST", + "gas": 2052956, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0" + ] + }, + { + "pc": 2892, + "op": "PUSH1", + "gas": 2052955, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0" + ] + }, + { + "pc": 2894, + "op": "DUP3", + "gas": 2052952, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 2895, + "op": "ADD", + "gas": 2052949, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 2896, + "op": "SWAP1", + "gas": 2052946, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 2897, + "op": "POP", + "gas": 2052943, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 2898, + "op": "SWAP2", + "gas": 2052941, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x100" + ] + }, + { + "pc": 2899, + "op": "SWAP1", + "gas": 2052938, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0xe0", + "0xb80" + ] + }, + { + "pc": 2900, + "op": "POP", + "gas": 2052935, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0xb80", + "0xe0" + ] + }, + { + "pc": 2901, + "op": "JUMP", + "gas": 2052933, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0xb80" + ] + }, + { + "pc": 2944, + "op": "JUMPDEST", + "gas": 2052925, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 2945, + "op": "SWAP1", + "gas": 2052924, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 2946, + "op": "POP", + "gas": 2052921, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x100", + "0xc0" + ] + }, + { + "pc": 2947, + "op": "SWAP3", + "gas": 2052919, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x100" + ] + }, + { + "pc": 2948, + "op": "SWAP2", + "gas": 2052916, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x3e9", + "0x80", + "0x2ca" + ] + }, + { + "pc": 2949, + "op": "POP", + "gas": 2052913, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x2ca", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2950, + "op": "POP", + "gas": 2052911, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x2ca", + "0x80" + ] + }, + { + "pc": 2951, + "op": "JUMP", + "gas": 2052909, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x2ca" + ] + }, + { + "pc": 714, + "op": "JUMPDEST", + "gas": 2052901, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 715, + "op": "PUSH1", + "gas": 2052900, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 717, + "op": "MLOAD", + "gas": 2052897, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x40" + ] + }, + { + "pc": 718, + "op": "DUP1", + "gas": 2052894, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80" + ] + }, + { + "pc": 719, + "op": "SWAP2", + "gas": 2052891, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80", + "0x80" + ] + }, + { + "pc": 720, + "op": "SUB", + "gas": 2052888, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80", + "0x100" + ] + }, + { + "pc": 721, + "op": "SWAP1", + "gas": 2052885, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 722, + "op": "LOG2", + "gas": 2052882, + "gasCost": 2149, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 723, + "op": "DUP2", + "gas": 2050733, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0" + ] + }, + { + "pc": 724, + "op": "PUSH1", + "gas": 2050730, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 726, + "op": "PUSH1", + "gas": 2050727, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3" + ] + }, + { + "pc": 728, + "op": "DUP3", + "gas": 2050724, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0" + ] + }, + { + "pc": 729, + "op": "DUP3", + "gas": 2050721, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9" + ] + }, + { + "pc": 730, + "op": "SLOAD", + "gas": 2050718, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x3" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8", + "0000000000000000000000000000000000000000000000000000000000000003": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 731, + "op": "PUSH3", + "gas": 2048618, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x0" + ] + }, + { + "pc": 735, + "op": "SWAP2", + "gas": 2048615, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x0", + "0x2e6" + ] + }, + { + "pc": 736, + "op": "SWAP1", + "gas": 2048612, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x0", + "0x3e9" + ] + }, + { + "pc": 737, + "op": "PUSH3", + "gas": 2048609, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0" + ] + }, + { + "pc": 741, + "op": "JUMP", + "gas": 2048606, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0xbb7" + ] + }, + { + "pc": 2999, + "op": "JUMPDEST", + "gas": 2048598, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3000, + "op": "PUSH1", + "gas": 2048597, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3002, + "op": "PUSH3", + "gas": 2048594, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3006, + "op": "DUP3", + "gas": 2048591, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3007, + "op": "PUSH3", + "gas": 2048588, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 3011, + "op": "JUMP", + "gas": 2048585, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2048577, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2048576, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2048573, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2048570, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2048567, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2048565, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2048562, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2048559, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2048557, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3012, + "op": "JUMPDEST", + "gas": 2048549, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3013, + "op": "SWAP2", + "gas": 2048548, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3014, + "op": "POP", + "gas": 2048545, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3015, + "op": "PUSH3", + "gas": 2048543, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3019, + "op": "DUP4", + "gas": 2048540, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1" + ] + }, + { + "pc": 3020, + "op": "PUSH3", + "gas": 2048537, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9" + ] + }, + { + "pc": 3024, + "op": "JUMP", + "gas": 2048534, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2048526, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2048525, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2048522, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2048519, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2048516, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x3e9", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2048514, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2048511, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0x3e9", + "0xbd1" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2048508, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0xbd1", + "0x3e9" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2048506, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0xbd1" + ] + }, + { + "pc": 3025, + "op": "JUMPDEST", + "gas": 2048498, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3026, + "op": "SWAP3", + "gas": 2048497, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3027, + "op": "POP", + "gas": 2048494, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3028, + "op": "DUP3", + "gas": 2048492, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3029, + "op": "PUSH32", + "gas": 2048489, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3062, + "op": "SUB", + "gas": 2048486, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 3063, + "op": "DUP3", + "gas": 2048483, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc16" + ] + }, + { + "pc": 3064, + "op": "GT", + "gas": 2048480, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc16", + "0x0" + ] + }, + { + "pc": 3065, + "op": "ISZERO", + "gas": 2048477, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3066, + "op": "PUSH3", + "gas": 2048474, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 3070, + "op": "JUMPI", + "gas": 2048471, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x1", + "0xc09" + ] + }, + { + "pc": 3081, + "op": "JUMPDEST", + "gas": 2048461, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3082, + "op": "DUP3", + "gas": 2048460, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3083, + "op": "DUP3", + "gas": 2048457, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3084, + "op": "ADD", + "gas": 2048454, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3085, + "op": "SWAP1", + "gas": 2048451, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3086, + "op": "POP", + "gas": 2048448, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3087, + "op": "SWAP3", + "gas": 2048446, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3088, + "op": "SWAP2", + "gas": 2048443, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x3e9", + "0x0", + "0x2e6" + ] + }, + { + "pc": 3089, + "op": "POP", + "gas": 2048440, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x2e6", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3090, + "op": "POP", + "gas": 2048438, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x2e6", + "0x0" + ] + }, + { + "pc": 3091, + "op": "JUMP", + "gas": 2048436, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x2e6" + ] + }, + { + "pc": 742, + "op": "JUMPDEST", + "gas": 2048428, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9" + ] + }, + { + "pc": 743, + "op": "SWAP3", + "gas": 2048427, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9" + ] + }, + { + "pc": 744, + "op": "POP", + "gas": 2048424, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9" + ] + }, + { + "pc": 745, + "op": "POP", + "gas": 2048422, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0" + ] + }, + { + "pc": 746, + "op": "DUP2", + "gas": 2048420, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3" + ] + }, + { + "pc": 747, + "op": "SWAP1", + "gas": 2048417, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x3e9" + ] + }, + { + "pc": 748, + "op": "SSTORE", + "gas": 2048414, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9", + "0x3e9", + "0x3" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8", + "0000000000000000000000000000000000000000000000000000000000000003": "00000000000000000000000000000000000000000000000000000000000003e9" + } + }, + { + "pc": 749, + "op": "POP", + "gas": 2028414, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 750, + "op": "PUSH1", + "gas": 2028412, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0" + ] + }, + { + "pc": 752, + "op": "SWAP1", + "gas": 2028409, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x0", + "0x2" + ] + }, + { + "pc": 753, + "op": "POP", + "gas": 2028406, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x2", + "0x0" + ] + }, + { + "pc": 754, + "op": "SWAP2", + "gas": 2028404, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x888", + "0x3e9", + "0x2" + ] + }, + { + "pc": 755, + "op": "SWAP1", + "gas": 2028401, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x2", + "0x3e9", + "0x888" + ] + }, + { + "pc": 756, + "op": "POP", + "gas": 2028398, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x2", + "0x888", + "0x3e9" + ] + }, + { + "pc": 757, + "op": "JUMP", + "gas": 2028396, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x2", + "0x888" + ] + }, + { + "pc": 2184, + "op": "JUMPDEST", + "gas": 2028388, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x2" + ] + }, + { + "pc": 2185, + "op": "POP", + "gas": 2028387, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x2" + ] + }, + { + "pc": 2186, + "op": "PUSH3", + "gas": 2028385, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2190, + "op": "PUSH3", + "gas": 2028382, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893" + ] + }, + { + "pc": 2194, + "op": "JUMP", + "gas": 2028379, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x231" + ] + }, + { + "pc": 561, + "op": "JUMPDEST", + "gas": 2028371, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893" + ] + }, + { + "pc": 562, + "op": "PUSH1", + "gas": 2028370, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893" + ] + }, + { + "pc": 564, + "op": "DUP1", + "gas": 2028367, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0" + ] + }, + { + "pc": 565, + "op": "PUSH1", + "gas": 2028364, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0" + ] + }, + { + "pc": 567, + "op": "MLOAD", + "gas": 2028361, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x40" + ] + }, + { + "pc": 568, + "op": "DUP1", + "gas": 2028358, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 569, + "op": "PUSH1", + "gas": 2028355, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 571, + "op": "ADD", + "gas": 2028352, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0x80", + "0x40" + ] + }, + { + "pc": 572, + "op": "PUSH1", + "gas": 2028349, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0xc0" + ] + }, + { + "pc": 574, + "op": "MSTORE", + "gas": 2028346, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 575, + "op": "DUP1", + "gas": 2028343, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 576, + "op": "PUSH1", + "gas": 2028340, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 578, + "op": "DUP2", + "gas": 2028337, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0x80", + "0xd" + ] + }, + { + "pc": 579, + "op": "MSTORE", + "gas": 2028334, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0x80", + "0xd", + "0x80" + ] + }, + { + "pc": 580, + "op": "PUSH1", + "gas": 2028331, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 582, + "op": "ADD", + "gas": 2028328, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0x80", + "0x20" + ] + }, + { + "pc": 583, + "op": "PUSH32", + "gas": 2028325, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0xa0" + ] + }, + { + "pc": 616, + "op": "DUP2", + "gas": 2028322, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0xa0", + "0x48656c6c6f2c20776f726c642100000000000000000000000000000000000000" + ] + }, + { + "pc": 617, + "op": "MSTORE", + "gas": 2028319, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0xa0", + "0x48656c6c6f2c20776f726c642100000000000000000000000000000000000000", + "0xa0" + ] + }, + { + "pc": 618, + "op": "POP", + "gas": 2028316, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80", + "0xa0" + ] + }, + { + "pc": 619, + "op": "SWAP1", + "gas": 2028314, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 620, + "op": "POP", + "gas": 2028311, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0" + ] + }, + { + "pc": 621, + "op": "PUSH1", + "gas": 2028309, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80" + ] + }, + { + "pc": 623, + "op": "DUP2", + "gas": 2028306, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0" + ] + }, + { + "pc": 624, + "op": "DUP1", + "gas": 2028303, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0", + "0x80" + ] + }, + { + "pc": 625, + "op": "MLOAD", + "gas": 2028300, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 626, + "op": "SWAP1", + "gas": 2028297, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0", + "0x80", + "0xd" + ] + }, + { + "pc": 627, + "op": "PUSH1", + "gas": 2028294, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0", + "0xd", + "0x80" + ] + }, + { + "pc": 629, + "op": "ADD", + "gas": 2028291, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0", + "0xd", + "0x80", + "0x20" + ] + }, + { + "pc": 630, + "op": "KECCAK256", + "gas": 2028288, + "gasCost": 36, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0", + "0xd", + "0xa0" + ] + }, + { + "pc": 631, + "op": "SWAP1", + "gas": 2028252, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 632, + "op": "POP", + "gas": 2028249, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x0" + ] + }, + { + "pc": 633, + "op": "DUP1", + "gas": 2028247, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 634, + "op": "SWAP3", + "gas": 2028244, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 635, + "op": "POP", + "gas": 2028241, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x0" + ] + }, + { + "pc": 636, + "op": "POP", + "gas": 2028239, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 637, + "op": "POP", + "gas": 2028237, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80" + ] + }, + { + "pc": 638, + "op": "SWAP1", + "gas": 2028235, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x893", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 639, + "op": "JUMP", + "gas": 2028232, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x893" + ] + }, + { + "pc": 2195, + "op": "JUMPDEST", + "gas": 2028224, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 2196, + "op": "POP", + "gas": 2028223, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 2197, + "op": "PUSH1", + "gas": 2028221, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2199, + "op": "DUP1", + "gas": 2028218, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 2200, + "op": "SLOAD", + "gas": 2028215, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0x0" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8", + "0000000000000000000000000000000000000000000000000000000000000003": "00000000000000000000000000000000000000000000000000000000000003e9" + } + }, + { + "pc": 2201, + "op": "SWAP1", + "gas": 2026115, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2202, + "op": "PUSH2", + "gas": 2026112, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2205, + "op": "EXP", + "gas": 2026109, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0x0", + "0x100" + ] + }, + { + "pc": 2206, + "op": "SWAP1", + "gas": 2026099, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 2207, + "op": "DIV", + "gas": 2026096, + "gasCost": 5, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 2208, + "op": "PUSH20", + "gas": 2026091, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 2229, + "op": "AND", + "gas": 2026088, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 2230, + "op": "PUSH20", + "gas": 2026085, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 2251, + "op": "AND", + "gas": 2026082, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 2252, + "op": "PUSH4", + "gas": 2026079, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 2257, + "op": "DUP4", + "gas": 2026076, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68" + ] + }, + { + "pc": 2258, + "op": "PUSH1", + "gas": 2026073, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8" + ] + }, + { + "pc": 2260, + "op": "MLOAD", + "gas": 2026070, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0x40" + ] + }, + { + "pc": 2261, + "op": "DUP3", + "gas": 2026067, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0" + ] + }, + { + "pc": 2262, + "op": "PUSH4", + "gas": 2026064, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d68" + ] + }, + { + "pc": 2267, + "op": "AND", + "gas": 2026061, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d68", + "0xffffffff" + ] + }, + { + "pc": 2268, + "op": "PUSH1", + "gas": 2026058, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d68" + ] + }, + { + "pc": 2270, + "op": "SHL", + "gas": 2026055, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d68", + "0xe0" + ] + }, + { + "pc": 2271, + "op": "DUP2", + "gas": 2026052, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d6800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 2272, + "op": "MSTORE", + "gas": 2026049, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d6800000000000000000000000000000000000000000000000000000000", + "0xc0" + ] + }, + { + "pc": 2273, + "op": "PUSH1", + "gas": 2026046, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0" + ] + }, + { + "pc": 2275, + "op": "ADD", + "gas": 2026043, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc0", + "0x4" + ] + }, + { + "pc": 2276, + "op": "PUSH3", + "gas": 2026040, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 2280, + "op": "SWAP2", + "gas": 2026037, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x3e8", + "0xc4", + "0x8ef" + ] + }, + { + "pc": 2281, + "op": "SWAP1", + "gas": 2026034, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2282, + "op": "PUSH3", + "gas": 2026031, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 2286, + "op": "JUMP", + "gas": 2026028, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0x997" + ] + }, + { + "pc": 2455, + "op": "JUMPDEST", + "gas": 2026020, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 2456, + "op": "PUSH1", + "gas": 2026019, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 2458, + "op": "PUSH1", + "gas": 2026016, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0x0" + ] + }, + { + "pc": 2460, + "op": "DUP3", + "gas": 2026013, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0x0", + "0x20" + ] + }, + { + "pc": 2461, + "op": "ADD", + "gas": 2026010, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0x0", + "0x20", + "0xc4" + ] + }, + { + "pc": 2462, + "op": "SWAP1", + "gas": 2026007, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0x0", + "0xe4" + ] + }, + { + "pc": 2463, + "op": "POP", + "gas": 2026004, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x0" + ] + }, + { + "pc": 2464, + "op": "PUSH3", + "gas": 2026002, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4" + ] + }, + { + "pc": 2468, + "op": "PUSH1", + "gas": 2025999, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae" + ] + }, + { + "pc": 2470, + "op": "DUP4", + "gas": 2025996, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0x0" + ] + }, + { + "pc": 2471, + "op": "ADD", + "gas": 2025993, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0x0", + "0xc4" + ] + }, + { + "pc": 2472, + "op": "DUP5", + "gas": 2025990, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4" + ] + }, + { + "pc": 2473, + "op": "PUSH3", + "gas": 2025987, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2477, + "op": "JUMP", + "gas": 2025984, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x986" + ] + }, + { + "pc": 2438, + "op": "JUMPDEST", + "gas": 2025976, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2439, + "op": "PUSH3", + "gas": 2025975, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2443, + "op": "DUP2", + "gas": 2025972, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2444, + "op": "PUSH3", + "gas": 2025969, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2448, + "op": "JUMP", + "gas": 2025966, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2025958, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2025957, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2025954, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2025951, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2025948, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2025946, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2025943, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2025940, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2025938, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2449, + "op": "JUMPDEST", + "gas": 2025930, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2450, + "op": "DUP3", + "gas": 2025929, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2451, + "op": "MSTORE", + "gas": 2025926, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 2452, + "op": "POP", + "gas": 2025923, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2453, + "op": "POP", + "gas": 2025921, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4" + ] + }, + { + "pc": 2454, + "op": "JUMP", + "gas": 2025919, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae" + ] + }, + { + "pc": 2478, + "op": "JUMPDEST", + "gas": 2025911, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4" + ] + }, + { + "pc": 2479, + "op": "SWAP3", + "gas": 2025910, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0x8ef", + "0x3e8", + "0xc4", + "0xe4" + ] + }, + { + "pc": 2480, + "op": "SWAP2", + "gas": 2025907, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x3e8", + "0xc4", + "0x8ef" + ] + }, + { + "pc": 2481, + "op": "POP", + "gas": 2025904, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x8ef", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2482, + "op": "POP", + "gas": 2025902, + "gasCost": 2, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x8ef", + "0xc4" + ] + }, + { + "pc": 2483, + "op": "JUMP", + "gas": 2025900, + "gasCost": 8, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x8ef" + ] + }, + { + "pc": 2287, + "op": "JUMPDEST", + "gas": 2025892, + "gasCost": 1, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4" + ] + }, + { + "pc": 2288, + "op": "PUSH1", + "gas": 2025891, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4" + ] + }, + { + "pc": 2290, + "op": "PUSH1", + "gas": 2025888, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20" + ] + }, + { + "pc": 2292, + "op": "MLOAD", + "gas": 2025885, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0x40" + ] + }, + { + "pc": 2293, + "op": "DUP1", + "gas": 2025882, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0" + ] + }, + { + "pc": 2294, + "op": "DUP4", + "gas": 2025879, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0xc0" + ] + }, + { + "pc": 2295, + "op": "SUB", + "gas": 2025876, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0xc0", + "0xe4" + ] + }, + { + "pc": 2296, + "op": "DUP2", + "gas": 2025873, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24" + ] + }, + { + "pc": 2297, + "op": "PUSH1", + "gas": 2025870, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0" + ] + }, + { + "pc": 2299, + "op": "DUP8", + "gas": 2025867, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0" + ] + }, + { + "pc": 2300, + "op": "DUP1", + "gas": 2025864, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0" + ] + }, + { + "pc": 2301, + "op": "EXTCODESIZE", + "gas": 2025861, + "gasCost": 100, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2302, + "op": "ISZERO", + "gas": 2025761, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2303, + "op": "DUP1", + "gas": 2025758, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 2304, + "op": "ISZERO", + "gas": 2025755, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 2305, + "op": "PUSH3", + "gas": 2025752, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 2309, + "op": "JUMPI", + "gas": 2025749, + "gasCost": 10, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x1", + "0x0", + "0x90a" + ] + }, + { + "pc": 2310, + "op": "PUSH1", + "gas": 2025739, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 2312, + "op": "DUP1", + "gas": 2025736, + "gasCost": 3, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 2313, + "op": "REVERT", + "gas": 2025733, + "gasCost": 0, + "depth": 1, + "stack": [ + "0xa0712d68", + "0x1cd", + "0x3e8", + "0x0", + "0x0", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x0", + "0x1", + "0x0", + "0x0" + ] + } + ] +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.prestateDiffTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.prestateDiffTracer.json new file mode 100644 index 000000000..a17694aac --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.prestateDiffTracer.json @@ -0,0 +1,20 @@ +{ + "post": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b648c9" + }, + "OWNER.address": { + "balance": "0x361049155a32982d79", + "nonce": 81 + } + }, + "pre": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b526ae" + }, + "OWNER.address": { + "balance": "0x361049155acb1a0715", + "nonce": 80 + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.prestateTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.prestateTracer.json new file mode 100644 index 000000000..111da9391 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint.prestateTracer.json @@ -0,0 +1,19 @@ +{ + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b526ae" + }, + "OWNER.address": { + "balance": "0x361049155acb1a0715", + "nonce": 80 + }, + "Tracer.address": { + "balance": "0x0", + "code": "0x60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "nonce": 1, + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.4byteTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.4byteTracer.json new file mode 100644 index 000000000..7e9aa7cc4 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.4byteTracer.json @@ -0,0 +1,4 @@ +{ + "0x3aa18088-32": 1, + "0xa0712d68-32": 1 +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.callTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.callTracer.json new file mode 100644 index 000000000..308ac8c7c --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.callTracer.json @@ -0,0 +1,32 @@ +{ + "from": "OWNER.address", + "gas": "0x200b20", + "gasUsed": "0x81bca", + "to": "Tracer.address", + "input": "0x3aa1808800000000000000000000000000000000000000000000000000000000000003e8", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "calls": [ + { + "from": "Tracer.address", + "gas": "0x1eafbf", + "gasUsed": "0x60d0a", + "to": "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "input": "0x60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033", + "output": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033", + "value": "0x0", + "type": "CREATE" + }, + { + "from": "Tracer.address", + "gas": "0x17ac60", + "gasUsed": "0x1b31", + "to": "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "input": "0xa0712d6800000000000000000000000000000000000000000000000000000000000003e8", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.defaultTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.defaultTracer.json new file mode 100644 index 000000000..7b0e6791c --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.defaultTracer.json @@ -0,0 +1,43952 @@ +{ + "gas": 531402, + "failed": false, + "returnValue": "0000000000000000000000000000000000000000000000000000000000000001", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 2078784, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 2078781, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 2078778, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "CALLVALUE", + "gas": 2078766, + "gasCost": 2, + "depth": 1, + "stack": [] + }, + { + "pc": 6, + "op": "DUP1", + "gas": 2078764, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 7, + "op": "ISZERO", + "gas": 2078761, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 8, + "op": "PUSH3", + "gas": 2078758, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 2078755, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x1", + "0x11" + ] + }, + { + "pc": 17, + "op": "JUMPDEST", + "gas": 2078745, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 18, + "op": "POP", + "gas": 2078744, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 19, + "op": "PUSH1", + "gas": 2078742, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 21, + "op": "CALLDATASIZE", + "gas": 2078739, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 22, + "op": "LT", + "gas": 2078737, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x24" + ] + }, + { + "pc": 23, + "op": "PUSH3", + "gas": 2078734, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 27, + "op": "JUMPI", + "gas": 2078731, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0xac" + ] + }, + { + "pc": 28, + "op": "PUSH1", + "gas": 2078721, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 30, + "op": "CALLDATALOAD", + "gas": 2078718, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 31, + "op": "PUSH1", + "gas": 2078715, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa1808800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 33, + "op": "SHR", + "gas": 2078712, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa1808800000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 34, + "op": "DUP1", + "gas": 2078709, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088" + ] + }, + { + "pc": 35, + "op": "PUSH4", + "gas": 2078706, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088" + ] + }, + { + "pc": 40, + "op": "GT", + "gas": 2078703, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088", + "0x8bfe44ff" + ] + }, + { + "pc": 41, + "op": "PUSH3", + "gas": 2078700, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1" + ] + }, + { + "pc": 45, + "op": "JUMPI", + "gas": 2078697, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1", + "0x6f" + ] + }, + { + "pc": 111, + "op": "JUMPDEST", + "gas": 2078687, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088" + ] + }, + { + "pc": 112, + "op": "DUP1", + "gas": 2078686, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088" + ] + }, + { + "pc": 113, + "op": "PUSH4", + "gas": 2078683, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088" + ] + }, + { + "pc": 118, + "op": "EQ", + "gas": 2078680, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088", + "0x12065fe0" + ] + }, + { + "pc": 119, + "op": "PUSH3", + "gas": 2078677, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x0" + ] + }, + { + "pc": 123, + "op": "JUMPI", + "gas": 2078674, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x0", + "0xb1" + ] + }, + { + "pc": 124, + "op": "DUP1", + "gas": 2078664, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088" + ] + }, + { + "pc": 125, + "op": "PUSH4", + "gas": 2078661, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088" + ] + }, + { + "pc": 130, + "op": "EQ", + "gas": 2078658, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088", + "0x1c717069" + ] + }, + { + "pc": 131, + "op": "PUSH3", + "gas": 2078655, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x0" + ] + }, + { + "pc": 135, + "op": "JUMPI", + "gas": 2078652, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x0", + "0xd3" + ] + }, + { + "pc": 136, + "op": "DUP1", + "gas": 2078642, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088" + ] + }, + { + "pc": 137, + "op": "PUSH4", + "gas": 2078639, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088" + ] + }, + { + "pc": 142, + "op": "EQ", + "gas": 2078636, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088", + "0x1c93908c" + ] + }, + { + "pc": 143, + "op": "PUSH3", + "gas": 2078633, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x0" + ] + }, + { + "pc": 147, + "op": "JUMPI", + "gas": 2078630, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x0", + "0xf5" + ] + }, + { + "pc": 148, + "op": "DUP1", + "gas": 2078620, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088" + ] + }, + { + "pc": 149, + "op": "PUSH4", + "gas": 2078617, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088" + ] + }, + { + "pc": 154, + "op": "EQ", + "gas": 2078614, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x3aa18088", + "0x3aa18088" + ] + }, + { + "pc": 155, + "op": "PUSH3", + "gas": 2078611, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1" + ] + }, + { + "pc": 159, + "op": "JUMPI", + "gas": 2078608, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1", + "0x12b" + ] + }, + { + "pc": 299, + "op": "JUMPDEST", + "gas": 2078598, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088" + ] + }, + { + "pc": 300, + "op": "PUSH3", + "gas": 2078597, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088" + ] + }, + { + "pc": 304, + "op": "PUSH1", + "gas": 2078594, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149" + ] + }, + { + "pc": 306, + "op": "DUP1", + "gas": 2078591, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x4" + ] + }, + { + "pc": 307, + "op": "CALLDATASIZE", + "gas": 2078588, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x4", + "0x4" + ] + }, + { + "pc": 308, + "op": "SUB", + "gas": 2078586, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x4", + "0x4", + "0x24" + ] + }, + { + "pc": 309, + "op": "DUP2", + "gas": 2078583, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x4", + "0x20" + ] + }, + { + "pc": 310, + "op": "ADD", + "gas": 2078580, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x4", + "0x20", + "0x4" + ] + }, + { + "pc": 311, + "op": "SWAP1", + "gas": 2078577, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x4", + "0x24" + ] + }, + { + "pc": 312, + "op": "PUSH3", + "gas": 2078574, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x24", + "0x4" + ] + }, + { + "pc": 316, + "op": "SWAP2", + "gas": 2078571, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x24", + "0x4", + "0x143" + ] + }, + { + "pc": 317, + "op": "SWAP1", + "gas": 2078568, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x4", + "0x24" + ] + }, + { + "pc": 318, + "op": "PUSH3", + "gas": 2078565, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4" + ] + }, + { + "pc": 322, + "op": "JUMP", + "gas": 2078562, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0xa2c" + ] + }, + { + "pc": 2604, + "op": "JUMPDEST", + "gas": 2078554, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4" + ] + }, + { + "pc": 2605, + "op": "PUSH1", + "gas": 2078553, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4" + ] + }, + { + "pc": 2607, + "op": "PUSH1", + "gas": 2078550, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2609, + "op": "DUP3", + "gas": 2078547, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x20" + ] + }, + { + "pc": 2610, + "op": "DUP5", + "gas": 2078544, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x20", + "0x4" + ] + }, + { + "pc": 2611, + "op": "SUB", + "gas": 2078541, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x20", + "0x4", + "0x24" + ] + }, + { + "pc": 2612, + "op": "SLT", + "gas": 2078538, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x20", + "0x20" + ] + }, + { + "pc": 2613, + "op": "ISZERO", + "gas": 2078535, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 2614, + "op": "PUSH3", + "gas": 2078532, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x1" + ] + }, + { + "pc": 2618, + "op": "JUMPI", + "gas": 2078529, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x1", + "0xa45" + ] + }, + { + "pc": 2629, + "op": "JUMPDEST", + "gas": 2078519, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2630, + "op": "PUSH1", + "gas": 2078518, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2632, + "op": "PUSH3", + "gas": 2078515, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 2636, + "op": "DUP5", + "gas": 2078512, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55" + ] + }, + { + "pc": 2637, + "op": "DUP3", + "gas": 2078509, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24" + ] + }, + { + "pc": 2638, + "op": "DUP6", + "gas": 2078506, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x0" + ] + }, + { + "pc": 2639, + "op": "ADD", + "gas": 2078503, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x0", + "0x4" + ] + }, + { + "pc": 2640, + "op": "PUSH3", + "gas": 2078500, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2644, + "op": "JUMP", + "gas": 2078497, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0xa15" + ] + }, + { + "pc": 2581, + "op": "JUMPDEST", + "gas": 2078489, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2582, + "op": "PUSH1", + "gas": 2078488, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2584, + "op": "DUP2", + "gas": 2078485, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2585, + "op": "CALLDATALOAD", + "gas": 2078482, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0", + "0x4" + ] + }, + { + "pc": 2586, + "op": "SWAP1", + "gas": 2078479, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2587, + "op": "POP", + "gas": 2078476, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2588, + "op": "PUSH3", + "gas": 2078474, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2592, + "op": "DUP2", + "gas": 2078471, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26" + ] + }, + { + "pc": 2593, + "op": "PUSH3", + "gas": 2078468, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2597, + "op": "JUMP", + "gas": 2078465, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x9fb" + ] + }, + { + "pc": 2555, + "op": "JUMPDEST", + "gas": 2078457, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2556, + "op": "PUSH3", + "gas": 2078456, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2560, + "op": "DUP2", + "gas": 2078453, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2561, + "op": "PUSH3", + "gas": 2078450, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2565, + "op": "JUMP", + "gas": 2078447, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2078439, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2078438, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2078435, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2078432, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2078429, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2078427, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2078424, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2078421, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2078419, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2566, + "op": "JUMPDEST", + "gas": 2078411, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2567, + "op": "DUP2", + "gas": 2078410, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2568, + "op": "EQ", + "gas": 2078407, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2569, + "op": "PUSH3", + "gas": 2078404, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x1" + ] + }, + { + "pc": 2573, + "op": "JUMPI", + "gas": 2078401, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x1", + "0xa12" + ] + }, + { + "pc": 2578, + "op": "JUMPDEST", + "gas": 2078391, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2579, + "op": "POP", + "gas": 2078390, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2580, + "op": "JUMP", + "gas": 2078388, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26" + ] + }, + { + "pc": 2598, + "op": "JUMPDEST", + "gas": 2078380, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2599, + "op": "SWAP3", + "gas": 2078379, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2600, + "op": "SWAP2", + "gas": 2078376, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0x24", + "0x4", + "0xa55" + ] + }, + { + "pc": 2601, + "op": "POP", + "gas": 2078373, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55", + "0x4", + "0x24" + ] + }, + { + "pc": 2602, + "op": "POP", + "gas": 2078371, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55", + "0x4" + ] + }, + { + "pc": 2603, + "op": "JUMP", + "gas": 2078369, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55" + ] + }, + { + "pc": 2645, + "op": "JUMPDEST", + "gas": 2078361, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2646, + "op": "SWAP2", + "gas": 2078360, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2647, + "op": "POP", + "gas": 2078357, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 2648, + "op": "POP", + "gas": 2078355, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2649, + "op": "SWAP3", + "gas": 2078353, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x143", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2650, + "op": "SWAP2", + "gas": 2078350, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x24", + "0x4", + "0x143" + ] + }, + { + "pc": 2651, + "op": "POP", + "gas": 2078347, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x143", + "0x4", + "0x24" + ] + }, + { + "pc": 2652, + "op": "POP", + "gas": 2078345, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x143", + "0x4" + ] + }, + { + "pc": 2653, + "op": "JUMP", + "gas": 2078343, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x143" + ] + }, + { + "pc": 323, + "op": "JUMPDEST", + "gas": 2078335, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8" + ] + }, + { + "pc": 324, + "op": "PUSH3", + "gas": 2078334, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8" + ] + }, + { + "pc": 328, + "op": "JUMP", + "gas": 2078331, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x2f6" + ] + }, + { + "pc": 758, + "op": "JUMPDEST", + "gas": 2078323, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8" + ] + }, + { + "pc": 759, + "op": "PUSH1", + "gas": 2078322, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8" + ] + }, + { + "pc": 761, + "op": "CALLER", + "gas": 2078319, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0" + ] + }, + { + "pc": 762, + "op": "PUSH20", + "gas": 2078317, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address" + ] + }, + { + "pc": 783, + "op": "AND", + "gas": 2078314, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 784, + "op": "PUSH32", + "gas": 2078311, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address" + ] + }, + { + "pc": 817, + "op": "DUP4", + "gas": 2078308, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0" + ] + }, + { + "pc": 818, + "op": "PUSH1", + "gas": 2078305, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8" + ] + }, + { + "pc": 820, + "op": "MLOAD", + "gas": 2078302, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x40" + ] + }, + { + "pc": 821, + "op": "PUSH3", + "gas": 2078299, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x80" + ] + }, + { + "pc": 825, + "op": "SWAP2", + "gas": 2078296, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x80", + "0x340" + ] + }, + { + "pc": 826, + "op": "SWAP1", + "gas": 2078293, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x80", + "0x3e8" + ] + }, + { + "pc": 827, + "op": "PUSH3", + "gas": 2078290, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80" + ] + }, + { + "pc": 831, + "op": "JUMP", + "gas": 2078287, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc64" + ] + }, + { + "pc": 3172, + "op": "JUMPDEST", + "gas": 2078279, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80" + ] + }, + { + "pc": 3173, + "op": "PUSH1", + "gas": 2078278, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80" + ] + }, + { + "pc": 3175, + "op": "PUSH1", + "gas": 2078275, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0x0" + ] + }, + { + "pc": 3177, + "op": "DUP3", + "gas": 2078272, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0x0", + "0x40" + ] + }, + { + "pc": 3178, + "op": "ADD", + "gas": 2078269, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0x0", + "0x40", + "0x80" + ] + }, + { + "pc": 3179, + "op": "SWAP1", + "gas": 2078266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0x0", + "0xc0" + ] + }, + { + "pc": 3180, + "op": "POP", + "gas": 2078263, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x0" + ] + }, + { + "pc": 3181, + "op": "PUSH3", + "gas": 2078261, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 3185, + "op": "PUSH1", + "gas": 2078258, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b" + ] + }, + { + "pc": 3187, + "op": "DUP4", + "gas": 2078255, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x0" + ] + }, + { + "pc": 3188, + "op": "ADD", + "gas": 2078252, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x0", + "0x80" + ] + }, + { + "pc": 3189, + "op": "DUP5", + "gas": 2078249, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80" + ] + }, + { + "pc": 3190, + "op": "PUSH3", + "gas": 2078246, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8" + ] + }, + { + "pc": 3194, + "op": "JUMP", + "gas": 2078243, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x986" + ] + }, + { + "pc": 2438, + "op": "JUMPDEST", + "gas": 2078235, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2439, + "op": "PUSH3", + "gas": 2078234, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2443, + "op": "DUP2", + "gas": 2078231, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2444, + "op": "PUSH3", + "gas": 2078228, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2448, + "op": "JUMP", + "gas": 2078225, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2078217, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2078216, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2078213, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2078210, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2078207, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2078205, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2078202, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2078199, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2078197, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2449, + "op": "JUMPDEST", + "gas": 2078189, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2450, + "op": "DUP3", + "gas": 2078188, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2451, + "op": "MSTORE", + "gas": 2078185, + "gasCost": 9, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8", + "0x3e8", + "0x80" + ] + }, + { + "pc": 2452, + "op": "POP", + "gas": 2078176, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80", + "0x3e8" + ] + }, + { + "pc": 2453, + "op": "POP", + "gas": 2078174, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b", + "0x80" + ] + }, + { + "pc": 2454, + "op": "JUMP", + "gas": 2078172, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc7b" + ] + }, + { + "pc": 3195, + "op": "JUMPDEST", + "gas": 2078164, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 3196, + "op": "DUP2", + "gas": 2078163, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 3197, + "op": "DUP2", + "gas": 2078160, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x80" + ] + }, + { + "pc": 3198, + "op": "SUB", + "gas": 2078157, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x80", + "0xc0" + ] + }, + { + "pc": 3199, + "op": "PUSH1", + "gas": 2078154, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 3201, + "op": "DUP4", + "gas": 2078151, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0x20" + ] + }, + { + "pc": 3202, + "op": "ADD", + "gas": 2078148, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0x20", + "0x80" + ] + }, + { + "pc": 3203, + "op": "MSTORE", + "gas": 2078145, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0xa0" + ] + }, + { + "pc": 3204, + "op": "PUSH3", + "gas": 2078139, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 3208, + "op": "DUP2", + "gas": 2078136, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e" + ] + }, + { + "pc": 3209, + "op": "PUSH3", + "gas": 2078133, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0" + ] + }, + { + "pc": 3213, + "op": "JUMP", + "gas": 2078130, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0xc3d" + ] + }, + { + "pc": 3133, + "op": "JUMPDEST", + "gas": 2078122, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0" + ] + }, + { + "pc": 3134, + "op": "PUSH1", + "gas": 2078121, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0" + ] + }, + { + "pc": 3136, + "op": "PUSH3", + "gas": 2078118, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0" + ] + }, + { + "pc": 3140, + "op": "PUSH1", + "gas": 2078115, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c" + ] + }, + { + "pc": 3142, + "op": "DUP4", + "gas": 2078112, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5" + ] + }, + { + "pc": 3143, + "op": "PUSH3", + "gas": 2078109, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0" + ] + }, + { + "pc": 3147, + "op": "JUMP", + "gas": 2078106, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0xaf5" + ] + }, + { + "pc": 2805, + "op": "JUMPDEST", + "gas": 2078098, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0" + ] + }, + { + "pc": 2806, + "op": "PUSH1", + "gas": 2078097, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0" + ] + }, + { + "pc": 2808, + "op": "DUP3", + "gas": 2078094, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0" + ] + }, + { + "pc": 2809, + "op": "DUP3", + "gas": 2078091, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0x5" + ] + }, + { + "pc": 2810, + "op": "MSTORE", + "gas": 2078088, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0x5", + "0xc0" + ] + }, + { + "pc": 2811, + "op": "PUSH1", + "gas": 2078082, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0" + ] + }, + { + "pc": 2813, + "op": "DUP3", + "gas": 2078079, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 2814, + "op": "ADD", + "gas": 2078076, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 2815, + "op": "SWAP1", + "gas": 2078073, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 2816, + "op": "POP", + "gas": 2078070, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 2817, + "op": "SWAP3", + "gas": 2078068, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xc4c", + "0x5", + "0xc0", + "0xe0" + ] + }, + { + "pc": 2818, + "op": "SWAP2", + "gas": 2078065, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0", + "0x5", + "0xc0", + "0xc4c" + ] + }, + { + "pc": 2819, + "op": "POP", + "gas": 2078062, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0", + "0xc4c", + "0xc0", + "0x5" + ] + }, + { + "pc": 2820, + "op": "POP", + "gas": 2078060, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0", + "0xc4c", + "0xc0" + ] + }, + { + "pc": 2821, + "op": "JUMP", + "gas": 2078058, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0", + "0xc4c" + ] + }, + { + "pc": 3148, + "op": "JUMPDEST", + "gas": 2078050, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 3149, + "op": "SWAP2", + "gas": 2078049, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 3150, + "op": "POP", + "gas": 2078046, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 3151, + "op": "PUSH3", + "gas": 2078044, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0" + ] + }, + { + "pc": 3155, + "op": "DUP3", + "gas": 2078041, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59" + ] + }, + { + "pc": 3156, + "op": "PUSH3", + "gas": 2078038, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0" + ] + }, + { + "pc": 3160, + "op": "JUMP", + "gas": 2078035, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0xc14" + ] + }, + { + "pc": 3092, + "op": "JUMPDEST", + "gas": 2078027, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0" + ] + }, + { + "pc": 3093, + "op": "PUSH32", + "gas": 2078026, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0" + ] + }, + { + "pc": 3126, + "op": "PUSH1", + "gas": 2078023, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3128, + "op": "DUP3", + "gas": 2078020, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 3129, + "op": "ADD", + "gas": 2078017, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0x0", + "0xe0" + ] + }, + { + "pc": 3130, + "op": "MSTORE", + "gas": 2078014, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 3131, + "op": "POP", + "gas": 2078008, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59", + "0xe0" + ] + }, + { + "pc": 3132, + "op": "JUMP", + "gas": 2078006, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0xc59" + ] + }, + { + "pc": 3161, + "op": "JUMPDEST", + "gas": 2077998, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0" + ] + }, + { + "pc": 3162, + "op": "PUSH1", + "gas": 2077997, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0" + ] + }, + { + "pc": 3164, + "op": "DUP3", + "gas": 2077994, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 3165, + "op": "ADD", + "gas": 2077991, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 3166, + "op": "SWAP1", + "gas": 2077988, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 3167, + "op": "POP", + "gas": 2077985, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 3168, + "op": "SWAP2", + "gas": 2077983, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0xc8e", + "0xe0", + "0x100" + ] + }, + { + "pc": 3169, + "op": "SWAP1", + "gas": 2077980, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0xe0", + "0xc8e" + ] + }, + { + "pc": 3170, + "op": "POP", + "gas": 2077977, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0xc8e", + "0xe0" + ] + }, + { + "pc": 3171, + "op": "JUMP", + "gas": 2077975, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0xc8e" + ] + }, + { + "pc": 3214, + "op": "JUMPDEST", + "gas": 2077967, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 3215, + "op": "SWAP1", + "gas": 2077966, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 3216, + "op": "POP", + "gas": 2077963, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0x100", + "0xc0" + ] + }, + { + "pc": 3217, + "op": "SWAP3", + "gas": 2077961, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x340", + "0x3e8", + "0x80", + "0x100" + ] + }, + { + "pc": 3218, + "op": "SWAP2", + "gas": 2077958, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x3e8", + "0x80", + "0x340" + ] + }, + { + "pc": 3219, + "op": "POP", + "gas": 2077955, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x340", + "0x80", + "0x3e8" + ] + }, + { + "pc": 3220, + "op": "POP", + "gas": 2077953, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x340", + "0x80" + ] + }, + { + "pc": 3221, + "op": "JUMP", + "gas": 2077951, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x340" + ] + }, + { + "pc": 832, + "op": "JUMPDEST", + "gas": 2077943, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 833, + "op": "PUSH1", + "gas": 2077942, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 835, + "op": "MLOAD", + "gas": 2077939, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x40" + ] + }, + { + "pc": 836, + "op": "DUP1", + "gas": 2077936, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80" + ] + }, + { + "pc": 837, + "op": "SWAP2", + "gas": 2077933, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80", + "0x80" + ] + }, + { + "pc": 838, + "op": "SUB", + "gas": 2077930, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80", + "0x100" + ] + }, + { + "pc": 839, + "op": "SWAP1", + "gas": 2077927, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 840, + "op": "LOG2", + "gas": 2077924, + "gasCost": 2149, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 841, + "op": "PUSH1", + "gas": 2075775, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0" + ] + }, + { + "pc": 843, + "op": "MLOAD", + "gas": 2075772, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x40" + ] + }, + { + "pc": 844, + "op": "PUSH3", + "gas": 2075769, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x80" + ] + }, + { + "pc": 848, + "op": "SWAP1", + "gas": 2075766, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x80", + "0x356" + ] + }, + { + "pc": 849, + "op": "PUSH3", + "gas": 2075763, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80" + ] + }, + { + "pc": 853, + "op": "JUMP", + "gas": 2075760, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80", + "0x96e" + ] + }, + { + "pc": 2414, + "op": "JUMPDEST", + "gas": 2075752, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80" + ] + }, + { + "pc": 2415, + "op": "PUSH2", + "gas": 2075751, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80" + ] + }, + { + "pc": 2418, + "op": "DUP1", + "gas": 2075748, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80", + "0xae3" + ] + }, + { + "pc": 2419, + "op": "PUSH3", + "gas": 2075745, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80", + "0xae3", + "0xae3" + ] + }, + { + "pc": 2423, + "op": "DUP4", + "gas": 2075742, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80", + "0xae3", + "0xae3", + "0x10c6" + ] + }, + { + "pc": 2424, + "op": "CODECOPY", + "gas": 2075739, + "gasCost": 535, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80", + "0xae3", + "0xae3", + "0x10c6", + "0x80" + ] + }, + { + "pc": 2425, + "op": "ADD", + "gas": 2075204, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0x80", + "0xae3" + ] + }, + { + "pc": 2426, + "op": "SWAP1", + "gas": 2075201, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x356", + "0xb63" + ] + }, + { + "pc": 2427, + "op": "JUMP", + "gas": 2075198, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb63", + "0x356" + ] + }, + { + "pc": 854, + "op": "JUMPDEST", + "gas": 2075190, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb63" + ] + }, + { + "pc": 855, + "op": "PUSH1", + "gas": 2075189, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb63" + ] + }, + { + "pc": 857, + "op": "MLOAD", + "gas": 2075186, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb63", + "0x40" + ] + }, + { + "pc": 858, + "op": "DUP1", + "gas": 2075183, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb63", + "0x80" + ] + }, + { + "pc": 859, + "op": "SWAP2", + "gas": 2075180, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb63", + "0x80", + "0x80" + ] + }, + { + "pc": 860, + "op": "SUB", + "gas": 2075177, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x80", + "0x80", + "0xb63" + ] + }, + { + "pc": 861, + "op": "SWAP1", + "gas": 2075174, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x80", + "0xae3" + ] + }, + { + "pc": 862, + "op": "PUSH1", + "gas": 2075171, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xae3", + "0x80" + ] + }, + { + "pc": 864, + "op": "CREATE", + "gas": 2075168, + "gasCost": 32176, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xae3", + "0x80", + "0x0" + ] + }, + { + "pc": 0, + "op": "PUSH1", + "gas": 2011071, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 2011068, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 2011065, + "gasCost": 12, + "depth": 2, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "PUSH1", + "gas": 2011053, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 7, + "op": "PUSH1", + "gas": 2011050, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 9, + "op": "PUSH1", + "gas": 2011047, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 11, + "op": "PUSH2", + "gas": 2011044, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 14, + "op": "EXP", + "gas": 2011041, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x0", + "0x100" + ] + }, + { + "pc": 15, + "op": "DUP2", + "gas": 2011031, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 16, + "op": "SLOAD", + "gas": 2011028, + "gasCost": 2100, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x1", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 17, + "op": "DUP2", + "gas": 2008928, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 18, + "op": "PUSH1", + "gas": 2008925, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 20, + "op": "MUL", + "gas": 2008922, + "gasCost": 5, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x1", + "0x0", + "0x1", + "0xff" + ] + }, + { + "pc": 21, + "op": "NOT", + "gas": 2008917, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x1", + "0x0", + "0xff" + ] + }, + { + "pc": 22, + "op": "AND", + "gas": 2008914, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x1", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + ] + }, + { + "pc": 23, + "op": "SWAP1", + "gas": 2008911, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 24, + "op": "DUP4", + "gas": 2008908, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 25, + "op": "ISZERO", + "gas": 2008905, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 26, + "op": "ISZERO", + "gas": 2008902, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 27, + "op": "MUL", + "gas": 2008899, + "gasCost": 5, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 28, + "op": "OR", + "gas": 2008894, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x0", + "0x0" + ] + }, + { + "pc": 29, + "op": "SWAP1", + "gas": 2008891, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 30, + "op": "SSTORE", + "gas": 2008888, + "gasCost": 100, + "depth": 2, + "stack": [ + "0x0", + "0x0", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 31, + "op": "POP", + "gas": 2008788, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 32, + "op": "CALLVALUE", + "gas": 2008786, + "gasCost": 2, + "depth": 2, + "stack": [] + }, + { + "pc": 33, + "op": "DUP1", + "gas": 2008784, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 34, + "op": "ISZERO", + "gas": 2008781, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 35, + "op": "PUSH3", + "gas": 2008778, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 39, + "op": "JUMPI", + "gas": 2008775, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x2c" + ] + }, + { + "pc": 44, + "op": "JUMPDEST", + "gas": 2008765, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 45, + "op": "POP", + "gas": 2008764, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 46, + "op": "PUSH1", + "gas": 2008762, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 48, + "op": "PUSH1", + "gas": 2008759, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1" + ] + }, + { + "pc": 50, + "op": "SWAP1", + "gas": 2008756, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x0" + ] + }, + { + "pc": 51, + "op": "SLOAD", + "gas": 2008753, + "gasCost": 100, + "depth": 2, + "stack": [ + "0x0", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 52, + "op": "SWAP1", + "gas": 2008653, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 53, + "op": "PUSH2", + "gas": 2008650, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 56, + "op": "EXP", + "gas": 2008647, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0x0", + "0x100" + ] + }, + { + "pc": 57, + "op": "SWAP1", + "gas": 2008637, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 58, + "op": "DIV", + "gas": 2008634, + "gasCost": 5, + "depth": 2, + "stack": [ + "0x1", + "0x0" + ] + }, + { + "pc": 59, + "op": "PUSH1", + "gas": 2008629, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 61, + "op": "AND", + "gas": 2008626, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0xff" + ] + }, + { + "pc": 62, + "op": "ISZERO", + "gas": 2008623, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 63, + "op": "PUSH3", + "gas": 2008620, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1" + ] + }, + { + "pc": 67, + "op": "JUMPI", + "gas": 2008617, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x1", + "0x80" + ] + }, + { + "pc": 128, + "op": "JUMPDEST", + "gas": 2008607, + "gasCost": 1, + "depth": 2, + "stack": [] + }, + { + "pc": 129, + "op": "PUSH1", + "gas": 2008606, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 131, + "op": "DUP1", + "gas": 2008603, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1" + ] + }, + { + "pc": 132, + "op": "PUSH1", + "gas": 2008600, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1" + ] + }, + { + "pc": 134, + "op": "PUSH2", + "gas": 2008597, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 137, + "op": "EXP", + "gas": 2008594, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x0", + "0x100" + ] + }, + { + "pc": 138, + "op": "DUP2", + "gas": 2008584, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1" + ] + }, + { + "pc": 139, + "op": "SLOAD", + "gas": 2008581, + "gasCost": 100, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 140, + "op": "DUP2", + "gas": 2008481, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 141, + "op": "PUSH1", + "gas": 2008478, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 143, + "op": "MUL", + "gas": 2008475, + "gasCost": 5, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1", + "0x0", + "0x1", + "0xff" + ] + }, + { + "pc": 144, + "op": "NOT", + "gas": 2008470, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1", + "0x0", + "0xff" + ] + }, + { + "pc": 145, + "op": "AND", + "gas": 2008467, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + ] + }, + { + "pc": 146, + "op": "SWAP1", + "gas": 2008464, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 147, + "op": "DUP4", + "gas": 2008461, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 148, + "op": "ISZERO", + "gas": 2008458, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 149, + "op": "ISZERO", + "gas": 2008455, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 150, + "op": "MUL", + "gas": 2008452, + "gasCost": 5, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 151, + "op": "OR", + "gas": 2008447, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 152, + "op": "SWAP1", + "gas": 2008444, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1" + ] + }, + { + "pc": 153, + "op": "SSTORE", + "gas": 2008441, + "gasCost": 20000, + "depth": 2, + "stack": [ + "0x1", + "0x1", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001" + } + }, + { + "pc": 154, + "op": "POP", + "gas": 1988441, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x1" + ] + }, + { + "pc": 155, + "op": "PUSH3", + "gas": 1988439, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 159, + "op": "PUSH17", + "gas": 1988436, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc" + ] + }, + { + "pc": 177, + "op": "PUSH3", + "gas": 1988433, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 181, + "op": "PUSH1", + "gas": 1988430, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0xc3" + ] + }, + { + "pc": 183, + "op": "SHL", + "gas": 1988427, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0xc3", + "0x20" + ] + }, + { + "pc": 184, + "op": "PUSH1", + "gas": 1988424, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0xc300000000" + ] + }, + { + "pc": 186, + "op": "SHR", + "gas": 1988421, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0xc300000000", + "0x20" + ] + }, + { + "pc": 187, + "op": "JUMP", + "gas": 1988418, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0xc3" + ] + }, + { + "pc": 195, + "op": "JUMPDEST", + "gas": 1988410, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 196, + "op": "PUSH1", + "gas": 1988409, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 198, + "op": "CALLER", + "gas": 1988406, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 199, + "op": "PUSH20", + "gas": 1988404, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 220, + "op": "AND", + "gas": 1988401, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 221, + "op": "PUSH32", + "gas": 1988398, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 254, + "op": "DUP4", + "gas": 1988395, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0" + ] + }, + { + "pc": 255, + "op": "PUSH1", + "gas": 1988392, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 257, + "op": "MLOAD", + "gas": 1988389, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x40" + ] + }, + { + "pc": 258, + "op": "PUSH3", + "gas": 1988386, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80" + ] + }, + { + "pc": 262, + "op": "SWAP2", + "gas": 1988383, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x10d" + ] + }, + { + "pc": 263, + "op": "SWAP1", + "gas": 1988380, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 264, + "op": "PUSH3", + "gas": 1988377, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80" + ] + }, + { + "pc": 268, + "op": "JUMP", + "gas": 1988374, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x342" + ] + }, + { + "pc": 834, + "op": "JUMPDEST", + "gas": 1988366, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80" + ] + }, + { + "pc": 835, + "op": "PUSH1", + "gas": 1988365, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80" + ] + }, + { + "pc": 837, + "op": "PUSH1", + "gas": 1988362, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x0" + ] + }, + { + "pc": 839, + "op": "DUP3", + "gas": 1988359, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x0", + "0x40" + ] + }, + { + "pc": 840, + "op": "ADD", + "gas": 1988356, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x0", + "0x40", + "0x80" + ] + }, + { + "pc": 841, + "op": "SWAP1", + "gas": 1988353, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x0", + "0xc0" + ] + }, + { + "pc": 842, + "op": "POP", + "gas": 1988350, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x0" + ] + }, + { + "pc": 843, + "op": "PUSH3", + "gas": 1988348, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0" + ] + }, + { + "pc": 847, + "op": "PUSH1", + "gas": 1988345, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359" + ] + }, + { + "pc": 849, + "op": "DUP4", + "gas": 1988342, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x0" + ] + }, + { + "pc": 850, + "op": "ADD", + "gas": 1988339, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x0", + "0x80" + ] + }, + { + "pc": 851, + "op": "DUP5", + "gas": 1988336, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80" + ] + }, + { + "pc": 852, + "op": "PUSH3", + "gas": 1988333, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 856, + "op": "JUMP", + "gas": 1988330, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2e1" + ] + }, + { + "pc": 737, + "op": "JUMPDEST", + "gas": 1988322, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 738, + "op": "PUSH3", + "gas": 1988321, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 742, + "op": "DUP2", + "gas": 1988318, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec" + ] + }, + { + "pc": 743, + "op": "PUSH3", + "gas": 1988315, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 747, + "op": "JUMP", + "gas": 1988312, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2d7" + ] + }, + { + "pc": 727, + "op": "JUMPDEST", + "gas": 1988304, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 728, + "op": "PUSH1", + "gas": 1988303, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 730, + "op": "DUP2", + "gas": 1988300, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 731, + "op": "SWAP1", + "gas": 1988297, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 732, + "op": "POP", + "gas": 1988294, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 733, + "op": "SWAP2", + "gas": 1988292, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 734, + "op": "SWAP1", + "gas": 1988289, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 1988286, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 736, + "op": "JUMP", + "gas": 1988284, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2ec" + ] + }, + { + "pc": 748, + "op": "JUMPDEST", + "gas": 1988276, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 749, + "op": "DUP3", + "gas": 1988275, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 750, + "op": "MSTORE", + "gas": 1988272, + "gasCost": 9, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80" + ] + }, + { + "pc": 751, + "op": "POP", + "gas": 1988263, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 752, + "op": "POP", + "gas": 1988261, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359", + "0x80" + ] + }, + { + "pc": 753, + "op": "JUMP", + "gas": 1988259, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x359" + ] + }, + { + "pc": 857, + "op": "JUMPDEST", + "gas": 1988251, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0" + ] + }, + { + "pc": 858, + "op": "DUP2", + "gas": 1988250, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0" + ] + }, + { + "pc": 859, + "op": "DUP2", + "gas": 1988247, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x80" + ] + }, + { + "pc": 860, + "op": "SUB", + "gas": 1988244, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x80", + "0xc0" + ] + }, + { + "pc": 861, + "op": "PUSH1", + "gas": 1988241, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 863, + "op": "DUP4", + "gas": 1988238, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x40", + "0x20" + ] + }, + { + "pc": 864, + "op": "ADD", + "gas": 1988235, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x40", + "0x20", + "0x80" + ] + }, + { + "pc": 865, + "op": "MSTORE", + "gas": 1988232, + "gasCost": 6, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x40", + "0xa0" + ] + }, + { + "pc": 866, + "op": "PUSH3", + "gas": 1988226, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0" + ] + }, + { + "pc": 870, + "op": "DUP2", + "gas": 1988223, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c" + ] + }, + { + "pc": 871, + "op": "PUSH3", + "gas": 1988220, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0" + ] + }, + { + "pc": 875, + "op": "JUMP", + "gas": 1988217, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x31b" + ] + }, + { + "pc": 795, + "op": "JUMPDEST", + "gas": 1988209, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0" + ] + }, + { + "pc": 796, + "op": "PUSH1", + "gas": 1988208, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0" + ] + }, + { + "pc": 798, + "op": "PUSH3", + "gas": 1988205, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0" + ] + }, + { + "pc": 802, + "op": "PUSH1", + "gas": 1988202, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a" + ] + }, + { + "pc": 804, + "op": "DUP4", + "gas": 1988199, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5" + ] + }, + { + "pc": 805, + "op": "PUSH3", + "gas": 1988196, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0" + ] + }, + { + "pc": 809, + "op": "JUMP", + "gas": 1988193, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0x22e" + ] + }, + { + "pc": 558, + "op": "JUMPDEST", + "gas": 1988185, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0" + ] + }, + { + "pc": 559, + "op": "PUSH1", + "gas": 1988184, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0" + ] + }, + { + "pc": 561, + "op": "DUP3", + "gas": 1988181, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0x0" + ] + }, + { + "pc": 562, + "op": "DUP3", + "gas": 1988178, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0x0", + "0x5" + ] + }, + { + "pc": 563, + "op": "MSTORE", + "gas": 1988175, + "gasCost": 6, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0x0", + "0x5", + "0xc0" + ] + }, + { + "pc": 564, + "op": "PUSH1", + "gas": 1988169, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0x0" + ] + }, + { + "pc": 566, + "op": "DUP3", + "gas": 1988166, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 567, + "op": "ADD", + "gas": 1988163, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 568, + "op": "SWAP1", + "gas": 1988160, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 569, + "op": "POP", + "gas": 1988157, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 570, + "op": "SWAP3", + "gas": 1988155, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0x32a", + "0x5", + "0xc0", + "0xe0" + ] + }, + { + "pc": 571, + "op": "SWAP2", + "gas": 1988152, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0xe0", + "0x5", + "0xc0", + "0x32a" + ] + }, + { + "pc": 572, + "op": "POP", + "gas": 1988149, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0xe0", + "0x32a", + "0xc0", + "0x5" + ] + }, + { + "pc": 573, + "op": "POP", + "gas": 1988147, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0xe0", + "0x32a", + "0xc0" + ] + }, + { + "pc": 574, + "op": "JUMP", + "gas": 1988145, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0xe0", + "0x32a" + ] + }, + { + "pc": 810, + "op": "JUMPDEST", + "gas": 1988137, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 811, + "op": "SWAP2", + "gas": 1988136, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 812, + "op": "POP", + "gas": 1988133, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 813, + "op": "PUSH3", + "gas": 1988131, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0" + ] + }, + { + "pc": 817, + "op": "DUP3", + "gas": 1988128, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337" + ] + }, + { + "pc": 818, + "op": "PUSH3", + "gas": 1988125, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0" + ] + }, + { + "pc": 822, + "op": "JUMP", + "gas": 1988122, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0", + "0x2f2" + ] + }, + { + "pc": 754, + "op": "JUMPDEST", + "gas": 1988114, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0" + ] + }, + { + "pc": 755, + "op": "PUSH32", + "gas": 1988113, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0" + ] + }, + { + "pc": 788, + "op": "PUSH1", + "gas": 1988110, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 790, + "op": "DUP3", + "gas": 1988107, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 791, + "op": "ADD", + "gas": 1988104, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0x0", + "0xe0" + ] + }, + { + "pc": 792, + "op": "MSTORE", + "gas": 1988101, + "gasCost": 6, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 793, + "op": "POP", + "gas": 1988095, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337", + "0xe0" + ] + }, + { + "pc": 794, + "op": "JUMP", + "gas": 1988093, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x337" + ] + }, + { + "pc": 823, + "op": "JUMPDEST", + "gas": 1988085, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0" + ] + }, + { + "pc": 824, + "op": "PUSH1", + "gas": 1988084, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0" + ] + }, + { + "pc": 826, + "op": "DUP3", + "gas": 1988081, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 827, + "op": "ADD", + "gas": 1988078, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 828, + "op": "SWAP1", + "gas": 1988075, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 829, + "op": "POP", + "gas": 1988072, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 830, + "op": "SWAP2", + "gas": 1988070, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x36c", + "0xe0", + "0x100" + ] + }, + { + "pc": 831, + "op": "SWAP1", + "gas": 1988067, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x100", + "0xe0", + "0x36c" + ] + }, + { + "pc": 832, + "op": "POP", + "gas": 1988064, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x100", + "0x36c", + "0xe0" + ] + }, + { + "pc": 833, + "op": "JUMP", + "gas": 1988062, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x100", + "0x36c" + ] + }, + { + "pc": 876, + "op": "JUMPDEST", + "gas": 1988054, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 877, + "op": "SWAP1", + "gas": 1988053, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 878, + "op": "POP", + "gas": 1988050, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x100", + "0xc0" + ] + }, + { + "pc": 879, + "op": "SWAP3", + "gas": 1988048, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x10d", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x100" + ] + }, + { + "pc": 880, + "op": "SWAP2", + "gas": 1988045, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x80", + "0x10d" + ] + }, + { + "pc": 881, + "op": "POP", + "gas": 1988042, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x10d", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 882, + "op": "POP", + "gas": 1988040, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x10d", + "0x80" + ] + }, + { + "pc": 883, + "op": "JUMP", + "gas": 1988038, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x10d" + ] + }, + { + "pc": 269, + "op": "JUMPDEST", + "gas": 1988030, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 270, + "op": "PUSH1", + "gas": 1988029, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 272, + "op": "MLOAD", + "gas": 1988026, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x40" + ] + }, + { + "pc": 273, + "op": "DUP1", + "gas": 1988023, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80" + ] + }, + { + "pc": 274, + "op": "SWAP2", + "gas": 1988020, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80", + "0x80" + ] + }, + { + "pc": 275, + "op": "SUB", + "gas": 1988017, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80", + "0x100" + ] + }, + { + "pc": 276, + "op": "SWAP1", + "gas": 1988014, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 277, + "op": "LOG2", + "gas": 1988011, + "gasCost": 2149, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 278, + "op": "DUP2", + "gas": 1985862, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 279, + "op": "PUSH1", + "gas": 1985859, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 281, + "op": "DUP1", + "gas": 1985856, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 282, + "op": "DUP3", + "gas": 1985853, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 283, + "op": "DUP3", + "gas": 1985850, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 284, + "op": "SLOAD", + "gas": 1985847, + "gasCost": 2100, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001" + } + }, + { + "pc": 285, + "op": "PUSH3", + "gas": 1983747, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 289, + "op": "SWAP2", + "gas": 1983744, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x128" + ] + }, + { + "pc": 290, + "op": "SWAP1", + "gas": 1983741, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 291, + "op": "PUSH3", + "gas": 1983738, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 295, + "op": "JUMP", + "gas": 1983735, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3a3" + ] + }, + { + "pc": 931, + "op": "JUMPDEST", + "gas": 1983727, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 932, + "op": "PUSH1", + "gas": 1983726, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 934, + "op": "PUSH3", + "gas": 1983723, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 938, + "op": "DUP3", + "gas": 1983720, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0" + ] + }, + { + "pc": 939, + "op": "PUSH3", + "gas": 1983717, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0", + "0x0" + ] + }, + { + "pc": 943, + "op": "JUMP", + "gas": 1983714, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x2d7" + ] + }, + { + "pc": 727, + "op": "JUMPDEST", + "gas": 1983706, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0", + "0x0" + ] + }, + { + "pc": 728, + "op": "PUSH1", + "gas": 1983705, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0", + "0x0" + ] + }, + { + "pc": 730, + "op": "DUP2", + "gas": 1983702, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x0" + ] + }, + { + "pc": 731, + "op": "SWAP1", + "gas": 1983699, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 732, + "op": "POP", + "gas": 1983696, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 733, + "op": "SWAP2", + "gas": 1983694, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x0" + ] + }, + { + "pc": 734, + "op": "SWAP1", + "gas": 1983691, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x0", + "0x0", + "0x3b0" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 1983688, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x0", + "0x3b0", + "0x0" + ] + }, + { + "pc": 736, + "op": "JUMP", + "gas": 1983686, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x0", + "0x3b0" + ] + }, + { + "pc": 944, + "op": "JUMPDEST", + "gas": 1983678, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 945, + "op": "SWAP2", + "gas": 1983677, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 946, + "op": "POP", + "gas": 1983674, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 947, + "op": "PUSH3", + "gas": 1983672, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 951, + "op": "DUP4", + "gas": 1983669, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd" + ] + }, + { + "pc": 952, + "op": "PUSH3", + "gas": 1983666, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 956, + "op": "JUMP", + "gas": 1983663, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2d7" + ] + }, + { + "pc": 727, + "op": "JUMPDEST", + "gas": 1983655, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 728, + "op": "PUSH1", + "gas": 1983654, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 730, + "op": "DUP2", + "gas": 1983651, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 731, + "op": "SWAP1", + "gas": 1983648, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 732, + "op": "POP", + "gas": 1983645, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 733, + "op": "SWAP2", + "gas": 1983643, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 734, + "op": "SWAP1", + "gas": 1983640, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3bd" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 1983637, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 736, + "op": "JUMP", + "gas": 1983635, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3bd" + ] + }, + { + "pc": 957, + "op": "JUMPDEST", + "gas": 1983627, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 958, + "op": "SWAP3", + "gas": 1983626, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 959, + "op": "POP", + "gas": 1983623, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 960, + "op": "DUP3", + "gas": 1983621, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 961, + "op": "PUSH32", + "gas": 1983618, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 994, + "op": "SUB", + "gas": 1983615, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 995, + "op": "DUP3", + "gas": 1983612, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0xffffffffffffffffffffffffffffffe29cd60e3ca35b4054460a9effffffffff" + ] + }, + { + "pc": 996, + "op": "GT", + "gas": 1983609, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0xffffffffffffffffffffffffffffffe29cd60e3ca35b4054460a9effffffffff", + "0x0" + ] + }, + { + "pc": 997, + "op": "ISZERO", + "gas": 1983606, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 998, + "op": "PUSH3", + "gas": 1983603, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 1002, + "op": "JUMPI", + "gas": 1983600, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1", + "0x3f5" + ] + }, + { + "pc": 1013, + "op": "JUMPDEST", + "gas": 1983590, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 1014, + "op": "DUP3", + "gas": 1983589, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 1015, + "op": "DUP3", + "gas": 1983586, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1016, + "op": "ADD", + "gas": 1983583, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1017, + "op": "SWAP1", + "gas": 1983580, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1018, + "op": "POP", + "gas": 1983577, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1019, + "op": "SWAP3", + "gas": 1983575, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x128", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1020, + "op": "SWAP2", + "gas": 1983572, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x128" + ] + }, + { + "pc": 1021, + "op": "POP", + "gas": 1983569, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x128", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1022, + "op": "POP", + "gas": 1983567, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x128", + "0x0" + ] + }, + { + "pc": 1023, + "op": "JUMP", + "gas": 1983565, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x128" + ] + }, + { + "pc": 296, + "op": "JUMPDEST", + "gas": 1983557, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 297, + "op": "SWAP3", + "gas": 1983556, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 298, + "op": "POP", + "gas": 1983553, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 299, + "op": "POP", + "gas": 1983551, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 300, + "op": "DUP2", + "gas": 1983549, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 301, + "op": "SWAP1", + "gas": 1983546, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 302, + "op": "SSTORE", + "gas": 1983543, + "gasCost": 20000, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000001d6329f1c35ca4bfabb9f5610000000000", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001" + } + }, + { + "pc": 303, + "op": "POP", + "gas": 1963543, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 304, + "op": "PUSH3", + "gas": 1963541, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 308, + "op": "PUSH1", + "gas": 1963538, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e" + ] + }, + { + "pc": 310, + "op": "DUP4", + "gas": 1963535, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1" + ] + }, + { + "pc": 311, + "op": "PUSH3", + "gas": 1963532, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 315, + "op": "SWAP2", + "gas": 1963529, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x142" + ] + }, + { + "pc": 316, + "op": "SWAP1", + "gas": 1963526, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1" + ] + }, + { + "pc": 317, + "op": "PUSH3", + "gas": 1963523, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 321, + "op": "JUMP", + "gas": 1963520, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3a3" + ] + }, + { + "pc": 931, + "op": "JUMPDEST", + "gas": 1963512, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 932, + "op": "PUSH1", + "gas": 1963511, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 934, + "op": "PUSH3", + "gas": 1963508, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 938, + "op": "DUP3", + "gas": 1963505, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0" + ] + }, + { + "pc": 939, + "op": "PUSH3", + "gas": 1963502, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 943, + "op": "JUMP", + "gas": 1963499, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x2d7" + ] + }, + { + "pc": 727, + "op": "JUMPDEST", + "gas": 1963491, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 728, + "op": "PUSH1", + "gas": 1963490, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 730, + "op": "DUP2", + "gas": 1963487, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 731, + "op": "SWAP1", + "gas": 1963484, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 732, + "op": "POP", + "gas": 1963481, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 733, + "op": "SWAP2", + "gas": 1963479, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 734, + "op": "SWAP1", + "gas": 1963476, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3b0" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 1963473, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3b0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 736, + "op": "JUMP", + "gas": 1963471, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3b0" + ] + }, + { + "pc": 944, + "op": "JUMPDEST", + "gas": 1963463, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 945, + "op": "SWAP2", + "gas": 1963462, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 946, + "op": "POP", + "gas": 1963459, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 947, + "op": "PUSH3", + "gas": 1963457, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 951, + "op": "DUP4", + "gas": 1963454, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd" + ] + }, + { + "pc": 952, + "op": "PUSH3", + "gas": 1963451, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd", + "0x1" + ] + }, + { + "pc": 956, + "op": "JUMP", + "gas": 1963448, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd", + "0x1", + "0x2d7" + ] + }, + { + "pc": 727, + "op": "JUMPDEST", + "gas": 1963440, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd", + "0x1" + ] + }, + { + "pc": 728, + "op": "PUSH1", + "gas": 1963439, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd", + "0x1" + ] + }, + { + "pc": 730, + "op": "DUP2", + "gas": 1963436, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd", + "0x1", + "0x0" + ] + }, + { + "pc": 731, + "op": "SWAP1", + "gas": 1963433, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 732, + "op": "POP", + "gas": 1963430, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 733, + "op": "SWAP2", + "gas": 1963428, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3bd", + "0x1", + "0x1" + ] + }, + { + "pc": 734, + "op": "SWAP1", + "gas": 1963425, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1", + "0x1", + "0x3bd" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 1963422, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1", + "0x3bd", + "0x1" + ] + }, + { + "pc": 736, + "op": "JUMP", + "gas": 1963420, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1", + "0x3bd" + ] + }, + { + "pc": 957, + "op": "JUMPDEST", + "gas": 1963412, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1" + ] + }, + { + "pc": 958, + "op": "SWAP3", + "gas": 1963411, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1" + ] + }, + { + "pc": 959, + "op": "POP", + "gas": 1963408, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1" + ] + }, + { + "pc": 960, + "op": "DUP3", + "gas": 1963406, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 961, + "op": "PUSH32", + "gas": 1963403, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1" + ] + }, + { + "pc": 994, + "op": "SUB", + "gas": 1963400, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 995, + "op": "DUP3", + "gas": 1963397, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + ] + }, + { + "pc": 996, + "op": "GT", + "gas": 1963394, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 997, + "op": "ISZERO", + "gas": 1963391, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 998, + "op": "PUSH3", + "gas": 1963388, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1" + ] + }, + { + "pc": 1002, + "op": "JUMPI", + "gas": 1963385, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1", + "0x3f5" + ] + }, + { + "pc": 1013, + "op": "JUMPDEST", + "gas": 1963375, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1014, + "op": "DUP3", + "gas": 1963374, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1015, + "op": "DUP3", + "gas": 1963371, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1" + ] + }, + { + "pc": 1016, + "op": "ADD", + "gas": 1963368, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1017, + "op": "SWAP1", + "gas": 1963365, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1018, + "op": "POP", + "gas": 1963362, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 1019, + "op": "SWAP3", + "gas": 1963360, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x142", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1020, + "op": "SWAP2", + "gas": 1963357, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x142" + ] + }, + { + "pc": 1021, + "op": "POP", + "gas": 1963354, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x142", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1" + ] + }, + { + "pc": 1022, + "op": "POP", + "gas": 1963352, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x142", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1023, + "op": "JUMP", + "gas": 1963350, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x142" + ] + }, + { + "pc": 322, + "op": "JUMPDEST", + "gas": 1963342, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 323, + "op": "PUSH3", + "gas": 1963341, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 327, + "op": "PUSH1", + "gas": 1963338, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x169" + ] + }, + { + "pc": 329, + "op": "SHL", + "gas": 1963335, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x169", + "0x20" + ] + }, + { + "pc": 330, + "op": "PUSH1", + "gas": 1963332, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x16900000000" + ] + }, + { + "pc": 332, + "op": "SHR", + "gas": 1963329, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x16900000000", + "0x20" + ] + }, + { + "pc": 333, + "op": "JUMP", + "gas": 1963326, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x169" + ] + }, + { + "pc": 361, + "op": "JUMPDEST", + "gas": 1963318, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 362, + "op": "PUSH1", + "gas": 1963317, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 364, + "op": "CALLER", + "gas": 1963314, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 365, + "op": "PUSH20", + "gas": 1963312, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 386, + "op": "AND", + "gas": 1963309, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 387, + "op": "PUSH32", + "gas": 1963306, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 420, + "op": "DUP4", + "gas": 1963303, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0" + ] + }, + { + "pc": 421, + "op": "PUSH1", + "gas": 1963300, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 423, + "op": "MLOAD", + "gas": 1963297, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x40" + ] + }, + { + "pc": 424, + "op": "PUSH3", + "gas": 1963294, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80" + ] + }, + { + "pc": 428, + "op": "SWAP2", + "gas": 1963291, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x1b3" + ] + }, + { + "pc": 429, + "op": "SWAP1", + "gas": 1963288, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 430, + "op": "PUSH3", + "gas": 1963285, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80" + ] + }, + { + "pc": 434, + "op": "JUMP", + "gas": 1963282, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x450" + ] + }, + { + "pc": 1104, + "op": "JUMPDEST", + "gas": 1963274, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80" + ] + }, + { + "pc": 1105, + "op": "PUSH1", + "gas": 1963273, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80" + ] + }, + { + "pc": 1107, + "op": "PUSH1", + "gas": 1963270, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x0" + ] + }, + { + "pc": 1109, + "op": "DUP3", + "gas": 1963267, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x0", + "0x40" + ] + }, + { + "pc": 1110, + "op": "ADD", + "gas": 1963264, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x0", + "0x40", + "0x80" + ] + }, + { + "pc": 1111, + "op": "SWAP1", + "gas": 1963261, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x0", + "0xc0" + ] + }, + { + "pc": 1112, + "op": "POP", + "gas": 1963258, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x0" + ] + }, + { + "pc": 1113, + "op": "PUSH3", + "gas": 1963256, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0" + ] + }, + { + "pc": 1117, + "op": "PUSH1", + "gas": 1963253, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467" + ] + }, + { + "pc": 1119, + "op": "DUP4", + "gas": 1963250, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x0" + ] + }, + { + "pc": 1120, + "op": "ADD", + "gas": 1963247, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x0", + "0x80" + ] + }, + { + "pc": 1121, + "op": "DUP5", + "gas": 1963244, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80" + ] + }, + { + "pc": 1122, + "op": "PUSH3", + "gas": 1963241, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1126, + "op": "JUMP", + "gas": 1963238, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2e1" + ] + }, + { + "pc": 737, + "op": "JUMPDEST", + "gas": 1963230, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 738, + "op": "PUSH3", + "gas": 1963229, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 742, + "op": "DUP2", + "gas": 1963226, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec" + ] + }, + { + "pc": 743, + "op": "PUSH3", + "gas": 1963223, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 747, + "op": "JUMP", + "gas": 1963220, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2d7" + ] + }, + { + "pc": 727, + "op": "JUMPDEST", + "gas": 1963212, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 728, + "op": "PUSH1", + "gas": 1963211, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 730, + "op": "DUP2", + "gas": 1963208, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 731, + "op": "SWAP1", + "gas": 1963205, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 732, + "op": "POP", + "gas": 1963202, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 733, + "op": "SWAP2", + "gas": 1963200, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 734, + "op": "SWAP1", + "gas": 1963197, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 1963194, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 736, + "op": "JUMP", + "gas": 1963192, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2ec" + ] + }, + { + "pc": 748, + "op": "JUMPDEST", + "gas": 1963184, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 749, + "op": "DUP3", + "gas": 1963183, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 750, + "op": "MSTORE", + "gas": 1963180, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80" + ] + }, + { + "pc": 751, + "op": "POP", + "gas": 1963177, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 752, + "op": "POP", + "gas": 1963175, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467", + "0x80" + ] + }, + { + "pc": 753, + "op": "JUMP", + "gas": 1963173, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x467" + ] + }, + { + "pc": 1127, + "op": "JUMPDEST", + "gas": 1963165, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0" + ] + }, + { + "pc": 1128, + "op": "DUP2", + "gas": 1963164, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0" + ] + }, + { + "pc": 1129, + "op": "DUP2", + "gas": 1963161, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x80" + ] + }, + { + "pc": 1130, + "op": "SUB", + "gas": 1963158, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x80", + "0xc0" + ] + }, + { + "pc": 1131, + "op": "PUSH1", + "gas": 1963155, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 1133, + "op": "DUP4", + "gas": 1963152, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x40", + "0x20" + ] + }, + { + "pc": 1134, + "op": "ADD", + "gas": 1963149, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x40", + "0x20", + "0x80" + ] + }, + { + "pc": 1135, + "op": "MSTORE", + "gas": 1963146, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x40", + "0xa0" + ] + }, + { + "pc": 1136, + "op": "PUSH3", + "gas": 1963143, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0" + ] + }, + { + "pc": 1140, + "op": "DUP2", + "gas": 1963140, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a" + ] + }, + { + "pc": 1141, + "op": "PUSH3", + "gas": 1963137, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0" + ] + }, + { + "pc": 1145, + "op": "JUMP", + "gas": 1963134, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x429" + ] + }, + { + "pc": 1065, + "op": "JUMPDEST", + "gas": 1963126, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0" + ] + }, + { + "pc": 1066, + "op": "PUSH1", + "gas": 1963125, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0" + ] + }, + { + "pc": 1068, + "op": "PUSH3", + "gas": 1963122, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0" + ] + }, + { + "pc": 1072, + "op": "PUSH1", + "gas": 1963119, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438" + ] + }, + { + "pc": 1074, + "op": "DUP4", + "gas": 1963116, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe" + ] + }, + { + "pc": 1075, + "op": "PUSH3", + "gas": 1963113, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0" + ] + }, + { + "pc": 1079, + "op": "JUMP", + "gas": 1963110, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0x22e" + ] + }, + { + "pc": 558, + "op": "JUMPDEST", + "gas": 1963102, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0" + ] + }, + { + "pc": 559, + "op": "PUSH1", + "gas": 1963101, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0" + ] + }, + { + "pc": 561, + "op": "DUP3", + "gas": 1963098, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0x0" + ] + }, + { + "pc": 562, + "op": "DUP3", + "gas": 1963095, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0x0", + "0xe" + ] + }, + { + "pc": 563, + "op": "MSTORE", + "gas": 1963092, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0x0", + "0xe", + "0xc0" + ] + }, + { + "pc": 564, + "op": "PUSH1", + "gas": 1963089, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0x0" + ] + }, + { + "pc": 566, + "op": "DUP3", + "gas": 1963086, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 567, + "op": "ADD", + "gas": 1963083, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 568, + "op": "SWAP1", + "gas": 1963080, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 569, + "op": "POP", + "gas": 1963077, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 570, + "op": "SWAP3", + "gas": 1963075, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0x438", + "0xe", + "0xc0", + "0xe0" + ] + }, + { + "pc": 571, + "op": "SWAP2", + "gas": 1963072, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0xe0", + "0xe", + "0xc0", + "0x438" + ] + }, + { + "pc": 572, + "op": "POP", + "gas": 1963069, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0xe0", + "0x438", + "0xc0", + "0xe" + ] + }, + { + "pc": 573, + "op": "POP", + "gas": 1963067, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0xe0", + "0x438", + "0xc0" + ] + }, + { + "pc": 574, + "op": "JUMP", + "gas": 1963065, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0xe0", + "0x438" + ] + }, + { + "pc": 1080, + "op": "JUMPDEST", + "gas": 1963057, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 1081, + "op": "SWAP2", + "gas": 1963056, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 1082, + "op": "POP", + "gas": 1963053, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 1083, + "op": "PUSH3", + "gas": 1963051, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0" + ] + }, + { + "pc": 1087, + "op": "DUP3", + "gas": 1963048, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445" + ] + }, + { + "pc": 1088, + "op": "PUSH3", + "gas": 1963045, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0" + ] + }, + { + "pc": 1092, + "op": "JUMP", + "gas": 1963042, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0", + "0x400" + ] + }, + { + "pc": 1024, + "op": "JUMPDEST", + "gas": 1963034, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0" + ] + }, + { + "pc": 1025, + "op": "PUSH32", + "gas": 1963033, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0" + ] + }, + { + "pc": 1058, + "op": "PUSH1", + "gas": 1963030, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000" + ] + }, + { + "pc": 1060, + "op": "DUP3", + "gas": 1963027, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 1061, + "op": "ADD", + "gas": 1963024, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0x0", + "0xe0" + ] + }, + { + "pc": 1062, + "op": "MSTORE", + "gas": 1963021, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 1063, + "op": "POP", + "gas": 1963018, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445", + "0xe0" + ] + }, + { + "pc": 1064, + "op": "JUMP", + "gas": 1963016, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x445" + ] + }, + { + "pc": 1093, + "op": "JUMPDEST", + "gas": 1963008, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0" + ] + }, + { + "pc": 1094, + "op": "PUSH1", + "gas": 1963007, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0" + ] + }, + { + "pc": 1096, + "op": "DUP3", + "gas": 1963004, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 1097, + "op": "ADD", + "gas": 1963001, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 1098, + "op": "SWAP1", + "gas": 1962998, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 1099, + "op": "POP", + "gas": 1962995, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 1100, + "op": "SWAP2", + "gas": 1962993, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x47a", + "0xe0", + "0x100" + ] + }, + { + "pc": 1101, + "op": "SWAP1", + "gas": 1962990, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x100", + "0xe0", + "0x47a" + ] + }, + { + "pc": 1102, + "op": "POP", + "gas": 1962987, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x100", + "0x47a", + "0xe0" + ] + }, + { + "pc": 1103, + "op": "JUMP", + "gas": 1962985, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x100", + "0x47a" + ] + }, + { + "pc": 1146, + "op": "JUMPDEST", + "gas": 1962977, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 1147, + "op": "SWAP1", + "gas": 1962976, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 1148, + "op": "POP", + "gas": 1962973, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x100", + "0xc0" + ] + }, + { + "pc": 1149, + "op": "SWAP3", + "gas": 1962971, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1b3", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x100" + ] + }, + { + "pc": 1150, + "op": "SWAP2", + "gas": 1962968, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x80", + "0x1b3" + ] + }, + { + "pc": 1151, + "op": "POP", + "gas": 1962965, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x1b3", + "0x80", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1152, + "op": "POP", + "gas": 1962963, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x1b3", + "0x80" + ] + }, + { + "pc": 1153, + "op": "JUMP", + "gas": 1962961, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x1b3" + ] + }, + { + "pc": 435, + "op": "JUMPDEST", + "gas": 1962953, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 436, + "op": "PUSH1", + "gas": 1962952, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 438, + "op": "MLOAD", + "gas": 1962949, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x40" + ] + }, + { + "pc": 439, + "op": "DUP1", + "gas": 1962946, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80" + ] + }, + { + "pc": 440, + "op": "SWAP2", + "gas": 1962943, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80", + "0x80" + ] + }, + { + "pc": 441, + "op": "SUB", + "gas": 1962940, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80", + "0x100" + ] + }, + { + "pc": 442, + "op": "SWAP1", + "gas": 1962937, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 443, + "op": "LOG2", + "gas": 1962934, + "gasCost": 2149, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 444, + "op": "DUP2", + "gas": 1960785, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 445, + "op": "PUSH1", + "gas": 1960782, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 447, + "op": "PUSH1", + "gas": 1960779, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2" + ] + }, + { + "pc": 449, + "op": "DUP3", + "gas": 1960776, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0" + ] + }, + { + "pc": 450, + "op": "DUP3", + "gas": 1960773, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 451, + "op": "SLOAD", + "gas": 1960770, + "gasCost": 2100, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000001d6329f1c35ca4bfabb9f5610000000000", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 452, + "op": "PUSH3", + "gas": 1958670, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 456, + "op": "SWAP2", + "gas": 1958667, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1cf" + ] + }, + { + "pc": 457, + "op": "SWAP1", + "gas": 1958664, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 458, + "op": "PUSH3", + "gas": 1958661, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 462, + "op": "JUMP", + "gas": 1958658, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3a3" + ] + }, + { + "pc": 931, + "op": "JUMPDEST", + "gas": 1958650, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 932, + "op": "PUSH1", + "gas": 1958649, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 934, + "op": "PUSH3", + "gas": 1958646, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0" + ] + }, + { + "pc": 938, + "op": "DUP3", + "gas": 1958643, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0" + ] + }, + { + "pc": 939, + "op": "PUSH3", + "gas": 1958640, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0", + "0x0" + ] + }, + { + "pc": 943, + "op": "JUMP", + "gas": 1958637, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x2d7" + ] + }, + { + "pc": 727, + "op": "JUMPDEST", + "gas": 1958629, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0", + "0x0" + ] + }, + { + "pc": 728, + "op": "PUSH1", + "gas": 1958628, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0", + "0x0" + ] + }, + { + "pc": 730, + "op": "DUP2", + "gas": 1958625, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x0" + ] + }, + { + "pc": 731, + "op": "SWAP1", + "gas": 1958622, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 732, + "op": "POP", + "gas": 1958619, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 733, + "op": "SWAP2", + "gas": 1958617, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3b0", + "0x0", + "0x0" + ] + }, + { + "pc": 734, + "op": "SWAP1", + "gas": 1958614, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x0", + "0x0", + "0x3b0" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 1958611, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x0", + "0x3b0", + "0x0" + ] + }, + { + "pc": 736, + "op": "JUMP", + "gas": 1958609, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x0", + "0x3b0" + ] + }, + { + "pc": 944, + "op": "JUMPDEST", + "gas": 1958601, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 945, + "op": "SWAP2", + "gas": 1958600, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 946, + "op": "POP", + "gas": 1958597, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 947, + "op": "PUSH3", + "gas": 1958595, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0" + ] + }, + { + "pc": 951, + "op": "DUP4", + "gas": 1958592, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd" + ] + }, + { + "pc": 952, + "op": "PUSH3", + "gas": 1958589, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 956, + "op": "JUMP", + "gas": 1958586, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2d7" + ] + }, + { + "pc": 727, + "op": "JUMPDEST", + "gas": 1958578, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 728, + "op": "PUSH1", + "gas": 1958577, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 730, + "op": "DUP2", + "gas": 1958574, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 731, + "op": "SWAP1", + "gas": 1958571, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 732, + "op": "POP", + "gas": 1958568, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 733, + "op": "SWAP2", + "gas": 1958566, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 734, + "op": "SWAP1", + "gas": 1958563, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x3bd" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 1958560, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x3bd", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 736, + "op": "JUMP", + "gas": 1958558, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x3bd" + ] + }, + { + "pc": 957, + "op": "JUMPDEST", + "gas": 1958550, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 958, + "op": "SWAP3", + "gas": 1958549, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 959, + "op": "POP", + "gas": 1958546, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 960, + "op": "DUP3", + "gas": 1958544, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0" + ] + }, + { + "pc": 961, + "op": "PUSH32", + "gas": 1958541, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 994, + "op": "SUB", + "gas": 1958538, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 995, + "op": "DUP3", + "gas": 1958535, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0xffffffffffffffffffffffffffffffe29cd60e3ca35b4054460a9efffffffffe" + ] + }, + { + "pc": 996, + "op": "GT", + "gas": 1958532, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0xffffffffffffffffffffffffffffffe29cd60e3ca35b4054460a9efffffffffe", + "0x0" + ] + }, + { + "pc": 997, + "op": "ISZERO", + "gas": 1958529, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 998, + "op": "PUSH3", + "gas": 1958526, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 1002, + "op": "JUMPI", + "gas": 1958523, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1", + "0x3f5" + ] + }, + { + "pc": 1013, + "op": "JUMPDEST", + "gas": 1958513, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0" + ] + }, + { + "pc": 1014, + "op": "DUP3", + "gas": 1958512, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0" + ] + }, + { + "pc": 1015, + "op": "DUP3", + "gas": 1958509, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1016, + "op": "ADD", + "gas": 1958506, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 1017, + "op": "SWAP1", + "gas": 1958503, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1018, + "op": "POP", + "gas": 1958500, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 1019, + "op": "SWAP3", + "gas": 1958498, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1cf", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1020, + "op": "SWAP2", + "gas": 1958495, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1cf" + ] + }, + { + "pc": 1021, + "op": "POP", + "gas": 1958492, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1cf", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1022, + "op": "POP", + "gas": 1958490, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1cf", + "0x0" + ] + }, + { + "pc": 1023, + "op": "JUMP", + "gas": 1958488, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1cf" + ] + }, + { + "pc": 463, + "op": "JUMPDEST", + "gas": 1958480, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 464, + "op": "SWAP3", + "gas": 1958479, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 465, + "op": "POP", + "gas": 1958476, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 466, + "op": "POP", + "gas": 1958474, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0" + ] + }, + { + "pc": 467, + "op": "DUP2", + "gas": 1958472, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2" + ] + }, + { + "pc": 468, + "op": "SWAP1", + "gas": 1958469, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 469, + "op": "SSTORE", + "gas": 1958466, + "gasCost": 20000, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000001d6329f1c35ca4bfabb9f5610000000000", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000001d6329f1c35ca4bfabb9f5610000000001" + } + }, + { + "pc": 470, + "op": "POP", + "gas": 1938466, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 471, + "op": "PUSH1", + "gas": 1938464, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 473, + "op": "SWAP1", + "gas": 1938461, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x2" + ] + }, + { + "pc": 474, + "op": "POP", + "gas": 1938458, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2", + "0x0" + ] + }, + { + "pc": 475, + "op": "SWAP2", + "gas": 1938456, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x2" + ] + }, + { + "pc": 476, + "op": "SWAP1", + "gas": 1938453, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x2", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x14e" + ] + }, + { + "pc": 477, + "op": "POP", + "gas": 1938450, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x2", + "0x14e", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 478, + "op": "JUMP", + "gas": 1938448, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x2", + "0x14e" + ] + }, + { + "pc": 334, + "op": "JUMPDEST", + "gas": 1938440, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x2" + ] + }, + { + "pc": 335, + "op": "POP", + "gas": 1938439, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x2" + ] + }, + { + "pc": 336, + "op": "PUSH3", + "gas": 1938437, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 340, + "op": "PUSH3", + "gas": 1938434, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f" + ] + }, + { + "pc": 344, + "op": "PUSH1", + "gas": 1938431, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x1df" + ] + }, + { + "pc": 346, + "op": "SHL", + "gas": 1938428, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x1df", + "0x20" + ] + }, + { + "pc": 347, + "op": "PUSH1", + "gas": 1938425, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x1df00000000" + ] + }, + { + "pc": 349, + "op": "SHR", + "gas": 1938422, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x1df00000000", + "0x20" + ] + }, + { + "pc": 350, + "op": "JUMP", + "gas": 1938419, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x1df" + ] + }, + { + "pc": 479, + "op": "JUMPDEST", + "gas": 1938411, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f" + ] + }, + { + "pc": 480, + "op": "PUSH1", + "gas": 1938410, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f" + ] + }, + { + "pc": 482, + "op": "DUP1", + "gas": 1938407, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0" + ] + }, + { + "pc": 483, + "op": "PUSH1", + "gas": 1938404, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0" + ] + }, + { + "pc": 485, + "op": "MLOAD", + "gas": 1938401, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x40" + ] + }, + { + "pc": 486, + "op": "DUP1", + "gas": 1938398, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 487, + "op": "PUSH1", + "gas": 1938395, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 489, + "op": "ADD", + "gas": 1938392, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0x80", + "0x40" + ] + }, + { + "pc": 490, + "op": "PUSH1", + "gas": 1938389, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0xc0" + ] + }, + { + "pc": 492, + "op": "MSTORE", + "gas": 1938386, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 493, + "op": "DUP1", + "gas": 1938383, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 494, + "op": "PUSH1", + "gas": 1938380, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 496, + "op": "DUP2", + "gas": 1938377, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0x80", + "0xd" + ] + }, + { + "pc": 497, + "op": "MSTORE", + "gas": 1938374, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0x80", + "0xd", + "0x80" + ] + }, + { + "pc": 498, + "op": "PUSH1", + "gas": 1938371, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 500, + "op": "ADD", + "gas": 1938368, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0x80", + "0x20" + ] + }, + { + "pc": 501, + "op": "PUSH32", + "gas": 1938365, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0xa0" + ] + }, + { + "pc": 534, + "op": "DUP2", + "gas": 1938362, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0xa0", + "0x48656c6c6f2c20776f726c642100000000000000000000000000000000000000" + ] + }, + { + "pc": 535, + "op": "MSTORE", + "gas": 1938359, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0xa0", + "0x48656c6c6f2c20776f726c642100000000000000000000000000000000000000", + "0xa0" + ] + }, + { + "pc": 536, + "op": "POP", + "gas": 1938356, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80", + "0xa0" + ] + }, + { + "pc": 537, + "op": "SWAP1", + "gas": 1938354, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 538, + "op": "POP", + "gas": 1938351, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0" + ] + }, + { + "pc": 539, + "op": "PUSH1", + "gas": 1938349, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80" + ] + }, + { + "pc": 541, + "op": "DUP2", + "gas": 1938346, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0" + ] + }, + { + "pc": 542, + "op": "DUP1", + "gas": 1938343, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0", + "0x80" + ] + }, + { + "pc": 543, + "op": "MLOAD", + "gas": 1938340, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 544, + "op": "SWAP1", + "gas": 1938337, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0", + "0x80", + "0xd" + ] + }, + { + "pc": 545, + "op": "PUSH1", + "gas": 1938334, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0", + "0xd", + "0x80" + ] + }, + { + "pc": 547, + "op": "ADD", + "gas": 1938331, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0", + "0xd", + "0x80", + "0x20" + ] + }, + { + "pc": 548, + "op": "KECCAK256", + "gas": 1938328, + "gasCost": 36, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0", + "0xd", + "0xa0" + ] + }, + { + "pc": 549, + "op": "SWAP1", + "gas": 1938292, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 550, + "op": "POP", + "gas": 1938289, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x0" + ] + }, + { + "pc": 551, + "op": "DUP1", + "gas": 1938287, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 552, + "op": "SWAP3", + "gas": 1938284, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 553, + "op": "POP", + "gas": 1938281, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x0" + ] + }, + { + "pc": 554, + "op": "POP", + "gas": 1938279, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 555, + "op": "POP", + "gas": 1938277, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80" + ] + }, + { + "pc": 556, + "op": "SWAP1", + "gas": 1938275, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x15f", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 557, + "op": "JUMP", + "gas": 1938272, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x15f" + ] + }, + { + "pc": 351, + "op": "JUMPDEST", + "gas": 1938264, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 352, + "op": "POP", + "gas": 1938263, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 353, + "op": "PUSH1", + "gas": 1938261, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 355, + "op": "SWAP1", + "gas": 1938258, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1" + ] + }, + { + "pc": 356, + "op": "POP", + "gas": 1938255, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1", + "0x0" + ] + }, + { + "pc": 357, + "op": "SWAP2", + "gas": 1938253, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1" + ] + }, + { + "pc": 358, + "op": "SWAP1", + "gas": 1938250, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x1", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0xbc" + ] + }, + { + "pc": 359, + "op": "POP", + "gas": 1938247, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x1", + "0xbc", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 360, + "op": "JUMP", + "gas": 1938245, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x1", + "0xbc" + ] + }, + { + "pc": 188, + "op": "JUMPDEST", + "gas": 1938237, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x1" + ] + }, + { + "pc": 189, + "op": "POP", + "gas": 1938236, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x1" + ] + }, + { + "pc": 190, + "op": "PUSH3", + "gas": 1938234, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 194, + "op": "JUMP", + "gas": 1938231, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x482" + ] + }, + { + "pc": 1154, + "op": "JUMPDEST", + "gas": 1938223, + "gasCost": 1, + "depth": 2, + "stack": [] + }, + { + "pc": 1155, + "op": "PUSH2", + "gas": 1938222, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 1158, + "op": "DUP1", + "gas": 1938219, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x651" + ] + }, + { + "pc": 1159, + "op": "PUSH3", + "gas": 1938216, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x651", + "0x651" + ] + }, + { + "pc": 1163, + "op": "PUSH1", + "gas": 1938213, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x651", + "0x651", + "0x492" + ] + }, + { + "pc": 1165, + "op": "CODECOPY", + "gas": 1938210, + "gasCost": 290, + "depth": 2, + "stack": [ + "0x651", + "0x651", + "0x492", + "0x0" + ] + }, + { + "pc": 1166, + "op": "PUSH1", + "gas": 1937920, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x651" + ] + }, + { + "pc": 1168, + "op": "RETURN", + "gas": 1937917, + "gasCost": 0, + "depth": 2, + "stack": [ + "0x651", + "0x0" + ] + }, + { + "pc": 865, + "op": "DUP1", + "gas": 1646438, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 866, + "op": "ISZERO", + "gas": 1646435, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 867, + "op": "DUP1", + "gas": 1646432, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ] + }, + { + "pc": 868, + "op": "ISZERO", + "gas": 1646429, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0" + ] + }, + { + "pc": 869, + "op": "PUSH3", + "gas": 1646426, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1" + ] + }, + { + "pc": 873, + "op": "JUMPI", + "gas": 1646423, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x373" + ] + }, + { + "pc": 883, + "op": "JUMPDEST", + "gas": 1646413, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ] + }, + { + "pc": 884, + "op": "POP", + "gas": 1646412, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ] + }, + { + "pc": 885, + "op": "PUSH1", + "gas": 1646410, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 887, + "op": "DUP1", + "gas": 1646407, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ] + }, + { + "pc": 888, + "op": "PUSH2", + "gas": 1646404, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0" + ] + }, + { + "pc": 891, + "op": "EXP", + "gas": 1646401, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0", + "0x100" + ] + }, + { + "pc": 892, + "op": "DUP2", + "gas": 1646391, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1" + ] + }, + { + "pc": 893, + "op": "SLOAD", + "gas": 1646388, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x0" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 894, + "op": "DUP2", + "gas": 1644288, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 895, + "op": "PUSH20", + "gas": 1644285, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 916, + "op": "MUL", + "gas": 1644282, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x0", + "0x1", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 917, + "op": "NOT", + "gas": 1644277, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 918, + "op": "AND", + "gas": 1644274, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x0", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" + ] + }, + { + "pc": 919, + "op": "SWAP1", + "gas": 1644271, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 920, + "op": "DUP4", + "gas": 1644268, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 921, + "op": "PUSH20", + "gas": 1644265, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0", + "0x1", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 942, + "op": "AND", + "gas": 1644262, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0", + "0x1", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 943, + "op": "MUL", + "gas": 1644259, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0", + "0x1", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 944, + "op": "OR", + "gas": 1644254, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 945, + "op": "SWAP1", + "gas": 1644251, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 946, + "op": "SSTORE", + "gas": 1644248, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "00000000000000000000000061a286b8e87e2d31c475d71c85a0020584c44bae" + } + }, + { + "pc": 947, + "op": "POP", + "gas": 1624248, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 948, + "op": "DUP2", + "gas": 1624246, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0" + ] + }, + { + "pc": 949, + "op": "PUSH1", + "gas": 1624243, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 951, + "op": "PUSH1", + "gas": 1624240, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1" + ] + }, + { + "pc": 953, + "op": "DUP3", + "gas": 1624237, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0" + ] + }, + { + "pc": 954, + "op": "DUP3", + "gas": 1624234, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8" + ] + }, + { + "pc": 955, + "op": "SLOAD", + "gas": 1624231, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "00000000000000000000000061a286b8e87e2d31c475d71c85a0020584c44bae", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 956, + "op": "PUSH3", + "gas": 1622131, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x0" + ] + }, + { + "pc": 960, + "op": "SWAP2", + "gas": 1622128, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x0", + "0x3c7" + ] + }, + { + "pc": 961, + "op": "SWAP1", + "gas": 1622125, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x0", + "0x3e8" + ] + }, + { + "pc": 962, + "op": "PUSH3", + "gas": 1622122, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0" + ] + }, + { + "pc": 966, + "op": "JUMP", + "gas": 1622119, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0xbb7" + ] + }, + { + "pc": 2999, + "op": "JUMPDEST", + "gas": 1622111, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3000, + "op": "PUSH1", + "gas": 1622110, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3002, + "op": "PUSH3", + "gas": 1622107, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3006, + "op": "DUP3", + "gas": 1622104, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3007, + "op": "PUSH3", + "gas": 1622101, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 3011, + "op": "JUMP", + "gas": 1622098, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1622090, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1622089, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1622086, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1622083, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1622080, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1622078, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1622075, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1622072, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1622070, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3012, + "op": "JUMPDEST", + "gas": 1622062, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3013, + "op": "SWAP2", + "gas": 1622061, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3014, + "op": "POP", + "gas": 1622058, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3015, + "op": "PUSH3", + "gas": 1622056, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3019, + "op": "DUP4", + "gas": 1622053, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1" + ] + }, + { + "pc": 3020, + "op": "PUSH3", + "gas": 1622050, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8" + ] + }, + { + "pc": 3024, + "op": "JUMP", + "gas": 1622047, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1622039, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1622038, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1622035, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1622032, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1622029, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1622027, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xbd1", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1622024, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0x3e8", + "0xbd1" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1622021, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0xbd1", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1622019, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0xbd1" + ] + }, + { + "pc": 3025, + "op": "JUMPDEST", + "gas": 1622011, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3026, + "op": "SWAP3", + "gas": 1622010, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3027, + "op": "POP", + "gas": 1622007, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3028, + "op": "DUP3", + "gas": 1622005, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3029, + "op": "PUSH32", + "gas": 1622002, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3062, + "op": "SUB", + "gas": 1621999, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 3063, + "op": "DUP3", + "gas": 1621996, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc17" + ] + }, + { + "pc": 3064, + "op": "GT", + "gas": 1621993, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc17", + "0x0" + ] + }, + { + "pc": 3065, + "op": "ISZERO", + "gas": 1621990, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3066, + "op": "PUSH3", + "gas": 1621987, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 3070, + "op": "JUMPI", + "gas": 1621984, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x1", + "0xc09" + ] + }, + { + "pc": 3081, + "op": "JUMPDEST", + "gas": 1621974, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3082, + "op": "DUP3", + "gas": 1621973, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3083, + "op": "DUP3", + "gas": 1621970, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3084, + "op": "ADD", + "gas": 1621967, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3085, + "op": "SWAP1", + "gas": 1621964, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3086, + "op": "POP", + "gas": 1621961, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3087, + "op": "SWAP3", + "gas": 1621959, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3c7", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3088, + "op": "SWAP2", + "gas": 1621956, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x3e8", + "0x0", + "0x3c7" + ] + }, + { + "pc": 3089, + "op": "POP", + "gas": 1621953, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x3c7", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3090, + "op": "POP", + "gas": 1621951, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x3c7", + "0x0" + ] + }, + { + "pc": 3091, + "op": "JUMP", + "gas": 1621949, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8", + "0x3c7" + ] + }, + { + "pc": 967, + "op": "JUMPDEST", + "gas": 1621941, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8" + ] + }, + { + "pc": 968, + "op": "SWAP3", + "gas": 1621940, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8" + ] + }, + { + "pc": 969, + "op": "POP", + "gas": 1621937, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0", + "0x3e8" + ] + }, + { + "pc": 970, + "op": "POP", + "gas": 1621935, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x0" + ] + }, + { + "pc": 971, + "op": "DUP2", + "gas": 1621933, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1" + ] + }, + { + "pc": 972, + "op": "SWAP1", + "gas": 1621930, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x1", + "0x3e8" + ] + }, + { + "pc": 973, + "op": "SSTORE", + "gas": 1621927, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8", + "0x3e8", + "0x1" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "00000000000000000000000061a286b8e87e2d31c475d71c85a0020584c44bae", + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8" + } + }, + { + "pc": 974, + "op": "POP", + "gas": 1601927, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 975, + "op": "PUSH3", + "gas": 1601925, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0" + ] + }, + { + "pc": 979, + "op": "PUSH1", + "gas": 1601922, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7" + ] + }, + { + "pc": 981, + "op": "DUP4", + "gas": 1601919, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x1" + ] + }, + { + "pc": 982, + "op": "PUSH3", + "gas": 1601916, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x1", + "0x3e8" + ] + }, + { + "pc": 986, + "op": "SWAP2", + "gas": 1601913, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x1", + "0x3e8", + "0x3e1" + ] + }, + { + "pc": 987, + "op": "SWAP1", + "gas": 1601910, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x3e8", + "0x1" + ] + }, + { + "pc": 988, + "op": "PUSH3", + "gas": 1601907, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8" + ] + }, + { + "pc": 992, + "op": "JUMP", + "gas": 1601904, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0xbb7" + ] + }, + { + "pc": 2999, + "op": "JUMPDEST", + "gas": 1601896, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8" + ] + }, + { + "pc": 3000, + "op": "PUSH1", + "gas": 1601895, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8" + ] + }, + { + "pc": 3002, + "op": "PUSH3", + "gas": 1601892, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3006, + "op": "DUP3", + "gas": 1601889, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3007, + "op": "PUSH3", + "gas": 1601886, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8" + ] + }, + { + "pc": 3011, + "op": "JUMP", + "gas": 1601883, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1601875, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1601874, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1601871, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1601868, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1601865, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1601863, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbc4", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1601860, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0x3e8", + "0xbc4" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1601857, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0xbc4", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1601855, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0xbc4" + ] + }, + { + "pc": 3012, + "op": "JUMPDEST", + "gas": 1601847, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3013, + "op": "SWAP2", + "gas": 1601846, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3014, + "op": "POP", + "gas": 1601843, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 3015, + "op": "PUSH3", + "gas": 1601841, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3019, + "op": "DUP4", + "gas": 1601838, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1" + ] + }, + { + "pc": 3020, + "op": "PUSH3", + "gas": 1601835, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1" + ] + }, + { + "pc": 3024, + "op": "JUMP", + "gas": 1601832, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1601824, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1601823, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1601820, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1601817, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1601814, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1601812, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xbd1", + "0x1", + "0x1" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1601809, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x1", + "0xbd1" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1601806, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xbd1", + "0x1" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1601804, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xbd1" + ] + }, + { + "pc": 3025, + "op": "JUMPDEST", + "gas": 1601796, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3026, + "op": "SWAP3", + "gas": 1601795, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3027, + "op": "POP", + "gas": 1601792, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3028, + "op": "DUP3", + "gas": 1601790, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3029, + "op": "PUSH32", + "gas": 1601787, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3062, + "op": "SUB", + "gas": 1601784, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 3063, + "op": "DUP3", + "gas": 1601781, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + ] + }, + { + "pc": 3064, + "op": "GT", + "gas": 1601778, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x3e8" + ] + }, + { + "pc": 3065, + "op": "ISZERO", + "gas": 1601775, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 3066, + "op": "PUSH3", + "gas": 1601772, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3070, + "op": "JUMPI", + "gas": 1601769, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xc09" + ] + }, + { + "pc": 3081, + "op": "JUMPDEST", + "gas": 1601759, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3082, + "op": "DUP3", + "gas": 1601758, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 3083, + "op": "DUP3", + "gas": 1601755, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 3084, + "op": "ADD", + "gas": 1601752, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x3e8" + ] + }, + { + "pc": 3085, + "op": "SWAP1", + "gas": 1601749, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3086, + "op": "POP", + "gas": 1601746, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3087, + "op": "SWAP3", + "gas": 1601744, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e1", + "0x1", + "0x3e8", + "0x3e9" + ] + }, + { + "pc": 3088, + "op": "SWAP2", + "gas": 1601741, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x1", + "0x3e8", + "0x3e1" + ] + }, + { + "pc": 3089, + "op": "POP", + "gas": 1601738, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x3e1", + "0x3e8", + "0x1" + ] + }, + { + "pc": 3090, + "op": "POP", + "gas": 1601736, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x3e1", + "0x3e8" + ] + }, + { + "pc": 3091, + "op": "JUMP", + "gas": 1601734, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x3e1" + ] + }, + { + "pc": 993, + "op": "JUMPDEST", + "gas": 1601726, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9" + ] + }, + { + "pc": 994, + "op": "PUSH3", + "gas": 1601725, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9" + ] + }, + { + "pc": 998, + "op": "JUMP", + "gas": 1601722, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x280" + ] + }, + { + "pc": 640, + "op": "JUMPDEST", + "gas": 1601714, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9" + ] + }, + { + "pc": 641, + "op": "PUSH1", + "gas": 1601713, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9" + ] + }, + { + "pc": 643, + "op": "CALLER", + "gas": 1601710, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0" + ] + }, + { + "pc": 644, + "op": "PUSH20", + "gas": 1601708, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address" + ] + }, + { + "pc": 665, + "op": "AND", + "gas": 1601705, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 666, + "op": "PUSH32", + "gas": 1601702, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address" + ] + }, + { + "pc": 699, + "op": "DUP4", + "gas": 1601699, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0" + ] + }, + { + "pc": 700, + "op": "PUSH1", + "gas": 1601696, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9" + ] + }, + { + "pc": 702, + "op": "MLOAD", + "gas": 1601693, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x40" + ] + }, + { + "pc": 703, + "op": "PUSH3", + "gas": 1601690, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x80" + ] + }, + { + "pc": 707, + "op": "SWAP2", + "gas": 1601687, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x80", + "0x2ca" + ] + }, + { + "pc": 708, + "op": "SWAP1", + "gas": 1601684, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x80", + "0x3e9" + ] + }, + { + "pc": 709, + "op": "PUSH3", + "gas": 1601681, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80" + ] + }, + { + "pc": 713, + "op": "JUMP", + "gas": 1601678, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xb56" + ] + }, + { + "pc": 2902, + "op": "JUMPDEST", + "gas": 1601670, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80" + ] + }, + { + "pc": 2903, + "op": "PUSH1", + "gas": 1601669, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80" + ] + }, + { + "pc": 2905, + "op": "PUSH1", + "gas": 1601666, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x0" + ] + }, + { + "pc": 2907, + "op": "DUP3", + "gas": 1601663, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x0", + "0x40" + ] + }, + { + "pc": 2908, + "op": "ADD", + "gas": 1601660, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x0", + "0x40", + "0x80" + ] + }, + { + "pc": 2909, + "op": "SWAP1", + "gas": 1601657, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x0", + "0xc0" + ] + }, + { + "pc": 2910, + "op": "POP", + "gas": 1601654, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x0" + ] + }, + { + "pc": 2911, + "op": "PUSH3", + "gas": 1601652, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 2915, + "op": "PUSH1", + "gas": 1601649, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d" + ] + }, + { + "pc": 2917, + "op": "DUP4", + "gas": 1601646, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x0" + ] + }, + { + "pc": 2918, + "op": "ADD", + "gas": 1601643, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x0", + "0x80" + ] + }, + { + "pc": 2919, + "op": "DUP5", + "gas": 1601640, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80" + ] + }, + { + "pc": 2920, + "op": "PUSH3", + "gas": 1601637, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2924, + "op": "JUMP", + "gas": 1601634, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x986" + ] + }, + { + "pc": 2438, + "op": "JUMPDEST", + "gas": 1601626, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2439, + "op": "PUSH3", + "gas": 1601625, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2443, + "op": "DUP2", + "gas": 1601622, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991" + ] + }, + { + "pc": 2444, + "op": "PUSH3", + "gas": 1601619, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9" + ] + }, + { + "pc": 2448, + "op": "JUMP", + "gas": 1601616, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1601608, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1601607, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1601604, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1601601, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1601598, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x3e9", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1601596, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x991", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1601593, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9", + "0x3e9", + "0x991" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1601590, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9", + "0x991", + "0x3e9" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1601588, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9", + "0x991" + ] + }, + { + "pc": 2449, + "op": "JUMPDEST", + "gas": 1601580, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 2450, + "op": "DUP3", + "gas": 1601579, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 2451, + "op": "MSTORE", + "gas": 1601576, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9", + "0x3e9", + "0x80" + ] + }, + { + "pc": 2452, + "op": "POP", + "gas": 1601573, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2453, + "op": "POP", + "gas": 1601571, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d", + "0x80" + ] + }, + { + "pc": 2454, + "op": "JUMP", + "gas": 1601569, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb6d" + ] + }, + { + "pc": 2925, + "op": "JUMPDEST", + "gas": 1601561, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 2926, + "op": "DUP2", + "gas": 1601560, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 2927, + "op": "DUP2", + "gas": 1601557, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x80" + ] + }, + { + "pc": 2928, + "op": "SUB", + "gas": 1601554, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x80", + "0xc0" + ] + }, + { + "pc": 2929, + "op": "PUSH1", + "gas": 1601551, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 2931, + "op": "DUP4", + "gas": 1601548, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0x20" + ] + }, + { + "pc": 2932, + "op": "ADD", + "gas": 1601545, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0x20", + "0x80" + ] + }, + { + "pc": 2933, + "op": "MSTORE", + "gas": 1601542, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0xa0" + ] + }, + { + "pc": 2934, + "op": "PUSH3", + "gas": 1601539, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 2938, + "op": "DUP2", + "gas": 1601536, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80" + ] + }, + { + "pc": 2939, + "op": "PUSH3", + "gas": 1601533, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0" + ] + }, + { + "pc": 2943, + "op": "JUMP", + "gas": 1601530, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0xb2f" + ] + }, + { + "pc": 2863, + "op": "JUMPDEST", + "gas": 1601522, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0" + ] + }, + { + "pc": 2864, + "op": "PUSH1", + "gas": 1601521, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0" + ] + }, + { + "pc": 2866, + "op": "PUSH3", + "gas": 1601518, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0" + ] + }, + { + "pc": 2870, + "op": "PUSH1", + "gas": 1601515, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e" + ] + }, + { + "pc": 2872, + "op": "DUP4", + "gas": 1601512, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe" + ] + }, + { + "pc": 2873, + "op": "PUSH3", + "gas": 1601509, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0" + ] + }, + { + "pc": 2877, + "op": "JUMP", + "gas": 1601506, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0xaf5" + ] + }, + { + "pc": 2805, + "op": "JUMPDEST", + "gas": 1601498, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0" + ] + }, + { + "pc": 2806, + "op": "PUSH1", + "gas": 1601497, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0" + ] + }, + { + "pc": 2808, + "op": "DUP3", + "gas": 1601494, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0" + ] + }, + { + "pc": 2809, + "op": "DUP3", + "gas": 1601491, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0xe" + ] + }, + { + "pc": 2810, + "op": "MSTORE", + "gas": 1601488, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0xe", + "0xc0" + ] + }, + { + "pc": 2811, + "op": "PUSH1", + "gas": 1601485, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0" + ] + }, + { + "pc": 2813, + "op": "DUP3", + "gas": 1601482, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 2814, + "op": "ADD", + "gas": 1601479, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 2815, + "op": "SWAP1", + "gas": 1601476, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 2816, + "op": "POP", + "gas": 1601473, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 2817, + "op": "SWAP3", + "gas": 1601471, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xb3e", + "0xe", + "0xc0", + "0xe0" + ] + }, + { + "pc": 2818, + "op": "SWAP2", + "gas": 1601468, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0", + "0xe", + "0xc0", + "0xb3e" + ] + }, + { + "pc": 2819, + "op": "POP", + "gas": 1601465, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0", + "0xb3e", + "0xc0", + "0xe" + ] + }, + { + "pc": 2820, + "op": "POP", + "gas": 1601463, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0", + "0xb3e", + "0xc0" + ] + }, + { + "pc": 2821, + "op": "JUMP", + "gas": 1601461, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0", + "0xb3e" + ] + }, + { + "pc": 2878, + "op": "JUMPDEST", + "gas": 1601453, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 2879, + "op": "SWAP2", + "gas": 1601452, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 2880, + "op": "POP", + "gas": 1601449, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 2881, + "op": "PUSH3", + "gas": 1601447, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0" + ] + }, + { + "pc": 2885, + "op": "DUP3", + "gas": 1601444, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b" + ] + }, + { + "pc": 2886, + "op": "PUSH3", + "gas": 1601441, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0" + ] + }, + { + "pc": 2890, + "op": "JUMP", + "gas": 1601438, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0xb06" + ] + }, + { + "pc": 2822, + "op": "JUMPDEST", + "gas": 1601430, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0" + ] + }, + { + "pc": 2823, + "op": "PUSH32", + "gas": 1601429, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0" + ] + }, + { + "pc": 2856, + "op": "PUSH1", + "gas": 1601426, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000" + ] + }, + { + "pc": 2858, + "op": "DUP3", + "gas": 1601423, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 2859, + "op": "ADD", + "gas": 1601420, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0x0", + "0xe0" + ] + }, + { + "pc": 2860, + "op": "MSTORE", + "gas": 1601417, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 2861, + "op": "POP", + "gas": 1601414, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b", + "0xe0" + ] + }, + { + "pc": 2862, + "op": "JUMP", + "gas": 1601412, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0xb4b" + ] + }, + { + "pc": 2891, + "op": "JUMPDEST", + "gas": 1601404, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0" + ] + }, + { + "pc": 2892, + "op": "PUSH1", + "gas": 1601403, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0" + ] + }, + { + "pc": 2894, + "op": "DUP3", + "gas": 1601400, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 2895, + "op": "ADD", + "gas": 1601397, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 2896, + "op": "SWAP1", + "gas": 1601394, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 2897, + "op": "POP", + "gas": 1601391, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 2898, + "op": "SWAP2", + "gas": 1601389, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0xb80", + "0xe0", + "0x100" + ] + }, + { + "pc": 2899, + "op": "SWAP1", + "gas": 1601386, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0xe0", + "0xb80" + ] + }, + { + "pc": 2900, + "op": "POP", + "gas": 1601383, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0xb80", + "0xe0" + ] + }, + { + "pc": 2901, + "op": "JUMP", + "gas": 1601381, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0xb80" + ] + }, + { + "pc": 2944, + "op": "JUMPDEST", + "gas": 1601373, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 2945, + "op": "SWAP1", + "gas": 1601372, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 2946, + "op": "POP", + "gas": 1601369, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x100", + "0xc0" + ] + }, + { + "pc": 2947, + "op": "SWAP3", + "gas": 1601367, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x2ca", + "0x3e9", + "0x80", + "0x100" + ] + }, + { + "pc": 2948, + "op": "SWAP2", + "gas": 1601364, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x3e9", + "0x80", + "0x2ca" + ] + }, + { + "pc": 2949, + "op": "POP", + "gas": 1601361, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x2ca", + "0x80", + "0x3e9" + ] + }, + { + "pc": 2950, + "op": "POP", + "gas": 1601359, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x2ca", + "0x80" + ] + }, + { + "pc": 2951, + "op": "JUMP", + "gas": 1601357, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x2ca" + ] + }, + { + "pc": 714, + "op": "JUMPDEST", + "gas": 1601349, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 715, + "op": "PUSH1", + "gas": 1601348, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 717, + "op": "MLOAD", + "gas": 1601345, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x40" + ] + }, + { + "pc": 718, + "op": "DUP1", + "gas": 1601342, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80" + ] + }, + { + "pc": 719, + "op": "SWAP2", + "gas": 1601339, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80", + "0x80" + ] + }, + { + "pc": 720, + "op": "SUB", + "gas": 1601336, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80", + "0x100" + ] + }, + { + "pc": 721, + "op": "SWAP1", + "gas": 1601333, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 722, + "op": "LOG2", + "gas": 1601330, + "gasCost": 2149, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "OWNER.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 723, + "op": "DUP2", + "gas": 1599181, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0" + ] + }, + { + "pc": 724, + "op": "PUSH1", + "gas": 1599178, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 726, + "op": "PUSH1", + "gas": 1599175, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3" + ] + }, + { + "pc": 728, + "op": "DUP3", + "gas": 1599172, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0" + ] + }, + { + "pc": 729, + "op": "DUP3", + "gas": 1599169, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9" + ] + }, + { + "pc": 730, + "op": "SLOAD", + "gas": 1599166, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x3" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "00000000000000000000000061a286b8e87e2d31c475d71c85a0020584c44bae", + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8", + "0000000000000000000000000000000000000000000000000000000000000003": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "pc": 731, + "op": "PUSH3", + "gas": 1597066, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x0" + ] + }, + { + "pc": 735, + "op": "SWAP2", + "gas": 1597063, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x0", + "0x2e6" + ] + }, + { + "pc": 736, + "op": "SWAP1", + "gas": 1597060, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x0", + "0x3e9" + ] + }, + { + "pc": 737, + "op": "PUSH3", + "gas": 1597057, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0" + ] + }, + { + "pc": 741, + "op": "JUMP", + "gas": 1597054, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0xbb7" + ] + }, + { + "pc": 2999, + "op": "JUMPDEST", + "gas": 1597046, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3000, + "op": "PUSH1", + "gas": 1597045, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3002, + "op": "PUSH3", + "gas": 1597042, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3006, + "op": "DUP3", + "gas": 1597039, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3007, + "op": "PUSH3", + "gas": 1597036, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 3011, + "op": "JUMP", + "gas": 1597033, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1597025, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1597024, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1597021, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1597018, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1597015, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1597013, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbc4", + "0x0", + "0x0" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1597010, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1597007, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0", + "0xbc4", + "0x0" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1597005, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0", + "0xbc4" + ] + }, + { + "pc": 3012, + "op": "JUMPDEST", + "gas": 1596997, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3013, + "op": "SWAP2", + "gas": 1596996, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3014, + "op": "POP", + "gas": 1596993, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3015, + "op": "PUSH3", + "gas": 1596991, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3019, + "op": "DUP4", + "gas": 1596988, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1" + ] + }, + { + "pc": 3020, + "op": "PUSH3", + "gas": 1596985, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9" + ] + }, + { + "pc": 3024, + "op": "JUMP", + "gas": 1596982, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1596974, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1596973, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1596970, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1596967, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1596964, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x3e9", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1596962, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xbd1", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1596959, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0x3e9", + "0xbd1" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1596956, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0xbd1", + "0x3e9" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1596954, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0xbd1" + ] + }, + { + "pc": 3025, + "op": "JUMPDEST", + "gas": 1596946, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3026, + "op": "SWAP3", + "gas": 1596945, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3027, + "op": "POP", + "gas": 1596942, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3028, + "op": "DUP3", + "gas": 1596940, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3029, + "op": "PUSH32", + "gas": 1596937, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3062, + "op": "SUB", + "gas": 1596934, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 3063, + "op": "DUP3", + "gas": 1596931, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc16" + ] + }, + { + "pc": 3064, + "op": "GT", + "gas": 1596928, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc16", + "0x0" + ] + }, + { + "pc": 3065, + "op": "ISZERO", + "gas": 1596925, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 3066, + "op": "PUSH3", + "gas": 1596922, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 3070, + "op": "JUMPI", + "gas": 1596919, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x1", + "0xc09" + ] + }, + { + "pc": 3081, + "op": "JUMPDEST", + "gas": 1596909, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3082, + "op": "DUP3", + "gas": 1596908, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0" + ] + }, + { + "pc": 3083, + "op": "DUP3", + "gas": 1596905, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3084, + "op": "ADD", + "gas": 1596902, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3085, + "op": "SWAP1", + "gas": 1596899, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3086, + "op": "POP", + "gas": 1596896, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x3e9", + "0x0" + ] + }, + { + "pc": 3087, + "op": "SWAP3", + "gas": 1596894, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x2e6", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3088, + "op": "SWAP2", + "gas": 1596891, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x3e9", + "0x0", + "0x2e6" + ] + }, + { + "pc": 3089, + "op": "POP", + "gas": 1596888, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x2e6", + "0x0", + "0x3e9" + ] + }, + { + "pc": 3090, + "op": "POP", + "gas": 1596886, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x2e6", + "0x0" + ] + }, + { + "pc": 3091, + "op": "JUMP", + "gas": 1596884, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9", + "0x2e6" + ] + }, + { + "pc": 742, + "op": "JUMPDEST", + "gas": 1596876, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9" + ] + }, + { + "pc": 743, + "op": "SWAP3", + "gas": 1596875, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9" + ] + }, + { + "pc": 744, + "op": "POP", + "gas": 1596872, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0", + "0x3e9" + ] + }, + { + "pc": 745, + "op": "POP", + "gas": 1596870, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x0" + ] + }, + { + "pc": 746, + "op": "DUP2", + "gas": 1596868, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3" + ] + }, + { + "pc": 747, + "op": "SWAP1", + "gas": 1596865, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3", + "0x3e9" + ] + }, + { + "pc": 748, + "op": "SSTORE", + "gas": 1596862, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9", + "0x3e9", + "0x3" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "00000000000000000000000061a286b8e87e2d31c475d71c85a0020584c44bae", + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8", + "0000000000000000000000000000000000000000000000000000000000000003": "00000000000000000000000000000000000000000000000000000000000003e9" + } + }, + { + "pc": 749, + "op": "POP", + "gas": 1576862, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 750, + "op": "PUSH1", + "gas": 1576860, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0" + ] + }, + { + "pc": 752, + "op": "SWAP1", + "gas": 1576857, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x0", + "0x2" + ] + }, + { + "pc": 753, + "op": "POP", + "gas": 1576854, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x2", + "0x0" + ] + }, + { + "pc": 754, + "op": "SWAP2", + "gas": 1576852, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3e7", + "0x3e9", + "0x2" + ] + }, + { + "pc": 755, + "op": "SWAP1", + "gas": 1576849, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x2", + "0x3e9", + "0x3e7" + ] + }, + { + "pc": 756, + "op": "POP", + "gas": 1576846, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x2", + "0x3e7", + "0x3e9" + ] + }, + { + "pc": 757, + "op": "JUMP", + "gas": 1576844, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x2", + "0x3e7" + ] + }, + { + "pc": 999, + "op": "JUMPDEST", + "gas": 1576836, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x2" + ] + }, + { + "pc": 1000, + "op": "POP", + "gas": 1576835, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x2" + ] + }, + { + "pc": 1001, + "op": "PUSH3", + "gas": 1576833, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1005, + "op": "PUSH3", + "gas": 1576830, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2" + ] + }, + { + "pc": 1009, + "op": "JUMP", + "gas": 1576827, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x231" + ] + }, + { + "pc": 561, + "op": "JUMPDEST", + "gas": 1576819, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2" + ] + }, + { + "pc": 562, + "op": "PUSH1", + "gas": 1576818, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2" + ] + }, + { + "pc": 564, + "op": "DUP1", + "gas": 1576815, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0" + ] + }, + { + "pc": 565, + "op": "PUSH1", + "gas": 1576812, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0" + ] + }, + { + "pc": 567, + "op": "MLOAD", + "gas": 1576809, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x40" + ] + }, + { + "pc": 568, + "op": "DUP1", + "gas": 1576806, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 569, + "op": "PUSH1", + "gas": 1576803, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 571, + "op": "ADD", + "gas": 1576800, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0x80", + "0x40" + ] + }, + { + "pc": 572, + "op": "PUSH1", + "gas": 1576797, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0xc0" + ] + }, + { + "pc": 574, + "op": "MSTORE", + "gas": 1576794, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 575, + "op": "DUP1", + "gas": 1576791, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 576, + "op": "PUSH1", + "gas": 1576788, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 578, + "op": "DUP2", + "gas": 1576785, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0x80", + "0xd" + ] + }, + { + "pc": 579, + "op": "MSTORE", + "gas": 1576782, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0x80", + "0xd", + "0x80" + ] + }, + { + "pc": 580, + "op": "PUSH1", + "gas": 1576779, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 582, + "op": "ADD", + "gas": 1576776, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0x80", + "0x20" + ] + }, + { + "pc": 583, + "op": "PUSH32", + "gas": 1576773, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0xa0" + ] + }, + { + "pc": 616, + "op": "DUP2", + "gas": 1576770, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0xa0", + "0x48656c6c6f2c20776f726c642100000000000000000000000000000000000000" + ] + }, + { + "pc": 617, + "op": "MSTORE", + "gas": 1576767, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0xa0", + "0x48656c6c6f2c20776f726c642100000000000000000000000000000000000000", + "0xa0" + ] + }, + { + "pc": 618, + "op": "POP", + "gas": 1576764, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80", + "0xa0" + ] + }, + { + "pc": 619, + "op": "SWAP1", + "gas": 1576762, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 620, + "op": "POP", + "gas": 1576759, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0" + ] + }, + { + "pc": 621, + "op": "PUSH1", + "gas": 1576757, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80" + ] + }, + { + "pc": 623, + "op": "DUP2", + "gas": 1576754, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0" + ] + }, + { + "pc": 624, + "op": "DUP1", + "gas": 1576751, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0", + "0x80" + ] + }, + { + "pc": 625, + "op": "MLOAD", + "gas": 1576748, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 626, + "op": "SWAP1", + "gas": 1576745, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0", + "0x80", + "0xd" + ] + }, + { + "pc": 627, + "op": "PUSH1", + "gas": 1576742, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0", + "0xd", + "0x80" + ] + }, + { + "pc": 629, + "op": "ADD", + "gas": 1576739, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0", + "0xd", + "0x80", + "0x20" + ] + }, + { + "pc": 630, + "op": "KECCAK256", + "gas": 1576736, + "gasCost": 36, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0", + "0xd", + "0xa0" + ] + }, + { + "pc": 631, + "op": "SWAP1", + "gas": 1576700, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 632, + "op": "POP", + "gas": 1576697, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x0" + ] + }, + { + "pc": 633, + "op": "DUP1", + "gas": 1576695, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 634, + "op": "SWAP3", + "gas": 1576692, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 635, + "op": "POP", + "gas": 1576689, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x0" + ] + }, + { + "pc": 636, + "op": "POP", + "gas": 1576687, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 637, + "op": "POP", + "gas": 1576685, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80" + ] + }, + { + "pc": 638, + "op": "SWAP1", + "gas": 1576683, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x3f2", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 639, + "op": "JUMP", + "gas": 1576680, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x3f2" + ] + }, + { + "pc": 1010, + "op": "JUMPDEST", + "gas": 1576672, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 1011, + "op": "POP", + "gas": 1576671, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 1012, + "op": "PUSH1", + "gas": 1576669, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1014, + "op": "DUP1", + "gas": 1576666, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1015, + "op": "SLOAD", + "gas": 1576663, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x0", + "0x0" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "00000000000000000000000061a286b8e87e2d31c475d71c85a0020584c44bae", + "0000000000000000000000000000000000000000000000000000000000000001": "00000000000000000000000000000000000000000000000000000000000003e8", + "0000000000000000000000000000000000000000000000000000000000000003": "00000000000000000000000000000000000000000000000000000000000003e9" + } + }, + { + "pc": 1016, + "op": "SWAP1", + "gas": 1576563, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1017, + "op": "PUSH2", + "gas": 1576560, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ] + }, + { + "pc": 1020, + "op": "EXP", + "gas": 1576557, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x100" + ] + }, + { + "pc": 1021, + "op": "SWAP1", + "gas": 1576547, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x1" + ] + }, + { + "pc": 1022, + "op": "DIV", + "gas": 1576544, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x1", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1023, + "op": "PUSH20", + "gas": 1576539, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1044, + "op": "AND", + "gas": 1576536, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 1045, + "op": "PUSH20", + "gas": 1576533, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1066, + "op": "AND", + "gas": 1576530, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 1067, + "op": "PUSH4", + "gas": 1576527, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1072, + "op": "DUP4", + "gas": 1576524, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68" + ] + }, + { + "pc": 1073, + "op": "PUSH1", + "gas": 1576521, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8" + ] + }, + { + "pc": 1075, + "op": "MLOAD", + "gas": 1576518, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0x40" + ] + }, + { + "pc": 1076, + "op": "DUP3", + "gas": 1576515, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0" + ] + }, + { + "pc": 1077, + "op": "PUSH4", + "gas": 1576512, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d68" + ] + }, + { + "pc": 1082, + "op": "AND", + "gas": 1576509, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d68", + "0xffffffff" + ] + }, + { + "pc": 1083, + "op": "PUSH1", + "gas": 1576506, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d68" + ] + }, + { + "pc": 1085, + "op": "SHL", + "gas": 1576503, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d68", + "0xe0" + ] + }, + { + "pc": 1086, + "op": "DUP2", + "gas": 1576500, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d6800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 1087, + "op": "MSTORE", + "gas": 1576497, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0", + "0xa0712d6800000000000000000000000000000000000000000000000000000000", + "0xc0" + ] + }, + { + "pc": 1088, + "op": "PUSH1", + "gas": 1576494, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0" + ] + }, + { + "pc": 1090, + "op": "ADD", + "gas": 1576491, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc0", + "0x4" + ] + }, + { + "pc": 1091, + "op": "PUSH3", + "gas": 1576488, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 1095, + "op": "SWAP2", + "gas": 1576485, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x3e8", + "0xc4", + "0x44e" + ] + }, + { + "pc": 1096, + "op": "SWAP1", + "gas": 1576482, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 1097, + "op": "PUSH3", + "gas": 1576479, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 1101, + "op": "JUMP", + "gas": 1576476, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0x997" + ] + }, + { + "pc": 2455, + "op": "JUMPDEST", + "gas": 1576468, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 2456, + "op": "PUSH1", + "gas": 1576467, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 2458, + "op": "PUSH1", + "gas": 1576464, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0x0" + ] + }, + { + "pc": 2460, + "op": "DUP3", + "gas": 1576461, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0x0", + "0x20" + ] + }, + { + "pc": 2461, + "op": "ADD", + "gas": 1576458, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0x0", + "0x20", + "0xc4" + ] + }, + { + "pc": 2462, + "op": "SWAP1", + "gas": 1576455, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0x0", + "0xe4" + ] + }, + { + "pc": 2463, + "op": "POP", + "gas": 1576452, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x0" + ] + }, + { + "pc": 2464, + "op": "PUSH3", + "gas": 1576450, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4" + ] + }, + { + "pc": 2468, + "op": "PUSH1", + "gas": 1576447, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae" + ] + }, + { + "pc": 2470, + "op": "DUP4", + "gas": 1576444, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0x0" + ] + }, + { + "pc": 2471, + "op": "ADD", + "gas": 1576441, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0x0", + "0xc4" + ] + }, + { + "pc": 2472, + "op": "DUP5", + "gas": 1576438, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4" + ] + }, + { + "pc": 2473, + "op": "PUSH3", + "gas": 1576435, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2477, + "op": "JUMP", + "gas": 1576432, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x986" + ] + }, + { + "pc": 2438, + "op": "JUMPDEST", + "gas": 1576424, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2439, + "op": "PUSH3", + "gas": 1576423, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2443, + "op": "DUP2", + "gas": 1576420, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2444, + "op": "PUSH3", + "gas": 1576417, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2448, + "op": "JUMP", + "gas": 1576414, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1576406, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1576405, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1576402, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1576399, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1576396, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1576394, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x991", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1576391, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1576388, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8", + "0x991", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1576386, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8", + "0x991" + ] + }, + { + "pc": 2449, + "op": "JUMPDEST", + "gas": 1576378, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2450, + "op": "DUP3", + "gas": 1576377, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2451, + "op": "MSTORE", + "gas": 1576374, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8", + "0x3e8", + "0xc4" + ] + }, + { + "pc": 2452, + "op": "POP", + "gas": 1576371, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2453, + "op": "POP", + "gas": 1576369, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae", + "0xc4" + ] + }, + { + "pc": 2454, + "op": "JUMP", + "gas": 1576367, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4", + "0x9ae" + ] + }, + { + "pc": 2478, + "op": "JUMPDEST", + "gas": 1576359, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4" + ] + }, + { + "pc": 2479, + "op": "SWAP3", + "gas": 1576358, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0x44e", + "0x3e8", + "0xc4", + "0xe4" + ] + }, + { + "pc": 2480, + "op": "SWAP2", + "gas": 1576355, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x3e8", + "0xc4", + "0x44e" + ] + }, + { + "pc": 2481, + "op": "POP", + "gas": 1576352, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x44e", + "0xc4", + "0x3e8" + ] + }, + { + "pc": 2482, + "op": "POP", + "gas": 1576350, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x44e", + "0xc4" + ] + }, + { + "pc": 2483, + "op": "JUMP", + "gas": 1576348, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x44e" + ] + }, + { + "pc": 1102, + "op": "JUMPDEST", + "gas": 1576340, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4" + ] + }, + { + "pc": 1103, + "op": "PUSH1", + "gas": 1576339, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4" + ] + }, + { + "pc": 1105, + "op": "PUSH1", + "gas": 1576336, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20" + ] + }, + { + "pc": 1107, + "op": "MLOAD", + "gas": 1576333, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0x40" + ] + }, + { + "pc": 1108, + "op": "DUP1", + "gas": 1576330, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0" + ] + }, + { + "pc": 1109, + "op": "DUP4", + "gas": 1576327, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0xc0" + ] + }, + { + "pc": 1110, + "op": "SUB", + "gas": 1576324, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0xc0", + "0xe4" + ] + }, + { + "pc": 1111, + "op": "DUP2", + "gas": 1576321, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24" + ] + }, + { + "pc": 1112, + "op": "PUSH1", + "gas": 1576318, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0" + ] + }, + { + "pc": 1114, + "op": "DUP8", + "gas": 1576315, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0" + ] + }, + { + "pc": 1115, + "op": "DUP1", + "gas": 1576312, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1116, + "op": "EXTCODESIZE", + "gas": 1576309, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1117, + "op": "ISZERO", + "gas": 1576209, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x651" + ] + }, + { + "pc": 1118, + "op": "DUP1", + "gas": 1576206, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ] + }, + { + "pc": 1119, + "op": "ISZERO", + "gas": 1576203, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x0" + ] + }, + { + "pc": 1120, + "op": "PUSH3", + "gas": 1576200, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1" + ] + }, + { + "pc": 1124, + "op": "JUMPI", + "gas": 1576197, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0", + "0x1", + "0x469" + ] + }, + { + "pc": 1129, + "op": "JUMPDEST", + "gas": 1576187, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ] + }, + { + "pc": 1130, + "op": "POP", + "gas": 1576186, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0" + ] + }, + { + "pc": 1131, + "op": "GAS", + "gas": 1576184, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1132, + "op": "CALL", + "gas": 1576182, + "gasCost": 1551556, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x20", + "0xc0", + "0x24", + "0xc0", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0x180cf6" + ] + }, + { + "pc": 0, + "op": "PUSH1", + "gas": 1551456, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 1551453, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 1551450, + "gasCost": 12, + "depth": 2, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "CALLVALUE", + "gas": 1551438, + "gasCost": 2, + "depth": 2, + "stack": [] + }, + { + "pc": 6, + "op": "DUP1", + "gas": 1551436, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 7, + "op": "ISZERO", + "gas": 1551433, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 8, + "op": "PUSH2", + "gas": 1551430, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 11, + "op": "JUMPI", + "gas": 1551427, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x10" + ] + }, + { + "pc": 16, + "op": "JUMPDEST", + "gas": 1551417, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 17, + "op": "POP", + "gas": 1551416, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 18, + "op": "PUSH1", + "gas": 1551414, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 20, + "op": "CALLDATASIZE", + "gas": 1551411, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x4" + ] + }, + { + "pc": 21, + "op": "LT", + "gas": 1551409, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x4", + "0x24" + ] + }, + { + "pc": 22, + "op": "PUSH2", + "gas": 1551406, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 25, + "op": "JUMPI", + "gas": 1551403, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0x62" + ] + }, + { + "pc": 26, + "op": "PUSH1", + "gas": 1551393, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 28, + "op": "CALLDATALOAD", + "gas": 1551390, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 29, + "op": "PUSH1", + "gas": 1551387, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d6800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 31, + "op": "SHR", + "gas": 1551384, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d6800000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 32, + "op": "DUP1", + "gas": 1551381, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 33, + "op": "PUSH4", + "gas": 1551378, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 38, + "op": "EQ", + "gas": 1551375, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xa0712d68", + "0x1c717069" + ] + }, + { + "pc": 39, + "op": "PUSH2", + "gas": 1551372, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x0" + ] + }, + { + "pc": 42, + "op": "JUMPI", + "gas": 1551369, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x0", + "0x67" + ] + }, + { + "pc": 43, + "op": "DUP1", + "gas": 1551359, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 44, + "op": "PUSH4", + "gas": 1551356, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 49, + "op": "EQ", + "gas": 1551353, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xa0712d68", + "0x1c93908c" + ] + }, + { + "pc": 50, + "op": "PUSH2", + "gas": 1551350, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x0" + ] + }, + { + "pc": 53, + "op": "JUMPI", + "gas": 1551347, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x0", + "0x85" + ] + }, + { + "pc": 54, + "op": "DUP1", + "gas": 1551337, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 55, + "op": "PUSH4", + "gas": 1551334, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 60, + "op": "EQ", + "gas": 1551331, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xa0712d68", + "0x92954362" + ] + }, + { + "pc": 61, + "op": "PUSH2", + "gas": 1551328, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x0" + ] + }, + { + "pc": 64, + "op": "JUMPI", + "gas": 1551325, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x0", + "0xb5" + ] + }, + { + "pc": 65, + "op": "DUP1", + "gas": 1551315, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 66, + "op": "PUSH4", + "gas": 1551312, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 71, + "op": "EQ", + "gas": 1551309, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xa0712d68", + "0xa0712d68" + ] + }, + { + "pc": 72, + "op": "PUSH2", + "gas": 1551306, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1" + ] + }, + { + "pc": 75, + "op": "JUMPI", + "gas": 1551303, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1", + "0xbf" + ] + }, + { + "pc": 191, + "op": "JUMPDEST", + "gas": 1551293, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 192, + "op": "PUSH2", + "gas": 1551292, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68" + ] + }, + { + "pc": 195, + "op": "PUSH1", + "gas": 1551289, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9" + ] + }, + { + "pc": 197, + "op": "DUP1", + "gas": 1551286, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x4" + ] + }, + { + "pc": 198, + "op": "CALLDATASIZE", + "gas": 1551283, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x4", + "0x4" + ] + }, + { + "pc": 199, + "op": "SUB", + "gas": 1551281, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x4", + "0x4", + "0x24" + ] + }, + { + "pc": 200, + "op": "DUP2", + "gas": 1551278, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x4", + "0x20" + ] + }, + { + "pc": 201, + "op": "ADD", + "gas": 1551275, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x4", + "0x20", + "0x4" + ] + }, + { + "pc": 202, + "op": "SWAP1", + "gas": 1551272, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x4", + "0x24" + ] + }, + { + "pc": 203, + "op": "PUSH2", + "gas": 1551269, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x24", + "0x4" + ] + }, + { + "pc": 206, + "op": "SWAP2", + "gas": 1551266, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x24", + "0x4", + "0xd4" + ] + }, + { + "pc": 207, + "op": "SWAP1", + "gas": 1551263, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x4", + "0x24" + ] + }, + { + "pc": 208, + "op": "PUSH2", + "gas": 1551260, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4" + ] + }, + { + "pc": 211, + "op": "JUMP", + "gas": 1551257, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x343" + ] + }, + { + "pc": 835, + "op": "JUMPDEST", + "gas": 1551249, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4" + ] + }, + { + "pc": 836, + "op": "PUSH1", + "gas": 1551248, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4" + ] + }, + { + "pc": 838, + "op": "PUSH1", + "gas": 1551245, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 840, + "op": "DUP3", + "gas": 1551242, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x20" + ] + }, + { + "pc": 841, + "op": "DUP5", + "gas": 1551239, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x20", + "0x4" + ] + }, + { + "pc": 842, + "op": "SUB", + "gas": 1551236, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x20", + "0x4", + "0x24" + ] + }, + { + "pc": 843, + "op": "SLT", + "gas": 1551233, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x20", + "0x20" + ] + }, + { + "pc": 844, + "op": "ISZERO", + "gas": 1551230, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 845, + "op": "PUSH2", + "gas": 1551227, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x1" + ] + }, + { + "pc": 848, + "op": "JUMPI", + "gas": 1551224, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x1", + "0x359" + ] + }, + { + "pc": 857, + "op": "JUMPDEST", + "gas": 1551214, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 858, + "op": "PUSH1", + "gas": 1551213, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 860, + "op": "PUSH2", + "gas": 1551210, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 863, + "op": "DUP5", + "gas": 1551207, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367" + ] + }, + { + "pc": 864, + "op": "DUP3", + "gas": 1551204, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24" + ] + }, + { + "pc": 865, + "op": "DUP6", + "gas": 1551201, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x0" + ] + }, + { + "pc": 866, + "op": "ADD", + "gas": 1551198, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x0", + "0x4" + ] + }, + { + "pc": 867, + "op": "PUSH2", + "gas": 1551195, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4" + ] + }, + { + "pc": 870, + "op": "JUMP", + "gas": 1551192, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x32e" + ] + }, + { + "pc": 814, + "op": "JUMPDEST", + "gas": 1551184, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4" + ] + }, + { + "pc": 815, + "op": "PUSH1", + "gas": 1551183, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4" + ] + }, + { + "pc": 817, + "op": "DUP2", + "gas": 1551180, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 818, + "op": "CALLDATALOAD", + "gas": 1551177, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x0", + "0x4" + ] + }, + { + "pc": 819, + "op": "SWAP1", + "gas": 1551174, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x0", + "0x3e8" + ] + }, + { + "pc": 820, + "op": "POP", + "gas": 1551171, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 821, + "op": "PUSH2", + "gas": 1551169, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 824, + "op": "DUP2", + "gas": 1551166, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d" + ] + }, + { + "pc": 825, + "op": "PUSH2", + "gas": 1551163, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8" + ] + }, + { + "pc": 828, + "op": "JUMP", + "gas": 1551160, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x317" + ] + }, + { + "pc": 791, + "op": "JUMPDEST", + "gas": 1551152, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8" + ] + }, + { + "pc": 792, + "op": "PUSH2", + "gas": 1551151, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8" + ] + }, + { + "pc": 795, + "op": "DUP2", + "gas": 1551148, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320" + ] + }, + { + "pc": 796, + "op": "PUSH2", + "gas": 1551145, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320", + "0x3e8" + ] + }, + { + "pc": 799, + "op": "JUMP", + "gas": 1551142, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320", + "0x3e8", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1551134, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320", + "0x3e8" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1551133, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320", + "0x3e8" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1551130, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320", + "0x3e8", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1551127, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1551124, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1551122, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x320", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1551119, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x3e8", + "0x3e8", + "0x320" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1551116, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x3e8", + "0x320", + "0x3e8" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1551114, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x3e8", + "0x320" + ] + }, + { + "pc": 800, + "op": "JUMPDEST", + "gas": 1551106, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 801, + "op": "DUP2", + "gas": 1551105, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 802, + "op": "EQ", + "gas": 1551102, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 803, + "op": "PUSH2", + "gas": 1551099, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x1" + ] + }, + { + "pc": 806, + "op": "JUMPI", + "gas": 1551096, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8", + "0x1", + "0x32b" + ] + }, + { + "pc": 811, + "op": "JUMPDEST", + "gas": 1551086, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8" + ] + }, + { + "pc": 812, + "op": "POP", + "gas": 1551085, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d", + "0x3e8" + ] + }, + { + "pc": 813, + "op": "JUMP", + "gas": 1551083, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8", + "0x33d" + ] + }, + { + "pc": 829, + "op": "JUMPDEST", + "gas": 1551075, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 830, + "op": "SWAP3", + "gas": 1551074, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x367", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 831, + "op": "SWAP2", + "gas": 1551071, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0x24", + "0x4", + "0x367" + ] + }, + { + "pc": 832, + "op": "POP", + "gas": 1551068, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0x367", + "0x4", + "0x24" + ] + }, + { + "pc": 833, + "op": "POP", + "gas": 1551066, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0x367", + "0x4" + ] + }, + { + "pc": 834, + "op": "JUMP", + "gas": 1551064, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0x367" + ] + }, + { + "pc": 871, + "op": "JUMPDEST", + "gas": 1551056, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 872, + "op": "SWAP2", + "gas": 1551055, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 873, + "op": "POP", + "gas": 1551052, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 874, + "op": "POP", + "gas": 1551050, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 875, + "op": "SWAP3", + "gas": 1551048, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0xd4", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 876, + "op": "SWAP2", + "gas": 1551045, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x24", + "0x4", + "0xd4" + ] + }, + { + "pc": 877, + "op": "POP", + "gas": 1551042, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0xd4", + "0x4", + "0x24" + ] + }, + { + "pc": 878, + "op": "POP", + "gas": 1551040, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0xd4", + "0x4" + ] + }, + { + "pc": 879, + "op": "JUMP", + "gas": 1551038, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0xd4" + ] + }, + { + "pc": 212, + "op": "JUMPDEST", + "gas": 1551030, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8" + ] + }, + { + "pc": 213, + "op": "PUSH2", + "gas": 1551029, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8" + ] + }, + { + "pc": 216, + "op": "JUMP", + "gas": 1551026, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x225" + ] + }, + { + "pc": 549, + "op": "JUMPDEST", + "gas": 1551018, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8" + ] + }, + { + "pc": 550, + "op": "PUSH1", + "gas": 1551017, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8" + ] + }, + { + "pc": 552, + "op": "CALLER", + "gas": 1551014, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0" + ] + }, + { + "pc": 553, + "op": "PUSH20", + "gas": 1551012, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 574, + "op": "AND", + "gas": 1551009, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 575, + "op": "PUSH32", + "gas": 1551006, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 608, + "op": "DUP4", + "gas": 1551003, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0" + ] + }, + { + "pc": 609, + "op": "PUSH1", + "gas": 1551000, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8" + ] + }, + { + "pc": 611, + "op": "MLOAD", + "gas": 1550997, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x40" + ] + }, + { + "pc": 612, + "op": "PUSH2", + "gas": 1550994, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x80" + ] + }, + { + "pc": 615, + "op": "SWAP2", + "gas": 1550991, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e8", + "0x80", + "0x26d" + ] + }, + { + "pc": 616, + "op": "SWAP1", + "gas": 1550988, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x80", + "0x3e8" + ] + }, + { + "pc": 617, + "op": "PUSH2", + "gas": 1550985, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80" + ] + }, + { + "pc": 620, + "op": "JUMP", + "gas": 1550982, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0x5ed" + ] + }, + { + "pc": 1517, + "op": "JUMPDEST", + "gas": 1550974, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80" + ] + }, + { + "pc": 1518, + "op": "PUSH1", + "gas": 1550973, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80" + ] + }, + { + "pc": 1520, + "op": "PUSH1", + "gas": 1550970, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0x0" + ] + }, + { + "pc": 1522, + "op": "DUP3", + "gas": 1550967, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0x0", + "0x40" + ] + }, + { + "pc": 1523, + "op": "ADD", + "gas": 1550964, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0x0", + "0x40", + "0x80" + ] + }, + { + "pc": 1524, + "op": "SWAP1", + "gas": 1550961, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0x0", + "0xc0" + ] + }, + { + "pc": 1525, + "op": "POP", + "gas": 1550958, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x0" + ] + }, + { + "pc": 1526, + "op": "PUSH2", + "gas": 1550956, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 1529, + "op": "PUSH1", + "gas": 1550953, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602" + ] + }, + { + "pc": 1531, + "op": "DUP4", + "gas": 1550950, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x0" + ] + }, + { + "pc": 1532, + "op": "ADD", + "gas": 1550947, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x0", + "0x80" + ] + }, + { + "pc": 1533, + "op": "DUP5", + "gas": 1550944, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80" + ] + }, + { + "pc": 1534, + "op": "PUSH2", + "gas": 1550941, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8" + ] + }, + { + "pc": 1537, + "op": "JUMP", + "gas": 1550938, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x370" + ] + }, + { + "pc": 880, + "op": "JUMPDEST", + "gas": 1550930, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8" + ] + }, + { + "pc": 881, + "op": "PUSH2", + "gas": 1550929, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8" + ] + }, + { + "pc": 884, + "op": "DUP2", + "gas": 1550926, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379" + ] + }, + { + "pc": 885, + "op": "PUSH2", + "gas": 1550923, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379", + "0x3e8" + ] + }, + { + "pc": 888, + "op": "JUMP", + "gas": 1550920, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379", + "0x3e8", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1550912, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379", + "0x3e8" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1550911, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379", + "0x3e8" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1550908, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379", + "0x3e8", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1550905, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1550902, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1550900, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x379", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1550897, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x3e8", + "0x3e8", + "0x379" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1550894, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x3e8", + "0x379", + "0x3e8" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1550892, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x3e8", + "0x379" + ] + }, + { + "pc": 889, + "op": "JUMPDEST", + "gas": 1550884, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 890, + "op": "DUP3", + "gas": 1550883, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 891, + "op": "MSTORE", + "gas": 1550880, + "gasCost": 9, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8", + "0x3e8", + "0x80" + ] + }, + { + "pc": 892, + "op": "POP", + "gas": 1550871, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80", + "0x3e8" + ] + }, + { + "pc": 893, + "op": "POP", + "gas": 1550869, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602", + "0x80" + ] + }, + { + "pc": 894, + "op": "JUMP", + "gas": 1550867, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x602" + ] + }, + { + "pc": 1538, + "op": "JUMPDEST", + "gas": 1550859, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 1539, + "op": "DUP2", + "gas": 1550858, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 1540, + "op": "DUP2", + "gas": 1550855, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x80" + ] + }, + { + "pc": 1541, + "op": "SUB", + "gas": 1550852, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x80", + "0xc0" + ] + }, + { + "pc": 1542, + "op": "PUSH1", + "gas": 1550849, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 1544, + "op": "DUP4", + "gas": 1550846, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0x20" + ] + }, + { + "pc": 1545, + "op": "ADD", + "gas": 1550843, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0x20", + "0x80" + ] + }, + { + "pc": 1546, + "op": "MSTORE", + "gas": 1550840, + "gasCost": 6, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x40", + "0xa0" + ] + }, + { + "pc": 1547, + "op": "PUSH2", + "gas": 1550834, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0" + ] + }, + { + "pc": 1550, + "op": "DUP2", + "gas": 1550831, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613" + ] + }, + { + "pc": 1551, + "op": "PUSH2", + "gas": 1550828, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0" + ] + }, + { + "pc": 1554, + "op": "JUMP", + "gas": 1550825, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x5ca" + ] + }, + { + "pc": 1482, + "op": "JUMPDEST", + "gas": 1550817, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0" + ] + }, + { + "pc": 1483, + "op": "PUSH1", + "gas": 1550816, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0" + ] + }, + { + "pc": 1485, + "op": "PUSH2", + "gas": 1550813, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0" + ] + }, + { + "pc": 1488, + "op": "PUSH1", + "gas": 1550810, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7" + ] + }, + { + "pc": 1490, + "op": "DUP4", + "gas": 1550807, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5" + ] + }, + { + "pc": 1491, + "op": "PUSH2", + "gas": 1550804, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0" + ] + }, + { + "pc": 1494, + "op": "JUMP", + "gas": 1550801, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0x425" + ] + }, + { + "pc": 1061, + "op": "JUMPDEST", + "gas": 1550793, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0" + ] + }, + { + "pc": 1062, + "op": "PUSH1", + "gas": 1550792, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0" + ] + }, + { + "pc": 1064, + "op": "DUP3", + "gas": 1550789, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0x0" + ] + }, + { + "pc": 1065, + "op": "DUP3", + "gas": 1550786, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0x0", + "0x5" + ] + }, + { + "pc": 1066, + "op": "MSTORE", + "gas": 1550783, + "gasCost": 6, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0x0", + "0x5", + "0xc0" + ] + }, + { + "pc": 1067, + "op": "PUSH1", + "gas": 1550777, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0x0" + ] + }, + { + "pc": 1069, + "op": "DUP3", + "gas": 1550774, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 1070, + "op": "ADD", + "gas": 1550771, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 1071, + "op": "SWAP1", + "gas": 1550768, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 1072, + "op": "POP", + "gas": 1550765, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 1073, + "op": "SWAP3", + "gas": 1550763, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0x5d7", + "0x5", + "0xc0", + "0xe0" + ] + }, + { + "pc": 1074, + "op": "SWAP2", + "gas": 1550760, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0xe0", + "0x5", + "0xc0", + "0x5d7" + ] + }, + { + "pc": 1075, + "op": "POP", + "gas": 1550757, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0xe0", + "0x5d7", + "0xc0", + "0x5" + ] + }, + { + "pc": 1076, + "op": "POP", + "gas": 1550755, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0xe0", + "0x5d7", + "0xc0" + ] + }, + { + "pc": 1077, + "op": "JUMP", + "gas": 1550753, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0xe0", + "0x5d7" + ] + }, + { + "pc": 1495, + "op": "JUMPDEST", + "gas": 1550745, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 1496, + "op": "SWAP2", + "gas": 1550744, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 1497, + "op": "POP", + "gas": 1550741, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 1498, + "op": "PUSH2", + "gas": 1550739, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0" + ] + }, + { + "pc": 1501, + "op": "DUP3", + "gas": 1550736, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2" + ] + }, + { + "pc": 1502, + "op": "PUSH2", + "gas": 1550733, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0" + ] + }, + { + "pc": 1505, + "op": "JUMP", + "gas": 1550730, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0", + "0x5a1" + ] + }, + { + "pc": 1441, + "op": "JUMPDEST", + "gas": 1550722, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0" + ] + }, + { + "pc": 1442, + "op": "PUSH32", + "gas": 1550721, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0" + ] + }, + { + "pc": 1475, + "op": "PUSH1", + "gas": 1550718, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 1477, + "op": "DUP3", + "gas": 1550715, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 1478, + "op": "ADD", + "gas": 1550712, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0x0", + "0xe0" + ] + }, + { + "pc": 1479, + "op": "MSTORE", + "gas": 1550709, + "gasCost": 6, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0", + "0x746f706963000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 1480, + "op": "POP", + "gas": 1550703, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2", + "0xe0" + ] + }, + { + "pc": 1481, + "op": "JUMP", + "gas": 1550701, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x5e2" + ] + }, + { + "pc": 1506, + "op": "JUMPDEST", + "gas": 1550693, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0" + ] + }, + { + "pc": 1507, + "op": "PUSH1", + "gas": 1550692, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0" + ] + }, + { + "pc": 1509, + "op": "DUP3", + "gas": 1550689, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 1510, + "op": "ADD", + "gas": 1550686, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 1511, + "op": "SWAP1", + "gas": 1550683, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 1512, + "op": "POP", + "gas": 1550680, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 1513, + "op": "SWAP2", + "gas": 1550678, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x613", + "0xe0", + "0x100" + ] + }, + { + "pc": 1514, + "op": "SWAP1", + "gas": 1550675, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0xe0", + "0x613" + ] + }, + { + "pc": 1515, + "op": "POP", + "gas": 1550672, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0x613", + "0xe0" + ] + }, + { + "pc": 1516, + "op": "JUMP", + "gas": 1550670, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x100", + "0x613" + ] + }, + { + "pc": 1555, + "op": "JUMPDEST", + "gas": 1550662, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 1556, + "op": "SWAP1", + "gas": 1550661, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 1557, + "op": "POP", + "gas": 1550658, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0x100", + "0xc0" + ] + }, + { + "pc": 1558, + "op": "SWAP3", + "gas": 1550656, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x26d", + "0x3e8", + "0x80", + "0x100" + ] + }, + { + "pc": 1559, + "op": "SWAP2", + "gas": 1550653, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x3e8", + "0x80", + "0x26d" + ] + }, + { + "pc": 1560, + "op": "POP", + "gas": 1550650, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x26d", + "0x80", + "0x3e8" + ] + }, + { + "pc": 1561, + "op": "POP", + "gas": 1550648, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x26d", + "0x80" + ] + }, + { + "pc": 1562, + "op": "JUMP", + "gas": 1550646, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x26d" + ] + }, + { + "pc": 621, + "op": "JUMPDEST", + "gas": 1550638, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 622, + "op": "PUSH1", + "gas": 1550637, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 624, + "op": "MLOAD", + "gas": 1550634, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x40" + ] + }, + { + "pc": 625, + "op": "DUP1", + "gas": 1550631, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80" + ] + }, + { + "pc": 626, + "op": "SWAP2", + "gas": 1550628, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80", + "0x80" + ] + }, + { + "pc": 627, + "op": "SUB", + "gas": 1550625, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80", + "0x100" + ] + }, + { + "pc": 628, + "op": "SWAP1", + "gas": 1550622, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 629, + "op": "LOG2", + "gas": 1550619, + "gasCost": 2149, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 630, + "op": "DUP2", + "gas": 1548470, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0" + ] + }, + { + "pc": 631, + "op": "PUSH1", + "gas": 1548467, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 633, + "op": "DUP1", + "gas": 1548464, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0" + ] + }, + { + "pc": 634, + "op": "DUP3", + "gas": 1548461, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 635, + "op": "DUP3", + "gas": 1548458, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 636, + "op": "SLOAD", + "gas": 1548455, + "gasCost": 100, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0x0" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000001d6329f1c35ca4bfabb9f5610000000000", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000001d6329f1c35ca4bfabb9f5610000000001" + } + }, + { + "pc": 637, + "op": "PUSH2", + "gas": 1548355, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 640, + "op": "SWAP2", + "gas": 1548352, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x286" + ] + }, + { + "pc": 641, + "op": "SWAP1", + "gas": 1548349, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3e8" + ] + }, + { + "pc": 642, + "op": "PUSH2", + "gas": 1548346, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 645, + "op": "JUMP", + "gas": 1548343, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x4df" + ] + }, + { + "pc": 1247, + "op": "JUMPDEST", + "gas": 1548335, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1248, + "op": "PUSH1", + "gas": 1548334, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1250, + "op": "PUSH2", + "gas": 1548331, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1253, + "op": "DUP3", + "gas": 1548328, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea" + ] + }, + { + "pc": 1254, + "op": "PUSH2", + "gas": 1548325, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1257, + "op": "JUMP", + "gas": 1548322, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1548314, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1548313, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1548310, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1548307, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1548304, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1548302, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1548299, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x4ea" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1548296, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1548294, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x4ea" + ] + }, + { + "pc": 1258, + "op": "JUMPDEST", + "gas": 1548286, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1259, + "op": "SWAP2", + "gas": 1548285, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1260, + "op": "POP", + "gas": 1548282, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1261, + "op": "PUSH2", + "gas": 1548280, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1264, + "op": "DUP4", + "gas": 1548277, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5" + ] + }, + { + "pc": 1265, + "op": "PUSH2", + "gas": 1548274, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5", + "0x3e8" + ] + }, + { + "pc": 1268, + "op": "JUMP", + "gas": 1548271, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5", + "0x3e8", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1548263, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5", + "0x3e8" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1548262, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5", + "0x3e8" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1548259, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5", + "0x3e8", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1548256, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1548253, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1548251, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x4f5", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1548248, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8", + "0x3e8", + "0x4f5" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1548245, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8", + "0x4f5", + "0x3e8" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1548243, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8", + "0x4f5" + ] + }, + { + "pc": 1269, + "op": "JUMPDEST", + "gas": 1548235, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8" + ] + }, + { + "pc": 1270, + "op": "SWAP3", + "gas": 1548234, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8" + ] + }, + { + "pc": 1271, + "op": "POP", + "gas": 1548231, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8" + ] + }, + { + "pc": 1272, + "op": "DUP3", + "gas": 1548229, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1273, + "op": "PUSH32", + "gas": 1548226, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8" + ] + }, + { + "pc": 1306, + "op": "SUB", + "gas": 1548223, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 1307, + "op": "DUP3", + "gas": 1548220, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc17" + ] + }, + { + "pc": 1308, + "op": "GT", + "gas": 1548217, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc17", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1309, + "op": "ISZERO", + "gas": 1548214, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x0" + ] + }, + { + "pc": 1310, + "op": "PUSH2", + "gas": 1548211, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1" + ] + }, + { + "pc": 1313, + "op": "JUMPI", + "gas": 1548208, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1", + "0x52a" + ] + }, + { + "pc": 1322, + "op": "JUMPDEST", + "gas": 1548198, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1323, + "op": "DUP3", + "gas": 1548197, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0" + ] + }, + { + "pc": 1324, + "op": "DUP3", + "gas": 1548194, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8" + ] + }, + { + "pc": 1325, + "op": "ADD", + "gas": 1548191, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1326, + "op": "SWAP1", + "gas": 1548188, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8" + ] + }, + { + "pc": 1327, + "op": "POP", + "gas": 1548185, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x0" + ] + }, + { + "pc": 1328, + "op": "SWAP3", + "gas": 1548183, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x286", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x1d6329f1c35ca4bfabb9f56100000003e8" + ] + }, + { + "pc": 1329, + "op": "SWAP2", + "gas": 1548180, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x3e8", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x286" + ] + }, + { + "pc": 1330, + "op": "POP", + "gas": 1548177, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x286", + "0x1d6329f1c35ca4bfabb9f5610000000000", + "0x3e8" + ] + }, + { + "pc": 1331, + "op": "POP", + "gas": 1548175, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x286", + "0x1d6329f1c35ca4bfabb9f5610000000000" + ] + }, + { + "pc": 1332, + "op": "JUMP", + "gas": 1548173, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x286" + ] + }, + { + "pc": 646, + "op": "JUMPDEST", + "gas": 1548165, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8" + ] + }, + { + "pc": 647, + "op": "SWAP3", + "gas": 1548164, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x3e8", + "0x0", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8" + ] + }, + { + "pc": 648, + "op": "POP", + "gas": 1548161, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 649, + "op": "POP", + "gas": 1548159, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x0", + "0x0" + ] + }, + { + "pc": 650, + "op": "DUP2", + "gas": 1548157, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x0" + ] + }, + { + "pc": 651, + "op": "SWAP1", + "gas": 1548154, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8" + ] + }, + { + "pc": 652, + "op": "SSTORE", + "gas": 1548151, + "gasCost": 100, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x1d6329f1c35ca4bfabb9f56100000003e8", + "0x0" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000001d6329f1c35ca4bfabb9f56100000003e8", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000001d6329f1c35ca4bfabb9f5610000000001" + } + }, + { + "pc": 653, + "op": "POP", + "gas": 1548051, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003e8" + ] + }, + { + "pc": 654, + "op": "PUSH2", + "gas": 1548049, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0" + ] + }, + { + "pc": 657, + "op": "PUSH1", + "gas": 1548046, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2" + ] + }, + { + "pc": 659, + "op": "DUP4", + "gas": 1548043, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x1" + ] + }, + { + "pc": 660, + "op": "PUSH2", + "gas": 1548040, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x1", + "0x3e8" + ] + }, + { + "pc": 663, + "op": "SWAP2", + "gas": 1548037, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x1", + "0x3e8", + "0x29d" + ] + }, + { + "pc": 664, + "op": "SWAP1", + "gas": 1548034, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x3e8", + "0x1" + ] + }, + { + "pc": 665, + "op": "PUSH2", + "gas": 1548031, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8" + ] + }, + { + "pc": 668, + "op": "JUMP", + "gas": 1548028, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x4df" + ] + }, + { + "pc": 1247, + "op": "JUMPDEST", + "gas": 1548020, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8" + ] + }, + { + "pc": 1248, + "op": "PUSH1", + "gas": 1548019, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8" + ] + }, + { + "pc": 1250, + "op": "PUSH2", + "gas": 1548016, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1253, + "op": "DUP3", + "gas": 1548013, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea" + ] + }, + { + "pc": 1254, + "op": "PUSH2", + "gas": 1548010, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea", + "0x3e8" + ] + }, + { + "pc": 1257, + "op": "JUMP", + "gas": 1548007, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea", + "0x3e8", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1547999, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea", + "0x3e8" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1547998, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea", + "0x3e8" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1547995, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea", + "0x3e8", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1547992, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1547989, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1547987, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4ea", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1547984, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0x3e8", + "0x4ea" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1547981, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0x4ea", + "0x3e8" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1547979, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x3e8", + "0x4ea" + ] + }, + { + "pc": 1258, + "op": "JUMPDEST", + "gas": 1547971, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 1259, + "op": "SWAP2", + "gas": 1547970, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 1260, + "op": "POP", + "gas": 1547967, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 1261, + "op": "PUSH2", + "gas": 1547965, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1264, + "op": "DUP4", + "gas": 1547962, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5" + ] + }, + { + "pc": 1265, + "op": "PUSH2", + "gas": 1547959, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5", + "0x1" + ] + }, + { + "pc": 1268, + "op": "JUMP", + "gas": 1547956, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5", + "0x1", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1547948, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5", + "0x1" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1547947, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5", + "0x1" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1547944, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5", + "0x1", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1547941, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1547938, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1547936, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x4f5", + "0x1", + "0x1" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1547933, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x1", + "0x4f5" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1547930, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x4f5", + "0x1" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1547928, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x4f5" + ] + }, + { + "pc": 1269, + "op": "JUMPDEST", + "gas": 1547920, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1270, + "op": "SWAP3", + "gas": 1547919, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1271, + "op": "POP", + "gas": 1547916, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1272, + "op": "DUP3", + "gas": 1547914, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1273, + "op": "PUSH32", + "gas": 1547911, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1306, + "op": "SUB", + "gas": 1547908, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 1307, + "op": "DUP3", + "gas": 1547905, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + ] + }, + { + "pc": 1308, + "op": "GT", + "gas": 1547902, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x3e8" + ] + }, + { + "pc": 1309, + "op": "ISZERO", + "gas": 1547899, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1310, + "op": "PUSH2", + "gas": 1547896, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1313, + "op": "JUMPI", + "gas": 1547893, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x52a" + ] + }, + { + "pc": 1322, + "op": "JUMPDEST", + "gas": 1547883, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1323, + "op": "DUP3", + "gas": 1547882, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1324, + "op": "DUP3", + "gas": 1547879, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1325, + "op": "ADD", + "gas": 1547876, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x1", + "0x3e8" + ] + }, + { + "pc": 1326, + "op": "SWAP1", + "gas": 1547873, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x0", + "0x3e9" + ] + }, + { + "pc": 1327, + "op": "POP", + "gas": 1547870, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x3e9", + "0x0" + ] + }, + { + "pc": 1328, + "op": "SWAP3", + "gas": 1547868, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x29d", + "0x1", + "0x3e8", + "0x3e9" + ] + }, + { + "pc": 1329, + "op": "SWAP2", + "gas": 1547865, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x1", + "0x3e8", + "0x29d" + ] + }, + { + "pc": 1330, + "op": "POP", + "gas": 1547862, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x29d", + "0x3e8", + "0x1" + ] + }, + { + "pc": 1331, + "op": "POP", + "gas": 1547860, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x29d", + "0x3e8" + ] + }, + { + "pc": 1332, + "op": "JUMP", + "gas": 1547858, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x29d" + ] + }, + { + "pc": 669, + "op": "JUMPDEST", + "gas": 1547850, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9" + ] + }, + { + "pc": 670, + "op": "PUSH2", + "gas": 1547849, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9" + ] + }, + { + "pc": 673, + "op": "JUMP", + "gas": 1547846, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x178" + ] + }, + { + "pc": 376, + "op": "JUMPDEST", + "gas": 1547838, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9" + ] + }, + { + "pc": 377, + "op": "PUSH1", + "gas": 1547837, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9" + ] + }, + { + "pc": 379, + "op": "CALLER", + "gas": 1547834, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0" + ] + }, + { + "pc": 380, + "op": "PUSH20", + "gas": 1547832, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 401, + "op": "AND", + "gas": 1547829, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 402, + "op": "PUSH32", + "gas": 1547826, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 435, + "op": "DUP4", + "gas": 1547823, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0" + ] + }, + { + "pc": 436, + "op": "PUSH1", + "gas": 1547820, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9" + ] + }, + { + "pc": 438, + "op": "MLOAD", + "gas": 1547817, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x40" + ] + }, + { + "pc": 439, + "op": "PUSH2", + "gas": 1547814, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x80" + ] + }, + { + "pc": 442, + "op": "SWAP2", + "gas": 1547811, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x3e9", + "0x80", + "0x1c0" + ] + }, + { + "pc": 443, + "op": "SWAP1", + "gas": 1547808, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x80", + "0x3e9" + ] + }, + { + "pc": 444, + "op": "PUSH2", + "gas": 1547805, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80" + ] + }, + { + "pc": 447, + "op": "JUMP", + "gas": 1547802, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0x482" + ] + }, + { + "pc": 1154, + "op": "JUMPDEST", + "gas": 1547794, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80" + ] + }, + { + "pc": 1155, + "op": "PUSH1", + "gas": 1547793, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80" + ] + }, + { + "pc": 1157, + "op": "PUSH1", + "gas": 1547790, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0x0" + ] + }, + { + "pc": 1159, + "op": "DUP3", + "gas": 1547787, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0x0", + "0x40" + ] + }, + { + "pc": 1160, + "op": "ADD", + "gas": 1547784, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0x0", + "0x40", + "0x80" + ] + }, + { + "pc": 1161, + "op": "SWAP1", + "gas": 1547781, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0x0", + "0xc0" + ] + }, + { + "pc": 1162, + "op": "POP", + "gas": 1547778, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x0" + ] + }, + { + "pc": 1163, + "op": "PUSH2", + "gas": 1547776, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 1166, + "op": "PUSH1", + "gas": 1547773, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497" + ] + }, + { + "pc": 1168, + "op": "DUP4", + "gas": 1547770, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x0" + ] + }, + { + "pc": 1169, + "op": "ADD", + "gas": 1547767, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x0", + "0x80" + ] + }, + { + "pc": 1170, + "op": "DUP5", + "gas": 1547764, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80" + ] + }, + { + "pc": 1171, + "op": "PUSH2", + "gas": 1547761, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9" + ] + }, + { + "pc": 1174, + "op": "JUMP", + "gas": 1547758, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x370" + ] + }, + { + "pc": 880, + "op": "JUMPDEST", + "gas": 1547750, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9" + ] + }, + { + "pc": 881, + "op": "PUSH2", + "gas": 1547749, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9" + ] + }, + { + "pc": 884, + "op": "DUP2", + "gas": 1547746, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379" + ] + }, + { + "pc": 885, + "op": "PUSH2", + "gas": 1547743, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379", + "0x3e9" + ] + }, + { + "pc": 888, + "op": "JUMP", + "gas": 1547740, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379", + "0x3e9", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1547732, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379", + "0x3e9" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1547731, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379", + "0x3e9" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1547728, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379", + "0x3e9", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1547725, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1547722, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379", + "0x3e9", + "0x3e9", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1547720, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x379", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1547717, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x3e9", + "0x3e9", + "0x379" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1547714, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x3e9", + "0x379", + "0x3e9" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1547712, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x3e9", + "0x379" + ] + }, + { + "pc": 889, + "op": "JUMPDEST", + "gas": 1547704, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 890, + "op": "DUP3", + "gas": 1547703, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 891, + "op": "MSTORE", + "gas": 1547700, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9", + "0x3e9", + "0x80" + ] + }, + { + "pc": 892, + "op": "POP", + "gas": 1547697, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80", + "0x3e9" + ] + }, + { + "pc": 893, + "op": "POP", + "gas": 1547695, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497", + "0x80" + ] + }, + { + "pc": 894, + "op": "JUMP", + "gas": 1547693, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x497" + ] + }, + { + "pc": 1175, + "op": "JUMPDEST", + "gas": 1547685, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 1176, + "op": "DUP2", + "gas": 1547684, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 1177, + "op": "DUP2", + "gas": 1547681, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x80" + ] + }, + { + "pc": 1178, + "op": "SUB", + "gas": 1547678, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x80", + "0xc0" + ] + }, + { + "pc": 1179, + "op": "PUSH1", + "gas": 1547675, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 1181, + "op": "DUP4", + "gas": 1547672, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0x20" + ] + }, + { + "pc": 1182, + "op": "ADD", + "gas": 1547669, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0x20", + "0x80" + ] + }, + { + "pc": 1183, + "op": "MSTORE", + "gas": 1547666, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x40", + "0xa0" + ] + }, + { + "pc": 1184, + "op": "PUSH2", + "gas": 1547663, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0" + ] + }, + { + "pc": 1187, + "op": "DUP2", + "gas": 1547660, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8" + ] + }, + { + "pc": 1188, + "op": "PUSH2", + "gas": 1547657, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0" + ] + }, + { + "pc": 1191, + "op": "JUMP", + "gas": 1547654, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x45f" + ] + }, + { + "pc": 1119, + "op": "JUMPDEST", + "gas": 1547646, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0" + ] + }, + { + "pc": 1120, + "op": "PUSH1", + "gas": 1547645, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0" + ] + }, + { + "pc": 1122, + "op": "PUSH2", + "gas": 1547642, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0" + ] + }, + { + "pc": 1125, + "op": "PUSH1", + "gas": 1547639, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c" + ] + }, + { + "pc": 1127, + "op": "DUP4", + "gas": 1547636, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe" + ] + }, + { + "pc": 1128, + "op": "PUSH2", + "gas": 1547633, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0" + ] + }, + { + "pc": 1131, + "op": "JUMP", + "gas": 1547630, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0x425" + ] + }, + { + "pc": 1061, + "op": "JUMPDEST", + "gas": 1547622, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0" + ] + }, + { + "pc": 1062, + "op": "PUSH1", + "gas": 1547621, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0" + ] + }, + { + "pc": 1064, + "op": "DUP3", + "gas": 1547618, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0x0" + ] + }, + { + "pc": 1065, + "op": "DUP3", + "gas": 1547615, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0x0", + "0xe" + ] + }, + { + "pc": 1066, + "op": "MSTORE", + "gas": 1547612, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0x0", + "0xe", + "0xc0" + ] + }, + { + "pc": 1067, + "op": "PUSH1", + "gas": 1547609, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0x0" + ] + }, + { + "pc": 1069, + "op": "DUP3", + "gas": 1547606, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 1070, + "op": "ADD", + "gas": 1547603, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 1071, + "op": "SWAP1", + "gas": 1547600, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 1072, + "op": "POP", + "gas": 1547597, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 1073, + "op": "SWAP3", + "gas": 1547595, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0x46c", + "0xe", + "0xc0", + "0xe0" + ] + }, + { + "pc": 1074, + "op": "SWAP2", + "gas": 1547592, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0xe0", + "0xe", + "0xc0", + "0x46c" + ] + }, + { + "pc": 1075, + "op": "POP", + "gas": 1547589, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0xe0", + "0x46c", + "0xc0", + "0xe" + ] + }, + { + "pc": 1076, + "op": "POP", + "gas": 1547587, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0xe0", + "0x46c", + "0xc0" + ] + }, + { + "pc": 1077, + "op": "JUMP", + "gas": 1547585, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0xe0", + "0x46c" + ] + }, + { + "pc": 1132, + "op": "JUMPDEST", + "gas": 1547577, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 1133, + "op": "SWAP2", + "gas": 1547576, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 1134, + "op": "POP", + "gas": 1547573, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 1135, + "op": "PUSH2", + "gas": 1547571, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0" + ] + }, + { + "pc": 1138, + "op": "DUP3", + "gas": 1547568, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477" + ] + }, + { + "pc": 1139, + "op": "PUSH2", + "gas": 1547565, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0" + ] + }, + { + "pc": 1142, + "op": "JUMP", + "gas": 1547562, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0", + "0x436" + ] + }, + { + "pc": 1078, + "op": "JUMPDEST", + "gas": 1547554, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0" + ] + }, + { + "pc": 1079, + "op": "PUSH32", + "gas": 1547553, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0" + ] + }, + { + "pc": 1112, + "op": "PUSH1", + "gas": 1547550, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000" + ] + }, + { + "pc": 1114, + "op": "DUP3", + "gas": 1547547, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 1115, + "op": "ADD", + "gas": 1547544, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0x0", + "0xe0" + ] + }, + { + "pc": 1116, + "op": "MSTORE", + "gas": 1547541, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0", + "0x696e7465726e616c20746f706963000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 1117, + "op": "POP", + "gas": 1547538, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477", + "0xe0" + ] + }, + { + "pc": 1118, + "op": "JUMP", + "gas": 1547536, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x477" + ] + }, + { + "pc": 1143, + "op": "JUMPDEST", + "gas": 1547528, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0" + ] + }, + { + "pc": 1144, + "op": "PUSH1", + "gas": 1547527, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0" + ] + }, + { + "pc": 1146, + "op": "DUP3", + "gas": 1547524, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 1147, + "op": "ADD", + "gas": 1547521, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 1148, + "op": "SWAP1", + "gas": 1547518, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 1149, + "op": "POP", + "gas": 1547515, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 1150, + "op": "SWAP2", + "gas": 1547513, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x4a8", + "0xe0", + "0x100" + ] + }, + { + "pc": 1151, + "op": "SWAP1", + "gas": 1547510, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0xe0", + "0x4a8" + ] + }, + { + "pc": 1152, + "op": "POP", + "gas": 1547507, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0x4a8", + "0xe0" + ] + }, + { + "pc": 1153, + "op": "JUMP", + "gas": 1547505, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x100", + "0x4a8" + ] + }, + { + "pc": 1192, + "op": "JUMPDEST", + "gas": 1547497, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 1193, + "op": "SWAP1", + "gas": 1547496, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0xc0", + "0x100" + ] + }, + { + "pc": 1194, + "op": "POP", + "gas": 1547493, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0x100", + "0xc0" + ] + }, + { + "pc": 1195, + "op": "SWAP3", + "gas": 1547491, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x1c0", + "0x3e9", + "0x80", + "0x100" + ] + }, + { + "pc": 1196, + "op": "SWAP2", + "gas": 1547488, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x3e9", + "0x80", + "0x1c0" + ] + }, + { + "pc": 1197, + "op": "POP", + "gas": 1547485, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x1c0", + "0x80", + "0x3e9" + ] + }, + { + "pc": 1198, + "op": "POP", + "gas": 1547483, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x1c0", + "0x80" + ] + }, + { + "pc": 1199, + "op": "JUMP", + "gas": 1547481, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x1c0" + ] + }, + { + "pc": 448, + "op": "JUMPDEST", + "gas": 1547473, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 449, + "op": "PUSH1", + "gas": 1547472, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100" + ] + }, + { + "pc": 451, + "op": "MLOAD", + "gas": 1547469, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x40" + ] + }, + { + "pc": 452, + "op": "DUP1", + "gas": 1547466, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80" + ] + }, + { + "pc": 453, + "op": "SWAP2", + "gas": 1547463, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x100", + "0x80", + "0x80" + ] + }, + { + "pc": 454, + "op": "SUB", + "gas": 1547460, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80", + "0x100" + ] + }, + { + "pc": 455, + "op": "SWAP1", + "gas": 1547457, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 456, + "op": "LOG2", + "gas": 1547454, + "gasCost": 2149, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "Tracer.address", + "0xa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0", + "0x80", + "0x80" + ] + }, + { + "pc": 457, + "op": "DUP2", + "gas": 1545305, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0" + ] + }, + { + "pc": 458, + "op": "PUSH1", + "gas": 1545302, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 460, + "op": "PUSH1", + "gas": 1545299, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2" + ] + }, + { + "pc": 462, + "op": "DUP3", + "gas": 1545296, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0" + ] + }, + { + "pc": 463, + "op": "DUP3", + "gas": 1545293, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x3e9" + ] + }, + { + "pc": 464, + "op": "SLOAD", + "gas": 1545290, + "gasCost": 100, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x3e9", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000001d6329f1c35ca4bfabb9f56100000003e8", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000001d6329f1c35ca4bfabb9f5610000000001" + } + }, + { + "pc": 465, + "op": "PUSH2", + "gas": 1545190, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 468, + "op": "SWAP2", + "gas": 1545187, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1da" + ] + }, + { + "pc": 469, + "op": "SWAP1", + "gas": 1545184, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x3e9" + ] + }, + { + "pc": 470, + "op": "PUSH2", + "gas": 1545181, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 473, + "op": "JUMP", + "gas": 1545178, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x4df" + ] + }, + { + "pc": 1247, + "op": "JUMPDEST", + "gas": 1545170, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1248, + "op": "PUSH1", + "gas": 1545169, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1250, + "op": "PUSH2", + "gas": 1545166, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 1253, + "op": "DUP3", + "gas": 1545163, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea" + ] + }, + { + "pc": 1254, + "op": "PUSH2", + "gas": 1545160, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1257, + "op": "JUMP", + "gas": 1545157, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1545149, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1545148, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1545145, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1545142, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1545139, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1545137, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1545134, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x4ea" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1545131, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x4ea", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1545129, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x4ea" + ] + }, + { + "pc": 1258, + "op": "JUMPDEST", + "gas": 1545121, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1259, + "op": "SWAP2", + "gas": 1545120, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1260, + "op": "POP", + "gas": 1545117, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1261, + "op": "PUSH2", + "gas": 1545115, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 1264, + "op": "DUP4", + "gas": 1545112, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5" + ] + }, + { + "pc": 1265, + "op": "PUSH2", + "gas": 1545109, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5", + "0x3e9" + ] + }, + { + "pc": 1268, + "op": "JUMP", + "gas": 1545106, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5", + "0x3e9", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1545098, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5", + "0x3e9" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1545097, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5", + "0x3e9" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1545094, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5", + "0x3e9", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1545091, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5", + "0x3e9", + "0x0", + "0x3e9" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1545088, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5", + "0x3e9", + "0x3e9", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1545086, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x4f5", + "0x3e9", + "0x3e9" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1545083, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9", + "0x3e9", + "0x4f5" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1545080, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9", + "0x4f5", + "0x3e9" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1545078, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9", + "0x4f5" + ] + }, + { + "pc": 1269, + "op": "JUMPDEST", + "gas": 1545070, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9" + ] + }, + { + "pc": 1270, + "op": "SWAP3", + "gas": 1545069, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9" + ] + }, + { + "pc": 1271, + "op": "POP", + "gas": 1545066, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9" + ] + }, + { + "pc": 1272, + "op": "DUP3", + "gas": 1545064, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 1273, + "op": "PUSH32", + "gas": 1545061, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9" + ] + }, + { + "pc": 1306, + "op": "SUB", + "gas": 1545058, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 1307, + "op": "DUP3", + "gas": 1545055, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc16" + ] + }, + { + "pc": 1308, + "op": "GT", + "gas": 1545052, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc16", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1309, + "op": "ISZERO", + "gas": 1545049, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x0" + ] + }, + { + "pc": 1310, + "op": "PUSH2", + "gas": 1545046, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1" + ] + }, + { + "pc": 1313, + "op": "JUMPI", + "gas": 1545043, + "gasCost": 10, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1", + "0x52a" + ] + }, + { + "pc": 1322, + "op": "JUMPDEST", + "gas": 1545033, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 1323, + "op": "DUP3", + "gas": 1545032, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0" + ] + }, + { + "pc": 1324, + "op": "DUP3", + "gas": 1545029, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9" + ] + }, + { + "pc": 1325, + "op": "ADD", + "gas": 1545026, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1326, + "op": "SWAP1", + "gas": 1545023, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea" + ] + }, + { + "pc": 1327, + "op": "POP", + "gas": 1545020, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x0" + ] + }, + { + "pc": 1328, + "op": "SWAP3", + "gas": 1545018, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1da", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1d6329f1c35ca4bfabb9f56100000003ea" + ] + }, + { + "pc": 1329, + "op": "SWAP2", + "gas": 1545015, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x3e9", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x1da" + ] + }, + { + "pc": 1330, + "op": "POP", + "gas": 1545012, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x1da", + "0x1d6329f1c35ca4bfabb9f5610000000001", + "0x3e9" + ] + }, + { + "pc": 1331, + "op": "POP", + "gas": 1545010, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x1da", + "0x1d6329f1c35ca4bfabb9f5610000000001" + ] + }, + { + "pc": 1332, + "op": "JUMP", + "gas": 1545008, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x1da" + ] + }, + { + "pc": 474, + "op": "JUMPDEST", + "gas": 1545000, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea" + ] + }, + { + "pc": 475, + "op": "SWAP3", + "gas": 1544999, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x3e9", + "0x2", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea" + ] + }, + { + "pc": 476, + "op": "POP", + "gas": 1544996, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x2", + "0x0", + "0x3e9" + ] + }, + { + "pc": 477, + "op": "POP", + "gas": 1544994, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x2", + "0x0" + ] + }, + { + "pc": 478, + "op": "DUP2", + "gas": 1544992, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x2" + ] + }, + { + "pc": 479, + "op": "SWAP1", + "gas": 1544989, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x2", + "0x1d6329f1c35ca4bfabb9f56100000003ea" + ] + }, + { + "pc": 480, + "op": "SSTORE", + "gas": 1544986, + "gasCost": 100, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x1d6329f1c35ca4bfabb9f56100000003ea", + "0x2" + ], + "storage": { + "0000000000000000000000000000000000000000000000000000000000000000": "0000000000000000000000000000001d6329f1c35ca4bfabb9f56100000003e8", + "0000000000000000000000000000000000000000000000000000000000000001": "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002": "0000000000000000000000000000001d6329f1c35ca4bfabb9f56100000003ea" + } + }, + { + "pc": 481, + "op": "POP", + "gas": 1544886, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x1d6329f1c35ca4bfabb9f56100000003ea" + ] + }, + { + "pc": 482, + "op": "PUSH1", + "gas": 1544884, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0" + ] + }, + { + "pc": 484, + "op": "SWAP1", + "gas": 1544881, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x0", + "0x2" + ] + }, + { + "pc": 485, + "op": "POP", + "gas": 1544878, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x2", + "0x0" + ] + }, + { + "pc": 486, + "op": "SWAP2", + "gas": 1544876, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2a2", + "0x3e9", + "0x2" + ] + }, + { + "pc": 487, + "op": "SWAP1", + "gas": 1544873, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2", + "0x3e9", + "0x2a2" + ] + }, + { + "pc": 488, + "op": "POP", + "gas": 1544870, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2", + "0x2a2", + "0x3e9" + ] + }, + { + "pc": 489, + "op": "JUMP", + "gas": 1544868, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2", + "0x2a2" + ] + }, + { + "pc": 674, + "op": "JUMPDEST", + "gas": 1544860, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2" + ] + }, + { + "pc": 675, + "op": "POP", + "gas": 1544859, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2" + ] + }, + { + "pc": 676, + "op": "PUSH2", + "gas": 1544857, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0" + ] + }, + { + "pc": 679, + "op": "PUSH2", + "gas": 1544854, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab" + ] + }, + { + "pc": 682, + "op": "JUMP", + "gas": 1544851, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x129" + ] + }, + { + "pc": 297, + "op": "JUMPDEST", + "gas": 1544843, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab" + ] + }, + { + "pc": 298, + "op": "PUSH1", + "gas": 1544842, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab" + ] + }, + { + "pc": 300, + "op": "DUP1", + "gas": 1544839, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0" + ] + }, + { + "pc": 301, + "op": "PUSH1", + "gas": 1544836, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0" + ] + }, + { + "pc": 303, + "op": "MLOAD", + "gas": 1544833, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x40" + ] + }, + { + "pc": 304, + "op": "DUP1", + "gas": 1544830, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 305, + "op": "PUSH1", + "gas": 1544827, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 307, + "op": "ADD", + "gas": 1544824, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0x80", + "0x40" + ] + }, + { + "pc": 308, + "op": "PUSH1", + "gas": 1544821, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0xc0" + ] + }, + { + "pc": 310, + "op": "MSTORE", + "gas": 1544818, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0xc0", + "0x40" + ] + }, + { + "pc": 311, + "op": "DUP1", + "gas": 1544815, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 312, + "op": "PUSH1", + "gas": 1544812, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 314, + "op": "DUP2", + "gas": 1544809, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0x80", + "0xd" + ] + }, + { + "pc": 315, + "op": "MSTORE", + "gas": 1544806, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0x80", + "0xd", + "0x80" + ] + }, + { + "pc": 316, + "op": "PUSH1", + "gas": 1544803, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 318, + "op": "ADD", + "gas": 1544800, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0x80", + "0x20" + ] + }, + { + "pc": 319, + "op": "PUSH32", + "gas": 1544797, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0xa0" + ] + }, + { + "pc": 352, + "op": "DUP2", + "gas": 1544794, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0xa0", + "0x48656c6c6f2c20776f726c642100000000000000000000000000000000000000" + ] + }, + { + "pc": 353, + "op": "MSTORE", + "gas": 1544791, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0xa0", + "0x48656c6c6f2c20776f726c642100000000000000000000000000000000000000", + "0xa0" + ] + }, + { + "pc": 354, + "op": "POP", + "gas": 1544788, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80", + "0xa0" + ] + }, + { + "pc": 355, + "op": "SWAP1", + "gas": 1544786, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x0", + "0x80" + ] + }, + { + "pc": 356, + "op": "POP", + "gas": 1544783, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0" + ] + }, + { + "pc": 357, + "op": "PUSH1", + "gas": 1544781, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80" + ] + }, + { + "pc": 359, + "op": "DUP2", + "gas": 1544778, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0" + ] + }, + { + "pc": 360, + "op": "DUP1", + "gas": 1544775, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0", + "0x80" + ] + }, + { + "pc": 361, + "op": "MLOAD", + "gas": 1544772, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 362, + "op": "SWAP1", + "gas": 1544769, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0", + "0x80", + "0xd" + ] + }, + { + "pc": 363, + "op": "PUSH1", + "gas": 1544766, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0", + "0xd", + "0x80" + ] + }, + { + "pc": 365, + "op": "ADD", + "gas": 1544763, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0", + "0xd", + "0x80", + "0x20" + ] + }, + { + "pc": 366, + "op": "KECCAK256", + "gas": 1544760, + "gasCost": 36, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0", + "0xd", + "0xa0" + ] + }, + { + "pc": 367, + "op": "SWAP1", + "gas": 1544724, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 368, + "op": "POP", + "gas": 1544721, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x0" + ] + }, + { + "pc": 369, + "op": "DUP1", + "gas": 1544719, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 370, + "op": "SWAP3", + "gas": 1544716, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0x0", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 371, + "op": "POP", + "gas": 1544713, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x0" + ] + }, + { + "pc": 372, + "op": "POP", + "gas": 1544711, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 373, + "op": "POP", + "gas": 1544709, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x80" + ] + }, + { + "pc": 374, + "op": "SWAP1", + "gas": 1544707, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x2ab", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 375, + "op": "JUMP", + "gas": 1544704, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4", + "0x2ab" + ] + }, + { + "pc": 683, + "op": "JUMPDEST", + "gas": 1544696, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 684, + "op": "POP", + "gas": 1544695, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0xb6e16d27ac5ab427a7f68900ac5559ce272dc6c37c82b3e052246c82244c50e4" + ] + }, + { + "pc": 685, + "op": "PUSH1", + "gas": 1544693, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0" + ] + }, + { + "pc": 687, + "op": "SWAP1", + "gas": 1544690, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 688, + "op": "POP", + "gas": 1544687, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x1", + "0x0" + ] + }, + { + "pc": 689, + "op": "SWAP2", + "gas": 1544685, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xd9", + "0x3e8", + "0x1" + ] + }, + { + "pc": 690, + "op": "SWAP1", + "gas": 1544682, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1", + "0x3e8", + "0xd9" + ] + }, + { + "pc": 691, + "op": "POP", + "gas": 1544679, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1", + "0xd9", + "0x3e8" + ] + }, + { + "pc": 692, + "op": "JUMP", + "gas": 1544677, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1", + "0xd9" + ] + }, + { + "pc": 217, + "op": "JUMPDEST", + "gas": 1544669, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1" + ] + }, + { + "pc": 218, + "op": "PUSH1", + "gas": 1544668, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1" + ] + }, + { + "pc": 220, + "op": "MLOAD", + "gas": 1544665, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1", + "0x40" + ] + }, + { + "pc": 221, + "op": "PUSH2", + "gas": 1544662, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1", + "0xc0" + ] + }, + { + "pc": 224, + "op": "SWAP2", + "gas": 1544659, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x1", + "0xc0", + "0xe6" + ] + }, + { + "pc": 225, + "op": "SWAP1", + "gas": 1544656, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0xc0", + "0x1" + ] + }, + { + "pc": 226, + "op": "PUSH2", + "gas": 1544653, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0" + ] + }, + { + "pc": 229, + "op": "JUMP", + "gas": 1544650, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0x37f" + ] + }, + { + "pc": 895, + "op": "JUMPDEST", + "gas": 1544642, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0" + ] + }, + { + "pc": 896, + "op": "PUSH1", + "gas": 1544641, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0" + ] + }, + { + "pc": 898, + "op": "PUSH1", + "gas": 1544638, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0x0" + ] + }, + { + "pc": 900, + "op": "DUP3", + "gas": 1544635, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 901, + "op": "ADD", + "gas": 1544632, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 902, + "op": "SWAP1", + "gas": 1544629, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0x0", + "0xe0" + ] + }, + { + "pc": 903, + "op": "POP", + "gas": 1544626, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x0" + ] + }, + { + "pc": 904, + "op": "PUSH2", + "gas": 1544624, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0" + ] + }, + { + "pc": 907, + "op": "PUSH1", + "gas": 1544621, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394" + ] + }, + { + "pc": 909, + "op": "DUP4", + "gas": 1544618, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0x0" + ] + }, + { + "pc": 910, + "op": "ADD", + "gas": 1544615, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0x0", + "0xc0" + ] + }, + { + "pc": 911, + "op": "DUP5", + "gas": 1544612, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0" + ] + }, + { + "pc": 912, + "op": "PUSH2", + "gas": 1544609, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1" + ] + }, + { + "pc": 915, + "op": "JUMP", + "gas": 1544606, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x370" + ] + }, + { + "pc": 880, + "op": "JUMPDEST", + "gas": 1544598, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1" + ] + }, + { + "pc": 881, + "op": "PUSH2", + "gas": 1544597, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1" + ] + }, + { + "pc": 884, + "op": "DUP2", + "gas": 1544594, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379" + ] + }, + { + "pc": 885, + "op": "PUSH2", + "gas": 1544591, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379", + "0x1" + ] + }, + { + "pc": 888, + "op": "JUMP", + "gas": 1544588, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379", + "0x1", + "0x30d" + ] + }, + { + "pc": 781, + "op": "JUMPDEST", + "gas": 1544580, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379", + "0x1" + ] + }, + { + "pc": 782, + "op": "PUSH1", + "gas": 1544579, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379", + "0x1" + ] + }, + { + "pc": 784, + "op": "DUP2", + "gas": 1544576, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379", + "0x1", + "0x0" + ] + }, + { + "pc": 785, + "op": "SWAP1", + "gas": 1544573, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 786, + "op": "POP", + "gas": 1544570, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 787, + "op": "SWAP2", + "gas": 1544568, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x379", + "0x1", + "0x1" + ] + }, + { + "pc": 788, + "op": "SWAP1", + "gas": 1544565, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x1", + "0x1", + "0x379" + ] + }, + { + "pc": 789, + "op": "POP", + "gas": 1544562, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x1", + "0x379", + "0x1" + ] + }, + { + "pc": 790, + "op": "JUMP", + "gas": 1544560, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x1", + "0x379" + ] + }, + { + "pc": 889, + "op": "JUMPDEST", + "gas": 1544552, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x1" + ] + }, + { + "pc": 890, + "op": "DUP3", + "gas": 1544551, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x1" + ] + }, + { + "pc": 891, + "op": "MSTORE", + "gas": 1544548, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1", + "0x1", + "0xc0" + ] + }, + { + "pc": 892, + "op": "POP", + "gas": 1544545, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0", + "0x1" + ] + }, + { + "pc": 893, + "op": "POP", + "gas": 1544543, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394", + "0xc0" + ] + }, + { + "pc": 894, + "op": "JUMP", + "gas": 1544541, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0", + "0x394" + ] + }, + { + "pc": 916, + "op": "JUMPDEST", + "gas": 1544533, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0" + ] + }, + { + "pc": 917, + "op": "SWAP3", + "gas": 1544532, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe6", + "0x1", + "0xc0", + "0xe0" + ] + }, + { + "pc": 918, + "op": "SWAP2", + "gas": 1544529, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0", + "0x1", + "0xc0", + "0xe6" + ] + }, + { + "pc": 919, + "op": "POP", + "gas": 1544526, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0", + "0xe6", + "0xc0", + "0x1" + ] + }, + { + "pc": 920, + "op": "POP", + "gas": 1544524, + "gasCost": 2, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0", + "0xe6", + "0xc0" + ] + }, + { + "pc": 921, + "op": "JUMP", + "gas": 1544522, + "gasCost": 8, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0", + "0xe6" + ] + }, + { + "pc": 230, + "op": "JUMPDEST", + "gas": 1544514, + "gasCost": 1, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0" + ] + }, + { + "pc": 231, + "op": "PUSH1", + "gas": 1544513, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0" + ] + }, + { + "pc": 233, + "op": "MLOAD", + "gas": 1544510, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0", + "0x40" + ] + }, + { + "pc": 234, + "op": "DUP1", + "gas": 1544507, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0", + "0xc0" + ] + }, + { + "pc": 235, + "op": "SWAP2", + "gas": 1544504, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xe0", + "0xc0", + "0xc0" + ] + }, + { + "pc": 236, + "op": "SUB", + "gas": 1544501, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xc0", + "0xc0", + "0xe0" + ] + }, + { + "pc": 237, + "op": "SWAP1", + "gas": 1544498, + "gasCost": 3, + "depth": 2, + "stack": [ + "0xa0712d68", + "0xc0", + "0x20" + ] + }, + { + "pc": 238, + "op": "RETURN", + "gas": 1544495, + "gasCost": 0, + "depth": 2, + "stack": [ + "0xa0712d68", + "0x20", + "0xc0" + ] + }, + { + "pc": 1133, + "op": "ISZERO", + "gas": 1569121, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x1" + ] + }, + { + "pc": 1134, + "op": "DUP1", + "gas": 1569118, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x0" + ] + }, + { + "pc": 1135, + "op": "ISZERO", + "gas": 1569115, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x0", + "0x0" + ] + }, + { + "pc": 1136, + "op": "PUSH3", + "gas": 1569112, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x0", + "0x1" + ] + }, + { + "pc": 1140, + "op": "JUMPI", + "gas": 1569109, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x0", + "0x1", + "0x47e" + ] + }, + { + "pc": 1150, + "op": "JUMPDEST", + "gas": 1569099, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x0" + ] + }, + { + "pc": 1151, + "op": "POP", + "gas": 1569098, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4", + "0x0" + ] + }, + { + "pc": 1152, + "op": "POP", + "gas": 1569096, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68", + "0xe4" + ] + }, + { + "pc": 1153, + "op": "POP", + "gas": 1569094, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae", + "0xa0712d68" + ] + }, + { + "pc": 1154, + "op": "POP", + "gas": 1569092, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x61a286b8e87e2d31c475d71c85a0020584c44bae" + ] + }, + { + "pc": 1155, + "op": "PUSH1", + "gas": 1569090, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1157, + "op": "MLOAD", + "gas": 1569087, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x40" + ] + }, + { + "pc": 1158, + "op": "RETURNDATASIZE", + "gas": 1569084, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0" + ] + }, + { + "pc": 1159, + "op": "PUSH1", + "gas": 1569082, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20" + ] + }, + { + "pc": 1161, + "op": "NOT", + "gas": 1569079, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0x1f" + ] + }, + { + "pc": 1162, + "op": "PUSH1", + "gas": 1569076, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0" + ] + }, + { + "pc": 1164, + "op": "DUP3", + "gas": 1569073, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x1f" + ] + }, + { + "pc": 1165, + "op": "ADD", + "gas": 1569070, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x1f", + "0x20" + ] + }, + { + "pc": 1166, + "op": "AND", + "gas": 1569067, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x3f" + ] + }, + { + "pc": 1167, + "op": "DUP3", + "gas": 1569064, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0x20" + ] + }, + { + "pc": 1168, + "op": "ADD", + "gas": 1569061, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0x20", + "0xc0" + ] + }, + { + "pc": 1169, + "op": "DUP1", + "gas": 1569058, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xe0" + ] + }, + { + "pc": 1170, + "op": "PUSH1", + "gas": 1569055, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xe0", + "0xe0" + ] + }, + { + "pc": 1172, + "op": "MSTORE", + "gas": 1569052, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xe0", + "0xe0", + "0x40" + ] + }, + { + "pc": 1173, + "op": "POP", + "gas": 1569049, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xe0" + ] + }, + { + "pc": 1174, + "op": "DUP2", + "gas": 1569047, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20" + ] + }, + { + "pc": 1175, + "op": "ADD", + "gas": 1569044, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0x20", + "0xc0" + ] + }, + { + "pc": 1176, + "op": "SWAP1", + "gas": 1569041, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xc0", + "0xe0" + ] + }, + { + "pc": 1177, + "op": "PUSH3", + "gas": 1569038, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xe0", + "0xc0" + ] + }, + { + "pc": 1181, + "op": "SWAP2", + "gas": 1569035, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0xe0", + "0xc0", + "0x4a4" + ] + }, + { + "pc": 1182, + "op": "SWAP1", + "gas": 1569032, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xc0", + "0xe0" + ] + }, + { + "pc": 1183, + "op": "PUSH3", + "gas": 1569029, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0" + ] + }, + { + "pc": 1187, + "op": "JUMP", + "gas": 1569026, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0xcad" + ] + }, + { + "pc": 3245, + "op": "JUMPDEST", + "gas": 1569018, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0" + ] + }, + { + "pc": 3246, + "op": "PUSH1", + "gas": 1569017, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0" + ] + }, + { + "pc": 3248, + "op": "PUSH1", + "gas": 1569014, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0" + ] + }, + { + "pc": 3250, + "op": "DUP3", + "gas": 1569011, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 3251, + "op": "DUP5", + "gas": 1569008, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x20", + "0xc0" + ] + }, + { + "pc": 3252, + "op": "SUB", + "gas": 1569005, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x20", + "0xc0", + "0xe0" + ] + }, + { + "pc": 3253, + "op": "SLT", + "gas": 1569002, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x20", + "0x20" + ] + }, + { + "pc": 3254, + "op": "ISZERO", + "gas": 1568999, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0" + ] + }, + { + "pc": 3255, + "op": "PUSH3", + "gas": 1568996, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x1" + ] + }, + { + "pc": 3259, + "op": "JUMPI", + "gas": 1568993, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x1", + "0xcc6" + ] + }, + { + "pc": 3270, + "op": "JUMPDEST", + "gas": 1568983, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0" + ] + }, + { + "pc": 3271, + "op": "PUSH1", + "gas": 1568982, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0" + ] + }, + { + "pc": 3273, + "op": "PUSH3", + "gas": 1568979, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0" + ] + }, + { + "pc": 3277, + "op": "DUP5", + "gas": 1568976, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6" + ] + }, + { + "pc": 3278, + "op": "DUP3", + "gas": 1568973, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0" + ] + }, + { + "pc": 3279, + "op": "DUP6", + "gas": 1568970, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0x0" + ] + }, + { + "pc": 3280, + "op": "ADD", + "gas": 1568967, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0x0", + "0xc0" + ] + }, + { + "pc": 3281, + "op": "PUSH3", + "gas": 1568964, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0" + ] + }, + { + "pc": 3285, + "op": "JUMP", + "gas": 1568961, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0xc96" + ] + }, + { + "pc": 3222, + "op": "JUMPDEST", + "gas": 1568953, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0" + ] + }, + { + "pc": 3223, + "op": "PUSH1", + "gas": 1568952, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0" + ] + }, + { + "pc": 3225, + "op": "DUP2", + "gas": 1568949, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x0" + ] + }, + { + "pc": 3226, + "op": "MLOAD", + "gas": 1568946, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x0", + "0xc0" + ] + }, + { + "pc": 3227, + "op": "SWAP1", + "gas": 1568943, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x0", + "0x1" + ] + }, + { + "pc": 3228, + "op": "POP", + "gas": 1568940, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0x0" + ] + }, + { + "pc": 3229, + "op": "PUSH3", + "gas": 1568938, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1" + ] + }, + { + "pc": 3233, + "op": "DUP2", + "gas": 1568935, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7" + ] + }, + { + "pc": 3234, + "op": "PUSH3", + "gas": 1568932, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1" + ] + }, + { + "pc": 3238, + "op": "JUMP", + "gas": 1568929, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x9fb" + ] + }, + { + "pc": 2555, + "op": "JUMPDEST", + "gas": 1568921, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1" + ] + }, + { + "pc": 2556, + "op": "PUSH3", + "gas": 1568920, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1" + ] + }, + { + "pc": 2560, + "op": "DUP2", + "gas": 1568917, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06" + ] + }, + { + "pc": 2561, + "op": "PUSH3", + "gas": 1568914, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06", + "0x1" + ] + }, + { + "pc": 2565, + "op": "JUMP", + "gas": 1568911, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06", + "0x1", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1568903, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06", + "0x1" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1568902, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06", + "0x1" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1568899, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06", + "0x1", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1568896, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1568893, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1568891, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0xa06", + "0x1", + "0x1" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1568888, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x1", + "0x1", + "0xa06" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1568885, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x1", + "0xa06", + "0x1" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1568883, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x1", + "0xa06" + ] + }, + { + "pc": 2566, + "op": "JUMPDEST", + "gas": 1568875, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x1" + ] + }, + { + "pc": 2567, + "op": "DUP2", + "gas": 1568874, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x1" + ] + }, + { + "pc": 2568, + "op": "EQ", + "gas": 1568871, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x1", + "0x1" + ] + }, + { + "pc": 2569, + "op": "PUSH3", + "gas": 1568868, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x1" + ] + }, + { + "pc": 2573, + "op": "JUMPI", + "gas": 1568865, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1", + "0x1", + "0xa12" + ] + }, + { + "pc": 2578, + "op": "JUMPDEST", + "gas": 1568855, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1" + ] + }, + { + "pc": 2579, + "op": "POP", + "gas": 1568854, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7", + "0x1" + ] + }, + { + "pc": 2580, + "op": "JUMP", + "gas": 1568852, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1", + "0xca7" + ] + }, + { + "pc": 3239, + "op": "JUMPDEST", + "gas": 1568844, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1" + ] + }, + { + "pc": 3240, + "op": "SWAP3", + "gas": 1568843, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0xcd6", + "0xe0", + "0xc0", + "0x1" + ] + }, + { + "pc": 3241, + "op": "SWAP2", + "gas": 1568840, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0x1", + "0xe0", + "0xc0", + "0xcd6" + ] + }, + { + "pc": 3242, + "op": "POP", + "gas": 1568837, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0x1", + "0xcd6", + "0xc0", + "0xe0" + ] + }, + { + "pc": 3243, + "op": "POP", + "gas": 1568835, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0x1", + "0xcd6", + "0xc0" + ] + }, + { + "pc": 3244, + "op": "JUMP", + "gas": 1568833, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0x1", + "0xcd6" + ] + }, + { + "pc": 3286, + "op": "JUMPDEST", + "gas": 1568825, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 3287, + "op": "SWAP2", + "gas": 1568824, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 3288, + "op": "POP", + "gas": 1568821, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x1", + "0x0", + "0x0" + ] + }, + { + "pc": 3289, + "op": "POP", + "gas": 1568819, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x1", + "0x0" + ] + }, + { + "pc": 3290, + "op": "SWAP3", + "gas": 1568817, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x4a4", + "0xe0", + "0xc0", + "0x1" + ] + }, + { + "pc": 3291, + "op": "SWAP2", + "gas": 1568814, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x1", + "0xe0", + "0xc0", + "0x4a4" + ] + }, + { + "pc": 3292, + "op": "POP", + "gas": 1568811, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x1", + "0x4a4", + "0xc0", + "0xe0" + ] + }, + { + "pc": 3293, + "op": "POP", + "gas": 1568809, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x1", + "0x4a4", + "0xc0" + ] + }, + { + "pc": 3294, + "op": "JUMP", + "gas": 1568807, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x1", + "0x4a4" + ] + }, + { + "pc": 1188, + "op": "JUMPDEST", + "gas": 1568799, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1189, + "op": "POP", + "gas": 1568798, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1190, + "op": "PUSH1", + "gas": 1568796, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1192, + "op": "SWAP1", + "gas": 1568793, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x0", + "0x1" + ] + }, + { + "pc": 1193, + "op": "POP", + "gas": 1568790, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x1", + "0x0" + ] + }, + { + "pc": 1194, + "op": "SWAP2", + "gas": 1568788, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x149", + "0x3e8", + "0x1" + ] + }, + { + "pc": 1195, + "op": "SWAP1", + "gas": 1568785, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1", + "0x3e8", + "0x149" + ] + }, + { + "pc": 1196, + "op": "POP", + "gas": 1568782, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1", + "0x149", + "0x3e8" + ] + }, + { + "pc": 1197, + "op": "JUMP", + "gas": 1568780, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1", + "0x149" + ] + }, + { + "pc": 329, + "op": "JUMPDEST", + "gas": 1568772, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1" + ] + }, + { + "pc": 330, + "op": "PUSH1", + "gas": 1568771, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1" + ] + }, + { + "pc": 332, + "op": "MLOAD", + "gas": 1568768, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1", + "0x40" + ] + }, + { + "pc": 333, + "op": "PUSH3", + "gas": 1568765, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1", + "0xe0" + ] + }, + { + "pc": 337, + "op": "SWAP2", + "gas": 1568762, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x1", + "0xe0", + "0x158" + ] + }, + { + "pc": 338, + "op": "SWAP1", + "gas": 1568759, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0xe0", + "0x1" + ] + }, + { + "pc": 339, + "op": "PUSH3", + "gas": 1568756, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0" + ] + }, + { + "pc": 343, + "op": "JUMP", + "gas": 1568753, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x997" + ] + }, + { + "pc": 2455, + "op": "JUMPDEST", + "gas": 1568745, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0" + ] + }, + { + "pc": 2456, + "op": "PUSH1", + "gas": 1568744, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0" + ] + }, + { + "pc": 2458, + "op": "PUSH1", + "gas": 1568741, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x0" + ] + }, + { + "pc": 2460, + "op": "DUP3", + "gas": 1568738, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 2461, + "op": "ADD", + "gas": 1568735, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 2462, + "op": "SWAP1", + "gas": 1568732, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 2463, + "op": "POP", + "gas": 1568729, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 2464, + "op": "PUSH3", + "gas": 1568727, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100" + ] + }, + { + "pc": 2468, + "op": "PUSH1", + "gas": 1568724, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae" + ] + }, + { + "pc": 2470, + "op": "DUP4", + "gas": 1568721, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0x0" + ] + }, + { + "pc": 2471, + "op": "ADD", + "gas": 1568718, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0x0", + "0xe0" + ] + }, + { + "pc": 2472, + "op": "DUP5", + "gas": 1568715, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0" + ] + }, + { + "pc": 2473, + "op": "PUSH3", + "gas": 1568712, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1" + ] + }, + { + "pc": 2477, + "op": "JUMP", + "gas": 1568709, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x986" + ] + }, + { + "pc": 2438, + "op": "JUMPDEST", + "gas": 1568701, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1" + ] + }, + { + "pc": 2439, + "op": "PUSH3", + "gas": 1568700, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1" + ] + }, + { + "pc": 2443, + "op": "DUP2", + "gas": 1568697, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991" + ] + }, + { + "pc": 2444, + "op": "PUSH3", + "gas": 1568694, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991", + "0x1" + ] + }, + { + "pc": 2448, + "op": "JUMP", + "gas": 1568691, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991", + "0x1", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 1568683, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991", + "0x1" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 1568682, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991", + "0x1" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 1568679, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991", + "0x1", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 1568676, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 1568673, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 1568671, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x991", + "0x1", + "0x1" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 1568668, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x1", + "0x1", + "0x991" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 1568665, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x1", + "0x991", + "0x1" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 1568663, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x1", + "0x991" + ] + }, + { + "pc": 2449, + "op": "JUMPDEST", + "gas": 1568655, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x1" + ] + }, + { + "pc": 2450, + "op": "DUP3", + "gas": 1568654, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x1" + ] + }, + { + "pc": 2451, + "op": "MSTORE", + "gas": 1568651, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1", + "0x1", + "0xe0" + ] + }, + { + "pc": 2452, + "op": "POP", + "gas": 1568648, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0", + "0x1" + ] + }, + { + "pc": 2453, + "op": "POP", + "gas": 1568646, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae", + "0xe0" + ] + }, + { + "pc": 2454, + "op": "JUMP", + "gas": 1568644, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100", + "0x9ae" + ] + }, + { + "pc": 2478, + "op": "JUMPDEST", + "gas": 1568636, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100" + ] + }, + { + "pc": 2479, + "op": "SWAP3", + "gas": 1568635, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x158", + "0x1", + "0xe0", + "0x100" + ] + }, + { + "pc": 2480, + "op": "SWAP2", + "gas": 1568632, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100", + "0x1", + "0xe0", + "0x158" + ] + }, + { + "pc": 2481, + "op": "POP", + "gas": 1568629, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100", + "0x158", + "0xe0", + "0x1" + ] + }, + { + "pc": 2482, + "op": "POP", + "gas": 1568627, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100", + "0x158", + "0xe0" + ] + }, + { + "pc": 2483, + "op": "JUMP", + "gas": 1568625, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100", + "0x158" + ] + }, + { + "pc": 344, + "op": "JUMPDEST", + "gas": 1568617, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100" + ] + }, + { + "pc": 345, + "op": "PUSH1", + "gas": 1568616, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100" + ] + }, + { + "pc": 347, + "op": "MLOAD", + "gas": 1568613, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100", + "0x40" + ] + }, + { + "pc": 348, + "op": "DUP1", + "gas": 1568610, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100", + "0xe0" + ] + }, + { + "pc": 349, + "op": "SWAP2", + "gas": 1568607, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x100", + "0xe0", + "0xe0" + ] + }, + { + "pc": 350, + "op": "SUB", + "gas": 1568604, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0xe0", + "0xe0", + "0x100" + ] + }, + { + "pc": 351, + "op": "SWAP1", + "gas": 1568601, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x3aa18088", + "0xe0", + "0x20" + ] + }, + { + "pc": 352, + "op": "RETURN", + "gas": 1568598, + "gasCost": 0, + "depth": 1, + "stack": [ + "0x3aa18088", + "0x20", + "0xe0" + ] + } + ] +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.prestateDiffTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.prestateDiffTracer.json new file mode 100644 index 000000000..289c3dbdf --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.prestateDiffTracer.json @@ -0,0 +1,42 @@ +{ + "post": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1beb69b" + }, + "0x61a286b8e87e2d31c475d71c85a0020584c44bae": { + "code": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033", + "nonce": 1, + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000001d6329f1c35ca4bfabb9f56100000003e8", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000001d6329f1c35ca4bfabb9f56100000003ea" + } + }, + "OWNER.address": { + "balance": "0x360ee5cfde69ec5c29", + "nonce": 83 + }, + "Tracer.address": { + "nonce": 2, + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000061a286b8e87e2d31c475d71c85a0020584c44bae", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000000000000000003e8", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000000000000000000000000000000000000000003e9" + } + } + }, + "pre": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b69ad1" + }, + "OWNER.address": { + "balance": "0x360ee5cfe1af4203d1", + "nonce": 82 + }, + "Tracer.address": { + "balance": "0x0", + "code": "0x60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "nonce": 1 + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.prestateTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.prestateTracer.json new file mode 100644 index 000000000..e498b7623 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.mint2.prestateTracer.json @@ -0,0 +1,27 @@ +{ + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b69ad1" + }, + "0x61a286b8e87e2d31c475d71c85a0020584c44bae": { + "balance": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "OWNER.address": { + "balance": "0x360ee5cfe1af4203d1", + "nonce": 82 + }, + "Tracer.address": { + "balance": "0x0", + "code": "0x60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "nonce": 1, + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.4byteTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.4byteTracer.json new file mode 100644 index 000000000..9e7fa8097 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.4byteTracer.json @@ -0,0 +1,5 @@ +{ + "0x7f29c394-32": 1, + "0x8bfe44ff-0": 1, + "0x92954362-0": 1 +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.callTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.callTracer.json new file mode 100644 index 000000000..e8896f379 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.callTracer.json @@ -0,0 +1,35 @@ +{ + "from": "OWNER.address", + "gas": "0x200b20", + "gasUsed": "0x70ff", + "to": "Tracer.address", + "input": "0x7f29c39400000000000000000000000000000000000000000000000000000000000003e8", + "output": "0x08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014494e53554646494349454e542042414c414e4345000000000000000000000000", + "error": "execution reverted", + "revertReason": "INSUFFICIENT BALANCE", + "calls": [ + { + "from": "Tracer.address", + "gas": "0x1f3655", + "gasUsed": "0x1c8", + "to": "Tracer.address", + "input": "0x92954362", + "output": "0x08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000017546869732066756e6374696f6e20726576657274656421000000000000000000", + "error": "execution reverted", + "revertReason": "This function reverted!", + "type": "STATICCALL" + }, + { + "from": "Tracer.address", + "gas": "0x1f28cc", + "gasUsed": "0x2b8", + "to": "Tracer.address", + "input": "0x8bfe44ff", + "output": "0xcf47918100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001", + "error": "execution reverted", + "type": "STATICCALL" + } + ], + "value": "0x0", + "type": "CALL" +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.defaultTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.defaultTracer.json new file mode 100644 index 000000000..df6d34099 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.defaultTracer.json @@ -0,0 +1,22633 @@ +{ + "gas": 28927, + "failed": true, + "returnValue": "08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000014494e53554646494349454e542042414c414e4345000000000000000000000000", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 2078784, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 2078781, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 2078778, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "CALLVALUE", + "gas": 2078766, + "gasCost": 2, + "depth": 1, + "stack": [] + }, + { + "pc": 6, + "op": "DUP1", + "gas": 2078764, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 7, + "op": "ISZERO", + "gas": 2078761, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 8, + "op": "PUSH3", + "gas": 2078758, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 2078755, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x1", + "0x11" + ] + }, + { + "pc": 17, + "op": "JUMPDEST", + "gas": 2078745, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 18, + "op": "POP", + "gas": 2078744, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 19, + "op": "PUSH1", + "gas": 2078742, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 21, + "op": "CALLDATASIZE", + "gas": 2078739, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 22, + "op": "LT", + "gas": 2078737, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x24" + ] + }, + { + "pc": 23, + "op": "PUSH3", + "gas": 2078734, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 27, + "op": "JUMPI", + "gas": 2078731, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0xac" + ] + }, + { + "pc": 28, + "op": "PUSH1", + "gas": 2078721, + "gasCost": 3, + "depth": 1, + "stack": [] + }, + { + "pc": 30, + "op": "CALLDATALOAD", + "gas": 2078718, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 31, + "op": "PUSH1", + "gas": 2078715, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c39400000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 33, + "op": "SHR", + "gas": 2078712, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c39400000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 34, + "op": "DUP1", + "gas": 2078709, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 35, + "op": "PUSH4", + "gas": 2078706, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394" + ] + }, + { + "pc": 40, + "op": "GT", + "gas": 2078703, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394", + "0x8bfe44ff" + ] + }, + { + "pc": 41, + "op": "PUSH3", + "gas": 2078700, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x1" + ] + }, + { + "pc": 45, + "op": "JUMPI", + "gas": 2078697, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x1", + "0x6f" + ] + }, + { + "pc": 111, + "op": "JUMPDEST", + "gas": 2078687, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 112, + "op": "DUP1", + "gas": 2078686, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 113, + "op": "PUSH4", + "gas": 2078683, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394" + ] + }, + { + "pc": 118, + "op": "EQ", + "gas": 2078680, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394", + "0x12065fe0" + ] + }, + { + "pc": 119, + "op": "PUSH3", + "gas": 2078677, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x0" + ] + }, + { + "pc": 123, + "op": "JUMPI", + "gas": 2078674, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x0", + "0xb1" + ] + }, + { + "pc": 124, + "op": "DUP1", + "gas": 2078664, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 125, + "op": "PUSH4", + "gas": 2078661, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394" + ] + }, + { + "pc": 130, + "op": "EQ", + "gas": 2078658, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394", + "0x1c717069" + ] + }, + { + "pc": 131, + "op": "PUSH3", + "gas": 2078655, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x0" + ] + }, + { + "pc": 135, + "op": "JUMPI", + "gas": 2078652, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x0", + "0xd3" + ] + }, + { + "pc": 136, + "op": "DUP1", + "gas": 2078642, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 137, + "op": "PUSH4", + "gas": 2078639, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394" + ] + }, + { + "pc": 142, + "op": "EQ", + "gas": 2078636, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394", + "0x1c93908c" + ] + }, + { + "pc": 143, + "op": "PUSH3", + "gas": 2078633, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x0" + ] + }, + { + "pc": 147, + "op": "JUMPI", + "gas": 2078630, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x0", + "0xf5" + ] + }, + { + "pc": 148, + "op": "DUP1", + "gas": 2078620, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 149, + "op": "PUSH4", + "gas": 2078617, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394" + ] + }, + { + "pc": 154, + "op": "EQ", + "gas": 2078614, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394", + "0x3aa18088" + ] + }, + { + "pc": 155, + "op": "PUSH3", + "gas": 2078611, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x0" + ] + }, + { + "pc": 159, + "op": "JUMPI", + "gas": 2078608, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x0", + "0x12b" + ] + }, + { + "pc": 160, + "op": "DUP1", + "gas": 2078598, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 161, + "op": "PUSH4", + "gas": 2078595, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394" + ] + }, + { + "pc": 166, + "op": "EQ", + "gas": 2078592, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x7f29c394", + "0x7f29c394" + ] + }, + { + "pc": 167, + "op": "PUSH3", + "gas": 2078589, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x1" + ] + }, + { + "pc": 171, + "op": "JUMPI", + "gas": 2078586, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x1", + "0x161" + ] + }, + { + "pc": 353, + "op": "JUMPDEST", + "gas": 2078576, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 354, + "op": "PUSH3", + "gas": 2078575, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394" + ] + }, + { + "pc": 358, + "op": "PUSH1", + "gas": 2078572, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f" + ] + }, + { + "pc": 360, + "op": "DUP1", + "gas": 2078569, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x4" + ] + }, + { + "pc": 361, + "op": "CALLDATASIZE", + "gas": 2078566, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x4", + "0x4" + ] + }, + { + "pc": 362, + "op": "SUB", + "gas": 2078564, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x4", + "0x4", + "0x24" + ] + }, + { + "pc": 363, + "op": "DUP2", + "gas": 2078561, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x4", + "0x20" + ] + }, + { + "pc": 364, + "op": "ADD", + "gas": 2078558, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x4", + "0x20", + "0x4" + ] + }, + { + "pc": 365, + "op": "SWAP1", + "gas": 2078555, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x4", + "0x24" + ] + }, + { + "pc": 366, + "op": "PUSH3", + "gas": 2078552, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x24", + "0x4" + ] + }, + { + "pc": 370, + "op": "SWAP2", + "gas": 2078549, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x24", + "0x4", + "0x179" + ] + }, + { + "pc": 371, + "op": "SWAP1", + "gas": 2078546, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x4", + "0x24" + ] + }, + { + "pc": 372, + "op": "PUSH3", + "gas": 2078543, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4" + ] + }, + { + "pc": 376, + "op": "JUMP", + "gas": 2078540, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0xa2c" + ] + }, + { + "pc": 2604, + "op": "JUMPDEST", + "gas": 2078532, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4" + ] + }, + { + "pc": 2605, + "op": "PUSH1", + "gas": 2078531, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4" + ] + }, + { + "pc": 2607, + "op": "PUSH1", + "gas": 2078528, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2609, + "op": "DUP3", + "gas": 2078525, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x20" + ] + }, + { + "pc": 2610, + "op": "DUP5", + "gas": 2078522, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x20", + "0x4" + ] + }, + { + "pc": 2611, + "op": "SUB", + "gas": 2078519, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x20", + "0x4", + "0x24" + ] + }, + { + "pc": 2612, + "op": "SLT", + "gas": 2078516, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x20", + "0x20" + ] + }, + { + "pc": 2613, + "op": "ISZERO", + "gas": 2078513, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 2614, + "op": "PUSH3", + "gas": 2078510, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x1" + ] + }, + { + "pc": 2618, + "op": "JUMPI", + "gas": 2078507, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x1", + "0xa45" + ] + }, + { + "pc": 2629, + "op": "JUMPDEST", + "gas": 2078497, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2630, + "op": "PUSH1", + "gas": 2078496, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2632, + "op": "PUSH3", + "gas": 2078493, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 2636, + "op": "DUP5", + "gas": 2078490, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55" + ] + }, + { + "pc": 2637, + "op": "DUP3", + "gas": 2078487, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24" + ] + }, + { + "pc": 2638, + "op": "DUP6", + "gas": 2078484, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x0" + ] + }, + { + "pc": 2639, + "op": "ADD", + "gas": 2078481, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x0", + "0x4" + ] + }, + { + "pc": 2640, + "op": "PUSH3", + "gas": 2078478, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2644, + "op": "JUMP", + "gas": 2078475, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0xa15" + ] + }, + { + "pc": 2581, + "op": "JUMPDEST", + "gas": 2078467, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2582, + "op": "PUSH1", + "gas": 2078466, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4" + ] + }, + { + "pc": 2584, + "op": "DUP2", + "gas": 2078463, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0" + ] + }, + { + "pc": 2585, + "op": "CALLDATALOAD", + "gas": 2078460, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0", + "0x4" + ] + }, + { + "pc": 2586, + "op": "SWAP1", + "gas": 2078457, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2587, + "op": "POP", + "gas": 2078454, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2588, + "op": "PUSH3", + "gas": 2078452, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2592, + "op": "DUP2", + "gas": 2078449, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26" + ] + }, + { + "pc": 2593, + "op": "PUSH3", + "gas": 2078446, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2597, + "op": "JUMP", + "gas": 2078443, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x9fb" + ] + }, + { + "pc": 2555, + "op": "JUMPDEST", + "gas": 2078435, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2556, + "op": "PUSH3", + "gas": 2078434, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2560, + "op": "DUP2", + "gas": 2078431, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2561, + "op": "PUSH3", + "gas": 2078428, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2565, + "op": "JUMP", + "gas": 2078425, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2078417, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2078416, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2078413, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2078410, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2078407, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2078405, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0xa06", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2078402, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2078399, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0xa06", + "0x3e8" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2078397, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0xa06" + ] + }, + { + "pc": 2566, + "op": "JUMPDEST", + "gas": 2078389, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2567, + "op": "DUP2", + "gas": 2078388, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2568, + "op": "EQ", + "gas": 2078385, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x3e8", + "0x3e8" + ] + }, + { + "pc": 2569, + "op": "PUSH3", + "gas": 2078382, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x1" + ] + }, + { + "pc": 2573, + "op": "JUMPI", + "gas": 2078379, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8", + "0x1", + "0xa12" + ] + }, + { + "pc": 2578, + "op": "JUMPDEST", + "gas": 2078369, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2579, + "op": "POP", + "gas": 2078368, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26", + "0x3e8" + ] + }, + { + "pc": 2580, + "op": "JUMP", + "gas": 2078366, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8", + "0xa26" + ] + }, + { + "pc": 2598, + "op": "JUMPDEST", + "gas": 2078358, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2599, + "op": "SWAP3", + "gas": 2078357, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0xa55", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2600, + "op": "SWAP2", + "gas": 2078354, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0x24", + "0x4", + "0xa55" + ] + }, + { + "pc": 2601, + "op": "POP", + "gas": 2078351, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55", + "0x4", + "0x24" + ] + }, + { + "pc": 2602, + "op": "POP", + "gas": 2078349, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55", + "0x4" + ] + }, + { + "pc": 2603, + "op": "JUMP", + "gas": 2078347, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8", + "0xa55" + ] + }, + { + "pc": 2645, + "op": "JUMPDEST", + "gas": 2078339, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2646, + "op": "SWAP2", + "gas": 2078338, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x0", + "0x0", + "0x3e8" + ] + }, + { + "pc": 2647, + "op": "POP", + "gas": 2078335, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 2648, + "op": "POP", + "gas": 2078333, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x3e8", + "0x0" + ] + }, + { + "pc": 2649, + "op": "SWAP3", + "gas": 2078331, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x179", + "0x24", + "0x4", + "0x3e8" + ] + }, + { + "pc": 2650, + "op": "SWAP2", + "gas": 2078328, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x24", + "0x4", + "0x179" + ] + }, + { + "pc": 2651, + "op": "POP", + "gas": 2078325, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x179", + "0x4", + "0x24" + ] + }, + { + "pc": 2652, + "op": "POP", + "gas": 2078323, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x179", + "0x4" + ] + }, + { + "pc": 2653, + "op": "JUMP", + "gas": 2078321, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x179" + ] + }, + { + "pc": 377, + "op": "JUMPDEST", + "gas": 2078313, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8" + ] + }, + { + "pc": 378, + "op": "PUSH3", + "gas": 2078312, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8" + ] + }, + { + "pc": 382, + "op": "JUMP", + "gas": 2078309, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x4ae" + ] + }, + { + "pc": 1198, + "op": "JUMPDEST", + "gas": 2078301, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8" + ] + }, + { + "pc": 1199, + "op": "PUSH1", + "gas": 2078300, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8" + ] + }, + { + "pc": 1201, + "op": "ADDRESS", + "gas": 2078297, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1202, + "op": "PUSH20", + "gas": 2078295, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 1223, + "op": "AND", + "gas": 2078292, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 1224, + "op": "PUSH4", + "gas": 2078289, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 1229, + "op": "PUSH1", + "gas": 2078286, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362" + ] + }, + { + "pc": 1231, + "op": "MLOAD", + "gas": 2078283, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x40" + ] + }, + { + "pc": 1232, + "op": "DUP2", + "gas": 2078280, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80" + ] + }, + { + "pc": 1233, + "op": "PUSH4", + "gas": 2078277, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80", + "0x92954362" + ] + }, + { + "pc": 1238, + "op": "AND", + "gas": 2078274, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80", + "0x92954362", + "0xffffffff" + ] + }, + { + "pc": 1239, + "op": "PUSH1", + "gas": 2078271, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80", + "0x92954362" + ] + }, + { + "pc": 1241, + "op": "SHL", + "gas": 2078268, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80", + "0x92954362", + "0xe0" + ] + }, + { + "pc": 1242, + "op": "DUP2", + "gas": 2078265, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80", + "0x9295436200000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 1243, + "op": "MSTORE", + "gas": 2078262, + "gasCost": 9, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80", + "0x9295436200000000000000000000000000000000000000000000000000000000", + "0x80" + ] + }, + { + "pc": 1244, + "op": "PUSH1", + "gas": 2078253, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80" + ] + }, + { + "pc": 1246, + "op": "ADD", + "gas": 2078250, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x80", + "0x4" + ] + }, + { + "pc": 1247, + "op": "PUSH1", + "gas": 2078247, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84" + ] + }, + { + "pc": 1249, + "op": "PUSH1", + "gas": 2078244, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0" + ] + }, + { + "pc": 1251, + "op": "MLOAD", + "gas": 2078241, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x40" + ] + }, + { + "pc": 1252, + "op": "DUP1", + "gas": 2078238, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80" + ] + }, + { + "pc": 1253, + "op": "DUP4", + "gas": 2078235, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 1254, + "op": "SUB", + "gas": 2078232, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x80", + "0x84" + ] + }, + { + "pc": 1255, + "op": "DUP2", + "gas": 2078229, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4" + ] + }, + { + "pc": 1256, + "op": "DUP7", + "gas": 2078226, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80" + ] + }, + { + "pc": 1257, + "op": "DUP1", + "gas": 2078223, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address" + ] + }, + { + "pc": 1258, + "op": "EXTCODESIZE", + "gas": 2078220, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "Tracer.address" + ] + }, + { + "pc": 1259, + "op": "ISZERO", + "gas": 2078120, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "0x1bde" + ] + }, + { + "pc": 1260, + "op": "DUP1", + "gas": 2078117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "0x0" + ] + }, + { + "pc": 1261, + "op": "ISZERO", + "gas": 2078114, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "0x0", + "0x0" + ] + }, + { + "pc": 1262, + "op": "PUSH3", + "gas": 2078111, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "0x0", + "0x1" + ] + }, + { + "pc": 1266, + "op": "JUMPI", + "gas": 2078108, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "0x0", + "0x1", + "0x4f7" + ] + }, + { + "pc": 1271, + "op": "JUMPDEST", + "gas": 2078098, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "0x0" + ] + }, + { + "pc": 1272, + "op": "POP", + "gas": 2078097, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "0x0" + ] + }, + { + "pc": 1273, + "op": "GAS", + "gas": 2078095, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address" + ] + }, + { + "pc": 1274, + "op": "STATICCALL", + "gas": 2078093, + "gasCost": 2045625, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0", + "0x80", + "0x4", + "0x80", + "Tracer.address", + "0x1fb58d" + ] + }, + { + "pc": 0, + "op": "PUSH1", + "gas": 2045525, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 2045522, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 2045519, + "gasCost": 12, + "depth": 2, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "CALLVALUE", + "gas": 2045507, + "gasCost": 2, + "depth": 2, + "stack": [] + }, + { + "pc": 6, + "op": "DUP1", + "gas": 2045505, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 7, + "op": "ISZERO", + "gas": 2045502, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 8, + "op": "PUSH3", + "gas": 2045499, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 2045496, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x11" + ] + }, + { + "pc": 17, + "op": "JUMPDEST", + "gas": 2045486, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 18, + "op": "POP", + "gas": 2045485, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 19, + "op": "PUSH1", + "gas": 2045483, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 21, + "op": "CALLDATASIZE", + "gas": 2045480, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x4" + ] + }, + { + "pc": 22, + "op": "LT", + "gas": 2045478, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x4", + "0x4" + ] + }, + { + "pc": 23, + "op": "PUSH3", + "gas": 2045475, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 27, + "op": "JUMPI", + "gas": 2045472, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0xac" + ] + }, + { + "pc": 28, + "op": "PUSH1", + "gas": 2045462, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 30, + "op": "CALLDATALOAD", + "gas": 2045459, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 31, + "op": "PUSH1", + "gas": 2045456, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x9295436200000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 33, + "op": "SHR", + "gas": 2045453, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x9295436200000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 34, + "op": "DUP1", + "gas": 2045450, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362" + ] + }, + { + "pc": 35, + "op": "PUSH4", + "gas": 2045447, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x92954362" + ] + }, + { + "pc": 40, + "op": "GT", + "gas": 2045444, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x92954362", + "0x8bfe44ff" + ] + }, + { + "pc": 41, + "op": "PUSH3", + "gas": 2045441, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x0" + ] + }, + { + "pc": 45, + "op": "JUMPI", + "gas": 2045438, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x92954362", + "0x0", + "0x6f" + ] + }, + { + "pc": 46, + "op": "DUP1", + "gas": 2045428, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362" + ] + }, + { + "pc": 47, + "op": "PUSH4", + "gas": 2045425, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x92954362" + ] + }, + { + "pc": 52, + "op": "EQ", + "gas": 2045422, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x92954362", + "0x8bfe44ff" + ] + }, + { + "pc": 53, + "op": "PUSH3", + "gas": 2045419, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x0" + ] + }, + { + "pc": 57, + "op": "JUMPI", + "gas": 2045416, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x92954362", + "0x0", + "0x197" + ] + }, + { + "pc": 58, + "op": "DUP1", + "gas": 2045406, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362" + ] + }, + { + "pc": 59, + "op": "PUSH4", + "gas": 2045403, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x92954362" + ] + }, + { + "pc": 64, + "op": "EQ", + "gas": 2045400, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x92954362", + "0x92954362" + ] + }, + { + "pc": 65, + "op": "PUSH3", + "gas": 2045397, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1" + ] + }, + { + "pc": 69, + "op": "JUMPI", + "gas": 2045394, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x92954362", + "0x1", + "0x1a3" + ] + }, + { + "pc": 419, + "op": "JUMPDEST", + "gas": 2045384, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362" + ] + }, + { + "pc": 420, + "op": "PUSH3", + "gas": 2045383, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362" + ] + }, + { + "pc": 424, + "op": "PUSH3", + "gas": 2045380, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad" + ] + }, + { + "pc": 428, + "op": "JUMP", + "gas": 2045377, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7c5" + ] + }, + { + "pc": 1989, + "op": "JUMPDEST", + "gas": 2045369, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad" + ] + }, + { + "pc": 1990, + "op": "PUSH1", + "gas": 2045368, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad" + ] + }, + { + "pc": 1992, + "op": "MLOAD", + "gas": 2045365, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x40" + ] + }, + { + "pc": 1993, + "op": "PUSH32", + "gas": 2045362, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x80" + ] + }, + { + "pc": 2026, + "op": "DUP2", + "gas": 2045359, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x80", + "0x8c379a000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 2027, + "op": "MSTORE", + "gas": 2045356, + "gasCost": 9, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x80", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0x80" + ] + }, + { + "pc": 2028, + "op": "PUSH1", + "gas": 2045347, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x80" + ] + }, + { + "pc": 2030, + "op": "ADD", + "gas": 2045344, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x80", + "0x4" + ] + }, + { + "pc": 2031, + "op": "PUSH3", + "gas": 2045341, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x84" + ] + }, + { + "pc": 2035, + "op": "SWAP1", + "gas": 2045338, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x84", + "0x7f9" + ] + }, + { + "pc": 2036, + "op": "PUSH3", + "gas": 2045335, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84" + ] + }, + { + "pc": 2040, + "op": "JUMP", + "gas": 2045332, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0x10a3" + ] + }, + { + "pc": 4259, + "op": "JUMPDEST", + "gas": 2045324, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84" + ] + }, + { + "pc": 4260, + "op": "PUSH1", + "gas": 2045323, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84" + ] + }, + { + "pc": 4262, + "op": "PUSH1", + "gas": 2045320, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0x0" + ] + }, + { + "pc": 4264, + "op": "DUP3", + "gas": 2045317, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0x0", + "0x20" + ] + }, + { + "pc": 4265, + "op": "ADD", + "gas": 2045314, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0x0", + "0x20", + "0x84" + ] + }, + { + "pc": 4266, + "op": "SWAP1", + "gas": 2045311, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0x0", + "0xa4" + ] + }, + { + "pc": 4267, + "op": "POP", + "gas": 2045308, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x0" + ] + }, + { + "pc": 4268, + "op": "DUP2", + "gas": 2045306, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4" + ] + }, + { + "pc": 4269, + "op": "DUP2", + "gas": 2045303, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x84" + ] + }, + { + "pc": 4270, + "op": "SUB", + "gas": 2045300, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x84", + "0xa4" + ] + }, + { + "pc": 4271, + "op": "PUSH1", + "gas": 2045297, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x20" + ] + }, + { + "pc": 4273, + "op": "DUP4", + "gas": 2045294, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x20", + "0x0" + ] + }, + { + "pc": 4274, + "op": "ADD", + "gas": 2045291, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x20", + "0x0", + "0x84" + ] + }, + { + "pc": 4275, + "op": "MSTORE", + "gas": 2045288, + "gasCost": 6, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x20", + "0x84" + ] + }, + { + "pc": 4276, + "op": "PUSH3", + "gas": 2045282, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4" + ] + }, + { + "pc": 4280, + "op": "DUP2", + "gas": 2045279, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be" + ] + }, + { + "pc": 4281, + "op": "PUSH3", + "gas": 2045276, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4" + ] + }, + { + "pc": 4285, + "op": "JUMP", + "gas": 2045273, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x107c" + ] + }, + { + "pc": 4220, + "op": "JUMPDEST", + "gas": 2045265, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4" + ] + }, + { + "pc": 4221, + "op": "PUSH1", + "gas": 2045264, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4" + ] + }, + { + "pc": 4223, + "op": "PUSH3", + "gas": 2045261, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0" + ] + }, + { + "pc": 4227, + "op": "PUSH1", + "gas": 2045258, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b" + ] + }, + { + "pc": 4229, + "op": "DUP4", + "gas": 2045255, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17" + ] + }, + { + "pc": 4230, + "op": "PUSH3", + "gas": 2045252, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4" + ] + }, + { + "pc": 4234, + "op": "JUMP", + "gas": 2045249, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0xaf5" + ] + }, + { + "pc": 2805, + "op": "JUMPDEST", + "gas": 2045241, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4" + ] + }, + { + "pc": 2806, + "op": "PUSH1", + "gas": 2045240, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4" + ] + }, + { + "pc": 2808, + "op": "DUP3", + "gas": 2045237, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0x0" + ] + }, + { + "pc": 2809, + "op": "DUP3", + "gas": 2045234, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0x0", + "0x17" + ] + }, + { + "pc": 2810, + "op": "MSTORE", + "gas": 2045231, + "gasCost": 6, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0x0", + "0x17", + "0xa4" + ] + }, + { + "pc": 2811, + "op": "PUSH1", + "gas": 2045225, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0x0" + ] + }, + { + "pc": 2813, + "op": "DUP3", + "gas": 2045222, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0x0", + "0x20" + ] + }, + { + "pc": 2814, + "op": "ADD", + "gas": 2045219, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0x0", + "0x20", + "0xa4" + ] + }, + { + "pc": 2815, + "op": "SWAP1", + "gas": 2045216, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0x0", + "0xc4" + ] + }, + { + "pc": 2816, + "op": "POP", + "gas": 2045213, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0xc4", + "0x0" + ] + }, + { + "pc": 2817, + "op": "SWAP3", + "gas": 2045211, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0x108b", + "0x17", + "0xa4", + "0xc4" + ] + }, + { + "pc": 2818, + "op": "SWAP2", + "gas": 2045208, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0xc4", + "0x17", + "0xa4", + "0x108b" + ] + }, + { + "pc": 2819, + "op": "POP", + "gas": 2045205, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0xc4", + "0x108b", + "0xa4", + "0x17" + ] + }, + { + "pc": 2820, + "op": "POP", + "gas": 2045203, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0xc4", + "0x108b", + "0xa4" + ] + }, + { + "pc": 2821, + "op": "JUMP", + "gas": 2045201, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0xc4", + "0x108b" + ] + }, + { + "pc": 4235, + "op": "JUMPDEST", + "gas": 2045193, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0xc4" + ] + }, + { + "pc": 4236, + "op": "SWAP2", + "gas": 2045192, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xa4", + "0x0", + "0xc4" + ] + }, + { + "pc": 4237, + "op": "POP", + "gas": 2045189, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0xa4" + ] + }, + { + "pc": 4238, + "op": "PUSH3", + "gas": 2045187, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0" + ] + }, + { + "pc": 4242, + "op": "DUP3", + "gas": 2045184, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098" + ] + }, + { + "pc": 4243, + "op": "PUSH3", + "gas": 2045181, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4" + ] + }, + { + "pc": 4247, + "op": "JUMP", + "gas": 2045178, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4", + "0x1053" + ] + }, + { + "pc": 4179, + "op": "JUMPDEST", + "gas": 2045170, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4" + ] + }, + { + "pc": 4180, + "op": "PUSH32", + "gas": 2045169, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4" + ] + }, + { + "pc": 4213, + "op": "PUSH1", + "gas": 2045166, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4", + "0x546869732066756e6374696f6e20726576657274656421000000000000000000" + ] + }, + { + "pc": 4215, + "op": "DUP3", + "gas": 2045163, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4", + "0x546869732066756e6374696f6e20726576657274656421000000000000000000", + "0x0" + ] + }, + { + "pc": 4216, + "op": "ADD", + "gas": 2045160, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4", + "0x546869732066756e6374696f6e20726576657274656421000000000000000000", + "0x0", + "0xc4" + ] + }, + { + "pc": 4217, + "op": "MSTORE", + "gas": 2045157, + "gasCost": 6, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4", + "0x546869732066756e6374696f6e20726576657274656421000000000000000000", + "0xc4" + ] + }, + { + "pc": 4218, + "op": "POP", + "gas": 2045151, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098", + "0xc4" + ] + }, + { + "pc": 4219, + "op": "JUMP", + "gas": 2045149, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x1098" + ] + }, + { + "pc": 4248, + "op": "JUMPDEST", + "gas": 2045141, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0" + ] + }, + { + "pc": 4249, + "op": "PUSH1", + "gas": 2045140, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0" + ] + }, + { + "pc": 4251, + "op": "DUP3", + "gas": 2045137, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x20" + ] + }, + { + "pc": 4252, + "op": "ADD", + "gas": 2045134, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0x20", + "0xc4" + ] + }, + { + "pc": 4253, + "op": "SWAP1", + "gas": 2045131, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0x0", + "0xe4" + ] + }, + { + "pc": 4254, + "op": "POP", + "gas": 2045128, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0xe4", + "0x0" + ] + }, + { + "pc": 4255, + "op": "SWAP2", + "gas": 2045126, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0x10be", + "0xc4", + "0xe4" + ] + }, + { + "pc": 4256, + "op": "SWAP1", + "gas": 2045123, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0xe4", + "0xc4", + "0x10be" + ] + }, + { + "pc": 4257, + "op": "POP", + "gas": 2045120, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0xe4", + "0x10be", + "0xc4" + ] + }, + { + "pc": 4258, + "op": "JUMP", + "gas": 2045118, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0xe4", + "0x10be" + ] + }, + { + "pc": 4286, + "op": "JUMPDEST", + "gas": 2045110, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0xe4" + ] + }, + { + "pc": 4287, + "op": "SWAP1", + "gas": 2045109, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xa4", + "0xe4" + ] + }, + { + "pc": 4288, + "op": "POP", + "gas": 2045106, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xe4", + "0xa4" + ] + }, + { + "pc": 4289, + "op": "SWAP2", + "gas": 2045104, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x7f9", + "0x84", + "0xe4" + ] + }, + { + "pc": 4290, + "op": "SWAP1", + "gas": 2045101, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0xe4", + "0x84", + "0x7f9" + ] + }, + { + "pc": 4291, + "op": "POP", + "gas": 2045098, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0xe4", + "0x7f9", + "0x84" + ] + }, + { + "pc": 4292, + "op": "JUMP", + "gas": 2045096, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0xe4", + "0x7f9" + ] + }, + { + "pc": 2041, + "op": "JUMPDEST", + "gas": 2045088, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0xe4" + ] + }, + { + "pc": 2042, + "op": "PUSH1", + "gas": 2045087, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0xe4" + ] + }, + { + "pc": 2044, + "op": "MLOAD", + "gas": 2045084, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0xe4", + "0x40" + ] + }, + { + "pc": 2045, + "op": "DUP1", + "gas": 2045081, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0xe4", + "0x80" + ] + }, + { + "pc": 2046, + "op": "SWAP2", + "gas": 2045078, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0xe4", + "0x80", + "0x80" + ] + }, + { + "pc": 2047, + "op": "SUB", + "gas": 2045075, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x80", + "0x80", + "0xe4" + ] + }, + { + "pc": 2048, + "op": "SWAP1", + "gas": 2045072, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x80", + "0x64" + ] + }, + { + "pc": 2049, + "op": "REVERT", + "gas": 2045069, + "gasCost": 0, + "depth": 2, + "stack": [ + "0x92954362", + "0x1ad", + "0x64", + "0x80" + ] + }, + { + "pc": 1275, + "op": "SWAP3", + "gas": 2077537, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x92954362", + "0x84", + "0x0" + ] + }, + { + "pc": 1276, + "op": "POP", + "gas": 2077534, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x92954362", + "0x84", + "Tracer.address" + ] + }, + { + "pc": 1277, + "op": "POP", + "gas": 2077532, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x92954362", + "0x84" + ] + }, + { + "pc": 1278, + "op": "POP", + "gas": 2077530, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x92954362" + ] + }, + { + "pc": 1279, + "op": "DUP1", + "gas": 2077528, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1280, + "op": "ISZERO", + "gas": 2077525, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 1281, + "op": "PUSH3", + "gas": 2077522, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 1285, + "op": "JUMPI", + "gas": 2077519, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x1", + "0x509" + ] + }, + { + "pc": 1289, + "op": "JUMPDEST", + "gas": 2077509, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1290, + "op": "PUSH3", + "gas": 2077508, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1294, + "op": "JUMPI", + "gas": 2077505, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x5f2" + ] + }, + { + "pc": 1295, + "op": "PUSH3", + "gas": 2077495, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1299, + "op": "PUSH3", + "gas": 2077492, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518" + ] + }, + { + "pc": 1303, + "op": "JUMP", + "gas": 2077489, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0xcec" + ] + }, + { + "pc": 3308, + "op": "JUMPDEST", + "gas": 2077481, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518" + ] + }, + { + "pc": 3309, + "op": "PUSH1", + "gas": 2077480, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518" + ] + }, + { + "pc": 3311, + "op": "PUSH1", + "gas": 2077477, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0" + ] + }, + { + "pc": 3313, + "op": "RETURNDATASIZE", + "gas": 2077474, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x3" + ] + }, + { + "pc": 3314, + "op": "GT", + "gas": 2077472, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x3", + "0x64" + ] + }, + { + "pc": 3315, + "op": "ISZERO", + "gas": 2077469, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x1" + ] + }, + { + "pc": 3316, + "op": "PUSH3", + "gas": 2077466, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x0" + ] + }, + { + "pc": 3320, + "op": "JUMPI", + "gas": 2077463, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x0", + "0xd0e" + ] + }, + { + "pc": 3321, + "op": "PUSH1", + "gas": 2077453, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0" + ] + }, + { + "pc": 3323, + "op": "PUSH1", + "gas": 2077450, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x4" + ] + }, + { + "pc": 3325, + "op": "DUP1", + "gas": 2077447, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x4", + "0x0" + ] + }, + { + "pc": 3326, + "op": "RETURNDATACOPY", + "gas": 2077444, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 3327, + "op": "PUSH3", + "gas": 2077438, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0" + ] + }, + { + "pc": 3331, + "op": "PUSH1", + "gas": 2077435, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b" + ] + }, + { + "pc": 3333, + "op": "MLOAD", + "gas": 2077432, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x0" + ] + }, + { + "pc": 3334, + "op": "PUSH3", + "gas": 2077429, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3338, + "op": "JUMP", + "gas": 2077426, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0xcdf" + ] + }, + { + "pc": 3295, + "op": "JUMPDEST", + "gas": 2077418, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3296, + "op": "PUSH1", + "gas": 2077417, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3298, + "op": "DUP2", + "gas": 2077414, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 3299, + "op": "PUSH1", + "gas": 2077411, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0x0", + "0x8c379a000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3301, + "op": "SHR", + "gas": 2077408, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0x0", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 3302, + "op": "SWAP1", + "gas": 2077405, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0x0", + "0x8c379a0" + ] + }, + { + "pc": 3303, + "op": "POP", + "gas": 2077402, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0x8c379a0", + "0x0" + ] + }, + { + "pc": 3304, + "op": "SWAP2", + "gas": 2077400, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0x8c379a0" + ] + }, + { + "pc": 3305, + "op": "SWAP1", + "gas": 2077397, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x8c379a0", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0xd0b" + ] + }, + { + "pc": 3306, + "op": "POP", + "gas": 2077394, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x8c379a0", + "0xd0b", + "0x8c379a000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3307, + "op": "JUMP", + "gas": 2077392, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x8c379a0", + "0xd0b" + ] + }, + { + "pc": 3339, + "op": "JUMPDEST", + "gas": 2077384, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x8c379a0" + ] + }, + { + "pc": 3340, + "op": "SWAP1", + "gas": 2077383, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x0", + "0x8c379a0" + ] + }, + { + "pc": 3341, + "op": "POP", + "gas": 2077380, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x8c379a0", + "0x0" + ] + }, + { + "pc": 3342, + "op": "JUMPDEST", + "gas": 2077378, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x8c379a0" + ] + }, + { + "pc": 3343, + "op": "SWAP1", + "gas": 2077377, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x518", + "0x8c379a0" + ] + }, + { + "pc": 3344, + "op": "JUMP", + "gas": 2077374, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0", + "0x518" + ] + }, + { + "pc": 1304, + "op": "JUMPDEST", + "gas": 2077366, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0" + ] + }, + { + "pc": 1305, + "op": "DUP1", + "gas": 2077365, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0" + ] + }, + { + "pc": 1306, + "op": "PUSH4", + "gas": 2077362, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0", + "0x8c379a0" + ] + }, + { + "pc": 1311, + "op": "EQ", + "gas": 2077359, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0", + "0x8c379a0", + "0x8c379a0" + ] + }, + { + "pc": 1312, + "op": "ISZERO", + "gas": 2077356, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0", + "0x1" + ] + }, + { + "pc": 1313, + "op": "PUSH3", + "gas": 2077353, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0", + "0x0" + ] + }, + { + "pc": 1317, + "op": "JUMPI", + "gas": 2077350, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0", + "0x0", + "0x57d" + ] + }, + { + "pc": 1318, + "op": "POP", + "gas": 2077340, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x8c379a0" + ] + }, + { + "pc": 1319, + "op": "PUSH3", + "gas": 2077338, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1323, + "op": "PUSH3", + "gas": 2077335, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530" + ] + }, + { + "pc": 1327, + "op": "JUMP", + "gas": 2077332, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xd87" + ] + }, + { + "pc": 3463, + "op": "JUMPDEST", + "gas": 2077324, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530" + ] + }, + { + "pc": 3464, + "op": "PUSH1", + "gas": 2077323, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530" + ] + }, + { + "pc": 3466, + "op": "PUSH1", + "gas": 2077320, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0" + ] + }, + { + "pc": 3468, + "op": "RETURNDATASIZE", + "gas": 2077317, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x44" + ] + }, + { + "pc": 3469, + "op": "LT", + "gas": 2077315, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x44", + "0x64" + ] + }, + { + "pc": 3470, + "op": "ISZERO", + "gas": 2077312, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x0" + ] + }, + { + "pc": 3471, + "op": "PUSH3", + "gas": 2077309, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x1" + ] + }, + { + "pc": 3475, + "op": "JUMPI", + "gas": 2077306, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x1", + "0xd99" + ] + }, + { + "pc": 3481, + "op": "JUMPDEST", + "gas": 2077296, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0" + ] + }, + { + "pc": 3482, + "op": "PUSH3", + "gas": 2077295, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0" + ] + }, + { + "pc": 3486, + "op": "PUSH3", + "gas": 2077292, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3" + ] + }, + { + "pc": 3490, + "op": "JUMP", + "gas": 2077289, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3", + "0x9ec" + ] + }, + { + "pc": 2540, + "op": "JUMPDEST", + "gas": 2077281, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3" + ] + }, + { + "pc": 2541, + "op": "PUSH1", + "gas": 2077280, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3" + ] + }, + { + "pc": 2543, + "op": "PUSH1", + "gas": 2077277, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3", + "0x0" + ] + }, + { + "pc": 2545, + "op": "MLOAD", + "gas": 2077274, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3", + "0x0", + "0x40" + ] + }, + { + "pc": 2546, + "op": "SWAP1", + "gas": 2077271, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3", + "0x0", + "0x80" + ] + }, + { + "pc": 2547, + "op": "POP", + "gas": 2077268, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3", + "0x80", + "0x0" + ] + }, + { + "pc": 2548, + "op": "SWAP1", + "gas": 2077266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0xda3", + "0x80" + ] + }, + { + "pc": 2549, + "op": "JUMP", + "gas": 2077263, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0xda3" + ] + }, + { + "pc": 3491, + "op": "JUMPDEST", + "gas": 2077255, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80" + ] + }, + { + "pc": 3492, + "op": "PUSH1", + "gas": 2077254, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80" + ] + }, + { + "pc": 3494, + "op": "RETURNDATASIZE", + "gas": 2077251, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x4" + ] + }, + { + "pc": 3495, + "op": "SUB", + "gas": 2077249, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x4", + "0x64" + ] + }, + { + "pc": 3496, + "op": "PUSH1", + "gas": 2077246, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x60" + ] + }, + { + "pc": 3498, + "op": "DUP3", + "gas": 2077243, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x60", + "0x4" + ] + }, + { + "pc": 3499, + "op": "RETURNDATACOPY", + "gas": 2077240, + "gasCost": 18, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x60", + "0x4", + "0x80" + ] + }, + { + "pc": 3500, + "op": "DUP1", + "gas": 2077222, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80" + ] + }, + { + "pc": 3501, + "op": "MLOAD", + "gas": 2077219, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x80" + ] + }, + { + "pc": 3502, + "op": "RETURNDATASIZE", + "gas": 2077216, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20" + ] + }, + { + "pc": 3503, + "op": "PUSH1", + "gas": 2077214, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x64" + ] + }, + { + "pc": 3505, + "op": "DUP3", + "gas": 2077211, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x64", + "0x24" + ] + }, + { + "pc": 3506, + "op": "ADD", + "gas": 2077208, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x64", + "0x24", + "0x20" + ] + }, + { + "pc": 3507, + "op": "GT", + "gas": 2077205, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x64", + "0x44" + ] + }, + { + "pc": 3508, + "op": "PUSH8", + "gas": 2077202, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x0" + ] + }, + { + "pc": 3517, + "op": "DUP3", + "gas": 2077199, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x0", + "0xffffffffffffffff" + ] + }, + { + "pc": 3518, + "op": "GT", + "gas": 2077196, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x0", + "0xffffffffffffffff", + "0x20" + ] + }, + { + "pc": 3519, + "op": "OR", + "gas": 2077193, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x0", + "0x0" + ] + }, + { + "pc": 3520, + "op": "ISZERO", + "gas": 2077190, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x0" + ] + }, + { + "pc": 3521, + "op": "PUSH3", + "gas": 2077187, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x1" + ] + }, + { + "pc": 3525, + "op": "JUMPI", + "gas": 2077184, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x1", + "0xdcd" + ] + }, + { + "pc": 3533, + "op": "JUMPDEST", + "gas": 2077174, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20" + ] + }, + { + "pc": 3534, + "op": "DUP1", + "gas": 2077173, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20" + ] + }, + { + "pc": 3535, + "op": "DUP3", + "gas": 2077170, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x20" + ] + }, + { + "pc": 3536, + "op": "ADD", + "gas": 2077167, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0x20", + "0x80" + ] + }, + { + "pc": 3537, + "op": "DUP1", + "gas": 2077164, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0" + ] + }, + { + "pc": 3538, + "op": "MLOAD", + "gas": 2077161, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0xa0" + ] + }, + { + "pc": 3539, + "op": "PUSH8", + "gas": 2077158, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17" + ] + }, + { + "pc": 3548, + "op": "DUP2", + "gas": 2077155, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xffffffffffffffff" + ] + }, + { + "pc": 3549, + "op": "GT", + "gas": 2077152, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xffffffffffffffff", + "0x17" + ] + }, + { + "pc": 3550, + "op": "ISZERO", + "gas": 2077149, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0x0" + ] + }, + { + "pc": 3551, + "op": "PUSH3", + "gas": 2077146, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0x1" + ] + }, + { + "pc": 3555, + "op": "JUMPI", + "gas": 2077143, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0x1", + "0xded" + ] + }, + { + "pc": 3565, + "op": "JUMPDEST", + "gas": 2077133, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17" + ] + }, + { + "pc": 3566, + "op": "DUP1", + "gas": 2077132, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17" + ] + }, + { + "pc": 3567, + "op": "PUSH1", + "gas": 2077129, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0x17" + ] + }, + { + "pc": 3569, + "op": "DUP4", + "gas": 2077126, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0x17", + "0x20" + ] + }, + { + "pc": 3570, + "op": "ADD", + "gas": 2077123, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0x17", + "0x20", + "0xa0" + ] + }, + { + "pc": 3571, + "op": "ADD", + "gas": 2077120, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0x17", + "0xc0" + ] + }, + { + "pc": 3572, + "op": "PUSH1", + "gas": 2077117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7" + ] + }, + { + "pc": 3574, + "op": "RETURNDATASIZE", + "gas": 2077114, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0x4" + ] + }, + { + "pc": 3575, + "op": "SUB", + "gas": 2077112, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0x4", + "0x64" + ] + }, + { + "pc": 3576, + "op": "DUP6", + "gas": 2077109, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0x60" + ] + }, + { + "pc": 3577, + "op": "ADD", + "gas": 2077106, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0x60", + "0x80" + ] + }, + { + "pc": 3578, + "op": "DUP2", + "gas": 2077103, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe0" + ] + }, + { + "pc": 3579, + "op": "GT", + "gas": 2077100, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe0", + "0xd7" + ] + }, + { + "pc": 3580, + "op": "ISZERO", + "gas": 2077097, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0x0" + ] + }, + { + "pc": 3581, + "op": "PUSH3", + "gas": 2077094, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0x1" + ] + }, + { + "pc": 3585, + "op": "JUMPI", + "gas": 2077091, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0x1", + "0xe0c" + ] + }, + { + "pc": 3596, + "op": "JUMPDEST", + "gas": 2077081, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7" + ] + }, + { + "pc": 3597, + "op": "PUSH3", + "gas": 2077080, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7" + ] + }, + { + "pc": 3601, + "op": "DUP3", + "gas": 2077077, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d" + ] + }, + { + "pc": 3602, + "op": "PUSH1", + "gas": 2077074, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x17" + ] + }, + { + "pc": 3604, + "op": "ADD", + "gas": 2077071, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x17", + "0x20" + ] + }, + { + "pc": 3605, + "op": "DUP6", + "gas": 2077068, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x37" + ] + }, + { + "pc": 3606, + "op": "ADD", + "gas": 2077065, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x37", + "0x20" + ] + }, + { + "pc": 3607, + "op": "DUP7", + "gas": 2077062, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57" + ] + }, + { + "pc": 3608, + "op": "PUSH3", + "gas": 2077059, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80" + ] + }, + { + "pc": 3612, + "op": "JUMP", + "gas": 2077056, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd51" + ] + }, + { + "pc": 3409, + "op": "JUMPDEST", + "gas": 2077048, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80" + ] + }, + { + "pc": 3410, + "op": "PUSH3", + "gas": 2077047, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80" + ] + }, + { + "pc": 3414, + "op": "DUP3", + "gas": 2077044, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c" + ] + }, + { + "pc": 3415, + "op": "PUSH3", + "gas": 2077041, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57" + ] + }, + { + "pc": 3419, + "op": "JUMP", + "gas": 2077038, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0xd11" + ] + }, + { + "pc": 3345, + "op": "JUMPDEST", + "gas": 2077030, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57" + ] + }, + { + "pc": 3346, + "op": "PUSH1", + "gas": 2077029, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57" + ] + }, + { + "pc": 3348, + "op": "PUSH1", + "gas": 2077026, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x0" + ] + }, + { + "pc": 3350, + "op": "NOT", + "gas": 2077023, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x0", + "0x1f" + ] + }, + { + "pc": 3351, + "op": "PUSH1", + "gas": 2077020, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0" + ] + }, + { + "pc": 3353, + "op": "DUP4", + "gas": 2077017, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x1f" + ] + }, + { + "pc": 3354, + "op": "ADD", + "gas": 2077014, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x1f", + "0x57" + ] + }, + { + "pc": 3355, + "op": "AND", + "gas": 2077011, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x76" + ] + }, + { + "pc": 3356, + "op": "SWAP1", + "gas": 2077008, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x0", + "0x60" + ] + }, + { + "pc": 3357, + "op": "POP", + "gas": 2077005, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x60", + "0x0" + ] + }, + { + "pc": 3358, + "op": "SWAP2", + "gas": 2077003, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xd5c", + "0x57", + "0x60" + ] + }, + { + "pc": 3359, + "op": "SWAP1", + "gas": 2077000, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0x60", + "0x57", + "0xd5c" + ] + }, + { + "pc": 3360, + "op": "POP", + "gas": 2076997, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0x60", + "0xd5c", + "0x57" + ] + }, + { + "pc": 3361, + "op": "JUMP", + "gas": 2076995, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0x60", + "0xd5c" + ] + }, + { + "pc": 3420, + "op": "JUMPDEST", + "gas": 2076987, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0x60" + ] + }, + { + "pc": 3421, + "op": "DUP2", + "gas": 2076986, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0x60" + ] + }, + { + "pc": 3422, + "op": "ADD", + "gas": 2076983, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0x60", + "0x80" + ] + }, + { + "pc": 3423, + "op": "DUP2", + "gas": 2076980, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0" + ] + }, + { + "pc": 3424, + "op": "DUP2", + "gas": 2076977, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x80" + ] + }, + { + "pc": 3425, + "op": "LT", + "gas": 2076974, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x80", + "0xe0" + ] + }, + { + "pc": 3426, + "op": "PUSH8", + "gas": 2076971, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x0" + ] + }, + { + "pc": 3435, + "op": "DUP3", + "gas": 2076968, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x0", + "0xffffffffffffffff" + ] + }, + { + "pc": 3436, + "op": "GT", + "gas": 2076965, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x0", + "0xffffffffffffffff", + "0xe0" + ] + }, + { + "pc": 3437, + "op": "OR", + "gas": 2076962, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x0", + "0x0" + ] + }, + { + "pc": 3438, + "op": "ISZERO", + "gas": 2076959, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x0" + ] + }, + { + "pc": 3439, + "op": "PUSH3", + "gas": 2076956, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x1" + ] + }, + { + "pc": 3443, + "op": "JUMPI", + "gas": 2076953, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0x1", + "0xd7e" + ] + }, + { + "pc": 3454, + "op": "JUMPDEST", + "gas": 2076943, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0" + ] + }, + { + "pc": 3455, + "op": "DUP1", + "gas": 2076942, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0" + ] + }, + { + "pc": 3456, + "op": "PUSH1", + "gas": 2076939, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0xe0" + ] + }, + { + "pc": 3458, + "op": "MSTORE", + "gas": 2076936, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0", + "0xe0", + "0x40" + ] + }, + { + "pc": 3459, + "op": "POP", + "gas": 2076933, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80", + "0xe0" + ] + }, + { + "pc": 3460, + "op": "POP", + "gas": 2076931, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57", + "0x80" + ] + }, + { + "pc": 3461, + "op": "POP", + "gas": 2076929, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d", + "0x57" + ] + }, + { + "pc": 3462, + "op": "JUMP", + "gas": 2076927, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xe1d" + ] + }, + { + "pc": 3613, + "op": "JUMPDEST", + "gas": 2076919, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7" + ] + }, + { + "pc": 3614, + "op": "DUP3", + "gas": 2076918, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7" + ] + }, + { + "pc": 3615, + "op": "SWAP6", + "gas": 2076915, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0x0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0xa0" + ] + }, + { + "pc": 3616, + "op": "POP", + "gas": 2076912, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xa0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7", + "0x0" + ] + }, + { + "pc": 3617, + "op": "POP", + "gas": 2076910, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xa0", + "0x80", + "0x20", + "0xa0", + "0x17", + "0xd7" + ] + }, + { + "pc": 3618, + "op": "POP", + "gas": 2076908, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xa0", + "0x80", + "0x20", + "0xa0", + "0x17" + ] + }, + { + "pc": 3619, + "op": "POP", + "gas": 2076906, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xa0", + "0x80", + "0x20", + "0xa0" + ] + }, + { + "pc": 3620, + "op": "POP", + "gas": 2076904, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xa0", + "0x80", + "0x20" + ] + }, + { + "pc": 3621, + "op": "POP", + "gas": 2076902, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xa0", + "0x80" + ] + }, + { + "pc": 3622, + "op": "JUMPDEST", + "gas": 2076900, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xa0" + ] + }, + { + "pc": 3623, + "op": "SWAP1", + "gas": 2076899, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x530", + "0xa0" + ] + }, + { + "pc": 3624, + "op": "JUMP", + "gas": 2076896, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x530" + ] + }, + { + "pc": 1328, + "op": "JUMPDEST", + "gas": 2076888, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0" + ] + }, + { + "pc": 1329, + "op": "DUP1", + "gas": 2076887, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0" + ] + }, + { + "pc": 1330, + "op": "PUSH3", + "gas": 2076884, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0xa0" + ] + }, + { + "pc": 1334, + "op": "JUMPI", + "gas": 2076881, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0xa0", + "0x53d" + ] + }, + { + "pc": 1341, + "op": "JUMPDEST", + "gas": 2076871, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0" + ] + }, + { + "pc": 1342, + "op": "PUSH32", + "gas": 2076870, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0" + ] + }, + { + "pc": 1375, + "op": "DUP2", + "gas": 2076867, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a" + ] + }, + { + "pc": 1376, + "op": "PUSH1", + "gas": 2076864, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0xa0" + ] + }, + { + "pc": 1378, + "op": "MLOAD", + "gas": 2076861, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0xa0", + "0x40" + ] + }, + { + "pc": 1379, + "op": "PUSH3", + "gas": 2076858, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0xa0", + "0xe0" + ] + }, + { + "pc": 1383, + "op": "SWAP2", + "gas": 2076855, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0xa0", + "0xe0", + "0x56e" + ] + }, + { + "pc": 1384, + "op": "SWAP1", + "gas": 2076852, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xe0", + "0xa0" + ] + }, + { + "pc": 1385, + "op": "PUSH3", + "gas": 2076849, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0" + ] + }, + { + "pc": 1389, + "op": "JUMP", + "gas": 2076846, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0xeab" + ] + }, + { + "pc": 3755, + "op": "JUMPDEST", + "gas": 2076838, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0" + ] + }, + { + "pc": 3756, + "op": "PUSH1", + "gas": 2076837, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0" + ] + }, + { + "pc": 3758, + "op": "PUSH1", + "gas": 2076834, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x0" + ] + }, + { + "pc": 3760, + "op": "DUP3", + "gas": 2076831, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x0", + "0x20" + ] + }, + { + "pc": 3761, + "op": "ADD", + "gas": 2076828, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 3762, + "op": "SWAP1", + "gas": 2076825, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x0", + "0x100" + ] + }, + { + "pc": 3763, + "op": "POP", + "gas": 2076822, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x0" + ] + }, + { + "pc": 3764, + "op": "DUP2", + "gas": 2076820, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100" + ] + }, + { + "pc": 3765, + "op": "DUP2", + "gas": 2076817, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xe0" + ] + }, + { + "pc": 3766, + "op": "SUB", + "gas": 2076814, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xe0", + "0x100" + ] + }, + { + "pc": 3767, + "op": "PUSH1", + "gas": 2076811, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x20" + ] + }, + { + "pc": 3769, + "op": "DUP4", + "gas": 2076808, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x20", + "0x0" + ] + }, + { + "pc": 3770, + "op": "ADD", + "gas": 2076805, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x20", + "0x0", + "0xe0" + ] + }, + { + "pc": 3771, + "op": "MSTORE", + "gas": 2076802, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x20", + "0xe0" + ] + }, + { + "pc": 3772, + "op": "PUSH3", + "gas": 2076796, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100" + ] + }, + { + "pc": 3776, + "op": "DUP2", + "gas": 2076793, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7" + ] + }, + { + "pc": 3777, + "op": "DUP5", + "gas": 2076790, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100" + ] + }, + { + "pc": 3778, + "op": "PUSH3", + "gas": 2076787, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0" + ] + }, + { + "pc": 3782, + "op": "JUMP", + "gas": 2076784, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0xe6a" + ] + }, + { + "pc": 3690, + "op": "JUMPDEST", + "gas": 2076776, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0" + ] + }, + { + "pc": 3691, + "op": "PUSH1", + "gas": 2076775, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0" + ] + }, + { + "pc": 3693, + "op": "PUSH3", + "gas": 2076772, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0" + ] + }, + { + "pc": 3697, + "op": "DUP3", + "gas": 2076769, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77" + ] + }, + { + "pc": 3698, + "op": "PUSH3", + "gas": 2076766, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0" + ] + }, + { + "pc": 3702, + "op": "JUMP", + "gas": 2076763, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0", + "0xe29" + ] + }, + { + "pc": 3625, + "op": "JUMPDEST", + "gas": 2076755, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0" + ] + }, + { + "pc": 3626, + "op": "PUSH1", + "gas": 2076754, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0" + ] + }, + { + "pc": 3628, + "op": "DUP2", + "gas": 2076751, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0", + "0x0" + ] + }, + { + "pc": 3629, + "op": "MLOAD", + "gas": 2076748, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0", + "0x0", + "0xa0" + ] + }, + { + "pc": 3630, + "op": "SWAP1", + "gas": 2076745, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0", + "0x0", + "0x17" + ] + }, + { + "pc": 3631, + "op": "POP", + "gas": 2076742, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0", + "0x17", + "0x0" + ] + }, + { + "pc": 3632, + "op": "SWAP2", + "gas": 2076740, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0xe77", + "0xa0", + "0x17" + ] + }, + { + "pc": 3633, + "op": "SWAP1", + "gas": 2076737, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xa0", + "0xe77" + ] + }, + { + "pc": 3634, + "op": "POP", + "gas": 2076734, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe77", + "0xa0" + ] + }, + { + "pc": 3635, + "op": "JUMP", + "gas": 2076732, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe77" + ] + }, + { + "pc": 3703, + "op": "JUMPDEST", + "gas": 2076724, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17" + ] + }, + { + "pc": 3704, + "op": "PUSH3", + "gas": 2076723, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17" + ] + }, + { + "pc": 3708, + "op": "DUP2", + "gas": 2076720, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83" + ] + }, + { + "pc": 3709, + "op": "DUP6", + "gas": 2076717, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17" + ] + }, + { + "pc": 3710, + "op": "PUSH3", + "gas": 2076714, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100" + ] + }, + { + "pc": 3714, + "op": "JUMP", + "gas": 2076711, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0xaf5" + ] + }, + { + "pc": 2805, + "op": "JUMPDEST", + "gas": 2076703, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100" + ] + }, + { + "pc": 2806, + "op": "PUSH1", + "gas": 2076702, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100" + ] + }, + { + "pc": 2808, + "op": "DUP3", + "gas": 2076699, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x0" + ] + }, + { + "pc": 2809, + "op": "DUP3", + "gas": 2076696, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x0", + "0x17" + ] + }, + { + "pc": 2810, + "op": "MSTORE", + "gas": 2076693, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x0", + "0x17", + "0x100" + ] + }, + { + "pc": 2811, + "op": "PUSH1", + "gas": 2076687, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x0" + ] + }, + { + "pc": 2813, + "op": "DUP3", + "gas": 2076684, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x0", + "0x20" + ] + }, + { + "pc": 2814, + "op": "ADD", + "gas": 2076681, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x0", + "0x20", + "0x100" + ] + }, + { + "pc": 2815, + "op": "SWAP1", + "gas": 2076678, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x0", + "0x120" + ] + }, + { + "pc": 2816, + "op": "POP", + "gas": 2076675, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x120", + "0x0" + ] + }, + { + "pc": 2817, + "op": "SWAP3", + "gas": 2076673, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0xe83", + "0x17", + "0x100", + "0x120" + ] + }, + { + "pc": 2818, + "op": "SWAP2", + "gas": 2076670, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0x120", + "0x17", + "0x100", + "0xe83" + ] + }, + { + "pc": 2819, + "op": "POP", + "gas": 2076667, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0x120", + "0xe83", + "0x100", + "0x17" + ] + }, + { + "pc": 2820, + "op": "POP", + "gas": 2076665, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0x120", + "0xe83", + "0x100" + ] + }, + { + "pc": 2821, + "op": "JUMP", + "gas": 2076663, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0x120", + "0xe83" + ] + }, + { + "pc": 3715, + "op": "JUMPDEST", + "gas": 2076655, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0x120" + ] + }, + { + "pc": 3716, + "op": "SWAP4", + "gas": 2076654, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x100", + "0xa0", + "0x0", + "0x17", + "0x120" + ] + }, + { + "pc": 3717, + "op": "POP", + "gas": 2076651, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0x100" + ] + }, + { + "pc": 3718, + "op": "PUSH3", + "gas": 2076649, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17" + ] + }, + { + "pc": 3722, + "op": "DUP2", + "gas": 2076646, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95" + ] + }, + { + "pc": 3723, + "op": "DUP6", + "gas": 2076643, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17" + ] + }, + { + "pc": 3724, + "op": "PUSH1", + "gas": 2076640, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120" + ] + }, + { + "pc": 3726, + "op": "DUP7", + "gas": 2076637, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0x20" + ] + }, + { + "pc": 3727, + "op": "ADD", + "gas": 2076634, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0x20", + "0xa0" + ] + }, + { + "pc": 3728, + "op": "PUSH3", + "gas": 2076631, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0" + ] + }, + { + "pc": 3732, + "op": "JUMP", + "gas": 2076628, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0xe34" + ] + }, + { + "pc": 3636, + "op": "JUMPDEST", + "gas": 2076620, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0" + ] + }, + { + "pc": 3637, + "op": "PUSH1", + "gas": 2076619, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0" + ] + }, + { + "pc": 3639, + "op": "JUMPDEST", + "gas": 2076616, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0" + ] + }, + { + "pc": 3640, + "op": "DUP4", + "gas": 2076615, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0" + ] + }, + { + "pc": 3641, + "op": "DUP2", + "gas": 2076612, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x17" + ] + }, + { + "pc": 3642, + "op": "LT", + "gas": 2076609, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x17", + "0x0" + ] + }, + { + "pc": 3643, + "op": "ISZERO", + "gas": 2076606, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x1" + ] + }, + { + "pc": 3644, + "op": "PUSH3", + "gas": 2076603, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x0" + ] + }, + { + "pc": 3648, + "op": "JUMPI", + "gas": 2076600, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x0", + "0xe54" + ] + }, + { + "pc": 3649, + "op": "DUP1", + "gas": 2076590, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0" + ] + }, + { + "pc": 3650, + "op": "DUP3", + "gas": 2076587, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x0" + ] + }, + { + "pc": 3651, + "op": "ADD", + "gas": 2076584, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x0", + "0xc0" + ] + }, + { + "pc": 3652, + "op": "MLOAD", + "gas": 2076581, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0xc0" + ] + }, + { + "pc": 3653, + "op": "DUP2", + "gas": 2076578, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x546869732066756e6374696f6e20726576657274656421000000000000000000" + ] + }, + { + "pc": 3654, + "op": "DUP5", + "gas": 2076575, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x546869732066756e6374696f6e20726576657274656421000000000000000000", + "0x0" + ] + }, + { + "pc": 3655, + "op": "ADD", + "gas": 2076572, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x546869732066756e6374696f6e20726576657274656421000000000000000000", + "0x0", + "0x120" + ] + }, + { + "pc": 3656, + "op": "MSTORE", + "gas": 2076569, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x546869732066756e6374696f6e20726576657274656421000000000000000000", + "0x120" + ] + }, + { + "pc": 3657, + "op": "PUSH1", + "gas": 2076563, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0" + ] + }, + { + "pc": 3659, + "op": "DUP2", + "gas": 2076560, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 3660, + "op": "ADD", + "gas": 2076557, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x20", + "0x0" + ] + }, + { + "pc": 3661, + "op": "SWAP1", + "gas": 2076554, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x0", + "0x20" + ] + }, + { + "pc": 3662, + "op": "POP", + "gas": 2076551, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x0" + ] + }, + { + "pc": 3663, + "op": "PUSH3", + "gas": 2076549, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20" + ] + }, + { + "pc": 3667, + "op": "JUMP", + "gas": 2076546, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0xe37" + ] + }, + { + "pc": 3639, + "op": "JUMPDEST", + "gas": 2076538, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20" + ] + }, + { + "pc": 3640, + "op": "DUP4", + "gas": 2076537, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20" + ] + }, + { + "pc": 3641, + "op": "DUP2", + "gas": 2076534, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x17" + ] + }, + { + "pc": 3642, + "op": "LT", + "gas": 2076531, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x17", + "0x20" + ] + }, + { + "pc": 3643, + "op": "ISZERO", + "gas": 2076528, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x0" + ] + }, + { + "pc": 3644, + "op": "PUSH3", + "gas": 2076525, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x1" + ] + }, + { + "pc": 3648, + "op": "JUMPI", + "gas": 2076522, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x1", + "0xe54" + ] + }, + { + "pc": 3668, + "op": "JUMPDEST", + "gas": 2076512, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20" + ] + }, + { + "pc": 3669, + "op": "DUP4", + "gas": 2076511, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20" + ] + }, + { + "pc": 3670, + "op": "DUP2", + "gas": 2076508, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x17" + ] + }, + { + "pc": 3671, + "op": "GT", + "gas": 2076505, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x17", + "0x20" + ] + }, + { + "pc": 3672, + "op": "ISZERO", + "gas": 2076502, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x1" + ] + }, + { + "pc": 3673, + "op": "PUSH3", + "gas": 2076499, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x0" + ] + }, + { + "pc": 3677, + "op": "JUMPI", + "gas": 2076496, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x0", + "0xe64" + ] + }, + { + "pc": 3678, + "op": "PUSH1", + "gas": 2076486, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20" + ] + }, + { + "pc": 3680, + "op": "DUP5", + "gas": 2076483, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x0" + ] + }, + { + "pc": 3681, + "op": "DUP5", + "gas": 2076480, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x0", + "0x17" + ] + }, + { + "pc": 3682, + "op": "ADD", + "gas": 2076477, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x0", + "0x17", + "0x120" + ] + }, + { + "pc": 3683, + "op": "MSTORE", + "gas": 2076474, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20", + "0x0", + "0x137" + ] + }, + { + "pc": 3684, + "op": "JUMPDEST", + "gas": 2076468, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20" + ] + }, + { + "pc": 3685, + "op": "POP", + "gas": 2076467, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0", + "0x20" + ] + }, + { + "pc": 3686, + "op": "POP", + "gas": 2076465, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120", + "0xc0" + ] + }, + { + "pc": 3687, + "op": "POP", + "gas": 2076463, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17", + "0x120" + ] + }, + { + "pc": 3688, + "op": "POP", + "gas": 2076461, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95", + "0x17" + ] + }, + { + "pc": 3689, + "op": "JUMP", + "gas": 2076459, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xe95" + ] + }, + { + "pc": 3733, + "op": "JUMPDEST", + "gas": 2076451, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17" + ] + }, + { + "pc": 3734, + "op": "PUSH3", + "gas": 2076450, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17" + ] + }, + { + "pc": 3738, + "op": "DUP2", + "gas": 2076447, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0" + ] + }, + { + "pc": 3739, + "op": "PUSH3", + "gas": 2076444, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17" + ] + }, + { + "pc": 3743, + "op": "JUMP", + "gas": 2076441, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0xd11" + ] + }, + { + "pc": 3345, + "op": "JUMPDEST", + "gas": 2076433, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17" + ] + }, + { + "pc": 3346, + "op": "PUSH1", + "gas": 2076432, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17" + ] + }, + { + "pc": 3348, + "op": "PUSH1", + "gas": 2076429, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x0" + ] + }, + { + "pc": 3350, + "op": "NOT", + "gas": 2076426, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x0", + "0x1f" + ] + }, + { + "pc": 3351, + "op": "PUSH1", + "gas": 2076423, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0" + ] + }, + { + "pc": 3353, + "op": "DUP4", + "gas": 2076420, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x1f" + ] + }, + { + "pc": 3354, + "op": "ADD", + "gas": 2076417, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x1f", + "0x17" + ] + }, + { + "pc": 3355, + "op": "AND", + "gas": 2076414, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x36" + ] + }, + { + "pc": 3356, + "op": "SWAP1", + "gas": 2076411, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x0", + "0x20" + ] + }, + { + "pc": 3357, + "op": "POP", + "gas": 2076408, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x20", + "0x0" + ] + }, + { + "pc": 3358, + "op": "SWAP2", + "gas": 2076406, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0xea0", + "0x17", + "0x20" + ] + }, + { + "pc": 3359, + "op": "SWAP1", + "gas": 2076403, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0x20", + "0x17", + "0xea0" + ] + }, + { + "pc": 3360, + "op": "POP", + "gas": 2076400, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0x20", + "0xea0", + "0x17" + ] + }, + { + "pc": 3361, + "op": "JUMP", + "gas": 2076398, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0x20", + "0xea0" + ] + }, + { + "pc": 3744, + "op": "JUMPDEST", + "gas": 2076390, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0x20" + ] + }, + { + "pc": 3745, + "op": "DUP5", + "gas": 2076389, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0x20" + ] + }, + { + "pc": 3746, + "op": "ADD", + "gas": 2076386, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0x20", + "0x120" + ] + }, + { + "pc": 3747, + "op": "SWAP2", + "gas": 2076383, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x0", + "0x17", + "0x140" + ] + }, + { + "pc": 3748, + "op": "POP", + "gas": 2076380, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x140", + "0x17", + "0x0" + ] + }, + { + "pc": 3749, + "op": "POP", + "gas": 2076378, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x140", + "0x17" + ] + }, + { + "pc": 3750, + "op": "SWAP3", + "gas": 2076376, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0xec7", + "0x120", + "0xa0", + "0x140" + ] + }, + { + "pc": 3751, + "op": "SWAP2", + "gas": 2076373, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x140", + "0x120", + "0xa0", + "0xec7" + ] + }, + { + "pc": 3752, + "op": "POP", + "gas": 2076370, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x140", + "0xec7", + "0xa0", + "0x120" + ] + }, + { + "pc": 3753, + "op": "POP", + "gas": 2076368, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x140", + "0xec7", + "0xa0" + ] + }, + { + "pc": 3754, + "op": "JUMP", + "gas": 2076366, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x140", + "0xec7" + ] + }, + { + "pc": 3783, + "op": "JUMPDEST", + "gas": 2076358, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x140" + ] + }, + { + "pc": 3784, + "op": "SWAP1", + "gas": 2076357, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x100", + "0x140" + ] + }, + { + "pc": 3785, + "op": "POP", + "gas": 2076354, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x140", + "0x100" + ] + }, + { + "pc": 3786, + "op": "SWAP3", + "gas": 2076352, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x56e", + "0xa0", + "0xe0", + "0x140" + ] + }, + { + "pc": 3787, + "op": "SWAP2", + "gas": 2076349, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140", + "0xa0", + "0xe0", + "0x56e" + ] + }, + { + "pc": 3788, + "op": "POP", + "gas": 2076346, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140", + "0x56e", + "0xe0", + "0xa0" + ] + }, + { + "pc": 3789, + "op": "POP", + "gas": 2076344, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140", + "0x56e", + "0xe0" + ] + }, + { + "pc": 3790, + "op": "JUMP", + "gas": 2076342, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140", + "0x56e" + ] + }, + { + "pc": 1390, + "op": "JUMPDEST", + "gas": 2076334, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140" + ] + }, + { + "pc": 1391, + "op": "PUSH1", + "gas": 2076333, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140" + ] + }, + { + "pc": 1393, + "op": "MLOAD", + "gas": 2076330, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140", + "0x40" + ] + }, + { + "pc": 1394, + "op": "DUP1", + "gas": 2076327, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140", + "0xe0" + ] + }, + { + "pc": 1395, + "op": "SWAP2", + "gas": 2076324, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x140", + "0xe0", + "0xe0" + ] + }, + { + "pc": 1396, + "op": "SUB", + "gas": 2076321, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0xe0", + "0xe0", + "0x140" + ] + }, + { + "pc": 1397, + "op": "SWAP1", + "gas": 2076318, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0xe0", + "0x60" + ] + }, + { + "pc": 1398, + "op": "LOG1", + "gas": 2076315, + "gasCost": 1518, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x60", + "0xe0" + ] + }, + { + "pc": 1399, + "op": "POP", + "gas": 2074797, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xa0" + ] + }, + { + "pc": 1400, + "op": "PUSH3", + "gas": 2074795, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1404, + "op": "JUMP", + "gas": 2074792, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x5ec" + ] + }, + { + "pc": 1516, + "op": "JUMPDEST", + "gas": 2074784, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1517, + "op": "PUSH3", + "gas": 2074783, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1521, + "op": "JUMP", + "gas": 2074780, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x5f3" + ] + }, + { + "pc": 1523, + "op": "JUMPDEST", + "gas": 2074772, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1524, + "op": "ADDRESS", + "gas": 2074771, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1525, + "op": "PUSH20", + "gas": 2074769, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 1546, + "op": "AND", + "gas": 2074766, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 1547, + "op": "PUSH4", + "gas": 2074763, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address" + ] + }, + { + "pc": 1552, + "op": "PUSH1", + "gas": 2074760, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff" + ] + }, + { + "pc": 1554, + "op": "MLOAD", + "gas": 2074757, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0x40" + ] + }, + { + "pc": 1555, + "op": "DUP2", + "gas": 2074754, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0" + ] + }, + { + "pc": 1556, + "op": "PUSH4", + "gas": 2074751, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0", + "0x8bfe44ff" + ] + }, + { + "pc": 1561, + "op": "AND", + "gas": 2074748, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0", + "0x8bfe44ff", + "0xffffffff" + ] + }, + { + "pc": 1562, + "op": "PUSH1", + "gas": 2074745, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0", + "0x8bfe44ff" + ] + }, + { + "pc": 1564, + "op": "SHL", + "gas": 2074742, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0", + "0x8bfe44ff", + "0xe0" + ] + }, + { + "pc": 1565, + "op": "DUP2", + "gas": 2074739, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0", + "0x8bfe44ff00000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 1566, + "op": "MSTORE", + "gas": 2074736, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0", + "0x8bfe44ff00000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 1567, + "op": "PUSH1", + "gas": 2074733, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0" + ] + }, + { + "pc": 1569, + "op": "ADD", + "gas": 2074730, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe0", + "0x4" + ] + }, + { + "pc": 1570, + "op": "PUSH1", + "gas": 2074727, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4" + ] + }, + { + "pc": 1572, + "op": "PUSH1", + "gas": 2074724, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0" + ] + }, + { + "pc": 1574, + "op": "MLOAD", + "gas": 2074721, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0x40" + ] + }, + { + "pc": 1575, + "op": "DUP1", + "gas": 2074718, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0" + ] + }, + { + "pc": 1576, + "op": "DUP4", + "gas": 2074715, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0xe0" + ] + }, + { + "pc": 1577, + "op": "SUB", + "gas": 2074712, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0xe0", + "0xe4" + ] + }, + { + "pc": 1578, + "op": "DUP2", + "gas": 2074709, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4" + ] + }, + { + "pc": 1579, + "op": "DUP7", + "gas": 2074706, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0" + ] + }, + { + "pc": 1580, + "op": "DUP1", + "gas": 2074703, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address" + ] + }, + { + "pc": 1581, + "op": "EXTCODESIZE", + "gas": 2074700, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "Tracer.address" + ] + }, + { + "pc": 1582, + "op": "ISZERO", + "gas": 2074600, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "0x1bde" + ] + }, + { + "pc": 1583, + "op": "DUP1", + "gas": 2074597, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "0x0" + ] + }, + { + "pc": 1584, + "op": "ISZERO", + "gas": 2074594, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "0x0", + "0x0" + ] + }, + { + "pc": 1585, + "op": "PUSH3", + "gas": 2074591, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "0x0", + "0x1" + ] + }, + { + "pc": 1589, + "op": "JUMPI", + "gas": 2074588, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "0x0", + "0x1", + "0x63a" + ] + }, + { + "pc": 1594, + "op": "JUMPDEST", + "gas": 2074578, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "0x0" + ] + }, + { + "pc": 1595, + "op": "POP", + "gas": 2074577, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "0x0" + ] + }, + { + "pc": 1596, + "op": "GAS", + "gas": 2074575, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address" + ] + }, + { + "pc": 1597, + "op": "STATICCALL", + "gas": 2074573, + "gasCost": 2042160, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0", + "0xe0", + "0x4", + "0xe0", + "Tracer.address", + "0x1fa7cd" + ] + }, + { + "pc": 0, + "op": "PUSH1", + "gas": 2042060, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 2042057, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 2042054, + "gasCost": 12, + "depth": 2, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "CALLVALUE", + "gas": 2042042, + "gasCost": 2, + "depth": 2, + "stack": [] + }, + { + "pc": 6, + "op": "DUP1", + "gas": 2042040, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 7, + "op": "ISZERO", + "gas": 2042037, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 8, + "op": "PUSH3", + "gas": 2042034, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 2042031, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0x1", + "0x11" + ] + }, + { + "pc": 17, + "op": "JUMPDEST", + "gas": 2042021, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 18, + "op": "POP", + "gas": 2042020, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 19, + "op": "PUSH1", + "gas": 2042018, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 21, + "op": "CALLDATASIZE", + "gas": 2042015, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x4" + ] + }, + { + "pc": 22, + "op": "LT", + "gas": 2042013, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x4", + "0x4" + ] + }, + { + "pc": 23, + "op": "PUSH3", + "gas": 2042010, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 27, + "op": "JUMPI", + "gas": 2042007, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x0", + "0xac" + ] + }, + { + "pc": 28, + "op": "PUSH1", + "gas": 2041997, + "gasCost": 3, + "depth": 2, + "stack": [] + }, + { + "pc": 30, + "op": "CALLDATALOAD", + "gas": 2041994, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x0" + ] + }, + { + "pc": 31, + "op": "PUSH1", + "gas": 2041991, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff00000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 33, + "op": "SHR", + "gas": 2041988, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff00000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 34, + "op": "DUP1", + "gas": 2041985, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff" + ] + }, + { + "pc": 35, + "op": "PUSH4", + "gas": 2041982, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x8bfe44ff" + ] + }, + { + "pc": 40, + "op": "GT", + "gas": 2041979, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x8bfe44ff", + "0x8bfe44ff" + ] + }, + { + "pc": 41, + "op": "PUSH3", + "gas": 2041976, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x0" + ] + }, + { + "pc": 45, + "op": "JUMPI", + "gas": 2041973, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x0", + "0x6f" + ] + }, + { + "pc": 46, + "op": "DUP1", + "gas": 2041963, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff" + ] + }, + { + "pc": 47, + "op": "PUSH4", + "gas": 2041960, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x8bfe44ff" + ] + }, + { + "pc": 52, + "op": "EQ", + "gas": 2041957, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x8bfe44ff", + "0x8bfe44ff" + ] + }, + { + "pc": 53, + "op": "PUSH3", + "gas": 2041954, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1" + ] + }, + { + "pc": 57, + "op": "JUMPI", + "gas": 2041951, + "gasCost": 10, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1", + "0x197" + ] + }, + { + "pc": 407, + "op": "JUMPDEST", + "gas": 2041941, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff" + ] + }, + { + "pc": 408, + "op": "PUSH3", + "gas": 2041940, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff" + ] + }, + { + "pc": 412, + "op": "PUSH3", + "gas": 2041937, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1" + ] + }, + { + "pc": 416, + "op": "JUMP", + "gas": 2041934, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x783" + ] + }, + { + "pc": 1923, + "op": "JUMPDEST", + "gas": 2041926, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1" + ] + }, + { + "pc": 1924, + "op": "PUSH1", + "gas": 2041925, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1" + ] + }, + { + "pc": 1926, + "op": "DUP1", + "gas": 2041922, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1" + ] + }, + { + "pc": 1927, + "op": "PUSH1", + "gas": 2041919, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1" + ] + }, + { + "pc": 1929, + "op": "MLOAD", + "gas": 2041916, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1", + "0x40" + ] + }, + { + "pc": 1930, + "op": "PUSH32", + "gas": 2041913, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1", + "0x80" + ] + }, + { + "pc": 1963, + "op": "DUP2", + "gas": 2041910, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1", + "0x80", + "0xcf47918100000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 1964, + "op": "MSTORE", + "gas": 2041907, + "gasCost": 9, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1", + "0x80", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0x80" + ] + }, + { + "pc": 1965, + "op": "PUSH1", + "gas": 2041898, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1", + "0x80" + ] + }, + { + "pc": 1967, + "op": "ADD", + "gas": 2041895, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1", + "0x80", + "0x4" + ] + }, + { + "pc": 1968, + "op": "PUSH3", + "gas": 2041892, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1", + "0x84" + ] + }, + { + "pc": 1972, + "op": "SWAP3", + "gas": 2041889, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x1", + "0x1", + "0x84", + "0x7bc" + ] + }, + { + "pc": 1973, + "op": "SWAP2", + "gas": 2041886, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x84", + "0x1" + ] + }, + { + "pc": 1974, + "op": "SWAP1", + "gas": 2041883, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x84", + "0x1" + ] + }, + { + "pc": 1975, + "op": "PUSH3", + "gas": 2041880, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84" + ] + }, + { + "pc": 1979, + "op": "JUMP", + "gas": 2041877, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0x1026" + ] + }, + { + "pc": 4134, + "op": "JUMPDEST", + "gas": 2041869, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84" + ] + }, + { + "pc": 4135, + "op": "PUSH1", + "gas": 2041868, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84" + ] + }, + { + "pc": 4137, + "op": "PUSH1", + "gas": 2041865, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0x0" + ] + }, + { + "pc": 4139, + "op": "DUP3", + "gas": 2041862, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0x0", + "0x40" + ] + }, + { + "pc": 4140, + "op": "ADD", + "gas": 2041859, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0x0", + "0x40", + "0x84" + ] + }, + { + "pc": 4141, + "op": "SWAP1", + "gas": 2041856, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0x0", + "0xc4" + ] + }, + { + "pc": 4142, + "op": "POP", + "gas": 2041853, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x0" + ] + }, + { + "pc": 4143, + "op": "PUSH3", + "gas": 2041851, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4" + ] + }, + { + "pc": 4147, + "op": "PUSH1", + "gas": 2041848, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d" + ] + }, + { + "pc": 4149, + "op": "DUP4", + "gas": 2041845, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x0" + ] + }, + { + "pc": 4150, + "op": "ADD", + "gas": 2041842, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x0", + "0x84" + ] + }, + { + "pc": 4151, + "op": "DUP6", + "gas": 2041839, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84" + ] + }, + { + "pc": 4152, + "op": "PUSH3", + "gas": 2041836, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1" + ] + }, + { + "pc": 4156, + "op": "JUMP", + "gas": 2041833, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1015" + ] + }, + { + "pc": 4117, + "op": "JUMPDEST", + "gas": 2041825, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1" + ] + }, + { + "pc": 4118, + "op": "PUSH3", + "gas": 2041824, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1" + ] + }, + { + "pc": 4122, + "op": "DUP2", + "gas": 2041821, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020" + ] + }, + { + "pc": 4123, + "op": "PUSH3", + "gas": 2041818, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1" + ] + }, + { + "pc": 4127, + "op": "JUMP", + "gas": 2041815, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0xfed" + ] + }, + { + "pc": 4077, + "op": "JUMPDEST", + "gas": 2041807, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1" + ] + }, + { + "pc": 4078, + "op": "PUSH1", + "gas": 2041806, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1" + ] + }, + { + "pc": 4080, + "op": "PUSH3", + "gas": 2041803, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0" + ] + }, + { + "pc": 4084, + "op": "PUSH3", + "gas": 2041800, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e" + ] + }, + { + "pc": 4088, + "op": "PUSH3", + "gas": 2041797, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008" + ] + }, + { + "pc": 4092, + "op": "DUP5", + "gas": 2041794, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002" + ] + }, + { + "pc": 4093, + "op": "PUSH3", + "gas": 2041791, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1" + ] + }, + { + "pc": 4097, + "op": "JUMP", + "gas": 2041788, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0xfd9" + ] + }, + { + "pc": 4057, + "op": "JUMPDEST", + "gas": 2041780, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1" + ] + }, + { + "pc": 4058, + "op": "PUSH1", + "gas": 2041779, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1" + ] + }, + { + "pc": 4060, + "op": "DUP2", + "gas": 2041776, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0x0" + ] + }, + { + "pc": 4061, + "op": "SWAP1", + "gas": 2041773, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 4062, + "op": "POP", + "gas": 2041770, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 4063, + "op": "SWAP2", + "gas": 2041768, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0x1" + ] + }, + { + "pc": 4064, + "op": "SWAP1", + "gas": 2041765, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1", + "0x1002" + ] + }, + { + "pc": 4065, + "op": "POP", + "gas": 2041762, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1002", + "0x1" + ] + }, + { + "pc": 4066, + "op": "JUMP", + "gas": 2041760, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1002" + ] + }, + { + "pc": 4098, + "op": "JUMPDEST", + "gas": 2041752, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1" + ] + }, + { + "pc": 4099, + "op": "PUSH3", + "gas": 2041751, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1" + ] + }, + { + "pc": 4103, + "op": "JUMP", + "gas": 2041748, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0xfe3" + ] + }, + { + "pc": 4067, + "op": "JUMPDEST", + "gas": 2041740, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1" + ] + }, + { + "pc": 4068, + "op": "PUSH1", + "gas": 2041739, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1" + ] + }, + { + "pc": 4070, + "op": "DUP2", + "gas": 2041736, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x0" + ] + }, + { + "pc": 4071, + "op": "SWAP1", + "gas": 2041733, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 4072, + "op": "POP", + "gas": 2041730, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 4073, + "op": "SWAP2", + "gas": 2041728, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1" + ] + }, + { + "pc": 4074, + "op": "SWAP1", + "gas": 2041725, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1", + "0x1008" + ] + }, + { + "pc": 4075, + "op": "POP", + "gas": 2041722, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1008", + "0x1" + ] + }, + { + "pc": 4076, + "op": "JUMP", + "gas": 2041720, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1008" + ] + }, + { + "pc": 4104, + "op": "JUMPDEST", + "gas": 2041712, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1" + ] + }, + { + "pc": 4105, + "op": "PUSH3", + "gas": 2041711, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1" + ] + }, + { + "pc": 4109, + "op": "JUMP", + "gas": 2041708, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2041700, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2041699, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2041696, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2041693, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2041690, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2041688, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2041685, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1", + "0x1", + "0x100e" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2041682, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1", + "0x100e", + "0x1" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2041680, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1", + "0x100e" + ] + }, + { + "pc": 4110, + "op": "JUMPDEST", + "gas": 2041672, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 4111, + "op": "SWAP1", + "gas": 2041671, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 4112, + "op": "POP", + "gas": 2041668, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 4113, + "op": "SWAP2", + "gas": 2041666, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1020", + "0x1", + "0x1" + ] + }, + { + "pc": 4114, + "op": "SWAP1", + "gas": 2041663, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1", + "0x1", + "0x1020" + ] + }, + { + "pc": 4115, + "op": "POP", + "gas": 2041660, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1", + "0x1020", + "0x1" + ] + }, + { + "pc": 4116, + "op": "JUMP", + "gas": 2041658, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1", + "0x1020" + ] + }, + { + "pc": 4128, + "op": "JUMPDEST", + "gas": 2041650, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1" + ] + }, + { + "pc": 4129, + "op": "DUP3", + "gas": 2041649, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1" + ] + }, + { + "pc": 4130, + "op": "MSTORE", + "gas": 2041646, + "gasCost": 6, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1", + "0x1", + "0x84" + ] + }, + { + "pc": 4131, + "op": "POP", + "gas": 2041640, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84", + "0x1" + ] + }, + { + "pc": 4132, + "op": "POP", + "gas": 2041638, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d", + "0x84" + ] + }, + { + "pc": 4133, + "op": "JUMP", + "gas": 2041636, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x103d" + ] + }, + { + "pc": 4157, + "op": "JUMPDEST", + "gas": 2041628, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4" + ] + }, + { + "pc": 4158, + "op": "PUSH3", + "gas": 2041627, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4" + ] + }, + { + "pc": 4162, + "op": "PUSH1", + "gas": 2041624, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c" + ] + }, + { + "pc": 4164, + "op": "DUP4", + "gas": 2041621, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0x20" + ] + }, + { + "pc": 4165, + "op": "ADD", + "gas": 2041618, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0x20", + "0x84" + ] + }, + { + "pc": 4166, + "op": "DUP5", + "gas": 2041615, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4" + ] + }, + { + "pc": 4167, + "op": "PUSH3", + "gas": 2041612, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1" + ] + }, + { + "pc": 4171, + "op": "JUMP", + "gas": 2041609, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1015" + ] + }, + { + "pc": 4117, + "op": "JUMPDEST", + "gas": 2041601, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1" + ] + }, + { + "pc": 4118, + "op": "PUSH3", + "gas": 2041600, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1" + ] + }, + { + "pc": 4122, + "op": "DUP2", + "gas": 2041597, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020" + ] + }, + { + "pc": 4123, + "op": "PUSH3", + "gas": 2041594, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1" + ] + }, + { + "pc": 4127, + "op": "JUMP", + "gas": 2041591, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0xfed" + ] + }, + { + "pc": 4077, + "op": "JUMPDEST", + "gas": 2041583, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1" + ] + }, + { + "pc": 4078, + "op": "PUSH1", + "gas": 2041582, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1" + ] + }, + { + "pc": 4080, + "op": "PUSH3", + "gas": 2041579, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0" + ] + }, + { + "pc": 4084, + "op": "PUSH3", + "gas": 2041576, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e" + ] + }, + { + "pc": 4088, + "op": "PUSH3", + "gas": 2041573, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008" + ] + }, + { + "pc": 4092, + "op": "DUP5", + "gas": 2041570, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002" + ] + }, + { + "pc": 4093, + "op": "PUSH3", + "gas": 2041567, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1" + ] + }, + { + "pc": 4097, + "op": "JUMP", + "gas": 2041564, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0xfd9" + ] + }, + { + "pc": 4057, + "op": "JUMPDEST", + "gas": 2041556, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1" + ] + }, + { + "pc": 4058, + "op": "PUSH1", + "gas": 2041555, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1" + ] + }, + { + "pc": 4060, + "op": "DUP2", + "gas": 2041552, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0x0" + ] + }, + { + "pc": 4061, + "op": "SWAP1", + "gas": 2041549, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 4062, + "op": "POP", + "gas": 2041546, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 4063, + "op": "SWAP2", + "gas": 2041544, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1002", + "0x1", + "0x1" + ] + }, + { + "pc": 4064, + "op": "SWAP1", + "gas": 2041541, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1", + "0x1002" + ] + }, + { + "pc": 4065, + "op": "POP", + "gas": 2041538, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1002", + "0x1" + ] + }, + { + "pc": 4066, + "op": "JUMP", + "gas": 2041536, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1002" + ] + }, + { + "pc": 4098, + "op": "JUMPDEST", + "gas": 2041528, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1" + ] + }, + { + "pc": 4099, + "op": "PUSH3", + "gas": 2041527, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1" + ] + }, + { + "pc": 4103, + "op": "JUMP", + "gas": 2041524, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0xfe3" + ] + }, + { + "pc": 4067, + "op": "JUMPDEST", + "gas": 2041516, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1" + ] + }, + { + "pc": 4068, + "op": "PUSH1", + "gas": 2041515, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1" + ] + }, + { + "pc": 4070, + "op": "DUP2", + "gas": 2041512, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x0" + ] + }, + { + "pc": 4071, + "op": "SWAP1", + "gas": 2041509, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 4072, + "op": "POP", + "gas": 2041506, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 4073, + "op": "SWAP2", + "gas": 2041504, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1008", + "0x1", + "0x1" + ] + }, + { + "pc": 4074, + "op": "SWAP1", + "gas": 2041501, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1", + "0x1008" + ] + }, + { + "pc": 4075, + "op": "POP", + "gas": 2041498, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1008", + "0x1" + ] + }, + { + "pc": 4076, + "op": "JUMP", + "gas": 2041496, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1008" + ] + }, + { + "pc": 4104, + "op": "JUMPDEST", + "gas": 2041488, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1" + ] + }, + { + "pc": 4105, + "op": "PUSH3", + "gas": 2041487, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1" + ] + }, + { + "pc": 4109, + "op": "JUMP", + "gas": 2041484, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x97c" + ] + }, + { + "pc": 2428, + "op": "JUMPDEST", + "gas": 2041476, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1" + ] + }, + { + "pc": 2429, + "op": "PUSH1", + "gas": 2041475, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1" + ] + }, + { + "pc": 2431, + "op": "DUP2", + "gas": 2041472, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x0" + ] + }, + { + "pc": 2432, + "op": "SWAP1", + "gas": 2041469, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 2433, + "op": "POP", + "gas": 2041466, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 2434, + "op": "SWAP2", + "gas": 2041464, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x100e", + "0x1", + "0x1" + ] + }, + { + "pc": 2435, + "op": "SWAP1", + "gas": 2041461, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1", + "0x1", + "0x100e" + ] + }, + { + "pc": 2436, + "op": "POP", + "gas": 2041458, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1", + "0x100e", + "0x1" + ] + }, + { + "pc": 2437, + "op": "JUMP", + "gas": 2041456, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1", + "0x100e" + ] + }, + { + "pc": 4110, + "op": "JUMPDEST", + "gas": 2041448, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 4111, + "op": "SWAP1", + "gas": 2041447, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 4112, + "op": "POP", + "gas": 2041444, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x1", + "0x0" + ] + }, + { + "pc": 4113, + "op": "SWAP2", + "gas": 2041442, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1020", + "0x1", + "0x1" + ] + }, + { + "pc": 4114, + "op": "SWAP1", + "gas": 2041439, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1", + "0x1", + "0x1020" + ] + }, + { + "pc": 4115, + "op": "POP", + "gas": 2041436, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1", + "0x1020", + "0x1" + ] + }, + { + "pc": 4116, + "op": "JUMP", + "gas": 2041434, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1", + "0x1020" + ] + }, + { + "pc": 4128, + "op": "JUMPDEST", + "gas": 2041426, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1" + ] + }, + { + "pc": 4129, + "op": "DUP3", + "gas": 2041425, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1" + ] + }, + { + "pc": 4130, + "op": "MSTORE", + "gas": 2041422, + "gasCost": 6, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1", + "0x1", + "0xa4" + ] + }, + { + "pc": 4131, + "op": "POP", + "gas": 2041416, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4", + "0x1" + ] + }, + { + "pc": 4132, + "op": "POP", + "gas": 2041414, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c", + "0xa4" + ] + }, + { + "pc": 4133, + "op": "JUMP", + "gas": 2041412, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4", + "0x104c" + ] + }, + { + "pc": 4172, + "op": "JUMPDEST", + "gas": 2041404, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4" + ] + }, + { + "pc": 4173, + "op": "SWAP4", + "gas": 2041403, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x7bc", + "0x1", + "0x1", + "0x84", + "0xc4" + ] + }, + { + "pc": 4174, + "op": "SWAP3", + "gas": 2041400, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4", + "0x1", + "0x1", + "0x84", + "0x7bc" + ] + }, + { + "pc": 4175, + "op": "POP", + "gas": 2041397, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4", + "0x7bc", + "0x1", + "0x84", + "0x1" + ] + }, + { + "pc": 4176, + "op": "POP", + "gas": 2041395, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4", + "0x7bc", + "0x1", + "0x84" + ] + }, + { + "pc": 4177, + "op": "POP", + "gas": 2041393, + "gasCost": 2, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4", + "0x7bc", + "0x1" + ] + }, + { + "pc": 4178, + "op": "JUMP", + "gas": 2041391, + "gasCost": 8, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4", + "0x7bc" + ] + }, + { + "pc": 1980, + "op": "JUMPDEST", + "gas": 2041383, + "gasCost": 1, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4" + ] + }, + { + "pc": 1981, + "op": "PUSH1", + "gas": 2041382, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4" + ] + }, + { + "pc": 1983, + "op": "MLOAD", + "gas": 2041379, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4", + "0x40" + ] + }, + { + "pc": 1984, + "op": "DUP1", + "gas": 2041376, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4", + "0x80" + ] + }, + { + "pc": 1985, + "op": "SWAP2", + "gas": 2041373, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0xc4", + "0x80", + "0x80" + ] + }, + { + "pc": 1986, + "op": "SUB", + "gas": 2041370, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x80", + "0x80", + "0xc4" + ] + }, + { + "pc": 1987, + "op": "SWAP1", + "gas": 2041367, + "gasCost": 3, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x80", + "0x44" + ] + }, + { + "pc": 1988, + "op": "REVERT", + "gas": 2041364, + "gasCost": 0, + "depth": 2, + "stack": [ + "0x8bfe44ff", + "0x1a1", + "0x44", + "0x80" + ] + }, + { + "pc": 1598, + "op": "SWAP3", + "gas": 2073777, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "Tracer.address", + "0x8bfe44ff", + "0xe4", + "0x0" + ] + }, + { + "pc": 1599, + "op": "POP", + "gas": 2073774, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x8bfe44ff", + "0xe4", + "Tracer.address" + ] + }, + { + "pc": 1600, + "op": "POP", + "gas": 2073772, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x8bfe44ff", + "0xe4" + ] + }, + { + "pc": 1601, + "op": "POP", + "gas": 2073770, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x8bfe44ff" + ] + }, + { + "pc": 1602, + "op": "DUP1", + "gas": 2073768, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1603, + "op": "ISZERO", + "gas": 2073765, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x0" + ] + }, + { + "pc": 1604, + "op": "PUSH3", + "gas": 2073762, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x1" + ] + }, + { + "pc": 1608, + "op": "JUMPI", + "gas": 2073759, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x1", + "0x64c" + ] + }, + { + "pc": 1612, + "op": "JUMPDEST", + "gas": 2073749, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1613, + "op": "PUSH3", + "gas": 2073748, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1617, + "op": "JUMPI", + "gas": 2073745, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x735" + ] + }, + { + "pc": 1618, + "op": "PUSH3", + "gas": 2073735, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1622, + "op": "PUSH3", + "gas": 2073732, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b" + ] + }, + { + "pc": 1626, + "op": "JUMP", + "gas": 2073729, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0xcec" + ] + }, + { + "pc": 3308, + "op": "JUMPDEST", + "gas": 2073721, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b" + ] + }, + { + "pc": 3309, + "op": "PUSH1", + "gas": 2073720, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b" + ] + }, + { + "pc": 3311, + "op": "PUSH1", + "gas": 2073717, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0" + ] + }, + { + "pc": 3313, + "op": "RETURNDATASIZE", + "gas": 2073714, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0x3" + ] + }, + { + "pc": 3314, + "op": "GT", + "gas": 2073712, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0x3", + "0x44" + ] + }, + { + "pc": 3315, + "op": "ISZERO", + "gas": 2073709, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0x1" + ] + }, + { + "pc": 3316, + "op": "PUSH3", + "gas": 2073706, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0x0" + ] + }, + { + "pc": 3320, + "op": "JUMPI", + "gas": 2073703, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0x0", + "0xd0e" + ] + }, + { + "pc": 3321, + "op": "PUSH1", + "gas": 2073693, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0" + ] + }, + { + "pc": 3323, + "op": "PUSH1", + "gas": 2073690, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0x4" + ] + }, + { + "pc": 3325, + "op": "DUP1", + "gas": 2073687, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0x4", + "0x0" + ] + }, + { + "pc": 3326, + "op": "RETURNDATACOPY", + "gas": 2073684, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 3327, + "op": "PUSH3", + "gas": 2073678, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0" + ] + }, + { + "pc": 3331, + "op": "PUSH1", + "gas": 2073675, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b" + ] + }, + { + "pc": 3333, + "op": "MLOAD", + "gas": 2073672, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0x0" + ] + }, + { + "pc": 3334, + "op": "PUSH3", + "gas": 2073669, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3338, + "op": "JUMP", + "gas": 2073666, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0xcdf" + ] + }, + { + "pc": 3295, + "op": "JUMPDEST", + "gas": 2073658, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3296, + "op": "PUSH1", + "gas": 2073657, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3298, + "op": "DUP2", + "gas": 2073654, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0x0" + ] + }, + { + "pc": 3299, + "op": "PUSH1", + "gas": 2073651, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0x0", + "0xcf47918100000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3301, + "op": "SHR", + "gas": 2073648, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0x0", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0xe0" + ] + }, + { + "pc": 3302, + "op": "SWAP1", + "gas": 2073645, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0x0", + "0xcf479181" + ] + }, + { + "pc": 3303, + "op": "POP", + "gas": 2073642, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0xcf479181", + "0x0" + ] + }, + { + "pc": 3304, + "op": "SWAP2", + "gas": 2073640, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0xcf479181" + ] + }, + { + "pc": 3305, + "op": "SWAP1", + "gas": 2073637, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xcf479181", + "0xcf47918100000000000000000000000000000000000000000000000000000000", + "0xd0b" + ] + }, + { + "pc": 3306, + "op": "POP", + "gas": 2073634, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xcf479181", + "0xd0b", + "0xcf47918100000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 3307, + "op": "JUMP", + "gas": 2073632, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xcf479181", + "0xd0b" + ] + }, + { + "pc": 3339, + "op": "JUMPDEST", + "gas": 2073624, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xcf479181" + ] + }, + { + "pc": 3340, + "op": "SWAP1", + "gas": 2073623, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0x0", + "0xcf479181" + ] + }, + { + "pc": 3341, + "op": "POP", + "gas": 2073620, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0xcf479181", + "0x0" + ] + }, + { + "pc": 3342, + "op": "JUMPDEST", + "gas": 2073618, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0xcf479181" + ] + }, + { + "pc": 3343, + "op": "SWAP1", + "gas": 2073617, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x65b", + "0xcf479181" + ] + }, + { + "pc": 3344, + "op": "JUMP", + "gas": 2073614, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181", + "0x65b" + ] + }, + { + "pc": 1627, + "op": "JUMPDEST", + "gas": 2073606, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181" + ] + }, + { + "pc": 1628, + "op": "DUP1", + "gas": 2073605, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181" + ] + }, + { + "pc": 1629, + "op": "PUSH4", + "gas": 2073602, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181", + "0xcf479181" + ] + }, + { + "pc": 1634, + "op": "EQ", + "gas": 2073599, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181", + "0xcf479181", + "0x8c379a0" + ] + }, + { + "pc": 1635, + "op": "ISZERO", + "gas": 2073596, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181", + "0x0" + ] + }, + { + "pc": 1636, + "op": "PUSH3", + "gas": 2073593, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181", + "0x1" + ] + }, + { + "pc": 1640, + "op": "JUMPI", + "gas": 2073590, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181", + "0x1", + "0x6c0" + ] + }, + { + "pc": 1728, + "op": "JUMPDEST", + "gas": 2073580, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181" + ] + }, + { + "pc": 1729, + "op": "POP", + "gas": 2073579, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xcf479181" + ] + }, + { + "pc": 1730, + "op": "JUMPDEST", + "gas": 2073577, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1731, + "op": "RETURNDATASIZE", + "gas": 2073576, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1732, + "op": "DUP1", + "gas": 2073574, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44" + ] + }, + { + "pc": 1733, + "op": "PUSH1", + "gas": 2073571, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44", + "0x44" + ] + }, + { + "pc": 1735, + "op": "DUP2", + "gas": 2073568, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44", + "0x44", + "0x0" + ] + }, + { + "pc": 1736, + "op": "EQ", + "gas": 2073565, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44", + "0x44", + "0x0", + "0x44" + ] + }, + { + "pc": 1737, + "op": "PUSH3", + "gas": 2073562, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44", + "0x44", + "0x0" + ] + }, + { + "pc": 1741, + "op": "JUMPI", + "gas": 2073559, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44", + "0x44", + "0x0", + "0x6f0" + ] + }, + { + "pc": 1742, + "op": "PUSH1", + "gas": 2073549, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44", + "0x44" + ] + }, + { + "pc": 1744, + "op": "MLOAD", + "gas": 2073546, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44", + "0x44", + "0x40" + ] + }, + { + "pc": 1745, + "op": "SWAP2", + "gas": 2073543, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x44", + "0x44", + "0xe0" + ] + }, + { + "pc": 1746, + "op": "POP", + "gas": 2073540, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x44" + ] + }, + { + "pc": 1747, + "op": "PUSH1", + "gas": 2073538, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44" + ] + }, + { + "pc": 1749, + "op": "NOT", + "gas": 2073535, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x1f" + ] + }, + { + "pc": 1750, + "op": "PUSH1", + "gas": 2073532, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0" + ] + }, + { + "pc": 1752, + "op": "RETURNDATASIZE", + "gas": 2073529, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x3f" + ] + }, + { + "pc": 1753, + "op": "ADD", + "gas": 2073527, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x3f", + "0x44" + ] + }, + { + "pc": 1754, + "op": "AND", + "gas": 2073524, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", + "0x83" + ] + }, + { + "pc": 1755, + "op": "DUP3", + "gas": 2073521, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x80" + ] + }, + { + "pc": 1756, + "op": "ADD", + "gas": 2073518, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x80", + "0xe0" + ] + }, + { + "pc": 1757, + "op": "PUSH1", + "gas": 2073515, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x160" + ] + }, + { + "pc": 1759, + "op": "MSTORE", + "gas": 2073512, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x160", + "0x40" + ] + }, + { + "pc": 1760, + "op": "RETURNDATASIZE", + "gas": 2073509, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44" + ] + }, + { + "pc": 1761, + "op": "DUP3", + "gas": 2073507, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x44" + ] + }, + { + "pc": 1762, + "op": "MSTORE", + "gas": 2073504, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x44", + "0xe0" + ] + }, + { + "pc": 1763, + "op": "RETURNDATASIZE", + "gas": 2073501, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44" + ] + }, + { + "pc": 1764, + "op": "PUSH1", + "gas": 2073499, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x44" + ] + }, + { + "pc": 1766, + "op": "PUSH1", + "gas": 2073496, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x44", + "0x0" + ] + }, + { + "pc": 1768, + "op": "DUP5", + "gas": 2073493, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x44", + "0x0", + "0x20" + ] + }, + { + "pc": 1769, + "op": "ADD", + "gas": 2073490, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x44", + "0x0", + "0x20", + "0xe0" + ] + }, + { + "pc": 1770, + "op": "RETURNDATACOPY", + "gas": 2073487, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x44", + "0x0", + "0x100" + ] + }, + { + "pc": 1771, + "op": "PUSH3", + "gas": 2073475, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44" + ] + }, + { + "pc": 1775, + "op": "JUMP", + "gas": 2073472, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44", + "0x6f5" + ] + }, + { + "pc": 1781, + "op": "JUMPDEST", + "gas": 2073464, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44" + ] + }, + { + "pc": 1782, + "op": "POP", + "gas": 2073463, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x44" + ] + }, + { + "pc": 1783, + "op": "PUSH32", + "gas": 2073461, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0" + ] + }, + { + "pc": 1816, + "op": "PUSH1", + "gas": 2073458, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a" + ] + }, + { + "pc": 1818, + "op": "MLOAD", + "gas": 2073455, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x40" + ] + }, + { + "pc": 1819, + "op": "PUSH3", + "gas": 2073452, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x160" + ] + }, + { + "pc": 1823, + "op": "SWAP1", + "gas": 2073449, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x160", + "0x725" + ] + }, + { + "pc": 1824, + "op": "PUSH3", + "gas": 2073446, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160" + ] + }, + { + "pc": 1828, + "op": "JUMP", + "gas": 2073443, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0xf45" + ] + }, + { + "pc": 3909, + "op": "JUMPDEST", + "gas": 2073435, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160" + ] + }, + { + "pc": 3910, + "op": "PUSH1", + "gas": 2073434, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160" + ] + }, + { + "pc": 3912, + "op": "PUSH1", + "gas": 2073431, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x0" + ] + }, + { + "pc": 3914, + "op": "DUP3", + "gas": 2073428, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x0", + "0x20" + ] + }, + { + "pc": 3915, + "op": "ADD", + "gas": 2073425, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x0", + "0x20", + "0x160" + ] + }, + { + "pc": 3916, + "op": "SWAP1", + "gas": 2073422, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x0", + "0x180" + ] + }, + { + "pc": 3917, + "op": "POP", + "gas": 2073419, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x0" + ] + }, + { + "pc": 3918, + "op": "DUP2", + "gas": 2073417, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180" + ] + }, + { + "pc": 3919, + "op": "DUP2", + "gas": 2073414, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x160" + ] + }, + { + "pc": 3920, + "op": "SUB", + "gas": 2073411, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x160", + "0x180" + ] + }, + { + "pc": 3921, + "op": "PUSH1", + "gas": 2073408, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x20" + ] + }, + { + "pc": 3923, + "op": "DUP4", + "gas": 2073405, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x20", + "0x0" + ] + }, + { + "pc": 3924, + "op": "ADD", + "gas": 2073402, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x20", + "0x0", + "0x160" + ] + }, + { + "pc": 3925, + "op": "MSTORE", + "gas": 2073399, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x20", + "0x160" + ] + }, + { + "pc": 3926, + "op": "PUSH3", + "gas": 2073393, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180" + ] + }, + { + "pc": 3930, + "op": "DUP2", + "gas": 2073390, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60" + ] + }, + { + "pc": 3931, + "op": "PUSH3", + "gas": 2073387, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180" + ] + }, + { + "pc": 3935, + "op": "JUMP", + "gas": 2073384, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0xf1e" + ] + }, + { + "pc": 3870, + "op": "JUMPDEST", + "gas": 2073376, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180" + ] + }, + { + "pc": 3871, + "op": "PUSH1", + "gas": 2073375, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180" + ] + }, + { + "pc": 3873, + "op": "PUSH3", + "gas": 2073372, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0" + ] + }, + { + "pc": 3877, + "op": "PUSH1", + "gas": 2073369, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d" + ] + }, + { + "pc": 3879, + "op": "DUP4", + "gas": 2073366, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d" + ] + }, + { + "pc": 3880, + "op": "PUSH3", + "gas": 2073363, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180" + ] + }, + { + "pc": 3884, + "op": "JUMP", + "gas": 2073360, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0xaf5" + ] + }, + { + "pc": 2805, + "op": "JUMPDEST", + "gas": 2073352, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180" + ] + }, + { + "pc": 2806, + "op": "PUSH1", + "gas": 2073351, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180" + ] + }, + { + "pc": 2808, + "op": "DUP3", + "gas": 2073348, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x0" + ] + }, + { + "pc": 2809, + "op": "DUP3", + "gas": 2073345, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x0", + "0x2d" + ] + }, + { + "pc": 2810, + "op": "MSTORE", + "gas": 2073342, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x0", + "0x2d", + "0x180" + ] + }, + { + "pc": 2811, + "op": "PUSH1", + "gas": 2073336, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x0" + ] + }, + { + "pc": 2813, + "op": "DUP3", + "gas": 2073333, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x0", + "0x20" + ] + }, + { + "pc": 2814, + "op": "ADD", + "gas": 2073330, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x0", + "0x20", + "0x180" + ] + }, + { + "pc": 2815, + "op": "SWAP1", + "gas": 2073327, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x0", + "0x1a0" + ] + }, + { + "pc": 2816, + "op": "POP", + "gas": 2073324, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x1a0", + "0x0" + ] + }, + { + "pc": 2817, + "op": "SWAP3", + "gas": 2073322, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0xf2d", + "0x2d", + "0x180", + "0x1a0" + ] + }, + { + "pc": 2818, + "op": "SWAP2", + "gas": 2073319, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0x1a0", + "0x2d", + "0x180", + "0xf2d" + ] + }, + { + "pc": 2819, + "op": "POP", + "gas": 2073316, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0x1a0", + "0xf2d", + "0x180", + "0x2d" + ] + }, + { + "pc": 2820, + "op": "POP", + "gas": 2073314, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0x1a0", + "0xf2d", + "0x180" + ] + }, + { + "pc": 2821, + "op": "JUMP", + "gas": 2073312, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0x1a0", + "0xf2d" + ] + }, + { + "pc": 3885, + "op": "JUMPDEST", + "gas": 2073304, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0x1a0" + ] + }, + { + "pc": 3886, + "op": "SWAP2", + "gas": 2073303, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x180", + "0x0", + "0x1a0" + ] + }, + { + "pc": 3887, + "op": "POP", + "gas": 2073300, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0x180" + ] + }, + { + "pc": 3888, + "op": "PUSH3", + "gas": 2073298, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0" + ] + }, + { + "pc": 3892, + "op": "DUP3", + "gas": 2073295, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a" + ] + }, + { + "pc": 3893, + "op": "PUSH3", + "gas": 2073292, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0" + ] + }, + { + "pc": 3897, + "op": "JUMP", + "gas": 2073289, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0xecf" + ] + }, + { + "pc": 3791, + "op": "JUMPDEST", + "gas": 2073281, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0" + ] + }, + { + "pc": 3792, + "op": "PUSH32", + "gas": 2073280, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0" + ] + }, + { + "pc": 3825, + "op": "PUSH1", + "gas": 2073277, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0x45787465726e616c2063616c6c206661696c656420776974686f757420616e20" + ] + }, + { + "pc": 3827, + "op": "DUP3", + "gas": 2073274, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0x45787465726e616c2063616c6c206661696c656420776974686f757420616e20", + "0x0" + ] + }, + { + "pc": 3828, + "op": "ADD", + "gas": 2073271, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0x45787465726e616c2063616c6c206661696c656420776974686f757420616e20", + "0x0", + "0x1a0" + ] + }, + { + "pc": 3829, + "op": "MSTORE", + "gas": 2073268, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0x45787465726e616c2063616c6c206661696c656420776974686f757420616e20", + "0x1a0" + ] + }, + { + "pc": 3830, + "op": "PUSH32", + "gas": 2073262, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0" + ] + }, + { + "pc": 3863, + "op": "PUSH1", + "gas": 2073259, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0x6572726f72206d65737361676500000000000000000000000000000000000000" + ] + }, + { + "pc": 3865, + "op": "DUP3", + "gas": 2073256, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0x6572726f72206d65737361676500000000000000000000000000000000000000", + "0x20" + ] + }, + { + "pc": 3866, + "op": "ADD", + "gas": 2073253, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0x6572726f72206d65737361676500000000000000000000000000000000000000", + "0x20", + "0x1a0" + ] + }, + { + "pc": 3867, + "op": "MSTORE", + "gas": 2073250, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0", + "0x6572726f72206d65737361676500000000000000000000000000000000000000", + "0x1c0" + ] + }, + { + "pc": 3868, + "op": "POP", + "gas": 2073244, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a", + "0x1a0" + ] + }, + { + "pc": 3869, + "op": "JUMP", + "gas": 2073242, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0xf3a" + ] + }, + { + "pc": 3898, + "op": "JUMPDEST", + "gas": 2073234, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0" + ] + }, + { + "pc": 3899, + "op": "PUSH1", + "gas": 2073233, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0" + ] + }, + { + "pc": 3901, + "op": "DUP3", + "gas": 2073230, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0x40" + ] + }, + { + "pc": 3902, + "op": "ADD", + "gas": 2073227, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0x40", + "0x1a0" + ] + }, + { + "pc": 3903, + "op": "SWAP1", + "gas": 2073224, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x0", + "0x1e0" + ] + }, + { + "pc": 3904, + "op": "POP", + "gas": 2073221, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x1e0", + "0x0" + ] + }, + { + "pc": 3905, + "op": "SWAP2", + "gas": 2073219, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0xf60", + "0x1a0", + "0x1e0" + ] + }, + { + "pc": 3906, + "op": "SWAP1", + "gas": 2073216, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x1e0", + "0x1a0", + "0xf60" + ] + }, + { + "pc": 3907, + "op": "POP", + "gas": 2073213, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x1e0", + "0xf60", + "0x1a0" + ] + }, + { + "pc": 3908, + "op": "JUMP", + "gas": 2073211, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x1e0", + "0xf60" + ] + }, + { + "pc": 3936, + "op": "JUMPDEST", + "gas": 2073203, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x1e0" + ] + }, + { + "pc": 3937, + "op": "SWAP1", + "gas": 2073202, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x180", + "0x1e0" + ] + }, + { + "pc": 3938, + "op": "POP", + "gas": 2073199, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x1e0", + "0x180" + ] + }, + { + "pc": 3939, + "op": "SWAP2", + "gas": 2073197, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x725", + "0x160", + "0x1e0" + ] + }, + { + "pc": 3940, + "op": "SWAP1", + "gas": 2073194, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x1e0", + "0x160", + "0x725" + ] + }, + { + "pc": 3941, + "op": "POP", + "gas": 2073191, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x1e0", + "0x725", + "0x160" + ] + }, + { + "pc": 3942, + "op": "JUMP", + "gas": 2073189, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x1e0", + "0x725" + ] + }, + { + "pc": 1829, + "op": "JUMPDEST", + "gas": 2073181, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x1e0" + ] + }, + { + "pc": 1830, + "op": "PUSH1", + "gas": 2073180, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x1e0" + ] + }, + { + "pc": 1832, + "op": "MLOAD", + "gas": 2073177, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x1e0", + "0x40" + ] + }, + { + "pc": 1833, + "op": "DUP1", + "gas": 2073174, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x1e0", + "0x160" + ] + }, + { + "pc": 1834, + "op": "SWAP2", + "gas": 2073171, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x1e0", + "0x160", + "0x160" + ] + }, + { + "pc": 1835, + "op": "SUB", + "gas": 2073168, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x160", + "0x160", + "0x1e0" + ] + }, + { + "pc": 1836, + "op": "SWAP1", + "gas": 2073165, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x160", + "0x80" + ] + }, + { + "pc": 1837, + "op": "LOG1", + "gas": 2073162, + "gasCost": 1774, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0", + "0x4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a", + "0x80", + "0x160" + ] + }, + { + "pc": 1838, + "op": "POP", + "gas": 2071388, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0xe0" + ] + }, + { + "pc": 1839, + "op": "JUMPDEST", + "gas": 2071386, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1840, + "op": "PUSH3", + "gas": 2071385, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1844, + "op": "JUMP", + "gas": 2071382, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x736" + ] + }, + { + "pc": 1846, + "op": "JUMPDEST", + "gas": 2071374, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1847, + "op": "PUSH1", + "gas": 2071373, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1849, + "op": "PUSH3", + "gas": 2071370, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0" + ] + }, + { + "pc": 1853, + "op": "JUMPI", + "gas": 2071367, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x0", + "0x77a" + ] + }, + { + "pc": 1854, + "op": "PUSH1", + "gas": 2071357, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0" + ] + }, + { + "pc": 1856, + "op": "MLOAD", + "gas": 2071354, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x40" + ] + }, + { + "pc": 1857, + "op": "PUSH32", + "gas": 2071351, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x160" + ] + }, + { + "pc": 1890, + "op": "DUP2", + "gas": 2071348, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x160", + "0x8c379a000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 1891, + "op": "MSTORE", + "gas": 2071345, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x160", + "0x8c379a000000000000000000000000000000000000000000000000000000000", + "0x160" + ] + }, + { + "pc": 1892, + "op": "PUSH1", + "gas": 2071342, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x160" + ] + }, + { + "pc": 1894, + "op": "ADD", + "gas": 2071339, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x160", + "0x4" + ] + }, + { + "pc": 1895, + "op": "PUSH3", + "gas": 2071336, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x164" + ] + }, + { + "pc": 1899, + "op": "SWAP1", + "gas": 2071333, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x164", + "0x771" + ] + }, + { + "pc": 1900, + "op": "PUSH3", + "gas": 2071330, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164" + ] + }, + { + "pc": 1904, + "op": "JUMP", + "gas": 2071327, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0xfb7" + ] + }, + { + "pc": 4023, + "op": "JUMPDEST", + "gas": 2071319, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164" + ] + }, + { + "pc": 4024, + "op": "PUSH1", + "gas": 2071318, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164" + ] + }, + { + "pc": 4026, + "op": "PUSH1", + "gas": 2071315, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x0" + ] + }, + { + "pc": 4028, + "op": "DUP3", + "gas": 2071312, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x0", + "0x20" + ] + }, + { + "pc": 4029, + "op": "ADD", + "gas": 2071309, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x0", + "0x20", + "0x164" + ] + }, + { + "pc": 4030, + "op": "SWAP1", + "gas": 2071306, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x0", + "0x184" + ] + }, + { + "pc": 4031, + "op": "POP", + "gas": 2071303, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x0" + ] + }, + { + "pc": 4032, + "op": "DUP2", + "gas": 2071301, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184" + ] + }, + { + "pc": 4033, + "op": "DUP2", + "gas": 2071298, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x164" + ] + }, + { + "pc": 4034, + "op": "SUB", + "gas": 2071295, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x164", + "0x184" + ] + }, + { + "pc": 4035, + "op": "PUSH1", + "gas": 2071292, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x20" + ] + }, + { + "pc": 4037, + "op": "DUP4", + "gas": 2071289, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x20", + "0x0" + ] + }, + { + "pc": 4038, + "op": "ADD", + "gas": 2071286, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x20", + "0x0", + "0x164" + ] + }, + { + "pc": 4039, + "op": "MSTORE", + "gas": 2071283, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x20", + "0x164" + ] + }, + { + "pc": 4040, + "op": "PUSH3", + "gas": 2071280, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184" + ] + }, + { + "pc": 4044, + "op": "DUP2", + "gas": 2071277, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2" + ] + }, + { + "pc": 4045, + "op": "PUSH3", + "gas": 2071274, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184" + ] + }, + { + "pc": 4049, + "op": "JUMP", + "gas": 2071271, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0xf90" + ] + }, + { + "pc": 3984, + "op": "JUMPDEST", + "gas": 2071263, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184" + ] + }, + { + "pc": 3985, + "op": "PUSH1", + "gas": 2071262, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184" + ] + }, + { + "pc": 3987, + "op": "PUSH3", + "gas": 2071259, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0" + ] + }, + { + "pc": 3991, + "op": "PUSH1", + "gas": 2071256, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f" + ] + }, + { + "pc": 3993, + "op": "DUP4", + "gas": 2071253, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14" + ] + }, + { + "pc": 3994, + "op": "PUSH3", + "gas": 2071250, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184" + ] + }, + { + "pc": 3998, + "op": "JUMP", + "gas": 2071247, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0xaf5" + ] + }, + { + "pc": 2805, + "op": "JUMPDEST", + "gas": 2071239, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184" + ] + }, + { + "pc": 2806, + "op": "PUSH1", + "gas": 2071238, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184" + ] + }, + { + "pc": 2808, + "op": "DUP3", + "gas": 2071235, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x0" + ] + }, + { + "pc": 2809, + "op": "DUP3", + "gas": 2071232, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x0", + "0x14" + ] + }, + { + "pc": 2810, + "op": "MSTORE", + "gas": 2071229, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x0", + "0x14", + "0x184" + ] + }, + { + "pc": 2811, + "op": "PUSH1", + "gas": 2071226, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x0" + ] + }, + { + "pc": 2813, + "op": "DUP3", + "gas": 2071223, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x0", + "0x20" + ] + }, + { + "pc": 2814, + "op": "ADD", + "gas": 2071220, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x0", + "0x20", + "0x184" + ] + }, + { + "pc": 2815, + "op": "SWAP1", + "gas": 2071217, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x0", + "0x1a4" + ] + }, + { + "pc": 2816, + "op": "POP", + "gas": 2071214, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x1a4", + "0x0" + ] + }, + { + "pc": 2817, + "op": "SWAP3", + "gas": 2071212, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0xf9f", + "0x14", + "0x184", + "0x1a4" + ] + }, + { + "pc": 2818, + "op": "SWAP2", + "gas": 2071209, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0x1a4", + "0x14", + "0x184", + "0xf9f" + ] + }, + { + "pc": 2819, + "op": "POP", + "gas": 2071206, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0x1a4", + "0xf9f", + "0x184", + "0x14" + ] + }, + { + "pc": 2820, + "op": "POP", + "gas": 2071204, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0x1a4", + "0xf9f", + "0x184" + ] + }, + { + "pc": 2821, + "op": "JUMP", + "gas": 2071202, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0x1a4", + "0xf9f" + ] + }, + { + "pc": 3999, + "op": "JUMPDEST", + "gas": 2071194, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0x1a4" + ] + }, + { + "pc": 4000, + "op": "SWAP2", + "gas": 2071193, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x184", + "0x0", + "0x1a4" + ] + }, + { + "pc": 4001, + "op": "POP", + "gas": 2071190, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0x184" + ] + }, + { + "pc": 4002, + "op": "PUSH3", + "gas": 2071188, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0" + ] + }, + { + "pc": 4006, + "op": "DUP3", + "gas": 2071185, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac" + ] + }, + { + "pc": 4007, + "op": "PUSH3", + "gas": 2071182, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4" + ] + }, + { + "pc": 4011, + "op": "JUMP", + "gas": 2071179, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4", + "0xf67" + ] + }, + { + "pc": 3943, + "op": "JUMPDEST", + "gas": 2071171, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4" + ] + }, + { + "pc": 3944, + "op": "PUSH32", + "gas": 2071170, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4" + ] + }, + { + "pc": 3977, + "op": "PUSH1", + "gas": 2071167, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4", + "0x494e53554646494349454e542042414c414e4345000000000000000000000000" + ] + }, + { + "pc": 3979, + "op": "DUP3", + "gas": 2071164, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4", + "0x494e53554646494349454e542042414c414e4345000000000000000000000000", + "0x0" + ] + }, + { + "pc": 3980, + "op": "ADD", + "gas": 2071161, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4", + "0x494e53554646494349454e542042414c414e4345000000000000000000000000", + "0x0", + "0x1a4" + ] + }, + { + "pc": 3981, + "op": "MSTORE", + "gas": 2071158, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4", + "0x494e53554646494349454e542042414c414e4345000000000000000000000000", + "0x1a4" + ] + }, + { + "pc": 3982, + "op": "POP", + "gas": 2071155, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac", + "0x1a4" + ] + }, + { + "pc": 3983, + "op": "JUMP", + "gas": 2071153, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0xfac" + ] + }, + { + "pc": 4012, + "op": "JUMPDEST", + "gas": 2071145, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0" + ] + }, + { + "pc": 4013, + "op": "PUSH1", + "gas": 2071144, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0" + ] + }, + { + "pc": 4015, + "op": "DUP3", + "gas": 2071141, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0x20" + ] + }, + { + "pc": 4016, + "op": "ADD", + "gas": 2071138, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0x20", + "0x1a4" + ] + }, + { + "pc": 4017, + "op": "SWAP1", + "gas": 2071135, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x0", + "0x1c4" + ] + }, + { + "pc": 4018, + "op": "POP", + "gas": 2071132, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x1c4", + "0x0" + ] + }, + { + "pc": 4019, + "op": "SWAP2", + "gas": 2071130, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0xfd2", + "0x1a4", + "0x1c4" + ] + }, + { + "pc": 4020, + "op": "SWAP1", + "gas": 2071127, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x1c4", + "0x1a4", + "0xfd2" + ] + }, + { + "pc": 4021, + "op": "POP", + "gas": 2071124, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x1c4", + "0xfd2", + "0x1a4" + ] + }, + { + "pc": 4022, + "op": "JUMP", + "gas": 2071122, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x1c4", + "0xfd2" + ] + }, + { + "pc": 4050, + "op": "JUMPDEST", + "gas": 2071114, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x1c4" + ] + }, + { + "pc": 4051, + "op": "SWAP1", + "gas": 2071113, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x184", + "0x1c4" + ] + }, + { + "pc": 4052, + "op": "POP", + "gas": 2071110, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x1c4", + "0x184" + ] + }, + { + "pc": 4053, + "op": "SWAP2", + "gas": 2071108, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x771", + "0x164", + "0x1c4" + ] + }, + { + "pc": 4054, + "op": "SWAP1", + "gas": 2071105, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x1c4", + "0x164", + "0x771" + ] + }, + { + "pc": 4055, + "op": "POP", + "gas": 2071102, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x1c4", + "0x771", + "0x164" + ] + }, + { + "pc": 4056, + "op": "JUMP", + "gas": 2071100, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x1c4", + "0x771" + ] + }, + { + "pc": 1905, + "op": "JUMPDEST", + "gas": 2071092, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x1c4" + ] + }, + { + "pc": 1906, + "op": "PUSH1", + "gas": 2071091, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x1c4" + ] + }, + { + "pc": 1908, + "op": "MLOAD", + "gas": 2071088, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x1c4", + "0x40" + ] + }, + { + "pc": 1909, + "op": "DUP1", + "gas": 2071085, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x1c4", + "0x160" + ] + }, + { + "pc": 1910, + "op": "SWAP2", + "gas": 2071082, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x1c4", + "0x160", + "0x160" + ] + }, + { + "pc": 1911, + "op": "SUB", + "gas": 2071079, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x160", + "0x160", + "0x1c4" + ] + }, + { + "pc": 1912, + "op": "SWAP1", + "gas": 2071076, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x160", + "0x64" + ] + }, + { + "pc": 1913, + "op": "REVERT", + "gas": 2071073, + "gasCost": 0, + "depth": 1, + "stack": [ + "0x7f29c394", + "0x17f", + "0x3e8", + "0x0", + "0x64", + "0x160" + ] + } + ] +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.prestateDiffTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.prestateDiffTracer.json new file mode 100644 index 000000000..adb54205d --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.prestateDiffTracer.json @@ -0,0 +1,20 @@ +{ + "post": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1bf279a" + }, + "OWNER.address": { + "balance": "0x360ee5cfde418e129e", + "nonce": 84 + } + }, + "pre": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1beb69b" + }, + "OWNER.address": { + "balance": "0x360ee5cfde69ec5c29", + "nonce": 83 + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.prestateTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.prestateTracer.json new file mode 100644 index 000000000..dac71a96a --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.readableRevert.prestateTracer.json @@ -0,0 +1,14 @@ +{ + "0x0000000000000000000000000000000000000000": { + "balance": "0x1beb69b" + }, + "OWNER.address": { + "balance": "0x360ee5cfde69ec5c29", + "nonce": 83 + }, + "Tracer.address": { + "balance": "0x0", + "code": "0x60806040523480156200001157600080fd5b5060043610620000ac5760003560e01c80638bfe44ff116200006f5780638bfe44ff14620001975780639295436214620001a3578063a0712d6814620001af578063b69ef8a814620001e5578063c9353cb5146200020757620000ac565b806312065fe014620000b15780631c71706914620000d35780631c93908c14620000f55780633aa18088146200012b5780637f29c3941462000161575b600080fd5b620000bb62000227565b604051620000ca919062000997565b60405180910390f35b620000dd62000231565b604051620000ec9190620009cf565b60405180910390f35b6200011360048036038101906200010d919062000a2c565b62000280565b60405162000122919062000997565b60405180910390f35b62000149600480360381019062000143919062000a2c565b620002f6565b60405162000158919062000997565b60405180910390f35b6200017f600480360381019062000179919062000a2c565b620004ae565b6040516200018e919062000997565b60405180910390f35b620001a162000783565b005b620001ad620007c5565b005b620001cd6004803603810190620001c7919062000a2c565b62000802565b604051620001dc919062000997565b60405180910390f35b620001ef6200094f565b604051620001fe919062000997565b60405180910390f35b6200022560048036038101906200021f919062000ac3565b62000955565b005b6000600154905090565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620002ca919062000b56565b60405180910390a28160036000828254620002e6919062000bb7565b9250508190555060029050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405162000340919062000c64565b60405180910390a260405162000356906200096e565b604051809103906000f08015801562000373573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000828254620003c7919062000bb7565b92505081905550620003e7600183620003e1919062000bb7565b62000280565b50620003f262000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b81526004016200044e919062000997565b602060405180830381600087803b1580156200046957600080fd5b505af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000cad565b5060019050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1663929543626040518163ffffffff1660e01b815260040160006040518083038186803b158015620004f757600080fd5b505afa92505050801562000509575060015b620005f2576200051862000cec565b806308c379a014156200057d57506200053062000d87565b806200053d57506200057f565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a816040516200056e919062000eab565b60405180910390a150620005ec565b505b3d8060008114620005ad576040519150601f19603f3d011682016040523d82523d6000602084013e620005b2565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620005e29062000f45565b60405180910390a1505b620005f3565b5b3073ffffffffffffffffffffffffffffffffffffffff16638bfe44ff6040518163ffffffff1660e01b815260040160006040518083038186803b1580156200063a57600080fd5b505afa9250505080156200064c575060015b62000735576200065b62000cec565b806308c379a01415620006c057506200067362000d87565b80620006805750620006c2565b7f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a81604051620006b1919062000eab565b60405180910390a1506200072f565b505b3d8060008114620006f0576040519150601f19603f3d011682016040523d82523d6000602084013e620006f5565b606091505b507f4f17d5cf0427b4fe5e5649c407d3021315cfaa7216c9e58c369ef3937c40801a604051620007259062000f45565b60405180910390a1505b62000736565b5b60006200077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007719062000fb7565b60405180910390fd5b60019050919050565b6001806040517fcf479181000000000000000000000000000000000000000000000000000000008152600401620007bc92919062001026565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620010a3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200084c919062000c64565b60405180910390a2816001600082825462000868919062000bb7565b925050819055506200088860018362000882919062000bb7565b62000280565b506200089362000231565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68836040518263ffffffff1660e01b8152600401620008ef919062000997565b602060405180830381600087803b1580156200090a57600080fd5b505af11580156200091f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000945919062000cad565b5060019050919050565b60015481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b610ae380620010c683390190565b6000819050919050565b62000991816200097c565b82525050565b6000602082019050620009ae600083018462000986565b92915050565b6000819050919050565b620009c981620009b4565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b6000604051905090565b600080fd5b62000a06816200097c565b811462000a1257600080fd5b50565b60008135905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009f6565b5b600062000a558482850162000a15565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008135905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb620009f6565b5b600062000aec8482850162000aac565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000b3e600e8362000af5565b915062000b4b8262000b06565b602082019050919050565b600060408201905062000b6d600083018462000986565b818103602083015262000b808162000b2f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc4826200097c565b915062000bd1836200097c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c095762000c0862000b88565b5b828201905092915050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b600062000c4c60058362000af5565b915062000c598262000c14565b602082019050919050565b600060408201905062000c7b600083018462000986565b818103602083015262000c8e8162000c3d565b905092915050565b60008151905062000ca781620009fb565b92915050565b60006020828403121562000cc65762000cc5620009f6565b5b600062000cd68482850162000c96565b91505092915050565b60008160e01c9050919050565b600060033d111562000d0e5760046000803e62000d0b60005162000cdf565b90505b90565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000d5c8262000d11565b810181811067ffffffffffffffff8211171562000d7e5762000d7d62000d22565b5b80604052505050565b600060443d101562000d995762000e26565b62000da3620009ec565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000dcd57505062000e26565b808201805167ffffffffffffffff81111562000ded575050505062000e26565b80602083010160043d03850181111562000e0c57505050505062000e26565b62000e1d8260200185018662000d51565b82955050505050505b90565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b600062000e778262000e29565b62000e83818562000af5565b935062000e9581856020860162000e34565b62000ea08162000d11565b840191505092915050565b6000602082019050818103600083015262000ec7818462000e6a565b905092915050565b7f45787465726e616c2063616c6c206661696c656420776974686f757420616e2060008201527f6572726f72206d65737361676500000000000000000000000000000000000000602082015250565b600062000f2d602d8362000af5565b915062000f3a8262000ecf565b604082019050919050565b6000602082019050818103600083015262000f608162000f1e565b9050919050565b7f494e53554646494349454e542042414c414e4345000000000000000000000000600082015250565b600062000f9f60148362000af5565b915062000fac8262000f67565b602082019050919050565b6000602082019050818103600083015262000fd28162000f90565b9050919050565b6000819050919050565b6000819050919050565b60006200100e62001008620010028462000fd9565b62000fe3565b6200097c565b9050919050565b620010208162000fed565b82525050565b60006040820190506200103d600083018562001015565b6200104c602083018462001015565b9392505050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b60006200108b60178362000af5565b9150620010988262001053565b602082019050919050565b60006020820190508181036000830152620010be816200107c565b905091905056fe60806040526000600160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50600160009054906101000a900460ff161562000080576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007790620002b5565b60405180910390fd5b60018060006101000a81548160ff021916908315150217905550620000bc701d6329f1c35ca4bfabb9f5610000000000620000c360201b60201c565b5062000482565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516200010d919062000342565b60405180910390a281600080828254620001289190620003a3565b925050819055506200014e600183620001429190620003a3565b6200016960201b60201c565b506200015f620001df60201b60201c565b5060019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac083604051620001b3919062000450565b60405180910390a28160026000828254620001cf9190620003a3565b9250508190555060029050919050565b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b600082825260208201905092915050565b7f436f6e747261637420696e7374616e63652068617320616c726561647920626560008201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006200029d602e836200022e565b9150620002aa826200023f565b604082019050919050565b60006020820190508181036000830152620002d0816200028e565b9050919050565b6000819050919050565b620002ec81620002d7565b82525050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006200032a6005836200022e565b91506200033782620002f2565b602082019050919050565b6000604082019050620003596000830184620002e1565b81810360208301526200036c816200031b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620003b082620002d7565b9150620003bd83620002d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003f557620003f462000374565b5b828201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600062000438600e836200022e565b9150620004458262000400565b602082019050919050565b6000604082019050620004676000830184620002e1565b81810360208301526200047a8162000429565b905092915050565b61065180620004926000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c717069146100675780631c93908c1461008557806392954362146100b5578063a0712d68146100bf578063b69ef8a8146100ef578063c9353cb51461010d575b600080fd5b61006f610129565b60405161007c91906102ed565b60405180910390f35b61009f600480360381019061009a9190610343565b610178565b6040516100ac919061037f565b60405180910390f35b6100bd6101ea565b005b6100d960048036038101906100d49190610343565b610225565b6040516100e6919061037f565b60405180910390f35b6100f76102b5565b604051610104919061037f565b60405180910390f35b610127600480360381019061012291906103f8565b6102bb565b005b6000806040518060400160405280600d81526020017f48656c6c6f2c20776f726c6421000000000000000000000000000000000000008152509050600081805190602001209050809250505090565b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac0836040516101c09190610482565b60405180910390a281600260008282546101da91906104df565b9250508190555060029050919050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021c90610581565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff167fa61006ade9739809351a3d196f4b5afea31c2afe4852ee18c72f674514c24ac08360405161026d91906105ed565b60405180910390a28160008082825461028691906104df565b925050819055506102a260018361029d91906104df565b610178565b506102ab610129565b5060019050919050565b60005481565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000819050919050565b6102e7816102d4565b82525050565b600060208201905061030260008301846102de565b92915050565b600080fd5b6000819050919050565b6103208161030d565b811461032b57600080fd5b50565b60008135905061033d81610317565b92915050565b60006020828403121561035957610358610308565b5b60006103678482850161032e565b91505092915050565b6103798161030d565b82525050565b60006020820190506103946000830184610370565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103c58261039a565b9050919050565b6103d5816103ba565b81146103e057600080fd5b50565b6000813590506103f2816103cc565b92915050565b60006020828403121561040e5761040d610308565b5b600061041c848285016103e3565b91505092915050565b600082825260208201905092915050565b7f696e7465726e616c20746f706963000000000000000000000000000000000000600082015250565b600061046c600e83610425565b915061047782610436565b602082019050919050565b60006040820190506104976000830184610370565b81810360208301526104a88161045f565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006104ea8261030d565b91506104f58361030d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561052a576105296104b0565b5b828201905092915050565b7f546869732066756e6374696f6e20726576657274656421000000000000000000600082015250565b600061056b601783610425565b915061057682610535565b602082019050919050565b6000602082019050818103600083015261059a8161055e565b9050919050565b7f746f706963000000000000000000000000000000000000000000000000000000600082015250565b60006105d7600583610425565b91506105e2826105a1565b602082019050919050565b60006040820190506106026000830184610370565b8181036020830152610613816105ca565b90509291505056fea26469706673582212208743accab6cfcd1c8ccb3f51b787d679e803a77ce24ec642bd068883132fd5fa64736f6c63430008090033a264697066735822122066241fedca9ebd69f0cd9e4879f75428f5d4bf734eb072e52934a8b3161581f064736f6c63430008090033", + "nonce": 2 + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.4byteTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.4byteTracer.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.4byteTracer.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.callTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.callTracer.json new file mode 100644 index 000000000..9212c2d74 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.callTracer.json @@ -0,0 +1,9 @@ +{ + "from": "OWNER.address", + "gas": "0x5208", + "gasUsed": "0x5208", + "to": "0x388c818ca8b9251b393131c08a736a67ccb19297", + "input": "0x", + "value": "0x16345785d8a0000", + "type": "CALL" +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.defaultTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.defaultTracer.json new file mode 100644 index 000000000..9b0ab9d23 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.defaultTracer.json @@ -0,0 +1,6 @@ +{ + "gas": 21000, + "failed": false, + "returnValue": "", + "structLogs": [] +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.prestateDiffTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.prestateDiffTracer.json new file mode 100644 index 000000000..ccd88db84 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.prestateDiffTracer.json @@ -0,0 +1,26 @@ +{ + "post": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b69ad1" + }, + "0x388c818ca8b9251b393131c08a736a67ccb19297": { + "balance": "0x136dcc951d8c0000" + }, + "OWNER.address": { + "balance": "0x360ee5cfe1af4203d1", + "nonce": 82 + } + }, + "pre": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b648c9" + }, + "0x388c818ca8b9251b393131c08a736a67ccb19297": { + "balance": "0x120a871cc0020000" + }, + "OWNER.address": { + "balance": "0x361049155a32982d79", + "nonce": 81 + } + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.prestateTracer.json b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.prestateTracer.json new file mode 100644 index 000000000..6246a1708 --- /dev/null +++ b/test/historicstate/hardhat/scripts/geth_traces/Tracer.transfer.prestateTracer.json @@ -0,0 +1,12 @@ +{ + "0x0000000000000000000000000000000000000000": { + "balance": "0x1b648c9" + }, + "0x388c818ca8b9251b393131c08a736a67ccb19297": { + "balance": "0x120a871cc0020000" + }, + "OWNER.address": { + "balance": "0x361049155a32982d79", + "nonce": 81 + } +} \ No newline at end of file diff --git a/test/historicstate/hardhat/scripts/infinite_transaction_loop_test.ts b/test/historicstate/hardhat/scripts/infinite_transaction_loop_test.ts new file mode 100644 index 000000000..e75381739 --- /dev/null +++ b/test/historicstate/hardhat/scripts/infinite_transaction_loop_test.ts @@ -0,0 +1,419 @@ +import {mkdir, readdir, writeFileSync, readFile, unlink} from "fs"; + +const fs = require('fs'); +import {existsSync} from "fs"; +import deepDiff, {diff} from 'deep-diff'; +import {expect} from "chai"; +import * as path from 'path'; +import {int, string} from "hardhat/internal/core/params/argumentTypes"; +import internal from "node:stream"; + +const OWNER_ADDRESS: string = "0x907cd0881E50d359bb9Fd120B1A5A143b1C97De6"; +const CALL_ADDRESS: string = "0xCe5c7ca85F8cB94FA284a303348ef42ADD23f5e7"; + +const ZERO_ADDRESS: string = '0x0000000000000000000000000000000000000000'; +const INITIAL_MINT: bigint = 10000000000000000000000000000000000000000n; +const TEST_CONTRACT_NAME = "Tracer"; +const EXECUTE_FUNCTION_NAME = "mint"; +const EXECUTE2_FUNCTION_NAME = "mint2"; +const EXECUTE3_FUNCTION_NAME = "readableRevert"; +const CALL_FUNCTION_NAME = "getBalance"; + + + + + +var DEPLOYED_CONTRACT_ADDRESS_LOWER_CASE: string = ""; +var globalCallCount = 0; + + +async function replaceAddressesWithSymbolicNames(_traceFileName: string) { + + let callAddressLowerCase = CALL_ADDRESS.toLowerCase(); + + await replaceStringInFile(SKALE_TRACES_DIR + _traceFileName, + callAddressLowerCase, "CALL.address"); + + let ownerAddressLowerCase = OWNER_ADDRESS.toLowerCase(); + + await replaceStringInFile(SKALE_TRACES_DIR + _traceFileName, + ownerAddressLowerCase, "OWNER.address"); + + // if the contract has been deployed, also replace contract address + + if (DEPLOYED_CONTRACT_ADDRESS_LOWER_CASE.length > 0) { + await replaceStringInFile(SKALE_TRACES_DIR + _traceFileName, + DEPLOYED_CONTRACT_ADDRESS_LOWER_CASE, TEST_CONTRACT_NAME + ".address"); + + } + + +} + +async function getTraceJsonOptions(_tracer: string): Promise { + if (_tracer == DEFAULT_TRACER) { + return {}; + } + + if (_tracer == PRESTATEDIFF_TRACER) { + return {"tracer": PRESTATE_TRACER, "tracerConfig": {diffMode: true}}; + } + + return {"tracer": _tracer} +} + + +async function deleteAndRecreateDirectory(dirPath: string): Promise { + try { + // Remove the directory and its contents + await deleteDirectory(dirPath); + } catch (error) { + } + try { + + // Recreate the directory + + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath); + } + console.log(`Directory recreated: ${dirPath}`); + } catch (error) { + console.error('An error occurred:', error); + } +} + +async function deleteDirectory(dirPath: string): Promise { + if (!fs.existsSync(dirPath)) + return; + const entries = fs.readdirSync(dirPath); + + // Iterate over directory contents + for (const entry of entries) { + const entryPath = path.join(dirPath, entry.name); + + if (entry.isDirectory()) { + // Recursive call for nested directories + await deleteDirectory(entryPath); + } else { + // Delete file + await fs.unlink(entryPath); + } + } + + // Delete the now-empty directory + await fs.rmdir(dirPath); +} + + +/** + * Replaces a string in a file. + * @param {string} _filePath - The path to the file. + * @param {string} _str1 - The string to be replaced. + * @param {string} _str2 - The string to replace with. + */ +async function replaceStringInFile(_filePath, _str1, _str2) { + // Read the file + + let data = fs.readFileSync(_filePath, 'utf8'); + + // Replace the string + const transformedFile = data.replace(new RegExp(_str1, 'g'), _str2); + + // Write the file + fs.writeFileSync(_filePath, transformedFile, 'utf8'); + +} + + +async function waitUntilNextBlock() { + + const current = await hre.ethers.provider.getBlockNumber(); + let newBlock = current; + console.log(`BLOCK_NUMBER ${current}`); + + while (newBlock == current) { + newBlock = await hre.ethers.provider.getBlockNumber(); + } + + console.log(`BLOCK_NUMBER ${newBlock}`); + + return current; + +} + +function CHECK(result: any): void { + if (!result) { + const message: string = `Check failed ${result}` + console.log(message); + throw message; + } + + +} + +async function getBlockTrace(blockNumber: number): Promise { + + const blockStr = "0x" + blockNumber.toString(16); + //trace both empty tracer and no tracer + let trace = await ethers.provider.send('debug_traceBlockByNumber', [blockStr]); + trace = await ethers.provider.send('debug_traceBlockByNumber', [blockStr, {}]); + + return trace; +} + + +async function deployTestContract(): Promise { + + console.log(`Deploying ` + TEST_CONTRACT_NAME); + + const factory = await ethers.getContractFactory(TEST_CONTRACT_NAME); + const testContractName = await factory.deploy({ + gasLimit: 2100000, // this is just an example value; you'll need to set an appropriate gas limit for your specific function call + }); + const deployedTestContract = await testContractName.deployed(); + + const deployReceipt = await ethers.provider.getTransactionReceipt(deployedTestContract.deployTransaction.hash) + const deployBlockNumber: number = deployReceipt.blockNumber; + + const hash = deployedTestContract.deployTransaction.hash; + console.log(`Contract deployed to ${deployedTestContract.address} at block ${deployBlockNumber.toString(16)} tx hash ${hash}`); + + return deployedTestContract; + +} + + +function generateNewWallet() { + const wallet = hre.ethers.Wallet.createRandom(); + console.log("Address:", wallet.address); + return wallet; +} + +function sleep(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + + +async function sendMoneyWithoutConfirmation(): Promise { + // Generate a new wallet + const newWallet = generateNewWallet(); + + await sleep(3000); // Sleep for 1000 milliseconds (1 second) + + // Get the first signer from Hardhat's local network + const [signer] = await hre.ethers.getSigners(); + + const currentNonce = await signer.getTransactionCount(); + + // Define the transaction + const tx = { + to: newWallet.address, + value: hre.ethers.utils.parseEther("0.1"), + nonce: currentNonce + }; + + // Send the transaction and wait until it is submitted ot the queue + const txResponse = signer.sendTransaction(tx); + + if (hre.network.name == "geth") { + await txResponse; + } + + console.log(`Submitted a tx to send 0.1 ETH to ${newWallet.address}`); + + return currentNonce; +} + +async function sendTransferWithConfirmation(): Promise { + // Generate a new wallet + const newWallet = generateNewWallet(); + + await sleep(3000); // Sleep for 1000 milliseconds (1 second) + + // Get the first signer from Hardhat's local network + const [signer] = await hre.ethers.getSigners(); + + const currentNonce = await signer.getTransactionCount(); + + // Define the transaction + const tx = { + to: "0x388C818CA8B9251b393131C08a736A67ccB19297", + value: hre.ethers.utils.parseEther("0.1"), + }; + + // Send the transaction and wait until it is submitted ot the queue + const txResponse = await signer.sendTransaction(tx); + const txReceipt = await txResponse.wait(); + + console.log(`Submitted a tx to send 0.1 ETH to ${newWallet.address}`); + + return txReceipt.transactionHash!; +} + + +async function executeTransferAndThenTestContractMintInSingleBlock(deployedContract: any): Promise { + + let currentNonce: int = await sendMoneyWithoutConfirmation(); + + const mintReceipt = await deployedContract[EXECUTE_FUNCTION_NAME](1000, { + gasLimit: 2100000, // this is just an example value; you'll need to set an appropriate gas limit for your specific function call + nonce: currentNonce + 1, + }); + + expect(mintReceipt.blockNumber).not.to.be.null; + + + const trace: string = await getBlockTrace(mintReceipt.blockNumber); + + + expect(Array.isArray(trace)); + + // the array should have two elements + if (hre.network.name != "geth") { + expect(trace.length == 2); + } + + return mintReceipt.hash!; + +} + +async function executeMint2(deployedContract: any): Promise { + + + const mint2Receipt = await deployedContract[EXECUTE2_FUNCTION_NAME](1000, { + gasLimit: 2100000, // this is just an example value; you'll need to set an appropriate gas limit for your specific function call, + }); + + expect(mint2Receipt.blockNumber).not.to.be.null; + + + return mint2Receipt.hash!; + +} + + +async function executeRevert(deployedContract: any): Promise { + + const revertReceipt = await deployedContract[EXECUTE3_FUNCTION_NAME](1000, { + gasLimit: 2100000, // this is just an example value; you'll need to set an appropriate gas limit for your specific function call, + }); + + expect(revertReceipt.blockNumber).not.to.be.null; + + + return revertReceipt.hash!; + +} + + +async function writeTraceFileReplacingAddressesWithSymbolicNames(_traceFileName: string, traceResult: string) { + writeFileSync(SKALE_TRACES_DIR + _traceFileName, traceResult); + await replaceAddressesWithSymbolicNames(_traceFileName); +} + +async function callDebugTraceCall(_deployedContract: any, _tracer: string, _traceFileName: string): Promise { + + // first call function using eth_call + + const currentBlock = await hre.ethers.provider.getBlockNumber(); + + const transaction = { + from: CALL_ADDRESS, + to: _deployedContract.address, + data: _deployedContract.interface.encodeFunctionData("getBalance", []) + }; + + const returnData = await ethers.provider.call(transaction, currentBlock - 1); + + const result = _deployedContract.interface.decodeFunctionResult("getBalance", returnData); + + + console.log("Calling debug_traceCall to generate " + _traceFileName); + + let traceOptions = await getTraceJsonOptions(_tracer); + + const trace = await ethers.provider.send('debug_traceCall', [transaction, "latest", traceOptions]); + + const traceResult = JSON.stringify(trace, null, 4); + await writeTraceFileReplacingAddressesWithSymbolicNames(_traceFileName, traceResult); + +} + + + +async function getAndPrintCommittedTransactionTrace(hash: string, _tracer: string, _skaleFileName: string): Promise { + globalCallCount++; + + let traceOptions = await getTraceJsonOptions(_tracer); + + console.log("Calling debug_traceTransaction to generate " + _skaleFileName); + + let trace; + + + if (_tracer == DEFAULT_TRACER) { + // test both empty tracer and now tracer + if (globalCallCount % 2 === 0) { + trace = await ethers.provider.send('debug_traceTransaction', [hash]); + } else { + trace = await ethers.provider.send('debug_traceTransaction', [hash, traceOptions]); + } + } else { + trace = await ethers.provider.send('debug_traceTransaction', [hash, traceOptions]); + } + + const result = JSON.stringify(trace, null, 4); + + await writeTraceFileReplacingAddressesWithSymbolicNames(_skaleFileName, result); + + return trace; +} + +async function readJSONFile(fileName: string): Promise { + return new Promise((resolve, reject) => { + readFile(fileName, 'utf8', (err, data) => { + if (err) { + reject(`An error occurred while reading the file: ${err.message}`); + return; + } + try { + const obj: object = JSON.parse(data); + resolve(obj); + } catch (parseError: any) { + reject(`Error parsing JSON: ${parseError.message}`); + } + }); + }); +} + + + + + +async function main(): Promise { + + let deployedContract = await deployTestContract(); + DEPLOYED_CONTRACT_ADDRESS_LOWER_CASE = deployedContract.address.toString().toLowerCase(); + + while (true) { + + const firstMintHash: string = await executeTransferAndThenTestContractMintInSingleBlock(deployedContract); + + const secondTransferHash: string = await sendTransferWithConfirmation(); + + + const secondMintHash: string = await executeMint2(deployedContract); + + + const revertHash: string = await executeRevert(deployedContract); + } + +} + + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error: any) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/test/historicstate/hardhat/scripts/trace.ts b/test/historicstate/hardhat/scripts/trace.ts new file mode 100644 index 000000000..d6280a68b --- /dev/null +++ b/test/historicstate/hardhat/scripts/trace.ts @@ -0,0 +1,950 @@ +import {mkdir, readdir, writeFileSync, readFile, unlink} from "fs"; + +const fs = require('fs'); +import {existsSync} from "fs"; +import deepDiff, {diff} from 'deep-diff'; +import {expect} from "chai"; +import * as path from 'path'; +import {int, string} from "hardhat/internal/core/params/argumentTypes"; +import internal from "node:stream"; + +const OWNER_ADDRESS: string = "0x907cd0881E50d359bb9Fd120B1A5A143b1C97De6"; +const CALL_ADDRESS: string = "0xCe5c7ca85F8cB94FA284a303348ef42ADD23f5e7"; + +const ZERO_ADDRESS: string = '0x0000000000000000000000000000000000000000'; +const INITIAL_MINT: bigint = 10000000000000000000000000000000000000000n; +const TEST_CONTRACT_NAME = "Tracer"; +const EXECUTE_FUNCTION_NAME = "mint"; +const EXECUTE2_FUNCTION_NAME = "mint2"; +const EXECUTE3_FUNCTION_NAME = "readableRevert"; +const CALL_FUNCTION_NAME = "getBalance"; + +const SKALE_TRACES_DIR = "/tmp/skale_traces/" +const GETH_TRACES_DIR = "scripts/geth_traces/" + +const DEFAULT_TRACER = "defaultTracer"; +const CALL_TRACER = "callTracer"; +const PRESTATE_TRACER = "prestateTracer"; +const PRESTATEDIFF_TRACER = "prestateDiffTracer"; +const FOURBYTE_TRACER = "4byteTracer"; +const REPLAY_TRACER = "replayTracer"; + + +const TEST_DEPLOY_DEFAULTTRACER_FILE_NAME = TEST_CONTRACT_NAME + ".deploy.defaultTracer.json"; +const TEST_DEPLOY_CALLTRACER_FILE_NAME = TEST_CONTRACT_NAME + ".deploy.callTracer.json"; +const TEST_DEPLOY_PRESTATETRACER_FILE_NAME = TEST_CONTRACT_NAME + ".deploy.prestateTracer.json"; +const TEST_DEPLOY_PRESTATEDIFFTRACER_FILE_NAME = TEST_CONTRACT_NAME + ".deploy.prestateDiffTracer.json"; +const TEST_DEPLOY_FOURBYTETRACER_FILE_NAME = TEST_CONTRACT_NAME + ".deploy.4byteTracer.json"; + + +const TEST_CONTRACT_EXECUTE_DEFAULTTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE_FUNCTION_NAME + ".defaultTracer.json"; +const TEST_CONTRACT_EXECUTE_CALLTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE_FUNCTION_NAME + ".callTracer.json"; +const TEST_CONTRACT_EXECUTE_PRESTATETRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE_FUNCTION_NAME + ".prestateTracer.json"; +const TEST_CONTRACT_EXECUTE_PRESTATEDIFFTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE_FUNCTION_NAME + ".prestateDiffTracer.json"; +const TEST_CONTRACT_EXECUTE_FOURBYTETRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE_FUNCTION_NAME + ".4byteTracer.json"; + + +const TEST_CONTRACT_EXECUTE2_DEFAULTTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE2_FUNCTION_NAME + ".defaultTracer.json"; +const TEST_CONTRACT_EXECUTE2_CALLTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE2_FUNCTION_NAME + ".callTracer.json"; +const TEST_CONTRACT_EXECUTE2_PRESTATETRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE2_FUNCTION_NAME + ".prestateTracer.json"; +const TEST_CONTRACT_EXECUTE2_PRESTATEDIFFTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE2_FUNCTION_NAME + ".prestateDiffTracer.json"; +const TEST_CONTRACT_EXECUTE2_FOURBYTETRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE2_FUNCTION_NAME + ".4byteTracer.json"; + +const TEST_CONTRACT_EXECUTE3_DEFAULTTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE3_FUNCTION_NAME + ".defaultTracer.json"; +const TEST_CONTRACT_EXECUTE3_CALLTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE3_FUNCTION_NAME + ".callTracer.json"; +const TEST_CONTRACT_EXECUTE3_PRESTATETRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE3_FUNCTION_NAME + ".prestateTracer.json"; +const TEST_CONTRACT_EXECUTE3_PRESTATEDIFFTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE3_FUNCTION_NAME + ".prestateDiffTracer.json"; +const TEST_CONTRACT_EXECUTE3_FOURBYTETRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + EXECUTE3_FUNCTION_NAME + ".4byteTracer.json"; + + +const TEST_TRANSFER_DEFAULTTRACER_FILE_NAME = TEST_CONTRACT_NAME + ".transfer.defaultTracer.json"; +const TEST_TRANSFER_CALLTRACER_FILE_NAME = TEST_CONTRACT_NAME + ".transfer.callTracer.json"; +const TEST_TRANSFER_PRESTATETRACER_FILE_NAME = TEST_CONTRACT_NAME + ".transfer.prestateTracer.json"; +const TEST_TRANSFER_PRESTATEDIFFTRACER_FILE_NAME = TEST_CONTRACT_NAME + ".transfer.prestateDiffTracer.json"; +const TEST_TRANSFER_FOURBYTETRACER_FILE_NAME = TEST_CONTRACT_NAME + ".transfer.4byteTracer.json"; + + +const TEST_CONTRACT_CALL_DEFAULTTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + CALL_FUNCTION_NAME + ".defaultTracer.json"; +const TEST_CONTRACT_CALL_CALLTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + CALL_FUNCTION_NAME + ".callTracer.json"; +const TEST_CONTRACT_CALL_PRESTATETRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + CALL_FUNCTION_NAME + ".prestateTracer.json"; +const TEST_CONTRACT_CALL_PRESTATEDIFFTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + CALL_FUNCTION_NAME + ".prestateDiffTracer.json"; +const TEST_CONTRACT_CALL_FOURBYTETRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + CALL_FUNCTION_NAME + ".4byteTracer.json"; +const TEST_CONTRACT_CALL_REPLAYTRACER_FILE_NAME = TEST_CONTRACT_NAME + "." + CALL_FUNCTION_NAME + ".replayTracer.json"; + +var DEPLOYED_CONTRACT_ADDRESS_LOWER_CASE: string = ""; +var globalCallCount = 0; + + +async function replaceAddressesWithSymbolicNames(_traceFileName: string) { + + let callAddressLowerCase = CALL_ADDRESS.toLowerCase(); + + await replaceStringInFile(SKALE_TRACES_DIR + _traceFileName, + callAddressLowerCase, "CALL.address"); + + let ownerAddressLowerCase = OWNER_ADDRESS.toLowerCase(); + + await replaceStringInFile(SKALE_TRACES_DIR + _traceFileName, + ownerAddressLowerCase, "OWNER.address"); + + // if the contract has been deployed, also replace contract address + + if (DEPLOYED_CONTRACT_ADDRESS_LOWER_CASE.length > 0) { + await replaceStringInFile(SKALE_TRACES_DIR + _traceFileName, + DEPLOYED_CONTRACT_ADDRESS_LOWER_CASE, TEST_CONTRACT_NAME + ".address"); + + } + + +} + +async function getTraceJsonOptions(_tracer: string): Promise { + if (_tracer == DEFAULT_TRACER) { + return {}; + } + + if (_tracer == PRESTATEDIFF_TRACER) { + return {"tracer": PRESTATE_TRACER, "tracerConfig": {diffMode: true}}; + } + + return {"tracer": _tracer} +} + + +async function deleteAndRecreateDirectory(dirPath: string): Promise { + try { + // Remove the directory and its contents + await deleteDirectory(dirPath); + } catch (error) { + } + try { + + // Recreate the directory + + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath); + } + console.log(`Directory recreated: ${dirPath}`); + } catch (error) { + console.error('An error occurred:', error); + } +} + +async function deleteDirectory(dirPath: string): Promise { + if (!fs.existsSync(dirPath)) + return; + const entries = fs.readdirSync(dirPath); + + // Iterate over directory contents + for (const entry of entries) { + const entryPath = path.join(dirPath, entry.name); + + if (entry.isDirectory()) { + // Recursive call for nested directories + await deleteDirectory(entryPath); + } else { + // Delete file + await fs.unlink(entryPath); + } + } + + // Delete the now-empty directory + await fs.rmdir(dirPath); +} + + +/** + * Replaces a string in a file. + * @param {string} _filePath - The path to the file. + * @param {string} _str1 - The string to be replaced. + * @param {string} _str2 - The string to replace with. + */ +async function replaceStringInFile(_filePath, _str1, _str2) { + // Read the file + + let data = fs.readFileSync(_filePath, 'utf8'); + + // Replace the string + const transformedFile = data.replace(new RegExp(_str1, 'g'), _str2); + + // Write the file + fs.writeFileSync(_filePath, transformedFile, 'utf8'); + +} + + +async function waitUntilNextBlock() { + + const current = await hre.ethers.provider.getBlockNumber(); + let newBlock = current; + console.log(`BLOCK_NUMBER ${current}`); + + while (newBlock == current) { + newBlock = await hre.ethers.provider.getBlockNumber(); + } + + console.log(`BLOCK_NUMBER ${newBlock}`); + + return current; + +} + +function CHECK(result: any): void { + if (!result) { + const message: string = `Check failed ${result}` + console.log(message); + throw message; + } + + +} + +async function getBlockTrace(blockNumber: number): Promise { + + const blockStr = "0x" + blockNumber.toString(16); + //trace both empty tracer and no tracer + let trace = await ethers.provider.send('debug_traceBlockByNumber', [blockStr]); + trace = await ethers.provider.send('debug_traceBlockByNumber', [blockStr, {}]); + + return trace; +} + + +async function deployTestContract(): Promise { + + console.log(`Deploying ` + TEST_CONTRACT_NAME); + + const factory = await ethers.getContractFactory(TEST_CONTRACT_NAME); + const testContractName = await factory.deploy({ + gasLimit: 2100000, // this is just an example value; you'll need to set an appropriate gas limit for your specific function call + }); + const deployedTestContract = await testContractName.deployed(); + + const deployReceipt = await ethers.provider.getTransactionReceipt(deployedTestContract.deployTransaction.hash) + const deployBlockNumber: number = deployReceipt.blockNumber; + + const hash = deployedTestContract.deployTransaction.hash; + console.log(`Contract deployed to ${deployedTestContract.address} at block ${deployBlockNumber.toString(16)} tx hash ${hash}`); + + return deployedTestContract; + +} + + +function generateNewWallet() { + const wallet = hre.ethers.Wallet.createRandom(); + console.log("Address:", wallet.address); + return wallet; +} + +function sleep(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + + +async function sendMoneyWithoutConfirmation(): Promise { + // Generate a new wallet + const newWallet = generateNewWallet(); + + await sleep(3000); // Sleep for 1000 milliseconds (1 second) + + // Get the first signer from Hardhat's local network + const [signer] = await hre.ethers.getSigners(); + + const currentNonce = await signer.getTransactionCount(); + + // Define the transaction + const tx = { + to: newWallet.address, + value: hre.ethers.utils.parseEther("0.1"), + nonce: currentNonce + }; + + // Send the transaction and wait until it is submitted ot the queue + const txResponse = signer.sendTransaction(tx); + + if (hre.network.name == "geth") { + await txResponse; + } + + console.log(`Submitted a tx to send 0.1 ETH to ${newWallet.address}`); + + return currentNonce; +} + +async function sendTransferWithConfirmation(): Promise { + // Generate a new wallet + const newWallet = generateNewWallet(); + + await sleep(3000); // Sleep for 1000 milliseconds (1 second) + + // Get the first signer from Hardhat's local network + const [signer] = await hre.ethers.getSigners(); + + const currentNonce = await signer.getTransactionCount(); + + // Define the transaction + const tx = { + to: "0x388C818CA8B9251b393131C08a736A67ccB19297", + value: hre.ethers.utils.parseEther("0.1"), + }; + + // Send the transaction and wait until it is submitted ot the queue + const txResponse = await signer.sendTransaction(tx); + const txReceipt = await txResponse.wait(); + + console.log(`Submitted a tx to send 0.1 ETH to ${newWallet.address}`); + + return txReceipt.transactionHash!; +} + + +async function executeTransferAndThenTestContractMintInSingleBlock(deployedContract: any): Promise { + + let currentNonce: int = await sendMoneyWithoutConfirmation(); + + const mintReceipt = await deployedContract[EXECUTE_FUNCTION_NAME](1000, { + gasLimit: 2100000, // this is just an example value; you'll need to set an appropriate gas limit for your specific function call + nonce: currentNonce + 1, + }); + + expect(mintReceipt.blockNumber).not.to.be.null; + + + const trace: string = await getBlockTrace(mintReceipt.blockNumber); + + + expect(Array.isArray(trace)); + + // the array should have two elements + if (hre.network.name != "geth") { + expect(trace.length == 2); + } + + return mintReceipt.hash!; + +} + +async function executeMint2(deployedContract: any): Promise { + + + const mint2Receipt = await deployedContract[EXECUTE2_FUNCTION_NAME](1000, { + gasLimit: 2100000, // this is just an example value; you'll need to set an appropriate gas limit for your specific function call, + }); + + expect(mint2Receipt.blockNumber).not.to.be.null; + + + return mint2Receipt.hash!; + +} + + +async function executeRevert(deployedContract: any): Promise { + + const revertReceipt = await deployedContract[EXECUTE3_FUNCTION_NAME](1000, { + gasLimit: 2100000, // this is just an example value; you'll need to set an appropriate gas limit for your specific function call, + }); + + expect(revertReceipt.blockNumber).not.to.be.null; + + + return revertReceipt.hash!; + +} + + +async function writeTraceFileReplacingAddressesWithSymbolicNames(_traceFileName: string, traceResult: string) { + writeFileSync(SKALE_TRACES_DIR + _traceFileName, traceResult); + await replaceAddressesWithSymbolicNames(_traceFileName); +} + +async function callDebugTraceCall(_deployedContract: any, _tracer: string, _traceFileName: string): Promise { + + // first call function using eth_call + + const currentBlock = await hre.ethers.provider.getBlockNumber(); + + const transaction = { + from: CALL_ADDRESS, + to: _deployedContract.address, + data: _deployedContract.interface.encodeFunctionData("getBalance", []) + }; + + const returnData = await ethers.provider.call(transaction, currentBlock - 1); + + const result = _deployedContract.interface.decodeFunctionResult("getBalance", returnData); + + + console.log("Calling debug_traceCall to generate " + _traceFileName); + + let traceOptions = await getTraceJsonOptions(_tracer); + + const trace = await ethers.provider.send('debug_traceCall', [transaction, "latest", traceOptions]); + + const traceResult = JSON.stringify(trace, null, 4); + await writeTraceFileReplacingAddressesWithSymbolicNames(_traceFileName, traceResult); + +} + + + +async function getAndPrintCommittedTransactionTrace(hash: string, _tracer: string, _skaleFileName: string): Promise { + globalCallCount++; + + let traceOptions = await getTraceJsonOptions(_tracer); + + console.log("Calling debug_traceTransaction to generate " + _skaleFileName); + + let trace; + + + if (_tracer == DEFAULT_TRACER) { + // test both empty tracer and now tracer + if (globalCallCount % 2 === 0) { + trace = await ethers.provider.send('debug_traceTransaction', [hash]); + } else { + trace = await ethers.provider.send('debug_traceTransaction', [hash, traceOptions]); + } + } else { + trace = await ethers.provider.send('debug_traceTransaction', [hash, traceOptions]); + } + + const result = JSON.stringify(trace, null, 4); + + await writeTraceFileReplacingAddressesWithSymbolicNames(_skaleFileName, result); + + return trace; +} + +async function readJSONFile(fileName: string): Promise { + return new Promise((resolve, reject) => { + readFile(fileName, 'utf8', (err, data) => { + if (err) { + reject(`An error occurred while reading the file: ${err.message}`); + return; + } + try { + const obj: object = JSON.parse(data); + resolve(obj); + } catch (parseError: any) { + reject(`Error parsing JSON: ${parseError.message}`); + } + }); + }); +} + + +async function verifyDefaultTraceAgainstGethTrace(_fileName: string) { + + console.log("Verifying " + _fileName); + + const _expectedResultFileName = GETH_TRACES_DIR + _fileName; + const _actualResultFileName = SKALE_TRACES_DIR + _fileName; + + let expectedResult = await readJSONFile(_expectedResultFileName) + let actualResult = await readJSONFile(_actualResultFileName) + + await verifyGasCalculations(actualResult); + + const differences = deepDiff(expectedResult, actualResult)!; + + let foundDiffs = false; + + if (differences) { + differences.forEach((difference, index) => { + // do not print differences related to total gas in the account + if (difference.kind == "E" && difference.path!.length == 3 && difference.path![2] == "gas") { + return; + } + + if (difference.kind == "E" && difference.path!.length == 1 && difference.path![0] == "gas") { + return; + } + + if (difference.kind == "E" && difference.path!.length == 3 && difference.path![2] == "gasCost") { + let op = expectedResult.structLogs[difference.path![1]]["op"]; + if (op == "SLOAD" || op == "SSTORE" || op == "EXTCODESIZE" || op == "CALL" || + op == "STATICCALL" || op == "CREATE") { + return; + } + } + + if (difference.kind == "E" && difference.path!.length == 4 && difference.path![2] == "storage") { + return; + } + + if (difference.kind == "E" && difference.path!.length == 4 && difference.path![2] == "stack") { + return; + } + + + foundDiffs = true; + if (difference.kind == "E") { + console.log(`Difference op:`, expectedResult["structLogs"][difference.path![1]]); + } + console.log(`Found difference (lhs is expected value) ${index + 1} at path:`, difference.path); + console.log(`Difference ${index + 1}:`, difference); + }); + } + ; + + await expect(foundDiffs).to.be.eq(false) +} + +async function verifyTransferTraceAgainstGethTrace(_fileName: string) { + + console.log("Verifying " + _fileName); + + const _expectedResultFileName = GETH_TRACES_DIR + _fileName; + const _actualResultFileName = SKALE_TRACES_DIR + _fileName; + + let expectedResult = await readJSONFile(_expectedResultFileName) + let actualResult = await readJSONFile(_actualResultFileName) + + const differences = deepDiff(expectedResult, actualResult)!; + + let foundDiffs = false; + + + if (differences) { + differences.forEach((difference, index) => { + foundDiffs = true; + }); + } + ; + + await expect(foundDiffs).to.be.eq(false) +} + +async function verifyPrestateTransferTraceAgainstGethTrace(_fileName: string) { + + console.log("Verifying " + _fileName); + + const _expectedResultFileName = GETH_TRACES_DIR + _fileName; + const _actualResultFileName = SKALE_TRACES_DIR + _fileName; + + let expectedResult = await readJSONFile(_expectedResultFileName) + let actualResult = await readJSONFile(_actualResultFileName) + + const differences = deepDiff(expectedResult, actualResult)!; + + let foundDiffs = false; + + + if (differences) { + differences.forEach((difference, index) => { + + if (difference.kind == "E" && difference.path!.length == 2) { + if (difference.path![1] == "balance" || difference.path![1] == "nonce") { + return; + } + } + + if (difference.kind == "E" && difference.path!.length == 2) { + let address = difference.path![0]; + if (address == ZERO_ADDRESS && difference.path![1] == "balance") { + return; + } + } + + console.log(`Found difference (lhs is expected value) ${index + 1} at path:`, difference.path); + console.log(`Difference ${index + 1}:`, difference); + + foundDiffs = true; + }); + } + ; + + await expect(foundDiffs).to.be.eq(false) +} + +async function verifyPrestateDiffTransferTraceAgainstGethTrace(_fileName: string) { + + console.log("Verifying " + _fileName); + + const _expectedResultFileName = GETH_TRACES_DIR + _fileName; + const _actualResultFileName = SKALE_TRACES_DIR + _fileName; + + let expectedResult = await readJSONFile(_expectedResultFileName) + let actualResult = await readJSONFile(_actualResultFileName) + + const differences = deepDiff(expectedResult, actualResult)!; + + let foundDiffs = false; + + + if (differences) { + differences.forEach((difference, index) => { + + if (difference.kind == "E" && difference.path!.length == 3) { + if (difference.path![2] == "balance" || difference.path![2] == "nonce") { + return; + } + } + + if (difference.kind == "E" && difference.path!.length == 3) { + let address = difference.path![1]; + if (address == ZERO_ADDRESS && difference.path![2] == "balance") { + return; + } + } + + console.log(`Found difference (lhs is expected value) ${index + 1} at path:`, difference.path); + console.log(`Difference ${index + 1}:`, difference); + + foundDiffs = true; + }); + } + ; + + await expect(foundDiffs).to.be.eq(false) +} + + +async function verifyCallTraceAgainstGethTrace(_fileName: string) { + + console.log("Verifying " + _fileName); + + const _expectedResultFileName = GETH_TRACES_DIR + _fileName; + const _actualResultFileName = SKALE_TRACES_DIR + _fileName; + + let expectedResult = await readJSONFile(_expectedResultFileName) + let actualResult = await readJSONFile(_actualResultFileName) + + const differences = deepDiff(expectedResult, actualResult)!; + + let foundDiffs = false; + + + if (differences) { + differences.forEach((difference, index) => { + // do not print differences related to total gas in the account + + + if (difference.kind == "E" && difference.path!.length == 1) { + let key = difference.path![0]; + if (key == "to" || key == "gas" || key == "gasUsed") + return; + } + + if (difference.kind == "E" && difference.path!.length == 3 && difference.path![0] == "calls") { + let key = difference.path![2]; + if (key == "to" || key == "gas" || key == "gasUsed") + return; + } + + foundDiffs = true; + + console.log(`Found difference (lhs is expected value) ${index + 1} at path:`, difference.path); + console.log(`Difference ${index + 1}:`, difference); + }); + } + + + await expect(foundDiffs).to.be.eq(false) +} + +async function verifyFourByteTraceAgainstGethTrace(_fileName: string) { + + console.log("Verifying " + _fileName); + + const _expectedResultFileName = GETH_TRACES_DIR + _fileName; + const _actualResultFileName = SKALE_TRACES_DIR + _fileName; + + let expectedResult = await readJSONFile(_expectedResultFileName) + let actualResult = await readJSONFile(_actualResultFileName) + + const differences = deepDiff(expectedResult, actualResult)!; + + let foundDiffs = false; + + + if (differences) { + differences.forEach((difference, index) => { + // do not print differences related to total gas in the account + + foundDiffs = true; + + console.log(`Found difference (lhs is expected value) ${index + 1} at path:`, difference.path); + console.log(`Difference ${index + 1}:`, difference); + }); + } + + + await expect(foundDiffs).to.be.eq(false) +} + + +async function verifyPrestateTraceAgainstGethTrace(_fileName: string) { + + console.log("Verifying " + _fileName); + + const _expectedResultFileName = GETH_TRACES_DIR + _fileName; + const _actualResultFileName = SKALE_TRACES_DIR + _fileName; + + let expectedResult = await readJSONFile(_expectedResultFileName) + let actualResult = await readJSONFile(_actualResultFileName) + + const differences = deepDiff(expectedResult, actualResult)!; + + let foundDiffs = false; + + + if (differences) { + differences.forEach((difference, index) => { + if (difference.kind == "E" && difference.path!.length == 2) { + let address = difference.path![0]; + if (address == ZERO_ADDRESS && difference.path![1] == "balance") { + return; + } + + if (address == "OWNER.address" && difference.path![1] == "balance") { + return; + } + + if (address == "OWNER.address" && difference.path![1] == "nonce") { + return; + } + } + + if (difference.kind != "E" && difference.path!.length == 1) { + // ignore everything related to newly deployed contract + const key = difference.path![0]; + if (key != "Tracer.address" && key != ZERO_ADDRESS && key != "OWNER.address") { + return; + } + } + + + foundDiffs = true; + + console.log(`Found difference (lhs is expected value) ${index + 1} at path:`, difference.path); + console.log(`Difference ${index + 1}:`, difference); + }); + } + + + await expect(foundDiffs).to.be.eq(false) +} + +async function verifyPrestateDiffTraceAgainstGethTrace(_fileName: string) { + + console.log("Verifying " + _fileName); + + const _expectedResultFileName = GETH_TRACES_DIR + _fileName; + const _actualResultFileName = SKALE_TRACES_DIR + _fileName; + + let expectedResult = await readJSONFile(_expectedResultFileName) + let actualResult = await readJSONFile(_actualResultFileName) + + const differences = deepDiff(expectedResult, actualResult)!; + + let foundDiffs = false; + + + if (differences) { + differences.forEach((difference, index) => { + + if (difference.kind == "E" && difference.path!.length == 2) { + let address = difference.path![0]; + if (address == ZERO_ADDRESS && difference.path![1] == "balance") { + return; + } + + if (address == "OWNER.address" && difference.path![1] == "balance") { + return; + } + + if (address == "OWNER.address" && difference.path![1] == "nonce") { + return; + } + } + + if (difference.kind == "E" && difference.path!.length == 3) { + let address = difference.path![1]; + if (address == ZERO_ADDRESS && difference.path![2] == "balance") { + return; + } + + if (address == "OWNER.address" && difference.path![2] == "balance") { + return; + } + + if (address == "OWNER.address" && difference.path![2] == "nonce") { + return; + } + } + + if (difference.kind == "E" && difference.path!.length == 4) { + if (difference.path![1] == "Tracer.address" && difference.path![2] == "storage") { + return; + } + } + + if (difference.kind != "E" && difference.path!.length == 2 && + difference.path![0] == "post") { + // ignore everything related to newly deployed contract + const key = difference.path![1]; + if (key != "Tracer.address" && key != ZERO_ADDRESS && key != "OWNER.address") { + return; + } + } + + + foundDiffs = true; + + console.log(`Found difference (lhs is expected value) ${index + 1} at path:`, difference.path); + console.log(`Difference ${index + 1}:`, difference); + }); + } + + + await expect(foundDiffs).to.be.eq(false) +} + + +async function verifyGasCalculations(_actualResult: any): Promise { + let structLogs: object[] = _actualResult.structLogs; + expect(structLogs.length > 0) + let gasRemaining: bigint = structLogs[0].gas + let currentOpGasCost = structLogs[0].gasCost + let totalGasUsedInOps: bigint = currentOpGasCost; + + + for (let index = 1; index < structLogs.length; index++) { + const currentOpLog = structLogs[index] + const previousOpLog = structLogs[index - 1] + + let newGasRemaining: bigint = currentOpLog.gas + // geth does not correctly report gas cost of create operation + if (previousOpLog.op !== "CREATE" && previousOpLog.op !== "RETURN" + && previousOpLog.op !== "CALL" && previousOpLog.op !== "REVERT" && previousOpLog.op !== "STATICCALL") { + expect(gasRemaining - newGasRemaining).eq(currentOpGasCost, + // in case of failure we print current and previous op log + "\n" + JSON.stringify(structLogs[index - 1]) + + "\n" + JSON.stringify(currentOpLog) + "\n"); + } + gasRemaining = newGasRemaining; + currentOpGasCost = structLogs[index].gasCost + totalGasUsedInOps += currentOpGasCost; + } +} + + +async function main(): Promise { + + expect(existsSync(GETH_TRACES_DIR + TEST_DEPLOY_DEFAULTTRACER_FILE_NAME)); + expect(existsSync(GETH_TRACES_DIR + TEST_CONTRACT_EXECUTE_DEFAULTTRACER_FILE_NAME)); + expect(existsSync(GETH_TRACES_DIR + TEST_CONTRACT_CALL_DEFAULTTRACER_FILE_NAME)); + + await deleteAndRecreateDirectory(SKALE_TRACES_DIR); + + let deployedContract = await deployTestContract(); + const deployHash = deployedContract.deployTransaction.hash; + DEPLOYED_CONTRACT_ADDRESS_LOWER_CASE = deployedContract.address.toString().toLowerCase(); + + + const firstMintHash: string = await executeTransferAndThenTestContractMintInSingleBlock(deployedContract); + + await getAndPrintCommittedTransactionTrace(deployHash, DEFAULT_TRACER, TEST_DEPLOY_DEFAULTTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(deployHash, CALL_TRACER, TEST_DEPLOY_CALLTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(deployHash, FOURBYTE_TRACER, TEST_DEPLOY_FOURBYTETRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(deployHash, PRESTATEDIFF_TRACER, TEST_DEPLOY_PRESTATEDIFFTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(deployHash, PRESTATE_TRACER, TEST_DEPLOY_PRESTATETRACER_FILE_NAME); + + + await getAndPrintCommittedTransactionTrace(firstMintHash, DEFAULT_TRACER, TEST_CONTRACT_EXECUTE_DEFAULTTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(firstMintHash, CALL_TRACER, TEST_CONTRACT_EXECUTE_CALLTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(firstMintHash, PRESTATE_TRACER, TEST_CONTRACT_EXECUTE_PRESTATETRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(firstMintHash, PRESTATEDIFF_TRACER, TEST_CONTRACT_EXECUTE_PRESTATEDIFFTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(firstMintHash, FOURBYTE_TRACER, TEST_CONTRACT_EXECUTE_FOURBYTETRACER_FILE_NAME); + + + const secondTransferHash: string = await sendTransferWithConfirmation(); + + await getAndPrintCommittedTransactionTrace(secondTransferHash, DEFAULT_TRACER, TEST_TRANSFER_DEFAULTTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(secondTransferHash, CALL_TRACER, TEST_TRANSFER_CALLTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(secondTransferHash, PRESTATE_TRACER, TEST_TRANSFER_PRESTATETRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(secondTransferHash, PRESTATEDIFF_TRACER, TEST_TRANSFER_PRESTATEDIFFTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(secondTransferHash, FOURBYTE_TRACER, TEST_TRANSFER_FOURBYTETRACER_FILE_NAME); + + + const secondMintHash: string = await executeMint2(deployedContract); + await getAndPrintCommittedTransactionTrace(secondMintHash, DEFAULT_TRACER, TEST_CONTRACT_EXECUTE2_DEFAULTTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(secondMintHash, CALL_TRACER, TEST_CONTRACT_EXECUTE2_CALLTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(secondMintHash, PRESTATE_TRACER, TEST_CONTRACT_EXECUTE2_PRESTATETRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(secondMintHash, PRESTATEDIFF_TRACER, TEST_CONTRACT_EXECUTE2_PRESTATEDIFFTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(secondMintHash, FOURBYTE_TRACER, TEST_CONTRACT_EXECUTE2_FOURBYTETRACER_FILE_NAME); + + + const revertHash: string = await executeRevert(deployedContract); + await getAndPrintCommittedTransactionTrace(revertHash, DEFAULT_TRACER, TEST_CONTRACT_EXECUTE3_DEFAULTTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(revertHash, CALL_TRACER, TEST_CONTRACT_EXECUTE3_CALLTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(revertHash, PRESTATE_TRACER, TEST_CONTRACT_EXECUTE3_PRESTATETRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(revertHash, PRESTATEDIFF_TRACER, TEST_CONTRACT_EXECUTE3_PRESTATEDIFFTRACER_FILE_NAME); + await getAndPrintCommittedTransactionTrace(revertHash, FOURBYTE_TRACER, TEST_CONTRACT_EXECUTE3_FOURBYTETRACER_FILE_NAME); + + + await callDebugTraceCall(deployedContract, DEFAULT_TRACER, TEST_CONTRACT_CALL_DEFAULTTRACER_FILE_NAME); + await callDebugTraceCall(deployedContract, CALL_TRACER, TEST_CONTRACT_CALL_CALLTRACER_FILE_NAME); + await callDebugTraceCall(deployedContract, FOURBYTE_TRACER, TEST_CONTRACT_CALL_FOURBYTETRACER_FILE_NAME); + await callDebugTraceCall(deployedContract, PRESTATE_TRACER, TEST_CONTRACT_CALL_PRESTATETRACER_FILE_NAME); + await callDebugTraceCall(deployedContract, PRESTATEDIFF_TRACER, TEST_CONTRACT_CALL_PRESTATEDIFFTRACER_FILE_NAME); + + + // geth does not have replay trace + if (hre.network.name != "geth") { + await callDebugTraceCall(deployedContract, REPLAY_TRACER, TEST_CONTRACT_CALL_REPLAYTRACER_FILE_NAME); + } + + + await verifyTransferTraceAgainstGethTrace(TEST_TRANSFER_DEFAULTTRACER_FILE_NAME); + await verifyTransferTraceAgainstGethTrace(TEST_TRANSFER_CALLTRACER_FILE_NAME); + await verifyPrestateDiffTransferTraceAgainstGethTrace(TEST_TRANSFER_PRESTATEDIFFTRACER_FILE_NAME); + await verifyPrestateTransferTraceAgainstGethTrace(TEST_TRANSFER_PRESTATETRACER_FILE_NAME); + await verifyTransferTraceAgainstGethTrace(TEST_TRANSFER_FOURBYTETRACER_FILE_NAME); + + + await verifyDefaultTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE_DEFAULTTRACER_FILE_NAME); + await verifyCallTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE_CALLTRACER_FILE_NAME); + await verifyPrestateTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE_PRESTATETRACER_FILE_NAME); + await verifyPrestateDiffTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE_PRESTATEDIFFTRACER_FILE_NAME); + await verifyFourByteTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE_FOURBYTETRACER_FILE_NAME); + + + await verifyDefaultTraceAgainstGethTrace(TEST_CONTRACT_CALL_DEFAULTTRACER_FILE_NAME); + await verifyCallTraceAgainstGethTrace(TEST_CONTRACT_CALL_CALLTRACER_FILE_NAME); + await verifyFourByteTraceAgainstGethTrace(TEST_CONTRACT_CALL_FOURBYTETRACER_FILE_NAME); + await verifyPrestateTraceAgainstGethTrace(TEST_CONTRACT_CALL_PRESTATETRACER_FILE_NAME); + await verifyPrestateDiffTraceAgainstGethTrace(TEST_CONTRACT_CALL_PRESTATEDIFFTRACER_FILE_NAME); + + await verifyDefaultTraceAgainstGethTrace(TEST_DEPLOY_DEFAULTTRACER_FILE_NAME); + await verifyCallTraceAgainstGethTrace(TEST_DEPLOY_CALLTRACER_FILE_NAME); + await verifyFourByteTraceAgainstGethTrace(TEST_DEPLOY_FOURBYTETRACER_FILE_NAME); + await verifyPrestateTraceAgainstGethTrace(TEST_DEPLOY_PRESTATETRACER_FILE_NAME); + await verifyPrestateDiffTraceAgainstGethTrace(TEST_DEPLOY_PRESTATEDIFFTRACER_FILE_NAME); + + + await verifyCallTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE2_CALLTRACER_FILE_NAME); + await verifyFourByteTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE2_FOURBYTETRACER_FILE_NAME); + await verifyDefaultTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE2_DEFAULTTRACER_FILE_NAME); + await verifyPrestateTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE2_PRESTATETRACER_FILE_NAME); + await verifyPrestateDiffTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE2_PRESTATEDIFFTRACER_FILE_NAME); + + await verifyCallTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE3_CALLTRACER_FILE_NAME); + await verifyFourByteTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE3_FOURBYTETRACER_FILE_NAME); + await verifyDefaultTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE3_DEFAULTTRACER_FILE_NAME); + await verifyPrestateTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE3_PRESTATETRACER_FILE_NAME); + await verifyPrestateDiffTraceAgainstGethTrace(TEST_CONTRACT_EXECUTE3_PRESTATEDIFFTRACER_FILE_NAME); + + +} + + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error: any) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/test/historicstate/hardhat/scripts/deploy.js b/test/historicstate/hardhat/scripts/write_and_selfdestruct_test.js similarity index 100% rename from test/historicstate/hardhat/scripts/deploy.js rename to test/historicstate/hardhat/scripts/write_and_selfdestruct_test.js diff --git a/test/historicstate/hardhat/tracely b/test/historicstate/hardhat/tracely new file mode 160000 index 000000000..49cf8afaa --- /dev/null +++ b/test/historicstate/hardhat/tracely @@ -0,0 +1 @@ +Subproject commit 49cf8afaaf1820bbb4870d064930c9c8fa53a1fb diff --git a/test/historicstate/hardhat/tsconfig.json b/test/historicstate/hardhat/tsconfig.json new file mode 100644 index 000000000..3725a7c2d --- /dev/null +++ b/test/historicstate/hardhat/tsconfig.json @@ -0,0 +1,110 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} + diff --git a/test/package.json b/test/package.json index 57e25fb78..2e531fa50 100644 --- a/test/package.json +++ b/test/package.json @@ -1,5 +1,9 @@ { "devDependencies": { - "hardhat": "^2.12.2" + "@types/mocha": "^10.0.2", + "@types/node": "^20.8.0", + "hardhat": "^2.12.2", + "ts-node": "^10.9.1", + "typescript": "^5.2.2" } } diff --git a/test/tools/libtesteth/Options.cpp b/test/tools/libtesteth/Options.cpp index d7c787b0e..5f6074367 100644 --- a/test/tools/libtesteth/Options.cpp +++ b/test/tools/libtesteth/Options.cpp @@ -205,7 +205,8 @@ Options::Options( int argc, const char** argv ) { auto arg = std::string{argv[++i]}; Json::Value value; Json::Reader().parse( arg, value ); - jsontraceOptions = debugOptions( value ); + StandardTrace::DebugOptions op; + jsontraceOptions = op; } else if ( arg == "--filltests" ) filltests = true; else if ( arg == "--fillchain" ) diff --git a/test/unittests/libweb3jsonrpc/WebThreeStubClient.cpp b/test/unittests/libweb3jsonrpc/WebThreeStubClient.cpp index 680bdb57e..612b934fa 100644 --- a/test/unittests/libweb3jsonrpc/WebThreeStubClient.cpp +++ b/test/unittests/libweb3jsonrpc/WebThreeStubClient.cpp @@ -1286,7 +1286,7 @@ std::string WebThreeStubClient::debug_preimage( const std::string& param1 ) { jsonrpc::Errors::ERROR_CLIENT_INVALID_RESPONSE, result.toStyledString() ); } -Json::Value WebThreeStubClient::debug_traceBlockByNumber( int param1, const Json::Value& param2 ) { +Json::Value WebThreeStubClient::debug_traceBlockByNumber( const std::string& param1, const Json::Value& param2 ) { Json::Value p; p.append( param1 ); p.append( param2 ); diff --git a/test/unittests/libweb3jsonrpc/WebThreeStubClient.h b/test/unittests/libweb3jsonrpc/WebThreeStubClient.h index 6385a340d..ab01eceb1 100644 --- a/test/unittests/libweb3jsonrpc/WebThreeStubClient.h +++ b/test/unittests/libweb3jsonrpc/WebThreeStubClient.h @@ -153,7 +153,7 @@ class WebThreeStubClient : public jsonrpc::Client { Json::Value debug_storageRangeAt( const std::string& param1, int param2, const std::string& param3, const std::string& param4, int param5 ) noexcept( false ); std::string debug_preimage( const std::string& param1 ) noexcept( false ); - Json::Value debug_traceBlockByNumber( int param1, const Json::Value& param2 ) noexcept( false ); + Json::Value debug_traceBlockByNumber( const std::string & param1, const Json::Value& param2 ) noexcept( false ); Json::Value debug_traceBlockByHash( const std::string& param1, const Json::Value& param2 ) noexcept( false ); Json::Value debug_traceCall( const Json::Value& param1, const std::string& param2, diff --git a/test/unittests/libweb3jsonrpc/jsonrpc.cpp b/test/unittests/libweb3jsonrpc/jsonrpc.cpp index 041b8d6b0..7673c9282 100644 --- a/test/unittests/libweb3jsonrpc/jsonrpc.cpp +++ b/test/unittests/libweb3jsonrpc/jsonrpc.cpp @@ -246,11 +246,16 @@ class TestIpcClient : public jsonrpc::IClientConnector { }; struct JsonRpcFixture : public TestOutputHelperFixture { - JsonRpcFixture( const std::string& _config = "", bool _owner = true, - bool _deploymentControl = true, bool _generation2 = false, + +// chain params needs to be a field of JsonRPCFixture +// since references to it are passed to the server +ChainParams chainParams; + + +JsonRpcFixture( const std::string& _config = "", bool _owner = true, + bool _deploymentControl = true, bool _generation2 = false, bool _mtmEnabled = false, bool _isSyncNode = false, int _emptyBlockIntervalMs = -1 ) { - dev::p2p::NetworkPreferences nprefs; - ChainParams chainParams; + if ( _config != "" ) { if ( !_generation2 ) { @@ -353,9 +358,9 @@ struct JsonRpcFixture : public TestOutputHelperFixture { gasPricer = make_shared< eth::TrivialGasPricer >( 0, DefaultGasPrice ); rpcServer.reset( new FullServer( ethFace , new rpc::Net( chainParams ), - new rpc::Web3( /*web3->clientVersion()*/ ), // TODO Add real version? - new rpc::AdminEth( *client, *gasPricer, keyManager, *sessionManager.get() ), - /*new rpc::AdminNet(*web3, *sessionManager), */ new rpc::Debug( *client ), + new rpc::Web3(), // TODO Add version parameter here? + new rpc::AdminEth( *client, *gasPricer, keyManager, *sessionManager ), + new rpc::Debug( *client, nullptr, "", true), new rpc::Test( *client ) ) ); // @@ -378,11 +383,16 @@ struct JsonRpcFixture : public TestOutputHelperFixture { client->SetTimeout(1000000000); rpcClient = unique_ptr< WebThreeStubClient >( new WebThreeStubClient( *client ) ); + + + BOOST_TEST_MESSAGE("Constructed JsonRpcFixture"); + } ~JsonRpcFixture() { if ( skale_server_connector ) skale_server_connector->StopListening(); + BOOST_TEST_MESSAGE("Destructed JsonRpcFixture"); } string sendingRawShouldFail( string const& _t ) { @@ -779,7 +789,7 @@ BOOST_AUTO_TEST_CASE( send_raw_tx_sync ) { // Sending tx to sync node string txHash = fixture.rpcClient->eth_sendTransaction( create ); - + auto pendingTransactions = fixture.client->pending(); BOOST_REQUIRE( pendingTransactions.size() == 1); auto txHashFromQueue = "0x" + pendingTransactions[0].sha3().hex(); @@ -1564,7 +1574,7 @@ BOOST_AUTO_TEST_CASE( call_from_parameter ) { "fffffffffffffffffffffffff16815260200191505060405180910390f3" "5b60003390509056fea165627a7a72305820abfa953fead48d8f657bca6" "57713501650734d40342585cafcf156a3fe1f41d20029"; - + auto senderAddress = fixture.coinbase.address(); Json::Value create;