Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 1inch callee #34

Merged
merged 19 commits into from Feb 20, 2023
Merged

Conversation

valiafetisov
Copy link
Collaborator

@valiafetisov valiafetisov commented Jan 5, 2023

This PR adds new 1inch callee contract and its tests.

Notes:

  • The contract was developed using foundry, so we also added foundry config and remappings to the repo
  • Since 1inch also requires off-chain data from their API to operate we:
    • Hardcoded example data to the test contract
    • Provided node.js script to fetch fresh data and then pass it to the same test via env variables

Functional testing

  1. Create .env file (in the root of the project) containing valid rpc url under FOUNDRY_ETH_RPC_URL name
  2. Run tests
    • Using hardcoded 1inch API data: forge test --match testTakeLinkOneinchProfit
    • Using freshly fetched 1inch data: (cd scripts/1inch-callee-data-fetcher && npm ci && node index.js)

@valiafetisov
Copy link
Collaborator Author

valiafetisov commented Jan 5, 2023

CI is failing, but not because of our code. Both test commands proposed above work without an issue (see below).

Expected test output
$ npm ci && node src/test/OneinchCallee.js

added 51 packages, and audited 52 packages in 861ms

34 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
received oneinch API response: {
  fromToken: {
    symbol: 'LINK',
    name: 'Chain Link',
    address: '0x514910771af9ca656af840dff83e8264ecf986ca',
    decimals: 18,
    logoURI: 'https://tokens.1inch.io/0x514910771af9ca656af840dff83e8264ecf986ca.png',
    tags: [ 'tokens' ]
  },
  toToken: {
    symbol: 'DAI',
    name: 'Dai Stablecoin',
    decimals: 18,
    address: '0x6b175474e89094c44da98b954eedeac495271d0f',
    logoURI: 'https://tokens.1inch.io/0x6b175474e89094c44da98b954eedeac495271d0f.png',
    eip2612: true,
    tags: [ 'tokens', 'PEG:USD' ]
  },
  toTokenAmount: '56914537417639327865937',
  fromTokenAmount: '10000000000000000000000',
  protocols: [ [ [Array], [Array], [Array] ] ],
  tx: {
    from: '0x0000000000000000000000000000000000000000',
    to: '0x1111111254eeb25477b68fb85ed929f73a960582',
    data: '0x12aa3caf00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000bee7d650cd9197ee78d000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140000000000000000000000000000000000000005f60005c800057e00001a0020d6bdbf78514910771af9ca656af840dff83e8264ecf986ca00a007e5c0d200000000000000000000000000000000000000000000054000045900040a00a0c9e75c48000000000000000030020000000000000000000000000000000000000000000000000003dc00038d00a0860a32ec000000000000000000000000000000000000000000000015af1d78b58c4000000003645500080bf510fcbf18b91105470639e9561022937712514910771af9ca656af840dff83e8264ecf986ca95e6f48254609a6ee006f7d493c8e5fb97094cef0024b4be83d50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf900000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000195774fcb2527670000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b6f25a01ffffffffffffffffffffffffffffffffffffff14c678ab63b6f1e200000026000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000421b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e0300000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000001ee63c1e501a6cc3c2531fdaa6ae1a3ca84c2855806728693e8514910771af9ca656af840dff83e8264ecf986ca02a00000000000000000000000000000000000000000000000000000000000000001ee63c1e50088e6a0c2ddd26feeb64f039a2c41296fcb3f5640c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200a0bd46a3430382698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336a13a9247ea42d743238089903570127dda72fe4400000000000000000000035dae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00a0f2fa6b666b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000c0d57df9b3336329c5100000000000000004564d72bf6bb9c4980a06c4eca276b175474e89094c44da98b954eedeac495271d0f1111111254eeb25477b68fb85ed929f73a960582000000000000000000000000cfee7c08',
    value: '0',
    gas: 0,
    gasPrice: '18516839410'
  }
}
cleaning up call data...
decoded 1inch parameters [
  '0x53222470CdcfB8081C0E3a50fd106f0D69e63F20',
  [
    '0x514910771AF9Ca656af840dff83E8264EcF986CA',
    '0x6B175474E89094C44Da98b954EedeAC495271d0F',
    '0x53222470CdcfB8081C0E3a50fd106f0D69e63F20',
    '0x0000000000000000000000000000000000000000',
    BigNumber { _hex: '0x021e19e0c9bab2400000', _isBigNumber: true },
    BigNumber { _hex: '0x0bee7d650cd9197ee78d', _isBigNumber: true },
    BigNumber { _hex: '0x04', _isBigNumber: true },
    srcToken: '0x514910771AF9Ca656af840dff83E8264EcF986CA',
    dstToken: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
    srcReceiver: '0x53222470CdcfB8081C0E3a50fd106f0D69e63F20',
    dstReceiver: '0x0000000000000000000000000000000000000000',
    amount: BigNumber { _hex: '0x021e19e0c9bab2400000', _isBigNumber: true },
    minReturnAmount: BigNumber { _hex: '0x0bee7d650cd9197ee78d', _isBigNumber: true },
    flags: BigNumber { _hex: '0x04', _isBigNumber: true }
  ],
  '0x',
  '0x0000000000000000000000000000000000000005f60005c800057e00001a0020d6bdbf78514910771af9ca656af840dff83e8264ecf986ca00a007e5c0d200000000000000000000000000000000000000000000054000045900040a00a0c9e75c48000000000000000030020000000000000000000000000000000000000000000000000003dc00038d00a0860a32ec000000000000000000000000000000000000000000000015af1d78b58c4000000003645500080bf510fcbf18b91105470639e9561022937712514910771af9ca656af840dff83e8264ecf986ca95e6f48254609a6ee006f7d493c8e5fb97094cef0024b4be83d50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf900000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000195774fcb2527670000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b6f25a01ffffffffffffffffffffffffffffffffffffff14c678ab63b6f1e200000026000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000421b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e0300000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000001ee63c1e501a6cc3c2531fdaa6ae1a3ca84c2855806728693e8514910771af9ca656af840dff83e8264ecf986ca02a00000000000000000000000000000000000000000000000000000000000000001ee63c1e50088e6a0c2ddd26feeb64f039a2c41296fcb3f5640c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200a0bd46a3430382698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336a13a9247ea42d743238089903570127dda72fe4400000000000000000000035dae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00a0f2fa6b666b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000c0d57df9b3336329c5100000000000000004564d72bf6bb9c4980a06c4eca276b175474e89094c44da98b954eedeac495271d0f1111111254eeb25477b68fb85ed929f73a960582',
  executor: '0x53222470CdcfB8081C0E3a50fd106f0D69e63F20',
  swapDescription: [
    '0x514910771AF9Ca656af840dff83E8264EcF986CA',
    '0x6B175474E89094C44Da98b954EedeAC495271d0F',
    '0x53222470CdcfB8081C0E3a50fd106f0D69e63F20',
    '0x0000000000000000000000000000000000000000',
    BigNumber { _hex: '0x021e19e0c9bab2400000', _isBigNumber: true },
    BigNumber { _hex: '0x0bee7d650cd9197ee78d', _isBigNumber: true },
    BigNumber { _hex: '0x04', _isBigNumber: true },
    srcToken: '0x514910771AF9Ca656af840dff83E8264EcF986CA',
    dstToken: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
    srcReceiver: '0x53222470CdcfB8081C0E3a50fd106f0D69e63F20',
    dstReceiver: '0x0000000000000000000000000000000000000000',
    amount: BigNumber { _hex: '0x021e19e0c9bab2400000', _isBigNumber: true },
    minReturnAmount: BigNumber { _hex: '0x0bee7d650cd9197ee78d', _isBigNumber: true },
    flags: BigNumber { _hex: '0x04', _isBigNumber: true }
  ],
  permit: '0x',
  tradeData: '0x0000000000000000000000000000000000000005f60005c800057e00001a0020d6bdbf78514910771af9ca656af840dff83e8264ecf986ca00a007e5c0d200000000000000000000000000000000000000000000054000045900040a00a0c9e75c48000000000000000030020000000000000000000000000000000000000000000000000003dc00038d00a0860a32ec000000000000000000000000000000000000000000000015af1d78b58c4000000003645500080bf510fcbf18b91105470639e9561022937712514910771af9ca656af840dff83e8264ecf986ca95e6f48254609a6ee006f7d493c8e5fb97094cef0024b4be83d50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf900000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000195774fcb2527670000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b6f25a01ffffffffffffffffffffffffffffffffffffff14c678ab63b6f1e200000026000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000421b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e0300000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000001ee63c1e501a6cc3c2531fdaa6ae1a3ca84c2855806728693e8514910771af9ca656af840dff83e8264ecf986ca02a00000000000000000000000000000000000000000000000000000000000000001ee63c1e50088e6a0c2ddd26feeb64f039a2c41296fcb3f5640c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200a0bd46a3430382698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336a13a9247ea42d743238089903570127dda72fe4400000000000000000000035dae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00a0f2fa6b666b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000c0d57df9b3336329c5100000000000000004564d72bf6bb9c4980a06c4eca276b175474e89094c44da98b954eedeac495271d0f1111111254eeb25477b68fb85ed929f73a960582'
]
repackaged parameters 0x00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140000000000000000000000000000000000000005f60005c800057e00001a0020d6bdbf78514910771af9ca656af840dff83e8264ecf986ca00a007e5c0d200000000000000000000000000000000000000000000054000045900040a00a0c9e75c48000000000000000030020000000000000000000000000000000000000000000000000003dc00038d00a0860a32ec000000000000000000000000000000000000000000000015af1d78b58c4000000003645500080bf510fcbf18b91105470639e9561022937712514910771af9ca656af840dff83e8264ecf986ca95e6f48254609a6ee006f7d493c8e5fb97094cef0024b4be83d50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf900000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000195774fcb2527670000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b6f25a01ffffffffffffffffffffffffffffffffffffff14c678ab63b6f1e200000026000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000421b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e0300000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000001ee63c1e501a6cc3c2531fdaa6ae1a3ca84c2855806728693e8514910771af9ca656af840dff83e8264ecf986ca02a00000000000000000000000000000000000000000000000000000000000000001ee63c1e50088e6a0c2ddd26feeb64f039a2c41296fcb3f5640c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200a0bd46a3430382698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336a13a9247ea42d743238089903570127dda72fe4400000000000000000000035dae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00a0f2fa6b666b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000c0d57df9b3336329c5100000000000000004564d72bf6bb9c4980a06c4eca276b175474e89094c44da98b954eedeac495271d0f1111111254eeb25477b68fb85ed929f73a960582000000000000000000000000
saved calldata space (in bytes) 168
executing forge test...
[⠃] Compiling...
No files changed, compilation skipped

Running 1 test for src/test/OneinchCallee.t.sol:OneinchTests
[PASS] testTakeLinkOneinchProfit() (gas: 1419658)
Logs:
  loaded ONE_INCH_BLOCK env var:: 16327090
  loaded ONE_INCH_ROUTER env var:: 0x1111111254eeb25477b68fb85ed929f73a960582
  loaded ONE_INCH_PARAMETERS env var:: 0x00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140000000000000000000000000000000000000005f60005c800057e00001a0020d6bdbf78514910771af9ca656af840dff83e8264ecf986ca00a007e5c0d200000000000000000000000000000000000000000000054000045900040a00a0c9e75c48000000000000000030020000000000000000000000000000000000000000000000000003dc00038d00a0860a32ec000000000000000000000000000000000000000000000015af1d78b58c4000000003645500080bf510fcbf18b91105470639e9561022937712514910771af9ca656af840dff83e8264ecf986ca95e6f48254609a6ee006f7d493c8e5fb97094cef0024b4be83d50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf900000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000195774fcb2527670000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b6f25a01ffffffffffffffffffffffffffffffffffffff14c678ab63b6f1e200000026000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000421b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e0300000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000001ee63c1e501a6cc3c2531fdaa6ae1a3ca84c2855806728693e8514910771af9ca656af840dff83e8264ecf986ca02a00000000000000000000000000000000000000000000000000000000000000001ee63c1e50088e6a0c2ddd26feeb64f039a2c41296fcb3f5640c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200a0bd46a3430382698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336a13a9247ea42d743238089903570127dda72fe4400000000000000000000035dae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00a0f2fa6b666b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000c0d57df9b3336329c5100000000000000004564d72bf6bb9c4980a06c4eca276b175474e89094c44da98b954eedeac495271d0f1111111254eeb25477b68fb85ed929f73a960582000000000000000000000000

Traces:
  [1423871] OneinchTests::testTakeLinkOneinchProfit() 
    ├─ [11094] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::ilks(0x4c494e4b2d410000000000000000000000000000000000000000000000000000) [staticcall]
    │   └─ ← 0x00000000000000000000000000000000000000000001077a859e2f2c8842db5800000000000000000000000000000000000000000368edbbf1570144fc133d9900000000000000000000000000000000000000000b157aebe30c628fc364d936000000000000000000000d5d238a4abe9806872a4904598d6d8800000000000000000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000
    ├─ [4889] 0x9B0C694C6939b5EA9584e9b61C7815E8d97D9cC7::read() [staticcall]
    │   └─ ← 0x0000000000000000000000000000000000000000000000004e8c5c0314b60000
    ├─ [2655] 0x514910771AF9Ca656af840dff83E8264EcF986CA::balanceOf(OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496]) [staticcall]
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
    ├─ [0] VM::load(0x514910771AF9Ca656af840dff83E8264EcF986CA, 0x5ff10565516c110180bb9cc111cdbc2b0a68e09ff7fac17290373c3aa4a1bb03) 
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
    ├─ [0] VM::store(0x514910771AF9Ca656af840dff83E8264EcF986CA, 0x5ff10565516c110180bb9cc111cdbc2b0a68e09ff7fac17290373c3aa4a1bb03, 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a74) 
    │   └─ ← ()
    ├─ [655] 0x514910771AF9Ca656af840dff83E8264EcF986CA::balanceOf(OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496]) [staticcall]
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
    ├─ [0] VM::store(0x514910771AF9Ca656af840dff83E8264EcF986CA, 0x5ff10565516c110180bb9cc111cdbc2b0a68e09ff7fac17290373c3aa4a1bb03, 0x0000000000000000000000000000000000000000000000000000000000000000) 
    │   └─ ← ()
    ├─ [0] VM::load(0x514910771AF9Ca656af840dff83E8264EcF986CA, 0xb38645331535d8a24250bd866c230d0d85c11b90105fdba49ccc7bb4d9c6bc96) 
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
    ├─ [0] VM::store(0x514910771AF9Ca656af840dff83E8264EcF986CA, 0xb38645331535d8a24250bd866c230d0d85c11b90105fdba49ccc7bb4d9c6bc96, 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a74) 
    │   └─ ← ()
    ├─ [655] 0x514910771AF9Ca656af840dff83E8264EcF986CA::balanceOf(OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496]) [staticcall]
    │   └─ ← 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a74
    ├─ [24795] 0x514910771AF9Ca656af840dff83E8264EcF986CA::approve(0xdFccAf8fDbD2F4805C174f856a317765B49E4a50, 5300353356890459363956) 
    │   ├─ emit Approval(src: OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496], guy: 0xdFccAf8fDbD2F4805C174f856a317765B49E4a50, wad: 5300353356890459363956)
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    ├─ [42129] 0xdFccAf8fDbD2F4805C174f856a317765B49E4a50::join(VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], 5300353356890459363956) 
    │   ├─ [29484] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::slip(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], 5300353356890459363956) 
    │   │   ├─  emit topic 0: 0x7cdd3fde00000000000000000000000000000000000000000000000000000000
    │   │   │       topic 1: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000
    │   │   │       topic 2: 0x0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b
    │   │   │       topic 3: 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a74
    │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e07cdd3fde4c494e4b2d4100000000000000000000000000000000000000000000000000000000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b00000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   └─ ← ()
    │   ├─ [7280] 0x514910771AF9Ca656af840dff83E8264EcF986CA::transferFrom(OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496], 0xdFccAf8fDbD2F4805C174f856a317765B49E4a50, 5300353356890459363956) 
    │   │   ├─ emit Transfer(src: OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496], dst: 0xdFccAf8fDbD2F4805C174f856a317765B49E4a50, wad: 5300353356890459363956)
    │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   ├─  emit topic 0: 0x3b4da69f00000000000000000000000000000000000000000000000000000000
    │   │       topic 1: 0x0000000000000000000000007fa9385be102ac3eac297483dd6233d62b3e1496
    │   │       topic 2: 0x0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b
    │   │       topic 3: 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a74
    │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e03b4da69f0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b00000000000000000000000000000000000000000000011f552ddf9dc1145a74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   └─ ← ()
    ├─ [1094] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::ilks(0x4c494e4b2d410000000000000000000000000000000000000000000000000000) [staticcall]
    │   └─ ← 0x00000000000000000000000000000000000000000001077a859e2f2c8842db5800000000000000000000000000000000000000000368edbbf1570144fc133d9900000000000000000000000000000000000000000b157aebe30c628fc364d936000000000000000000000d5d238a4abe9806872a4904598d6d8800000000000000000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000
    ├─ [73406] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::frob(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], 5300353356890459363956, 17228953955975125363885) 
    │   ├─  emit topic 0: 0x7608870300000000000000000000000000000000000000000000000000000000
    │   │       topic 1: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000
    │   │       topic 2: 0x0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b
    │   │       topic 3: 0x0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b
    │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0760887034c494e4b2d4100000000000000000000000000000000000000000000000000000000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b00000000000000000000000000000000000000000000011f552ddf9dc1145a740000000000000000000000000000000000000000000003a5fbc4640c92656cad00000000000000000000000000000000000000000000000000000000
    │   └─ ← ()
    ├─ [41778] 0x19c0976f590D67707E62397C87829d896Dc0f1F1::drip(0x4c494e4b2d410000000000000000000000000000000000000000000000000000) 
    │   ├─ [1094] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::ilks(0x4c494e4b2d410000000000000000000000000000000000000000000000000000) 
    │   │   └─ ← 0x000000000000000000000000000000000000000000010b20816293391aa8480500000000000000000000000000000000000000000368edbbf1570144fc133d9900000000000000000000000000000000000000000b157aebe30c628fc364d936000000000000000000000d5d238a4abe9806872a4904598d6d8800000000000000000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000
    │   ├─ [16310] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::fold(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, 0xA950524441892A31ebddF91d3cEEFa04Bf454466, 1330126204796936621114195) 
    │   │   ├─  emit topic 0: 0xb65337df00000000000000000000000000000000000000000000000000000000
    │   │   │       topic 1: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000
    │   │   │       topic 2: 0x000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466
    │   │   │       topic 3: 0x0000000000000000000000000000000000000000000119aa493a502590dbc353
    │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0b65337df4c494e4b2d410000000000000000000000000000000000000000000000000000000000000000000000000000a950524441892a31ebddf91d3ceefa04bf4544660000000000000000000000000000000000000000000119aa493a502590dbc35300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   └─ ← ()
    │   ├─  emit topic 0: 0x44e2a5a800000000000000000000000000000000000000000000000000000000
    │   │       topic 1: 0x0000000000000000000000007fa9385be102ac3eac297483dd6233d62b3e1496
    │   │       topic 2: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000
    │   │       topic 3: 0x0000000000000000000000000000000000000000000000000000000000000000
    │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e044e2a5a84c494e4b2d4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   └─ ← 0x0000000000000000000000000000000000000000036a07663a91516a8cef00ec
    ├─ [289644] 0x135954d155898D42C90D2a57824C690e0c7BEf1B::bark(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b]) 
    │   ├─ [753] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::urns(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b]) [staticcall]
    │   │   └─ ← 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a740000000000000000000000000000000000000000000003a5fbc4640c92656cad
    │   ├─ [1094] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::ilks(0x4c494e4b2d410000000000000000000000000000000000000000000000000000) [staticcall]
    │   │   └─ ← 0x000000000000000000000000000000000000000000010b20816293391aa848050000000000000000000000000000000000000000036a07663a91516a8cef00ec00000000000000000000000000000000000000000b157aebe30c628fc364d936000000000000000000000d5d238a4abe9806872a4904598d6d8800000000000000000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000
    │   ├─ [33483] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::grab(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0, 0xA950524441892A31ebddF91d3cEEFa04Bf454466, -5300353356890459363956, -17228953955975125363885) 
    │   │   ├─  emit topic 0: 0x7bab3f4000000000000000000000000000000000000000000000000000000000
    │   │   │       topic 1: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000
    │   │   │       topic 2: 0x0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b
    │   │   │       topic 3: 0x000000000000000000000000832dd5f17b30078a5e46fdb8130a68cbc4a74dc0
    │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e07bab3f404c494e4b2d4100000000000000000000000000000000000000000000000000000000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b000000000000000000000000832dd5f17b30078a5e46fdb8130a68cbc4a74dc0000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466fffffffffffffffffffffffffffffffffffffffffffffee0aad220623eeba58cfffffffffffffffffffffffffffffffffffffffffffffc5a043b9bf36d9a935300000000000000000000000000000000000000000000000000000000
    │   │   └─ ← ()
    │   ├─ [34231] 0xA950524441892A31ebddF91d3cEEFa04Bf454466::fess(18204734864956264179145554076428832760922128985980) 
    │   │   ├─  emit topic 0: 0x697efb7800000000000000000000000000000000000000000000000000000000
    │   │   │       topic 1: 0x000000000000000000000000135954d155898d42c90d2a57824c690e0c7bef1b
    │   │   │       topic 2: 0x00000000000000000000000c74c88b57ef1f259535f0259ad6371c5807032f7c
    │   │   │       topic 3: 0x0000000000000000000000000000000000000000000000000000000000000000
    │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0697efb7800000000000000000000000c74c88b57ef1f259535f0259ad6371c5807032f7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   └─ ← ()
    │   ├─ [183937] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::kick(20571350397400578522434476106364581019842005754157, 5300353356890459363956, VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b]) 
    │   │   ├─ [4745] 0x65C79fcB50Ca1594B025960e539eD7A9a6D434A3::ilks(0x4c494e4b2d410000000000000000000000000000000000000000000000000000) 
    │   │   │   └─ ← 0x0000000000000000000000009b0c694c6939b5ea9584e9b61c7815e8d97d9cc700000000000000000000000000000000000000000554d9173ae4d397b2000000
    │   │   ├─ [2940] 0x9B0C694C6939b5EA9584e9b61C7815E8d97D9cC7::peek() 
    │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000004e8c5c0314b600000000000000000000000000000000000000000000000000000000000000000001
    │   │   ├─ [2394] 0x65C79fcB50Ca1594B025960e539eD7A9a6D434A3::par() 
    │   │   │   └─ ← 0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000
    │   │   ├─ [8464] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::suck(0xA950524441892A31ebddF91d3cEEFa04Bf454466, VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], 270571350397400578522434476106364581019842005754) 
    │   │   │   ├─  emit topic 0: 0xf24e23eb00000000000000000000000000000000000000000000000000000000
    │   │   │   │       topic 1: 0x000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466
    │   │   │   │       topic 2: 0x0000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b
    │   │   │   │       topic 3: 0x0000000000000000000000002f64d6c6b75c800aa2d10cc13b4c8f2f46704afa
    │   │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0f24e23eb000000000000000000000000a950524441892a31ebddf91d3ceefa04bf4544660000000000000000000000002e234dae75c793f67a35089c9d99245e1c58470b0000000000000000000000002f64d6c6b75c800aa2d10cc13b4c8f2f46704afa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   │   └─ ← ()
    │   │   ├─ emit Kick(id: 104, top: 6792000000000000000000000000, tab: 20571350397400578522434476106364581019842005754157, lot: 5300353356890459363956, usr: VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], kpr: VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], coin: 270571350397400578522434476106364581019842005754)
    │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000068
    │   ├─ emit Bark(ilk: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000, urn: VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b], ink: 5300353356890459363956, art: 17228953955975125363885, due: 18204734864956264179145554076428832760922128985980, clip: 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0, id: 104)
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000068
    ├─ [371] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::kicks() [staticcall]
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000068
    ├─ [16191] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [4824] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 0) [staticcall]
    │   │   └─ ← 0x000000000000000000000000000000000000000015f235f1c6ad009788000000
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015f235f1c6ad00978800000000000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [889] 0x9B0C694C6939b5EA9584e9b61C7815E8d97D9cC7::read() [staticcall]
    │   └─ ← 0x0000000000000000000000000000000000000000000000004e8c5c0314b60000
    ├─ [0] VM::warp(1672759535) 
    │   └─ ← ()
    ├─ [4391] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [1524] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 600) [staticcall]
    │   │   └─ ← 0x000000000000000000000000000000000000000014a96f1200f48547c39c8000
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014a96f1200f48547c39c800000000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [0] VM::warp(1672760135) 
    │   └─ ← ()
    ├─ [4568] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [1701] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 1200) [staticcall]
    │   │   └─ ← 0x000000000000000000000000000000000000000013421917c348a9695e78d9e4
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013421917c348a9695e78d9e400000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [0] VM::warp(1672760735) 
    │   └─ ← ()
    ├─ [4725] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [1858] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 1800) [staticcall]
    │   │   └─ ← 0x000000000000000000000000000000000000000011f32c6c24e1911923a5cbf9
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f32c6c24e1911923a5cbf900000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [0] VM::warp(1672761335) 
    │   └─ ← ()
    ├─ [4840] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [1973] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 2400) [staticcall]
    │   │   └─ ← 0x000000000000000000000000000000000000000010e643c08f4f2650aaaa8cf2
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e643c08f4f2650aaaa8cf200000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [0] VM::warp(1672761935) 
    │   └─ ← ()
    ├─ [4787] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [1920] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 3000) [staticcall]
    │   │   └─ ← 0x00000000000000000000000000000000000000000fc05c82eaecdb2faea4feaf
    │   └─ ← 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fc05c82eaecdb2faea4feaf00000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [0] VM::warp(1672762535) 
    │   └─ ← ()
    ├─ [4892] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [2025] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 3600) [staticcall]
    │   │   └─ ← 0x00000000000000000000000000000000000000000eae6c9f4c108d2cee09f1f4
    │   └─ ← 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eae6c9f4c108d2cee09f1f400000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [0] VM::warp(1672763135) 
    │   └─ ← ()
    ├─ [5122] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [2255] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 4200) [staticcall]
    │   │   └─ ← 0x00000000000000000000000000000000000000000dd27b5c4794b7b3c69a76f3
    │   └─ ← 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd27b5c4794b7b3c69a76f300000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [0] VM::warp(1672763735) 
    │   └─ ← ()
    ├─ [5017] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [2150] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 4800) [staticcall]
    │   │   └─ ← 0x00000000000000000000000000000000000000000ce218a9d79772b520708311
    │   └─ ← 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ce218a9d79772b52070831100000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [0] VM::warp(1672764335) 
    │   └─ ← ()
    ├─ [5122] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::getStatus(104) [staticcall]
    │   ├─ [2255] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 5400) [staticcall]
    │   │   └─ ← 0x00000000000000000000000000000000000000000c020a938ec0e5e788ed53ff
    │   └─ ← 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c020a938ec0e5e788ed53ff00000000000000000000000000000000000000000000011f552ddf9dc1145a7400000000000000000000000e1353414c5353d5fd168cce555d9550ab26a4e12d
    ├─ [2602] 0x6B175474E89094C44Da98b954EedeAC495271d0F::balanceOf(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a]) [staticcall]
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
    ├─ [26924] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::hope(0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0) 
    │   ├─  emit topic 0: 0xa3b22fc400000000000000000000000000000000000000000000000000000000
    │   │       topic 1: 0x000000000000000000000000832dd5f17b30078a5e46fdb8130a68cbc4a74dc0
    │   │       topic 2: 0x0000000000000000000000000000000000000000000000000000000000000000
    │   │       topic 3: 0x0000000000000000000000000000000000000000000000000000000000000000
    │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0a3b22fc4000000000000000000000000832dd5f17b30078a5e46fdb8130a68cbc4a74dc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   └─ ← ()
    ├─ [24795] 0x514910771AF9Ca656af840dff83E8264EcF986CA::approve(0x1111111254EEB25477B68fb85Ed929f73A960582, 5300353356890459363956) 
    │   ├─ emit Approval(src: OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496], guy: 0x1111111254EEB25477B68fb85Ed929f73A960582, wad: 5300353356890459363956)
    │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    ├─ [694912] 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0::take(104, 5300353356890459363956, 3716287915118051946314683391, OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], 0x000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a000000000000000000000000dfccaf8fdbd2f4805c174f856a317765b49e4a5000000000000000000000000000000000000000000000014057e596c72d32b0f50000000000000000000000001111111254eeb25477b68fb85ed929f73a96058200000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000070000000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140000000000000000000000000000000000000005f60005c800057e00001a0020d6bdbf78514910771af9ca656af840dff83e8264ecf986ca00a007e5c0d200000000000000000000000000000000000000000000054000045900040a00a0c9e75c48000000000000000030020000000000000000000000000000000000000000000000000003dc00038d00a0860a32ec000000000000000000000000000000000000000000000015af1d78b58c4000000003645500080bf510fcbf18b91105470639e9561022937712514910771af9ca656af840dff83e8264ecf986ca95e6f48254609a6ee006f7d493c8e5fb97094cef0024b4be83d50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf900000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000195774fcb2527670000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b6f25a01ffffffffffffffffffffffffffffffffffffff14c678ab63b6f1e200000026000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000421b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e0300000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000001ee63c1e501a6cc3c2531fdaa6ae1a3ca84c2855806728693e8514910771af9ca656af840dff83e8264ecf986ca02a00000000000000000000000000000000000000000000000000000000000000001ee63c1e50088e6a0c2ddd26feeb64f039a2c41296fcb3f5640c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200a0bd46a3430382698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336a13a9247ea42d743238089903570127dda72fe4400000000000000000000035dae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00a0f2fa6b666b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000c0d57df9b3336329c5100000000000000004564d72bf6bb9c4980a06c4eca276b175474e89094c44da98b954eedeac495271d0f1111111254eeb25477b68fb85ed929f73a960582000000000000000000000000) 
    │   ├─ [2255] 0x7B1696677107E48B152e9Bf400293e98B7D86Eb1::price(6792000000000000000000000000, 5400) [staticcall]
    │   │   └─ ← 0x00000000000000000000000000000000000000000c020a938ec0e5e788ed53ff
    │   ├─ [24246] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::flux(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, 0x832Dd5f17B30078a5E46Fdb8130A68cBc4a74dC0, OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], 5300353356890459363956) 
    │   │   ├─  emit topic 0: 0x6111be2e00000000000000000000000000000000000000000000000000000000
    │   │   │       topic 1: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000
    │   │   │       topic 2: 0x000000000000000000000000832dd5f17b30078a5e46fdb8130a68cbc4a74dc0
    │   │   │       topic 3: 0x000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a
    │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e06111be2e4c494e4b2d410000000000000000000000000000000000000000000000000000000000000000000000000000832dd5f17b30078a5e46fdb8130a68cbc4a74dc0000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a00000000000000000000000000000000000000000000011f552ddf9dc1145a740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   └─ ← ()
    │   ├─ [631585] OneinchCallee::clipperCall(OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496], 19697639126067413143004753796333451026573377254796, 5300353356890459363956, 0x000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a000000000000000000000000dfccaf8fdbd2f4805c174f856a317765b49e4a5000000000000000000000000000000000000000000000014057e596c72d32b0f50000000000000000000000001111111254eeb25477b68fb85ed929f73a96058200000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000070000000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f20000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140000000000000000000000000000000000000005f60005c800057e00001a0020d6bdbf78514910771af9ca656af840dff83e8264ecf986ca00a007e5c0d200000000000000000000000000000000000000000000054000045900040a00a0c9e75c48000000000000000030020000000000000000000000000000000000000000000000000003dc00038d00a0860a32ec000000000000000000000000000000000000000000000015af1d78b58c4000000003645500080bf510fcbf18b91105470639e9561022937712514910771af9ca656af840dff83e8264ecf986ca95e6f48254609a6ee006f7d493c8e5fb97094cef0024b4be83d50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf900000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000195774fcb2527670000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b6f25a01ffffffffffffffffffffffffffffffffffffff14c678ab63b6f1e200000026000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000421b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e0300000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000001ee63c1e501a6cc3c2531fdaa6ae1a3ca84c2855806728693e8514910771af9ca656af840dff83e8264ecf986ca02a00000000000000000000000000000000000000000000000000000000000000001ee63c1e50088e6a0c2ddd26feeb64f039a2c41296fcb3f5640c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200a0bd46a3430382698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336a13a9247ea42d743238089903570127dda72fe4400000000000000000000035dae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00a0f2fa6b666b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000c0d57df9b3336329c5100000000000000004564d72bf6bb9c4980a06c4eca276b175474e89094c44da98b954eedeac495271d0f1111111254eeb25477b68fb85ed929f73a960582000000000000000000000000) 
    │   │   ├─ [2349] 0xdFccAf8fDbD2F4805C174f856a317765B49E4a50::dec() [staticcall]
    │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000012
    │   │   ├─ [29796] 0xdFccAf8fDbD2F4805C174f856a317765B49E4a50::exit(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], 5300353356890459363956) 
    │   │   │   ├─ [4468] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::slip(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], -5300353356890459363956) 
    │   │   │   │   ├─  emit topic 0: 0x7cdd3fde00000000000000000000000000000000000000000000000000000000
    │   │   │   │   │       topic 1: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000
    │   │   │   │   │       topic 2: 0x000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a
    │   │   │   │   │       topic 3: 0xfffffffffffffffffffffffffffffffffffffffffffffee0aad220623eeba58c
    │   │   │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e07cdd3fde4c494e4b2d410000000000000000000000000000000000000000000000000000000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820afffffffffffffffffffffffffffffffffffffffffffffee0aad220623eeba58c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   │   │   └─ ← ()
    │   │   │   ├─ [22845] 0x514910771AF9Ca656af840dff83E8264EcF986CA::transfer(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], 5300353356890459363956) 
    │   │   │   │   ├─ emit Transfer(src: 0xdFccAf8fDbD2F4805C174f856a317765B49E4a50, dst: OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], wad: 5300353356890459363956)
    │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   ├─  emit topic 0: 0xef693bed00000000000000000000000000000000000000000000000000000000
    │   │   │   │       topic 1: 0x000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a
    │   │   │   │       topic 2: 0x000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a
    │   │   │   │       topic 3: 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a74
    │   │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0ef693bed000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a00000000000000000000000000000000000000000000011f552ddf9dc1145a74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   │   └─ ← ()
    │   │   ├─ [442] 0xdFccAf8fDbD2F4805C174f856a317765B49E4a50::gem() [staticcall]
    │   │   │   └─ ← 0x000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca
    │   │   ├─ [24795] 0x514910771AF9Ca656af840dff83E8264EcF986CA::approve(0x1111111254EEB25477B68fb85Ed929f73A960582, 5300353356890459363956) 
    │   │   │   ├─ emit Approval(src: OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], guy: 0x1111111254EEB25477B68fb85Ed929f73A960582, wad: 5300353356890459363956)
    │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   ├─ [655] 0x514910771AF9Ca656af840dff83E8264EcF986CA::balanceOf(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a]) [staticcall]
    │   │   │   └─ ← 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a74
    │   │   ├─ [500781] 0x1111111254EEB25477B68fb85Ed929f73A960582::swap(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, (0x514910771AF9Ca656af840dff83E8264EcF986CA, 0x6B175474E89094C44Da98b954EedeAC495271d0F, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0xF62849F9A0B5Bf2913b396098F7c7019b51A820a, 5300353356890459363956, 25606930863887637085906, 4), 0x, 0x0000000000000000000000000000000000000005f60005c800057e00001a0020d6bdbf78514910771af9ca656af840dff83e8264ecf986ca00a007e5c0d200000000000000000000000000000000000000000000054000045900040a00a0c9e75c48000000000000000030020000000000000000000000000000000000000000000000000003dc00038d00a0860a32ec000000000000000000000000000000000000000000000015af1d78b58c4000000003645500080bf510fcbf18b91105470639e9561022937712514910771af9ca656af840dff83e8264ecf986ca95e6f48254609a6ee006f7d493c8e5fb97094cef0024b4be83d50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf900000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000195774fcb2527670000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063b6f25a01ffffffffffffffffffffffffffffffffffffff14c678ab63b6f1e200000026000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000421b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e0300000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000001ee63c1e501a6cc3c2531fdaa6ae1a3ca84c2855806728693e8514910771af9ca656af840dff83e8264ecf986ca02a00000000000000000000000000000000000000000000000000000000000000001ee63c1e50088e6a0c2ddd26feeb64f039a2c41296fcb3f5640c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200a0bd46a3430382698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336a13a9247ea42d743238089903570127dda72fe4400000000000000000000035dae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00a0f2fa6b666b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000c0d57df9b3336329c5100000000000000004564d72bf6bb9c4980a06c4eca276b175474e89094c44da98b954eedeac495271d0f1111111254eeb25477b68fb85ed929f73a960582) 
    │   │   │   ├─ [7280] 0x514910771AF9Ca656af840dff83E8264EcF986CA::transferFrom(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 5300353356890459363956) 
    │   │   │   │   ├─ emit Transfer(src: OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], dst: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, wad: 5300353356890459363956)
    │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   ├─ [503382] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::execute(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a]) 
    │   │   │   │   ├─ [1176] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::tokenBalanceOf() 
    │   │   │   │   │   ├─ [655] 0x514910771AF9Ca656af840dff83E8264EcF986CA::balanceOf(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20) [staticcall]
    │   │   │   │   │   │   └─ ← 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a75
    │   │   │   │   │   └─ ← 0x00000000000000000000000000000000000000000000011f552ddf9dc1145a74
    │   │   │   │   ├─ [491232] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::patchSequence() 
    │   │   │   │   │   ├─ [173084] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::patchParallel() 
    │   │   │   │   │   │   ├─ [118917] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::limited() 
    │   │   │   │   │   │   │   ├─ [24795] 0x514910771AF9Ca656af840dff83E8264EcF986CA::approve(0x95E6F48254609A6ee006F7D493c8e5fB97094ceF, 212014134275618374558) 
    │   │   │   │   │   │   │   │   ├─ emit Approval(src: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, guy: 0x95E6F48254609A6ee006F7D493c8e5fB97094ceF, wad: 212014134275618374558)
    │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   ├─ [95418] 0x080bf510FCbF18b91105470639e9561022937712::fillOrder((0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x55662E225a3376759c24331a9aeD764f8f0C9FBb, 0x0000000000000000000000000000000000000000, 1826056802594354800, 400000000000000000000, 0, 0, 1672933978, 904625697166532776746648320380374280103671755127518381398265012589604896806, 0xf47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0xf47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca), 212014134275618374558, 0x1b486be7a2cdf0ec8ad2473f64c3ceb8022a8ec3ce92edbea62f8e48920e71c14400c8f1fd4044dacdbdaea7b9f70b1f05260d514756a449e2c227cb44ecf18b4e03) 
    │   │   │   │   │   │   │   │   ├─ [3000] PRECOMPILE::ecrecover(0xb4d90fa353432becbd81a9f1a6cb838fce621520e6b3ab07599117f1e9c5d046, 27, 32757176426532065959051285956241476328488880704560274869594533059081838641476, 355039561460072029113919151090757721009857761225031744011519805448189479758) 
    │   │   │   │   │   │   │   │   │   └─ ← 0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9
    │   │   │   │   │   │   │   │   ├─  emit topic 0: 0x0bcc4c97732e47d9946f229edb95f5b6323f601300e4690de719993f3c371129
    │   │   │   │   │   │   │   │   │       topic 1: 0x00000000000000000000000056178a0d5f301baf6cf3e1cd53d9863437345bf9
    │   │   │   │   │   │   │   │   │       topic 2: 0x00000000000000000000000055662e225a3376759c24331a9aed764f8f0c9fbb
    │   │   │   │   │   │   │   │   │       topic 3: 0x8474953a07d0e1c2dc8bae878bbb9d10fd65869bdf3a5a146c55d45ae38d52f4
    │   │   │   │   │   │   │   │   │           data: 0x00000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f2000000000000000000000000053222470cdcfb8081c0e3a50fd106f0d69e63f200000000000000000000000000000000000000000000000000d6e94d92925603e00000000000000000000000000000000000000000000000b7e4983d31c34039e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca00000000000000000000000000000000000000000000000000000000
    │   │   │   │   │   │   │   │   ├─ [20279] 0x95E6F48254609A6ee006F7D493c8e5fB97094ceF::transferFrom(0xf47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 967874630350364734) 
    │   │   │   │   │   │   │   │   │   ├─ [15025] 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2::transferFrom(0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 967874630350364734) 
    │   │   │   │   │   │   │   │   │   │   ├─ emit Transfer(src: 0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, dst: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, wad: 967874630350364734)
    │   │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   │   │   └─ ← ()
    │   │   │   │   │   │   │   │   ├─ [7884] 0x95E6F48254609A6ee006F7D493c8e5fB97094ceF::transferFrom(0xf47261b0000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, 212014134275618374558) 
    │   │   │   │   │   │   │   │   │   ├─ [7280] 0x514910771AF9Ca656af840dff83E8264EcF986CA::transferFrom(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, 212014134275618374558) 
    │   │   │   │   │   │   │   │   │   │   ├─ emit Transfer(src: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, dst: 0x56178a0d5F301bAf6CF3e1Cd53d9863437345Bf9, wad: 212014134275618374558)
    │   │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   │   │   └─ ← ()
    │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000d6e94d92925603e00000000000000000000000000000000000000000000000b7e4983d31c34039e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000d6e94d92925603e
    │   │   │   │   │   │   ├─ [60923] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::swapUniV3() 
    │   │   │   │   │   │   │   ├─ [57632] 0xa6Cc3C2531FdaA6Ae1A3CA84c2855806728693e8::swap(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, true, 5088339222614840989398, 4295128740, 0x000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca) 
    │   │   │   │   │   │   │   │   ├─ [8062] 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2::transfer(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 23582927395023143612) 
    │   │   │   │   │   │   │   │   │   ├─ emit Transfer(src: 0xa6Cc3C2531FdaA6Ae1A3CA84c2855806728693e8, dst: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, wad: 23582927395023143612)
    │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   │   ├─ [2655] 0x514910771AF9Ca656af840dff83E8264EcF986CA::balanceOf(0xa6Cc3C2531FdaA6Ae1A3CA84c2855806728693e8) [staticcall]
    │   │   │   │   │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000016c98ae55002295dfcd48
    │   │   │   │   │   │   │   │   ├─ [5845] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::uniswapV3SwapCallback(5088339222614840989398, -23582927395023143612, 0x000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca) 
    │   │   │   │   │   │   │   │   │   ├─ [5236] 0x514910771AF9Ca656af840dff83E8264EcF986CA::transfer(0xa6Cc3C2531FdaA6Ae1A3CA84c2855806728693e8, 5088339222614840989398) 
    │   │   │   │   │   │   │   │   │   │   ├─ emit Transfer(src: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, dst: 0xa6Cc3C2531FdaA6Ae1A3CA84c2855806728693e8, wad: 5088339222614840989398)
    │   │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
    │   │   │   │   │   │   │   │   ├─ [655] 0x514910771AF9Ca656af840dff83E8264EcF986CA::balanceOf(0xa6Cc3C2531FdaA6Ae1A3CA84c2855806728693e8) [staticcall]
    │   │   │   │   │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000016dac85395bed3ac0241e
    │   │   │   │   │   │   │   │   ├─ emit Swap(param0: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, param1: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, param2: 5088339222614840989398, param3: -23582927395023143612, param4: 5401158929500111071046359708, param5: 1344183060708730389259534, param6: -53718)
    │   │   │   │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000113d6e45bcaa4e056d6fffffffffffffffffffffffffffffffffffffffffffffffeb8b89c7b5fd13d44
    │   │   │   │   │   │   │   └─ ← 0x00000000000000000000000000000000000000000000000147476384a02ec2bc
    │   │   │   │   │   │   └─ ← 0x00000000000000000000000000000000000000000000000154b5f85dc95422fa
    │   │   │   │   │   ├─ [72110] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::swapUniV3() 
    │   │   │   │   │   │   ├─ [68827] 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640::swap(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, false, 24550802025373508346, 1461446703485210103287273052203988822378723970341, 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2) 
    │   │   │   │   │   │   │   ├─ [26917] 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48::transfer(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 29663180302) 
    │   │   │   │   │   │   │   │   ├─ [19628] 0xa2327a938Febf5FEC13baCFb16Ae10EcBc4cbDCF::transfer(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 29663180302) [delegatecall]
    │   │   │   │   │   │   │   │   │   ├─ emit Transfer(src: 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640, dst: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, wad: 29663180302)
    │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   ├─ [2534] 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2::balanceOf(0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640) [staticcall]
    │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000014253df75adda6bbcada
    │   │   │   │   │   │   │   ├─ [5465] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::uniswapV3SwapCallback(-29663180302, 24550802025373508346, 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2) 
    │   │   │   │   │   │   │   │   ├─ [4850] 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2::transfer(0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640, 24550802025373508346) 
    │   │   │   │   │   │   │   │   │   ├─ emit Transfer(src: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, dst: 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640, wad: 24550802025373508346)
    │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
    │   │   │   │   │   │   │   ├─ [534] 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2::balanceOf(0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640) [staticcall]
    │   │   │   │   │   │   │   │   └─ ← 0x00000000000000000000000000000000000000000000142692ad533b700fedd4
    │   │   │   │   │   │   │   ├─ emit Swap(param0: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, param1: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, param2: -29663180302, param3: 24550802025373508346, param4: 2278770931361530149831755569993920, param5: 32493421872438492175, param6: 205346)
    │   │   │   │   │   │   │   └─ ← 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffff917efc9f200000000000000000000000000000000000000000000000154b5f85dc95422fa
    │   │   │   │   │   │   └─ ← 0x00000000000000000000000000000000000000000000000000000006e810360e
    │   │   │   │   │   ├─ [242645] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::swapBatchBalancerV2() 
    │   │   │   │   │   │   ├─ [27867] 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48::approve(0xBA12222222228d8Ba445958a75a0704d566BF2C8, 29663180302) 
    │   │   │   │   │   │   │   ├─ [27078] 0xa2327a938Febf5FEC13baCFb16Ae10EcBc4cbDCF::approve(0xBA12222222228d8Ba445958a75a0704d566BF2C8, 29663180302) [delegatecall]
    │   │   │   │   │   │   │   │   ├─ emit Approval(src: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, guy: 0xBA12222222228d8Ba445958a75a0704d566BF2C8, wad: 29663180302)
    │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   ├─ [209953] 0xBA12222222228d8Ba445958a75a0704d566BF2C8::batchSwap(0, [(0x82698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336, 0, 1, 29663180302, 0x), (0xa13a9247ea42d743238089903570127dda72fe4400000000000000000000035d, 1, 2, 0, 0x), (0xae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337, 2, 3, 0, 0x)], [0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0x82698aeCc9E28e9Bb27608Bd52cF57f704BD1B83, 0xae37D54Ae477268B9997d4161B96b8200755935c, 0x6B175474E89094C44Da98b954EedeAC495271d0F], (0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, false, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, false), [57896044618658097711785492504343953926634992332820282019728792003956564819967, 0, 0, 0], 1672764335) 
    │   │   │   │   │   │   │   ├─ [28073] 0x82698aeCc9E28e9Bb27608Bd52cF57f704BD1B83::onSwap((0, 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0x82698aeCc9E28e9Bb27608Bd52cF57f704BD1B83, 29663180302, 0x82698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336, 16327019, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x), [5192296837592741505116408991493649, 11148178494082, 9090907455006], 1, 0) 
    │   │   │   │   │   │   │   │   ├─ [12856] 0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9::getReserveNormalizedIncome(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) [staticcall]
    │   │   │   │   │   │   │   │   │   ├─ [7745] 0xC6845a5C768BF8D7681249f8927877Efda425baf::getReserveNormalizedIncome(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) [delegatecall]
    │   │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000037de65cca33a1f347ea8a88
    │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000037de65cca33a1f347ea8a88
    │   │   │   │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000645b95cac3697b6ec95
    │   │   │   │   │   │   │   ├─  emit topic 0: 0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b
    │   │   │   │   │   │   │   │       topic 1: 0x82698aecc9e28e9bb27608bd52cf57f704bd1b83000000000000000000000336
    │   │   │   │   │   │   │   │       topic 2: 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
    │   │   │   │   │   │   │   │       topic 3: 0x00000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83
    │   │   │   │   │   │   │   │           data: 0x00000000000000000000000000000000000000000000000000000006e810360e000000000000000000000000000000000000000000000645b95cac3697b6ec95
    │   │   │   │   │   │   │   ├─ [48254] 0xA13a9247ea42D743238089903570127DdA72fE44::onSwap((0, 0x82698aeCc9E28e9Bb27608Bd52cF57f704BD1B83, 0xae37D54Ae477268B9997d4161B96b8200755935c, 29620380978249177951381, 0xa13a9247ea42d743238089903570127dda72fe4400000000000000000000035d, 16327074, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x), [31638552896118179766822110, 20941820290194833934583038, 2596148352850203188016994459267573, 20321476220458131304524476], 1, 3) 
    │   │   │   │   │   │   │   │   └─ ← 0x00000000000000000000000000000000000000000000064534aa3a880081bf81
    │   │   │   │   │   │   │   ├─  emit topic 0: 0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b
    │   │   │   │   │   │   │   │       topic 1: 0xa13a9247ea42d743238089903570127dda72fe4400000000000000000000035d
    │   │   │   │   │   │   │   │       topic 2: 0x00000000000000000000000082698aecc9e28e9bb27608bd52cf57f704bd1b83
    │   │   │   │   │   │   │   │       topic 3: 0x000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c
    │   │   │   │   │   │   │   │           data: 0x000000000000000000000000000000000000000000000645b95cac3697b6ec9500000000000000000000000000000000000000000000064534aa3a880081bf81
    │   │   │   │   │   │   │   ├─ [20974] 0xae37D54Ae477268B9997d4161B96b8200755935c::onSwap((0, 0xae37D54Ae477268B9997d4161B96b8200755935c, 0x6B175474E89094C44Da98b954EedeAC495271d0F, 29610819148295641874305, 0xae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337, 16327006, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0x), [7787870500894135917260184, 11950642374839201226153963, 5192296838213129372822131914222680], 2, 1) 
    │   │   │   │   │   │   │   │   ├─ [8356] 0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9::getReserveNormalizedIncome(0x6B175474E89094C44Da98b954EedeAC495271d0F) [staticcall]
    │   │   │   │   │   │   │   │   │   ├─ [7745] 0xC6845a5C768BF8D7681249f8927877Efda425baf::getReserveNormalizedIncome(0x6B175474E89094C44Da98b954EedeAC495271d0F) [delegatecall]
    │   │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000037cdc4da6e98af4bf124295
    │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000037cdc4da6e98af4bf124295
    │   │   │   │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb73421
    │   │   │   │   │   │   │   ├─  emit topic 0: 0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b
    │   │   │   │   │   │   │   │       topic 1: 0xae37d54ae477268b9997d4161b96b8200755935c000000000000000000000337
    │   │   │   │   │   │   │   │       topic 2: 0x000000000000000000000000ae37d54ae477268b9997d4161b96b8200755935c
    │   │   │   │   │   │   │   │       topic 3: 0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
    │   │   │   │   │   │   │   │           data: 0x00000000000000000000000000000000000000000000064534aa3a880081bf81000000000000000000000000000000000000000000000647fc39ca79beb73421
    │   │   │   │   │   │   │   ├─ [8634] 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48::transferFrom(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0xBA12222222228d8Ba445958a75a0704d566BF2C8, 29663180302) 
    │   │   │   │   │   │   │   │   ├─ [7998] 0xa2327a938Febf5FEC13baCFb16Ae10EcBc4cbDCF::transferFrom(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 0xBA12222222228d8Ba445958a75a0704d566BF2C8, 29663180302) [delegatecall]
    │   │   │   │   │   │   │   │   │   ├─ emit Transfer(src: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, dst: 0xBA12222222228d8Ba445958a75a0704d566BF2C8, wad: 29663180302)
    │   │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   ├─ [13074] 0x6B175474E89094C44Da98b954EedeAC495271d0F::transfer(0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, 29662092506846719325217) 
    │   │   │   │   │   │   │   │   ├─ emit Transfer(src: 0xBA12222222228d8Ba445958a75a0704d566BF2C8, dst: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, wad: 29662092506846719325217)
    │   │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000006e810360e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffff9b803c635864148cbdf
    │   │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb73421
    │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb73421
    │   │   │   │   ├─ [418] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::processLeftoversNoReferrer() 
    │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb73421
    │   │   │   │   ├─ [7172] 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20::tokenTransfer() 
    │   │   │   │   │   ├─ [6620] 0x6B175474E89094C44Da98b954EedeAC495271d0F::transfer(0x1111111254EEB25477B68fb85Ed929f73A960582, 29662092506846719325217) 
    │   │   │   │   │   │   ├─ emit Transfer(src: 0x53222470CdcfB8081C0E3a50fd106f0D69e63F20, dst: 0x1111111254EEB25477B68fb85Ed929f73A960582, wad: 29662092506846719325217)
    │   │   │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb73421
    │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb73421
    │   │   │   ├─ [602] 0x6B175474E89094C44Da98b954EedeAC495271d0F::balanceOf(0x1111111254EEB25477B68fb85Ed929f73A960582) [staticcall]
    │   │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb73422
    │   │   │   ├─ [20574] 0x6B175474E89094C44Da98b954EedeAC495271d0F::transfer(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], 29662092506846719325217) 
    │   │   │   │   ├─ emit Transfer(src: 0x1111111254EEB25477B68fb85Ed929f73A960582, dst: OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], wad: 29662092506846719325217)
    │   │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb7342100000000000000000000000000000000000000000000011f552ddf9dc1145a74
    │   │   ├─ [602] 0x6B175474E89094C44Da98b954EedeAC495271d0F::balanceOf(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a]) [staticcall]
    │   │   │   └─ ← 0x000000000000000000000000000000000000000000000647fc39ca79beb73421
    │   │   ├─ [655] 0x514910771AF9Ca656af840dff83E8264EcF986CA::balanceOf(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a]) [staticcall]
    │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000000
    │   │   ├─ [54936] 0x9759A6Ac90977b93B58547b4A71c78317f391A28::join(OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496], 19697639126067413143005) 
    │   │   │   ├─ [34743] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::move(0x9759A6Ac90977b93B58547b4A71c78317f391A28, OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496], 19697639126067413143005000000000000000000000000000) 
    │   │   │   │   ├─  emit topic 0: 0xbb35783b00000000000000000000000000000000000000000000000000000000
    │   │   │   │   │       topic 1: 0x0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28
    │   │   │   │   │       topic 2: 0x0000000000000000000000007fa9385be102ac3eac297483dd6233d62b3e1496
    │   │   │   │   │       topic 3: 0x00000000000000000000000d7a48afc9121d67099c639fdbaaf7365c48000000
    │   │   │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0bb35783b0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a280000000000000000000000007fa9385be102ac3eac297483dd6233d62b3e149600000000000000000000000d7a48afc9121d67099c639fdbaaf7365c4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   │   │   └─ ← ()
    │   │   │   ├─ [10346] 0x6B175474E89094C44Da98b954EedeAC495271d0F::burn(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], 19697639126067413143005) 
    │   │   │   │   ├─ emit Transfer(src: OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], dst: 0x0000000000000000000000000000000000000000, wad: 19697639126067413143005)
    │   │   │   │   └─ ← ()
    │   │   │   ├─  emit topic 0: 0x3b4da69f00000000000000000000000000000000000000000000000000000000
    │   │   │   │       topic 1: 0x000000000000000000000000f62849f9a0b5bf2913b396098f7c7019b51a820a
    │   │   │   │       topic 2: 0x0000000000000000000000007fa9385be102ac3eac297483dd6233d62b3e1496
    │   │   │   │       topic 3: 0x00000000000000000000000000000000000000000000042bcfa7f697ebfe4ddd
    │   │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e03b4da69f0000000000000000000000007fa9385be102ac3eac297483dd6233d62b3e149600000000000000000000000000000000000000000000042bcfa7f697ebfe4ddd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   │   └─ ← ()
    │   │   ├─ [602] 0x6B175474E89094C44Da98b954EedeAC495271d0F::balanceOf(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a]) [staticcall]
    │   │   │   └─ ← 0x00000000000000000000000000000000000000000000021c2c91d3e1d2b8e644
    │   │   ├─ [18700] 0x6B175474E89094C44Da98b954EedeAC495271d0F::transfer(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], 9964453380779306182212) 
    │   │   │   ├─ emit Transfer(src: OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], dst: OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a], wad: 9964453380779306182212)
    │   │   │   └─ ← 0x0000000000000000000000000000000000000000000000000000000000000001
    │   │   └─ ← ()
    │   ├─ [6043] 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B::move(OneinchTests: [0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496], 0xA950524441892A31ebddF91d3cEEFa04Bf454466, 19697639126067413143004753796333451026573377254796) 
    │   │   ├─  emit topic 0: 0xbb35783b00000000000000000000000000000000000000000000000000000000
    │   │   │       topic 1: 0x0000000000000000000000007fa9385be102ac3eac297483dd6233d62b3e1496
    │   │   │       topic 2: 0x000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466
    │   │   │       topic 3: 0x00000000000000000000000d7a48afc9121d67099b97f8342917d64e49fdb58c
    │   │   │           data: 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e0bb35783b0000000000000000000000007fa9385be102ac3eac297483dd6233d62b3e1496000000000000000000000000a950524441892a31ebddf91d3ceefa04bf45446600000000000000000000000d7a48afc9121d67099b97f8342917d64e49fdb58c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    │   │   └─ ← ()
    │   ├─ [3790] 0x135954d155898D42C90D2a57824C690e0c7BEf1B::digs(0x4c494e4b2d410000000000000000000000000000000000000000000000000000, 20571350397400578522434476106364581019842005754157) 
    │   │   ├─ emit Digs(ilk: 0x4c494e4b2d410000000000000000000000000000000000000000000000000000, rad: 20571350397400578522434476106364581019842005754157)
    │   │   └─ ← ()
    │   ├─ emit Take(id: 104, max: 3716287915118051946314683391, price: 3716287915118051946314683391, owe: 19697639126067413143004753796333451026573377254796, tab: 873711271333165379429722310031129993268628499361, lot: 0, usr: VaultHolder: [0x2e234DAe75C793f67A35089C9d99245E1C58470b])
    │   └─ ← ()
    ├─ [602] 0x6B175474E89094C44Da98b954EedeAC495271d0F::balanceOf(OneinchCallee: [0xF62849F9A0B5Bf2913b396098F7c7019b51A820a]) [staticcall]
    │   └─ ← 0x00000000000000000000000000000000000000000000021c2c91d3e1d2b8e644
    └─ ← ()

Test result: ok. 1 passed; 0 failed; finished in 4.13s

Copy link
Contributor

@godsflaw godsflaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's a quick review to get you started. I still need to review the tests and decide if all this node infrastructure is really appropriate here. I get that routes can't be discovered without the 1inch API, but this feels dirty. Might be necessary though.

I'm also aware you guys had trouble with dapp, and may try to make a foundry PR so you guys can base of that. I can show you better how to use foundry correctly. Not sure if we should do this before or after this PR yet.


interface GemJoinLike {
function dec() external view returns (uint256);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few nits on adding spaces between these interface definitions. I tightened it up for you.

Suggested change

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was because of the prettier that is enabled by default by the vscode solidity extension. Disabled it for now or do you use a standard linter/prettier config across all projects that I can find somewhere?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mmm we currently don't use a linter afaik, so it's mostly manual code-style work/reviewing. I personally don't use vscode atm.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you at least have those rules described in a natural language somewhere? In other words, how can we get and overview of all rules and pass this knowledge to other team members? 🙂

I personally don't use vscode atm

In principle, you don't have to use specific code editor to lint or prettify the code, most of the time those are standalone libraries, e.g.: https://consensys.github.io/smart-contract-best-practices/security-tools/linters-and-formatters/

src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
Comment on lines 82 to 85
constructor(address daiJoinAddress) public {
daiJoin = DaiJoinLike(daiJoinAddress);
dai = daiJoin.dai();
dai.approve(daiJoinAddress, 2**256 - 1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

convention when setting variables in the contract that need to be passed in as function args is to either prefix or suffix them with an _. This repo already suffixes, so I changed the convention to that.
I also stripped the Address from the variable names for the same reason. Lastly, I changed the convention for max uint, usually expressed in 0.7.x and later as type.max(uint256), to the 0.6.12 equivalent uint256(-1). You had trouble compiling this because foundry was just told to use the latest version, where dapp is hard locked to 0.6.12. I think we should stick with dapp in this PR, but this entire repo should be migrated over to foundry, which we can do in another PR.

Suggested change
constructor(address daiJoinAddress) public {
daiJoin = DaiJoinLike(daiJoinAddress);
dai = daiJoin.dai();
dai.approve(daiJoinAddress, 2**256 - 1);
constructor(address daiJoin_) public {
daiJoin = DaiJoinLike(daiJoin_);
dai = daiJoin.dai();
dai.approve(daiJoin_, uint256(-1));

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually foundry also compiles it with 0.6.12 according to the logs, it's only the linter which didn't pick it up, I've set it to the correct version.

But can you explain why uint256(-1) is preferred over 2**256 - 1? I though they are interchangeable, but 2**256 - 1 does not depend on the value overflow, according to this discussion

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per another suggestion, this was changed to type(uint256).max

src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
@valiafetisov
Copy link
Collaborator Author

valiafetisov commented Jan 9, 2023

I still need to review the tests

The tests are just cleaned up and simplified version of the Simulation.t.sol

I get that routes can't be discovered without the 1inch API, but this feels dirty. Might be necessary though.

We've started with hardcoded response from their API, but later added js file as a proof of concept. Which I think speaks better than a documentation we might have written.

I'm also aware you guys had trouble with dapp, and may try to make a foundry PR so you guys can base of that

Besides dapp not working on M1 and being much slower, it also doesn't support envOr() cheat code that we had to use to make it work with the external API.

It would be great if you can open a PR that adds foundry and also fixes existing failing tests unrelated to our code. Otherwise, we can also take care of that in the next PR. Feel free to give us some directions 🙂

Copy link
Contributor

@rockyfour rockyfour left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work.
Only did an initial review so far and discussed a bit with @godsflaw.
See the comment about possibly removing the js code (and using simple static test cases, non-reliant on env vars and such).

src/test/OneinchCallee.js Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
Copy link
Contributor

@rockyfour rockyfour left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some lower-resolution comments.

Wasn't able to run the index.js script to completion since the rpc url definition is missing from the test command line. Do you use an external env variable for that (see relevant comment)?

There is also the fact that dapp commands (and make test for example) are now failing due to the use of env vars. I think @godsflaw is looking into migrating to forge completely before this PR is merged, but otherwise the env vars used will need to be removed for now.

src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/OneinchCallee.sol Outdated Show resolved Hide resolved
src/test/OneinchCallee.t.sol Outdated Show resolved Hide resolved
scripts/1inch-callee-data-fetcher/index.js Outdated Show resolved Hide resolved
scripts/1inch-callee-data-fetcher/index.js Outdated Show resolved Hide resolved
scripts/1inch-callee-data-fetcher/index.js Show resolved Hide resolved
scripts/1inch-callee-data-fetcher/index.js Outdated Show resolved Hide resolved
@valiafetisov
Copy link
Collaborator Author

Wasn't able to run the index.js script to completion since the rpc url definition is missing from the test command line. Do you use an external env variable for that (see relevant comment)?

You have to set foundry-native FOUNDRY_ETH_RPC_URL env var. See full instruction on what needs to be done in order to execute the node script in the top PR comment, "Functional testing" section

@valiafetisov
Copy link
Collaborator Author

@rockyfour: all comments are now addressed. Let me know what's your progress on the migration of this repo to foundry or if you want us to do that (by directly commenting on our approach). If this is the only blocker from merging this PR, we can temporary remove envOr calls, otherwise we would prefer to keep them (since without it, node.js script is rendered unusable)

@@ -0,0 +1,153 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please rename this file and the equivalent test file to match the contract name (so OneInchCallee.sol).
Currently, the branch does not compile.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've renamed it, but it's just a known problem with git that it ignores case-sensitive filename changes. So don't be surprised if you pull and it deletes your local files 🙂

@rockyfour
Copy link
Contributor

@valiafetisov latest changes look good, also got the js script running.
Added 2 more minor comments.

Other than that let's wait for @godsflaw's review and foundry handling.

@rockyfour
Copy link
Contributor

Hey @valiafetisov can you merge again from master please?
We fixed some tests there, so once you do all tests should be green.

@godsflaw
Copy link
Contributor

bump @valiafetisov, if you can pull from master and push that here we can finish this one up.

@valiafetisov
Copy link
Collaborator Author

Hey there, and thanks for introducing foundry to this repo!

The problem is: tests are still failing on the master branch with [FAIL. Reason: Assertion failed.] testGetLink() inside Simulation.t.sol. Currently, via the 8499d3f this PR have the latest changes from master and also fails with the same error.

I've also noticed that you don't use foundry.toml for storing foundry params, but custom test.sh instead. Also, no remappings.txt (which are helpful for the editor to pick up imported libs). Is there a specific reason for that? Do you imply that we should also remove those files or can we keep them?

@rockyfour
Copy link
Contributor

Pushed a fix for that failing test. Please try to merge again.

We can add the foundry.toml file (see some examples for ones we use elsewhere - https://github.com/makerdao/dss-direct-deposit/blob/master/foundry.toml, https://github.com/makerdao/spells-mainnet/blob/master/foundry.toml).

Let's try to remove the remappings.txt file as we don't use it elsewhere.

@valiafetisov
Copy link
Collaborator Author

I've removed all extra files (thinking it might be a problem) but currently Ci still fails with Invalid provider url: builder error: relative URL without a base the error is not even coming from our test. Since I'm not an admin, I can't see or set secrets in the pipeline, could you please check if $ETH_RPC_URL has schema (eg starts with https://)?

Copy link
Contributor

@godsflaw godsflaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a complicated CI failure. The first problem is easy, your PR from a fork doesn't have access to the secret variable for ETH_RPC_URL. This is a default for security reasons, and we either need to find a way to give your specific fork access, or accept you as collaborators on this repo directly so that you can run the CI. I tested this by copying your PR over to a branch on this repo and just running it:
#40

If you look at the test output, you can see we get past the RPC url error, but we get this other error. Here is where things get a little more complicated. I also got this error locally a few times when I was using a specific RPC endpoint. I changed that endpoint, and the error stopped. I switch back locally, and now all the tests pass. I'm honestly not sure yet what's causing CI to fail on this, but something we're doing in this test (grabbing an old block?) is causing the test failures you see on that branch sometimes. I can no longer reproduce those failures locally, and they are only in CI at this point. Here are my local results on this branch:

Running 8 tests for src/test/OneInchCallee.t.sol:OneInchTests
[PASS] testBarkLink() (gas: 519745)
[PASS] testDrip() (gas: 72251)
[PASS] testFailTakeLinkOneInchWithTooMuchProfit() (gas: 2990661)
[PASS] testFrobMax() (gas: 184893)
[PASS] testGetLink() (gas: 24059)
[PASS] testJoinLink() (gas: 87644)
[PASS] testTakeLinkOneInchNoProfit() (gas: 2685350)
[PASS] testTakeLinkOneInchProfit() (gas: 4179072)
Test result: ok. 8 passed; 0 failed; finished in 1.45s

Running 4 tests for src/test/OasisDexCallee.t.sol:CalleeOtcDaiTest
[PASS] test_flash_take_no_profit() (gas: 1963089)
[PASS] test_flash_take_profit() (gas: 2184953)
[PASS] test_flash_take_profit_thin_orderbook() (gas: 2031309)
[PASS] test_rounding_error() (gas: 2169755)
Test result: ok. 4 passed; 0 failed; finished in 1.76s

Running 5 tests for src/test/UniswapV2Callee.t.sol:UniswapV2CalleeDaiTest
[PASS] test_complex_path() (gas: 2301483)
[PASS] test_flash_take_no_profit() (gas: 2114424)
[PASS] test_flash_take_profit() (gas: 2341713)
[PASS] test_flash_take_profit_thin_orderbook() (gas: 2180644)
[PASS] test_rounding_error() (gas: 2321112)
Test result: ok. 5 passed; 0 failed; finished in 1.76s

Running 1 test for src/test/OasisDexCalleeCharter.t.sol:CalleeOtcDaiTest
[PASS] test_flash_take_profit() (gas: 2333826)
Test result: ok. 1 passed; 0 failed; finished in 1.90s

Running 1 test for src/test/UniswapV2CalleeCharter.t.sol:UniswapV2CalleeDaiTest
[PASS] test_flash_take_profit() (gas: 2490340)
Test result: ok. 1 passed; 0 failed; finished in 1.90s

Running 7 tests for src/test/WstETHCurveUniv3Callee.t.sol:CurveCalleeTest
[PASS] testFail_badPoolFee() (gas: 1060186)
[PASS] testFail_maxPrice() (gas: 728593)
[PASS] test_baseline() (gas: 1005804)
[PASS] test_bigAmtWithComplexPath() (gas: 1277336)
[PASS] test_maxPrice() (gas: 1028368)
[PASS] test_poolFee() (gas: 1001757)
[PASS] test_profit() (gas: 1003392)
Test result: ok. 7 passed; 0 failed; finished in 17.37s

Running 30 tests for src/test/Simulation.t.sol:SimulationTests
[PASS] testBarkLink() (gas: 647940)
[PASS] testBarkLpUsdcEth() (gas: 770709)
[PASS] testBarkSteCRV() (gas: 1015986)
[PASS] testBurnLpUsdcEth() (gas: 334050)
[PASS] testDrip() (gas: 71921)
[PASS] testDripSteCRV() (gas: 71980)
[PASS] testExitSteCRV() (gas: 584695)
[PASS] testFrobMax() (gas: 305838)
[PASS] testFrobMaxSteCRV() (gas: 631847)
[PASS] testGetEthPrice() (gas: 12159)
[PASS] testGetLink() (gas: 142793)
[PASS] testGetLinkPrice() (gas: 12273)
[PASS] testGetLpUsdcEth() (gas: 255452)
[PASS] testGetLpUsdcEthPrice() (gas: 12141)
[PASS] testGetSteCRV() (gas: 103354)
[PASS] testGetSteCRVPrice() (gas: 12117)
[PASS] testGetUsdc() (gas: 143356)
[PASS] testGetWeth() (gas: 38458)
[PASS] testJoinLink() (gas: 215422)
[PASS] testJoinLpUsdcEth() (gas: 327308)
[PASS] testJoinSteCRV() (gas: 545173)
[PASS] testSwapLinkDai() (gas: 258382)
[PASS] testTakeLinkV2NoProfit() (gas: 2283114)
[PASS] testTakeLinkV2Profit() (gas: 3775840)
[PASS] testTakeLinkV3NoProfit() (gas: 2377326)
[PASS] testTakeLinkV3Profit() (gas: 3868832)
[PASS] testTakeLpUsdcEthNoProfit() (gas: 4569272)
[PASS] testTakeLpUsdcEthProfit() (gas: 8936453)
[PASS] testTakeSteCRVNoProfit() (gas: 1673304)
[PASS] testTakeSteCRVProfit() (gas: 1673278)
Test result: ok. 30 passed; 0 failed; finished in 17.36s

@valiafetisov
Copy link
Collaborator Author

The first problem is easy, your PR from a fork doesn't have access to the secret variable for ETH_RPC_URL. This is a default for security reasons, and we either need to find a way to give your specific fork access, or accept you as collaborators on this repo directly so that you can run the CI.

But I'm already a collaborator with write access to this repo, I can even merge this PR right now without any approvals 😉. Others, who don't have write access to the repo, doesn't even trigger the CI, as you can see from #35. Which I think is a correct behaviour – untrusted entities shouldn't even be able to run any code. Based on this, do you want to make secrets available to all CI actions? Otherwise, should I try resubmitting this PR as a brach of this repo, not from a fork to circumvent this limitation?

I also got this error locally a few times when I was using a specific RPC endpoint. I changed that endpoint, and the error stopped
but something we're doing in this test (grabbing an old block?) is causing the test failures

Yes, your assumption is correct, we're using historical data to guarantee reproducibility of the test that uses hardcoded 1inch transaction data. The data otherwise might become invalid in the future turning this into a glitching test, therefore to avoid it we've used hevm.rollFork(uint256 blockNumber) method:

hevm.rollFork(oneInchBlock);

If it's too much operational overhead to enable historical data on the RPC endpoint provided to the CI, should we just remove this line and hope that it wouldn't break? (currently it works without it) 🙂

@valiafetisov
Copy link
Collaborator Author

but something we're doing in this test (grabbing an old block?) is causing the test failures

So, this is the proof that the specified line was causing the problem: 82cf064
You can go ahead and merge #40 instead of this one, if you don't mind fragile tests 🙂

@rockyfour
Copy link
Contributor

@valiafetisov sorry for the late response.

Let's indeed comment out the rolling to a specific block (on this PR, as this is what we want to merge).
If I understand correctly the test only passes now because the LINK/DAI price went up since you created the tx data on January 18th, and in fact, it could have gone down by 1% (configured slippage) and it would still pass.

In order to be able to debug failures let's add the actual fromTokenAmount and toTokenAmount from the 1inch api response for the data we use, as well as the block (well, more or less since it's off-chain) for when it was queried.
Also, the configured allowed slippage is needed.

A good place to add these is near where we set oneInchTxData in the test.
Though we're all bullish on LINK, If you intend to rerun the js code to re-manufacture the above let's add a larger slippage this time (say 30%).

@valiafetisov
Copy link
Collaborator Author

Let's indeed comment out the rolling to a specific block (on this PR, as this is what we want to merge).

Done via e176bc1. Will you allow forks to access the RPC_URL? (since now it's the only reason it fails)

In order to be able to debug failures let's add the actual fromTokenAmount and toTokenAmount from the 1inch api response for the data we use

I'm not sure what you propose exactly. oneInchTxData already contains those values under SwapDescription.amount and SwapDescription.minReturnAmount accordingly, which we rewrite inside the callee in order to match exact values of the auction. This way, the only relevant information we take from 1inch is the swap route

as well as the block

The block number is already there 🙂

@rockyfour
Copy link
Contributor

Will you allow forks to access the RPC_URL? (since now it's the only reason it fails)
Let's leave that to @godsflaw, he's currently on vacation so let's not block on that.

This way, the only relevant information we take from 1inch is the swap route
Ah right, I forgot how it works,

Copy link
Contributor

@rockyfour rockyfour left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.
I'm going to merge it.

@rockyfour rockyfour merged commit 428bf82 into makerdao:master Feb 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants