DefiLlama / yield-server

140 stars 779 forks source link

Jones - Smart LP APY #1465

Closed 0xIvan closed 1 month ago

llamatester commented 2 months ago

The jones-dao adapter exports pools:

Test Suites: 1 passed, 1 total Tests: 478 passed, 478 total Snapshots: 0 total Time: 0.374 s Ran all test suites.

Nb of pools: 79

Sample pools:
┌─────────┬─────────────────────────────────────────────────────────────────┬────────────┬─────────────┬───────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────┬────────────────────┬────────────────────┬─────────────┐
│ (index) │                              pool                               │   chain    │   project   │          symbol           │                                        underlyingTokens                                        │       tvlUsd       │      apyBase       │  apyBaseInception  │  poolMeta   │
├─────────┼─────────────────────────────────────────────────────────────────┼────────────┼─────────────┼───────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────┼────────────────────┼────────────────────┼─────────────┤
│    0    │      '0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │          'jGLP'           │                        [ '0x1aDDD80E6039594eE970E5872D247bf0414C8903' ]                        │  5360595.89916082  │ 3.8748706643442863 │ 24.649106313651817 │             │
│    1    │      '0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum'      │ 'Ethereum' │ 'jones-dao' │          'jAURA'          │                        [ '0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF' ]                        │  2364791.13596117  │ 65.45427322241045  │  73.5345155460176  │             │
│    2    │ '0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao' │ 'Arbitrum' │ 'jones-dao' │          'jUSDC'          │                        [ '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ]                        │ 1157224.276377169  │ 2.058127877306743  │ 9.912213613084065  │ '1day lock' │
│    3    │      '0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │  'ETH-USDC-camelot-bull'  │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │  217706.570599035  │ 332.3774580181674  │                    │             │
│    4    │      '0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC-uniswap-narrow' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 166891.36855739317 │ 734.8076960463131  │                    │             │
│    5    │      '0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │  'ETH-USDC-ramses-wide'   │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 152303.60815812598 │ 318.8096805536489  │                    │             │
│    6    │      '0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │   'BTC-ETH-ramses-wide'   │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 148372.30398286704 │  104.574029495012  │                    │             │
│    7    │      '0x5458d3a904069153e3282550e017965de8989a51-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │  'BTC-ETH-camelot-wide'   │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 147723.8581001807  │ 204.2387910065527  │                    │             │
│    8    │      '0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │  'ETH-USDC-uniswap-bull'  │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 139758.39809094532 │ 317.5810581932032  │                    │             │
│    9    │      '0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC-camelot-narrow' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 127018.7744121977  │ 140.56842450382982 │                    │             │
└─────────┴─────────────────────────────────────────────────────────────────┴────────────┴─────────────┴───────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────────────────┴─────────────┘
This adapter contains some pools with <10k TVL, these pools won't be shown in DefiLlama
slasher125 commented 2 months ago

lets move -camelot-bull etc to poolMeta symbol should just be the deposit tokens

0xIvan commented 2 months ago

lets move -camelot-bull etc to poolMeta symbol should just be the deposit tokens

Thanks, updated

llamatester commented 2 months ago

The jones-dao adapter exports pools:

Test Suites: 1 passed, 1 total Tests: 478 passed, 478 total Snapshots: 0 total Time: 0.381 s Ran all test suites.

Nb of pools: 79

Sample pools:
┌─────────┬─────────────────────────────────────────────────────────────────┬────────────┬─────────────┬────────────┬────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────┬────────────────────┬────────────────────┬──────────────────────────────┐
│ (index) │                              pool                               │   chain    │   project   │   symbol   │                                        underlyingTokens                                        │       tvlUsd       │      apyBase       │  apyBaseInception  │           poolMeta           │
├─────────┼─────────────────────────────────────────────────────────────────┼────────────┼─────────────┼────────────┼────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────┼────────────────────┼────────────────────┼──────────────────────────────┤
│    0    │      '0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │   'jGLP'   │                        [ '0x1aDDD80E6039594eE970E5872D247bf0414C8903' ]                        │ 5324784.206616405  │ 3.854157657610373  │ 24.648849041179652 │                              │
│    1    │      '0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum'      │ 'Ethereum' │ 'jones-dao' │  'jAURA'   │                        [ '0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF' ]                        │ 2327787.377637958  │ 65.45427322241045  │  73.5345155460176  │                              │
│    2    │ '0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao' │ 'Arbitrum' │ 'jones-dao' │  'jUSDC'   │                        [ '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ]                        │ 1149164.5928341325 │ 2.0470089510512115 │ 9.912078337948314  │         '1day lock'          │
│    3    │      '0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 217303.1742172816  │ 180.2232755348923  │                    │  'BULL strategy on CAMELOT'  │
│    4    │      '0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │  187598.364997668  │ 254.12434572655684 │                    │  'WIDE strategy on RAMSES'   │
│    5    │      '0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 179428.15438561668 │ 313.9882510720145  │                    │ 'NARROW strategy on UNISWAP' │
│    6    │      '0x5458d3a904069153e3282550e017965de8989a51-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 146300.42707369995 │ 101.14450320181521 │                    │  'WIDE strategy on CAMELOT'  │
│    7    │      '0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 139325.36330866267 │ 163.8483599006588  │                    │  'BULL strategy on UNISWAP'  │
│    8    │      '0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 128285.94020825268 │ 112.6105070196439  │                    │  'WIDE strategy on RAMSES'   │
│    9    │      '0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 110380.4601762136  │ 126.05457193624963 │                    │ 'NARROW strategy on CAMELOT' │
└─────────┴─────────────────────────────────────────────────────────────────┴────────────┴─────────────┴────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────────────────┴──────────────────────────────┘
This adapter contains some pools with <10k TVL, these pools won't be shown in DefiLlama
llamatester commented 1 month ago

The jones-dao adapter exports pools:

Test Suites: 1 passed, 1 total Tests: 478 passed, 478 total Snapshots: 0 total Time: 0.377 s Ran all test suites.

Nb of pools: 79

Sample pools:
┌─────────┬─────────────────────────────────────────────────────────────────┬────────────┬─────────────┬────────────┬────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────┬────────────────────┬───────────────────┬──────────────────────────────┐
│ (index) │                              pool                               │   chain    │   project   │   symbol   │                                        underlyingTokens                                        │       tvlUsd       │      apyBase       │ apyBaseInception  │           poolMeta           │
├─────────┼─────────────────────────────────────────────────────────────────┼────────────┼─────────────┼────────────┼────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────┼────────────────────┼───────────────────┼──────────────────────────────┤
│    0    │      '0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │   'jGLP'   │                        [ '0x1aDDD80E6039594eE970E5872D247bf0414C8903' ]                        │ 5327539.184573983  │ 3.907716826465371  │ 24.40402797839875 │                              │
│    1    │      '0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum'      │ 'Ethereum' │ 'jones-dao' │  'jAURA'   │                        [ '0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF' ]                        │ 2346600.3706687754 │ 65.45427322241045  │ 73.5345155460176  │                              │
│    2    │ '0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao' │ 'Arbitrum' │ 'jones-dao' │  'jUSDC'   │                        [ '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ]                        │   1149538.529271   │ 2.074808558566207  │ 9.81935363437137  │         '1day lock'          │
│    3    │      '0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 250085.53888468363 │ 162.51388408816968 │                   │  'BULL strategy on CAMELOT'  │
│    4    │      '0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 222968.2097020617  │ 242.83916936923356 │                   │  'WIDE strategy on RAMSES'   │
│    5    │      '0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 166959.9965785133  │ 249.7997084381572  │                   │ 'NARROW strategy on UNISWAP' │
│    6    │      '0x5458d3a904069153e3282550e017965de8989a51-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 159855.18088705887 │ 90.22946036754988  │                   │  'WIDE strategy on CAMELOT'  │
│    7    │      '0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDT' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9' ] │ 109059.35230306986 │ 123.91682745159815 │                   │  'WIDE strategy on CAMELOT'  │
│    8    │      '0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 108501.15749988257 │ 109.17695377723672 │                   │ 'NARROW strategy on CAMELOT' │
│    9    │      '0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 100468.2373062636  │ 109.8613419322241  │                   │  'WIDE strategy on RAMSES'   │
└─────────┴─────────────────────────────────────────────────────────────────┴────────────┴─────────────┴────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴───────────────────┴──────────────────────────────┘
This adapter contains some pools with <10k TVL, these pools won't be shown in DefiLlama
slasher125 commented 1 month ago

hi, pls use apyReward for any token incentives, apyBase should only contains parts from real yield

0xIvan commented 1 month ago

apyReward

Makes sense, updated

llamatester commented 1 month ago

Error while running jones-dao adapter:

> defillama-apy-server@1.0.0 test
> jest

FAIL src/adaptors/test.js
  Running jones-dao Test
    ✓ Check if link to the pool's page exist
    ✓ Check for unique pool ids (2 ms)
    ✓ Check project field is constant in all pools and if folder name and project field in pool objects matches the information in /protocols slug
    Check for allowed field names
      ✓ Expects pool id 0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyBaseInception (2 ms)
      ✓ Expects pool id 0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyBaseInception
      ✓ Expects pool id 0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyBaseInception,poolMeta
      ✓ Expects pool id 0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x5458d3a904069153e3282550e017965de8989a51-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta (1 ms)
      ✓ Expects pool id 0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x94c36a1b7d7736fc14f00d008a56e1b589d55f2f-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x842b1cc396159aeb4fdb46536e671379e9347459-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x1a93ef2bac520dd83083189d22c2ba3f0efcfb2c-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x0c663fcce8d9d364ae3f03ee1feda85d16bb6bfc-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x9e4b11b5891afedec7943be2715cb6d9df6d6395-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x41c509821f0127aa01cf5677022dad92fbe10183-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta (1 ms)
      ✓ Expects pool id 0x1a6b39f82b3bae93377acdca09d1bd0f6fdd561f-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xc07b5826f4cfe02ec29ff88013857a97b84736fa-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x556f72f95cc979119d6eadd6a0fdefe791e7f2ea-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xd06da775ff6c94659e84a60895e87023a8ed26b9-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x4766418ba5498f9cd35ee9304a80f33aeb062fa7-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xb2deb618da0093bd8ebfe18acee4c1f6f02c50b7-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x46f4fc7f9c3f935c68f7bd6c90aa61874c5f0b4a-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x857df3960bd46afd2d1f00569a980727ed44e935-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x400f989aa8f15d9e9512e705e14bf45611bb81eb-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xa3f94e5825dc4ab28e0ace536aca7adab4f6ac2c-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x939f56325968f692ec25ff943d56848ef9538cf0-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x260778877569d2f749569865d7d0652e768ae5eb-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x3b2c85a36ebe943dc2b499117cc1ddefbec362c1-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x7a8bc795d602b2008583242365a901c49af36496-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x952353bfcee82e50d6ba91895d67784d98148633-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x17ee5a3063fe99a278ad70ae66e5ad79f51d0ea9-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta (1 ms)
      ✓ Expects pool id 0xb96809cad1e5e092c8d9aa143c4acda8611da355-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xc9e0cbc01f5f3769997637cbd4b71eba5e4639ee-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xefe7b5cf1b3e7cd5b77e4d3a7e850ea705001b80-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xa9a5504e90b5156404157d7b8b4cefdedab91a69-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x8437a43fdeb969d0d193ae8482e1e3e5b4f9a871-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x35fa144f92c540bebf65eead4ef2d83e8ed47ea9-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x31bc79fc5be8120c9f18a079ea097b2df7024a01-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xdfb5092f7b66d2cf0bef839f61556bcde49d0d9d-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x0eed980d62fe76826fcfac9d423b07e0f90cddaf-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x29c33beba01b02788eed7aec4bae1b5bf60a6fae-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x1b149c3963b9b70dacbe2255e815f69b107d467c-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x5d345084593a57d3c78cc9a68318053337156917-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x82ca42c39cd84a36c1f0fa58707439d4f615bc41-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xff9f1ad7a4d35fd98516b8dc42449261265b21a0-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x432697ca521244a0940259fc113274756750fe70-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x5a7a8ce99532bf117b4b776808069744cf4beca5-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x68cbe35b995d8a9582032823c8c861161450043e-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta (3 ms)
      ✓ Expects pool id 0x194699c0d7972c4c8cd35ac0ee555c91be61f610-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x1b53d23c0ab582ecbcafeb839358fee3f69a4a6a-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x20425a4c8c764a49b7c8aaf50c3694acf0d0ee12-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xf876807c9f75a232fbeeb9bf1a459d315c6100f9-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x38b5b55d653d26fe3b962579c9c4c1f42a36b7ec-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x7fa01647d65928ece6b1b1d90c06e9f52e689145-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta (1 ms)
      ✓ Expects pool id 0x72a5c69d3205c06806d0267484c5bee54071fdba-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x840dd18ac8510f43fd0b52edc73d74d012cdc174-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xa547e075ed52451a2c52d02b06ba3acc3771631a-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xe6754e5e6ba88b15cb9e11d7e64d23ab10bbf147-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xe5a714222d32ed4a564afe1493016d15ecd8832e-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x99c75a534186bdf4aa56fc41169ead165adc314c-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xbf4ca8d5dde9fab923085a39ca5f0b79ff43eadf-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xa7adfa283d994397102fa7f56e08d48d24bfcbfb-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x687b9602d97c5d18952490e2689d28d636173355-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xd23c1399d539d8faf3010747d74628270c426175-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x28cf67c415f8e1f26cbb07329d7484fbf985b703-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x64b635fdc78ff0ed0861068b0b100fc4322a47fa-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x6abb0eeefd164d7014e965d7b17bfacf1deb5fc7-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta (1 ms)
      ✓ Expects pool id 0xffddaacadd1c2c5eff46d4f1e135a7fc1c342d29-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x61bead6c4e47e626d38fd0c59030c08a0bcd7443-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x2eed3858b1e06745d609f4c9a6677add6adf5d2c-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0xdbdfe554783c91caec011f6c50378ed6531bb02d-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta (1 ms)
      ✓ Expects pool id 0x683a85a52e614d307eec6443f4ef7f807346c24d-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x719447648d0031a85ccd2585c0d81e73a35d9057-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x3abcc1dc489e880085d67e7c83c2be37db8b096f-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
      ✓ Expects pool id 0x68c21b93aac599f00daed734642b1d7e2041f429-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta (1 ms)
      ✓ Expects pool id 0x3ad43772b3e43cd9c6f59a8303546b23c41aa8c8-arbitrum to contain only allowed keys: pool,chain,project,symbol,apy,apyBase,apyReward,underlyingTokens,rewardTokens,poolMeta,url,apyBaseBorrow,apyRewardBorrow,totalSupplyUsd,totalBorrowUsd,ltv,borrowable,borrowFactor,debtCeilingUsd,mintedCoin,apyBase7d,apyRewardFake,apyRewardBorrowFake,il7d,volumeUsd1d,volumeUsd7d,apyBaseInception,tvlUsd and has: pool,chain,project,symbol,underlyingTokens,tvlUsd,apyBase,apyReward,poolMeta
    Check apy data types
      ✓ Expects pool with id 0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x5458d3a904069153e3282550e017965de8989a51-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x94c36a1b7d7736fc14f00d008a56e1b589d55f2f-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x842b1cc396159aeb4fdb46536e671379e9347459-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x1a93ef2bac520dd83083189d22c2ba3f0efcfb2c-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x0c663fcce8d9d364ae3f03ee1feda85d16bb6bfc-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x9e4b11b5891afedec7943be2715cb6d9df6d6395-arbitrum to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0x41c509821f0127aa01cf5677022dad92fbe10183-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x1a6b39f82b3bae93377acdca09d1bd0f6fdd561f-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xc07b5826f4cfe02ec29ff88013857a97b84736fa-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x556f72f95cc979119d6eadd6a0fdefe791e7f2ea-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xd06da775ff6c94659e84a60895e87023a8ed26b9-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x4766418ba5498f9cd35ee9304a80f33aeb062fa7-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xb2deb618da0093bd8ebfe18acee4c1f6f02c50b7-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x46f4fc7f9c3f935c68f7bd6c90aa61874c5f0b4a-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x857df3960bd46afd2d1f00569a980727ed44e935-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x400f989aa8f15d9e9512e705e14bf45611bb81eb-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xa3f94e5825dc4ab28e0ace536aca7adab4f6ac2c-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x939f56325968f692ec25ff943d56848ef9538cf0-arbitrum to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0x260778877569d2f749569865d7d0652e768ae5eb-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x3b2c85a36ebe943dc2b499117cc1ddefbec362c1-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x7a8bc795d602b2008583242365a901c49af36496-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x952353bfcee82e50d6ba91895d67784d98148633-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x17ee5a3063fe99a278ad70ae66e5ad79f51d0ea9-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xb96809cad1e5e092c8d9aa143c4acda8611da355-arbitrum to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0xc9e0cbc01f5f3769997637cbd4b71eba5e4639ee-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xefe7b5cf1b3e7cd5b77e4d3a7e850ea705001b80-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xa9a5504e90b5156404157d7b8b4cefdedab91a69-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x8437a43fdeb969d0d193ae8482e1e3e5b4f9a871-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x35fa144f92c540bebf65eead4ef2d83e8ed47ea9-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x31bc79fc5be8120c9f18a079ea097b2df7024a01-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xdfb5092f7b66d2cf0bef839f61556bcde49d0d9d-arbitrum to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0x0eed980d62fe76826fcfac9d423b07e0f90cddaf-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x29c33beba01b02788eed7aec4bae1b5bf60a6fae-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x1b149c3963b9b70dacbe2255e815f69b107d467c-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x5d345084593a57d3c78cc9a68318053337156917-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x82ca42c39cd84a36c1f0fa58707439d4f615bc41-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xff9f1ad7a4d35fd98516b8dc42449261265b21a0-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x432697ca521244a0940259fc113274756750fe70-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x5a7a8ce99532bf117b4b776808069744cf4beca5-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x68cbe35b995d8a9582032823c8c861161450043e-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x194699c0d7972c4c8cd35ac0ee555c91be61f610-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x1b53d23c0ab582ecbcafeb839358fee3f69a4a6a-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x20425a4c8c764a49b7c8aaf50c3694acf0d0ee12-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xf876807c9f75a232fbeeb9bf1a459d315c6100f9-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x38b5b55d653d26fe3b962579c9c4c1f42a36b7ec-arbitrum to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0x7fa01647d65928ece6b1b1d90c06e9f52e689145-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x72a5c69d3205c06806d0267484c5bee54071fdba-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x840dd18ac8510f43fd0b52edc73d74d012cdc174-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xa547e075ed52451a2c52d02b06ba3acc3771631a-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xe6754e5e6ba88b15cb9e11d7e64d23ab10bbf147-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xe5a714222d32ed4a564afe1493016d15ecd8832e-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x99c75a534186bdf4aa56fc41169ead165adc314c-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xbf4ca8d5dde9fab923085a39ca5f0b79ff43eadf-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xa7adfa283d994397102fa7f56e08d48d24bfcbfb-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x687b9602d97c5d18952490e2689d28d636173355-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xd23c1399d539d8faf3010747d74628270c426175-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x28cf67c415f8e1f26cbb07329d7484fbf985b703-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x64b635fdc78ff0ed0861068b0b100fc4322a47fa-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x6abb0eeefd164d7014e965d7b17bfacf1deb5fc7-arbitrum to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0xffddaacadd1c2c5eff46d4f1e135a7fc1c342d29-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x61bead6c4e47e626d38fd0c59030c08a0bcd7443-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x2eed3858b1e06745d609f4c9a6677add6adf5d2c-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0xdbdfe554783c91caec011f6c50378ed6531bb02d-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x683a85a52e614d307eec6443f4ef7f807346c24d-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x719447648d0031a85ccd2585c0d81e73a35d9057-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x3abcc1dc489e880085d67e7c83c2be37db8b096f-arbitrum to have at least one number apy field (1 ms)
      ✓ Expects pool with id 0x68c21b93aac599f00daed734642b1d7e2041f429-arbitrum to have at least one number apy field
      ✓ Expects pool with id 0x3ad43772b3e43cd9c6f59a8303546b23c41aa8c8-arbitrum to have at least one number apy field
    Check tvl data type
      ✓ tvlUsd field of pool with id 0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao should be number 
      ✓ tvlUsd field of pool with id 0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x5458d3a904069153e3282550e017965de8989a51-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x94c36a1b7d7736fc14f00d008a56e1b589d55f2f-arbitrum should be number  (1 ms)
      ✓ tvlUsd field of pool with id 0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x842b1cc396159aeb4fdb46536e671379e9347459-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x1a93ef2bac520dd83083189d22c2ba3f0efcfb2c-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x0c663fcce8d9d364ae3f03ee1feda85d16bb6bfc-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x9e4b11b5891afedec7943be2715cb6d9df6d6395-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x41c509821f0127aa01cf5677022dad92fbe10183-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x1a6b39f82b3bae93377acdca09d1bd0f6fdd561f-arbitrum should be number  (1 ms)
      ✓ tvlUsd field of pool with id 0xc07b5826f4cfe02ec29ff88013857a97b84736fa-arbitrum should be number  (2 ms)
      ✓ tvlUsd field of pool with id 0x556f72f95cc979119d6eadd6a0fdefe791e7f2ea-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xd06da775ff6c94659e84a60895e87023a8ed26b9-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x4766418ba5498f9cd35ee9304a80f33aeb062fa7-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xb2deb618da0093bd8ebfe18acee4c1f6f02c50b7-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x46f4fc7f9c3f935c68f7bd6c90aa61874c5f0b4a-arbitrum should be number  (1 ms)
      ✓ tvlUsd field of pool with id 0x857df3960bd46afd2d1f00569a980727ed44e935-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x400f989aa8f15d9e9512e705e14bf45611bb81eb-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xa3f94e5825dc4ab28e0ace536aca7adab4f6ac2c-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x939f56325968f692ec25ff943d56848ef9538cf0-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x260778877569d2f749569865d7d0652e768ae5eb-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x3b2c85a36ebe943dc2b499117cc1ddefbec362c1-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x7a8bc795d602b2008583242365a901c49af36496-arbitrum should be number  (1 ms)
      ✓ tvlUsd field of pool with id 0x952353bfcee82e50d6ba91895d67784d98148633-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x17ee5a3063fe99a278ad70ae66e5ad79f51d0ea9-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xb96809cad1e5e092c8d9aa143c4acda8611da355-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xc9e0cbc01f5f3769997637cbd4b71eba5e4639ee-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xefe7b5cf1b3e7cd5b77e4d3a7e850ea705001b80-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xa9a5504e90b5156404157d7b8b4cefdedab91a69-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x8437a43fdeb969d0d193ae8482e1e3e5b4f9a871-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x35fa144f92c540bebf65eead4ef2d83e8ed47ea9-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x31bc79fc5be8120c9f18a079ea097b2df7024a01-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xdfb5092f7b66d2cf0bef839f61556bcde49d0d9d-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x0eed980d62fe76826fcfac9d423b07e0f90cddaf-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x29c33beba01b02788eed7aec4bae1b5bf60a6fae-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x1b149c3963b9b70dacbe2255e815f69b107d467c-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x5d345084593a57d3c78cc9a68318053337156917-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x82ca42c39cd84a36c1f0fa58707439d4f615bc41-arbitrum should be number  (1 ms)
      ✓ tvlUsd field of pool with id 0xff9f1ad7a4d35fd98516b8dc42449261265b21a0-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x432697ca521244a0940259fc113274756750fe70-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x5a7a8ce99532bf117b4b776808069744cf4beca5-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x68cbe35b995d8a9582032823c8c861161450043e-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x194699c0d7972c4c8cd35ac0ee555c91be61f610-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x1b53d23c0ab582ecbcafeb839358fee3f69a4a6a-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x20425a4c8c764a49b7c8aaf50c3694acf0d0ee12-arbitrum should be number  (1 ms)
      ✓ tvlUsd field of pool with id 0xf876807c9f75a232fbeeb9bf1a459d315c6100f9-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x38b5b55d653d26fe3b962579c9c4c1f42a36b7ec-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x7fa01647d65928ece6b1b1d90c06e9f52e689145-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x72a5c69d3205c06806d0267484c5bee54071fdba-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x840dd18ac8510f43fd0b52edc73d74d012cdc174-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xa547e075ed52451a2c52d02b06ba3acc3771631a-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xe6754e5e6ba88b15cb9e11d7e64d23ab10bbf147-arbitrum should be number  (1 ms)
      ✓ tvlUsd field of pool with id 0xe5a714222d32ed4a564afe1493016d15ecd8832e-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x99c75a534186bdf4aa56fc41169ead165adc314c-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xbf4ca8d5dde9fab923085a39ca5f0b79ff43eadf-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xa7adfa283d994397102fa7f56e08d48d24bfcbfb-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x687b9602d97c5d18952490e2689d28d636173355-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xd23c1399d539d8faf3010747d74628270c426175-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x28cf67c415f8e1f26cbb07329d7484fbf985b703-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x64b635fdc78ff0ed0861068b0b100fc4322a47fa-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x6abb0eeefd164d7014e965d7b17bfacf1deb5fc7-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xffddaacadd1c2c5eff46d4f1e135a7fc1c342d29-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x61bead6c4e47e626d38fd0c59030c08a0bcd7443-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x2eed3858b1e06745d609f4c9a6677add6adf5d2c-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0xdbdfe554783c91caec011f6c50378ed6531bb02d-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x683a85a52e614d307eec6443f4ef7f807346c24d-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x719447648d0031a85ccd2585c0d81e73a35d9057-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x3abcc1dc489e880085d67e7c83c2be37db8b096f-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x68c21b93aac599f00daed734642b1d7e2041f429-arbitrum should be number 
      ✓ tvlUsd field of pool with id 0x3ad43772b3e43cd9c6f59a8303546b23c41aa8c8-arbitrum should be number 
    Check tokens data types
      ✓ underlyingTokens field of pool with id 0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x5458d3a904069153e3282550e017965de8989a51-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x94c36a1b7d7736fc14f00d008a56e1b589d55f2f-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0x842b1cc396159aeb4fdb46536e671379e9347459-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x1a93ef2bac520dd83083189d22c2ba3f0efcfb2c-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x0c663fcce8d9d364ae3f03ee1feda85d16bb6bfc-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x9e4b11b5891afedec7943be2715cb6d9df6d6395-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x41c509821f0127aa01cf5677022dad92fbe10183-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0x1a6b39f82b3bae93377acdca09d1bd0f6fdd561f-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xc07b5826f4cfe02ec29ff88013857a97b84736fa-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x556f72f95cc979119d6eadd6a0fdefe791e7f2ea-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xd06da775ff6c94659e84a60895e87023a8ed26b9-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x4766418ba5498f9cd35ee9304a80f33aeb062fa7-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xb2deb618da0093bd8ebfe18acee4c1f6f02c50b7-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x46f4fc7f9c3f935c68f7bd6c90aa61874c5f0b4a-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x857df3960bd46afd2d1f00569a980727ed44e935-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x400f989aa8f15d9e9512e705e14bf45611bb81eb-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xa3f94e5825dc4ab28e0ace536aca7adab4f6ac2c-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0x939f56325968f692ec25ff943d56848ef9538cf0-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x260778877569d2f749569865d7d0652e768ae5eb-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x3b2c85a36ebe943dc2b499117cc1ddefbec362c1-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x7a8bc795d602b2008583242365a901c49af36496-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x952353bfcee82e50d6ba91895d67784d98148633-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x17ee5a3063fe99a278ad70ae66e5ad79f51d0ea9-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xb96809cad1e5e092c8d9aa143c4acda8611da355-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xc9e0cbc01f5f3769997637cbd4b71eba5e4639ee-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xefe7b5cf1b3e7cd5b77e4d3a7e850ea705001b80-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xa9a5504e90b5156404157d7b8b4cefdedab91a69-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x8437a43fdeb969d0d193ae8482e1e3e5b4f9a871-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0x35fa144f92c540bebf65eead4ef2d83e8ed47ea9-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x31bc79fc5be8120c9f18a079ea097b2df7024a01-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xdfb5092f7b66d2cf0bef839f61556bcde49d0d9d-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x0eed980d62fe76826fcfac9d423b07e0f90cddaf-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x29c33beba01b02788eed7aec4bae1b5bf60a6fae-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x1b149c3963b9b70dacbe2255e815f69b107d467c-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x5d345084593a57d3c78cc9a68318053337156917-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x82ca42c39cd84a36c1f0fa58707439d4f615bc41-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xff9f1ad7a4d35fd98516b8dc42449261265b21a0-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x432697ca521244a0940259fc113274756750fe70-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0x5a7a8ce99532bf117b4b776808069744cf4beca5-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x68cbe35b995d8a9582032823c8c861161450043e-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x194699c0d7972c4c8cd35ac0ee555c91be61f610-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x1b53d23c0ab582ecbcafeb839358fee3f69a4a6a-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x20425a4c8c764a49b7c8aaf50c3694acf0d0ee12-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xf876807c9f75a232fbeeb9bf1a459d315c6100f9-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x38b5b55d653d26fe3b962579c9c4c1f42a36b7ec-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x7fa01647d65928ece6b1b1d90c06e9f52e689145-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0x72a5c69d3205c06806d0267484c5bee54071fdba-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x840dd18ac8510f43fd0b52edc73d74d012cdc174-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xa547e075ed52451a2c52d02b06ba3acc3771631a-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xe6754e5e6ba88b15cb9e11d7e64d23ab10bbf147-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xe5a714222d32ed4a564afe1493016d15ecd8832e-arbitrum should be an Array of strings (1 ms)
      ✓ underlyingTokens field of pool with id 0x99c75a534186bdf4aa56fc41169ead165adc314c-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xbf4ca8d5dde9fab923085a39ca5f0b79ff43eadf-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xa7adfa283d994397102fa7f56e08d48d24bfcbfb-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x687b9602d97c5d18952490e2689d28d636173355-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xd23c1399d539d8faf3010747d74628270c426175-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x28cf67c415f8e1f26cbb07329d7484fbf985b703-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x64b635fdc78ff0ed0861068b0b100fc4322a47fa-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x6abb0eeefd164d7014e965d7b17bfacf1deb5fc7-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xffddaacadd1c2c5eff46d4f1e135a7fc1c342d29-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x61bead6c4e47e626d38fd0c59030c08a0bcd7443-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x2eed3858b1e06745d609f4c9a6677add6adf5d2c-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0xdbdfe554783c91caec011f6c50378ed6531bb02d-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x683a85a52e614d307eec6443f4ef7f807346c24d-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x719447648d0031a85ccd2585c0d81e73a35d9057-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x3abcc1dc489e880085d67e7c83c2be37db8b096f-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x68c21b93aac599f00daed734642b1d7e2041f429-arbitrum should be an Array of strings
      ✓ underlyingTokens field of pool with id 0x3ad43772b3e43cd9c6f59a8303546b23c41aa8c8-arbitrum should be an Array of strings (1 ms)
    Check other fields data types
      ✓ Expect other fields of pool with id 0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao to match thier data types
      ✓ Expect other fields of pool with id 0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x5458d3a904069153e3282550e017965de8989a51-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x94c36a1b7d7736fc14f00d008a56e1b589d55f2f-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x842b1cc396159aeb4fdb46536e671379e9347459-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x1a93ef2bac520dd83083189d22c2ba3f0efcfb2c-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x0c663fcce8d9d364ae3f03ee1feda85d16bb6bfc-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x9e4b11b5891afedec7943be2715cb6d9df6d6395-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x41c509821f0127aa01cf5677022dad92fbe10183-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x1a6b39f82b3bae93377acdca09d1bd0f6fdd561f-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xc07b5826f4cfe02ec29ff88013857a97b84736fa-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x556f72f95cc979119d6eadd6a0fdefe791e7f2ea-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xd06da775ff6c94659e84a60895e87023a8ed26b9-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x4766418ba5498f9cd35ee9304a80f33aeb062fa7-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0xb2deb618da0093bd8ebfe18acee4c1f6f02c50b7-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x46f4fc7f9c3f935c68f7bd6c90aa61874c5f0b4a-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x857df3960bd46afd2d1f00569a980727ed44e935-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x400f989aa8f15d9e9512e705e14bf45611bb81eb-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0xa3f94e5825dc4ab28e0ace536aca7adab4f6ac2c-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x939f56325968f692ec25ff943d56848ef9538cf0-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x260778877569d2f749569865d7d0652e768ae5eb-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x3b2c85a36ebe943dc2b499117cc1ddefbec362c1-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x7a8bc795d602b2008583242365a901c49af36496-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x952353bfcee82e50d6ba91895d67784d98148633-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x17ee5a3063fe99a278ad70ae66e5ad79f51d0ea9-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xb96809cad1e5e092c8d9aa143c4acda8611da355-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0xc9e0cbc01f5f3769997637cbd4b71eba5e4639ee-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xefe7b5cf1b3e7cd5b77e4d3a7e850ea705001b80-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xa9a5504e90b5156404157d7b8b4cefdedab91a69-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x8437a43fdeb969d0d193ae8482e1e3e5b4f9a871-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x35fa144f92c540bebf65eead4ef2d83e8ed47ea9-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x31bc79fc5be8120c9f18a079ea097b2df7024a01-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xdfb5092f7b66d2cf0bef839f61556bcde49d0d9d-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x0eed980d62fe76826fcfac9d423b07e0f90cddaf-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x29c33beba01b02788eed7aec4bae1b5bf60a6fae-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x1b149c3963b9b70dacbe2255e815f69b107d467c-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x5d345084593a57d3c78cc9a68318053337156917-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x82ca42c39cd84a36c1f0fa58707439d4f615bc41-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0xff9f1ad7a4d35fd98516b8dc42449261265b21a0-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x432697ca521244a0940259fc113274756750fe70-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x5a7a8ce99532bf117b4b776808069744cf4beca5-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x68cbe35b995d8a9582032823c8c861161450043e-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x194699c0d7972c4c8cd35ac0ee555c91be61f610-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x1b53d23c0ab582ecbcafeb839358fee3f69a4a6a-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x20425a4c8c764a49b7c8aaf50c3694acf0d0ee12-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xf876807c9f75a232fbeeb9bf1a459d315c6100f9-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x38b5b55d653d26fe3b962579c9c4c1f42a36b7ec-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x7fa01647d65928ece6b1b1d90c06e9f52e689145-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x72a5c69d3205c06806d0267484c5bee54071fdba-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x840dd18ac8510f43fd0b52edc73d74d012cdc174-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xa547e075ed52451a2c52d02b06ba3acc3771631a-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xe6754e5e6ba88b15cb9e11d7e64d23ab10bbf147-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xe5a714222d32ed4a564afe1493016d15ecd8832e-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x99c75a534186bdf4aa56fc41169ead165adc314c-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xbf4ca8d5dde9fab923085a39ca5f0b79ff43eadf-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xa7adfa283d994397102fa7f56e08d48d24bfcbfb-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x687b9602d97c5d18952490e2689d28d636173355-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xd23c1399d539d8faf3010747d74628270c426175-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x28cf67c415f8e1f26cbb07329d7484fbf985b703-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x64b635fdc78ff0ed0861068b0b100fc4322a47fa-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x6abb0eeefd164d7014e965d7b17bfacf1deb5fc7-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xffddaacadd1c2c5eff46d4f1e135a7fc1c342d29-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x61bead6c4e47e626d38fd0c59030c08a0bcd7443-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x2eed3858b1e06745d609f4c9a6677add6adf5d2c-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0xdbdfe554783c91caec011f6c50378ed6531bb02d-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x683a85a52e614d307eec6443f4ef7f807346c24d-arbitrum to match thier data types (1 ms)
      ✓ Expect other fields of pool with id 0x719447648d0031a85ccd2585c0d81e73a35d9057-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x3abcc1dc489e880085d67e7c83c2be37db8b096f-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x68c21b93aac599f00daed734642b1d7e2041f429-arbitrum to match thier data types
      ✓ Expect other fields of pool with id 0x3ad43772b3e43cd9c6f59a8303546b23c41aa8c8-arbitrum to match thier data types
    Check if pool has a rewardApy then rewardTokens must also exist
      ✓ The pool 0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum is expected to have a rewardTokens field
      ✓ The pool 0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum is expected to have a rewardTokens field
      ✓ The pool 0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao is expected to have a rewardTokens field
      ✕ The pool 0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x5458d3a904069153e3282550e017965de8989a51-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x94c36a1b7d7736fc14f00d008a56e1b589d55f2f-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x842b1cc396159aeb4fdb46536e671379e9347459-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x1a93ef2bac520dd83083189d22c2ba3f0efcfb2c-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x0c663fcce8d9d364ae3f03ee1feda85d16bb6bfc-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x9e4b11b5891afedec7943be2715cb6d9df6d6395-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x41c509821f0127aa01cf5677022dad92fbe10183-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x1a6b39f82b3bae93377acdca09d1bd0f6fdd561f-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xc07b5826f4cfe02ec29ff88013857a97b84736fa-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x556f72f95cc979119d6eadd6a0fdefe791e7f2ea-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0xd06da775ff6c94659e84a60895e87023a8ed26b9-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x4766418ba5498f9cd35ee9304a80f33aeb062fa7-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xb2deb618da0093bd8ebfe18acee4c1f6f02c50b7-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x46f4fc7f9c3f935c68f7bd6c90aa61874c5f0b4a-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x857df3960bd46afd2d1f00569a980727ed44e935-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0x400f989aa8f15d9e9512e705e14bf45611bb81eb-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xa3f94e5825dc4ab28e0ace536aca7adab4f6ac2c-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x939f56325968f692ec25ff943d56848ef9538cf0-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x260778877569d2f749569865d7d0652e768ae5eb-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x3b2c85a36ebe943dc2b499117cc1ddefbec362c1-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x7a8bc795d602b2008583242365a901c49af36496-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x952353bfcee82e50d6ba91895d67784d98148633-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x17ee5a3063fe99a278ad70ae66e5ad79f51d0ea9-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xb96809cad1e5e092c8d9aa143c4acda8611da355-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xc9e0cbc01f5f3769997637cbd4b71eba5e4639ee-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xefe7b5cf1b3e7cd5b77e4d3a7e850ea705001b80-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xa9a5504e90b5156404157d7b8b4cefdedab91a69-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x8437a43fdeb969d0d193ae8482e1e3e5b4f9a871-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x35fa144f92c540bebf65eead4ef2d83e8ed47ea9-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x31bc79fc5be8120c9f18a079ea097b2df7024a01-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xdfb5092f7b66d2cf0bef839f61556bcde49d0d9d-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x0eed980d62fe76826fcfac9d423b07e0f90cddaf-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x29c33beba01b02788eed7aec4bae1b5bf60a6fae-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x1b149c3963b9b70dacbe2255e815f69b107d467c-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x5d345084593a57d3c78cc9a68318053337156917-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x82ca42c39cd84a36c1f0fa58707439d4f615bc41-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xff9f1ad7a4d35fd98516b8dc42449261265b21a0-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x432697ca521244a0940259fc113274756750fe70-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0x5a7a8ce99532bf117b4b776808069744cf4beca5-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x68cbe35b995d8a9582032823c8c861161450043e-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x194699c0d7972c4c8cd35ac0ee555c91be61f610-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x1b53d23c0ab582ecbcafeb839358fee3f69a4a6a-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x20425a4c8c764a49b7c8aaf50c3694acf0d0ee12-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xf876807c9f75a232fbeeb9bf1a459d315c6100f9-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x38b5b55d653d26fe3b962579c9c4c1f42a36b7ec-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x7fa01647d65928ece6b1b1d90c06e9f52e689145-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x72a5c69d3205c06806d0267484c5bee54071fdba-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x840dd18ac8510f43fd0b52edc73d74d012cdc174-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xa547e075ed52451a2c52d02b06ba3acc3771631a-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xe6754e5e6ba88b15cb9e11d7e64d23ab10bbf147-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xe5a714222d32ed4a564afe1493016d15ecd8832e-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x99c75a534186bdf4aa56fc41169ead165adc314c-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xbf4ca8d5dde9fab923085a39ca5f0b79ff43eadf-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xa7adfa283d994397102fa7f56e08d48d24bfcbfb-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0x687b9602d97c5d18952490e2689d28d636173355-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xd23c1399d539d8faf3010747d74628270c426175-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x28cf67c415f8e1f26cbb07329d7484fbf985b703-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0x64b635fdc78ff0ed0861068b0b100fc4322a47fa-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x6abb0eeefd164d7014e965d7b17bfacf1deb5fc7-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xffddaacadd1c2c5eff46d4f1e135a7fc1c342d29-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0x61bead6c4e47e626d38fd0c59030c08a0bcd7443-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x2eed3858b1e06745d609f4c9a6677add6adf5d2c-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0xdbdfe554783c91caec011f6c50378ed6531bb02d-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x683a85a52e614d307eec6443f4ef7f807346c24d-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x719447648d0031a85ccd2585c0d81e73a35d9057-arbitrum is expected to have a rewardTokens field (1 ms)
      ✕ The pool 0x3abcc1dc489e880085d67e7c83c2be37db8b096f-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x68c21b93aac599f00daed734642b1d7e2041f429-arbitrum is expected to have a rewardTokens field
      ✕ The pool 0x3ad43772b3e43cd9c6f59a8303546b23c41aa8c8-arbitrum is expected to have a rewardTokens field (1 ms)
    Check if pool id already used by other project
      ✓ Expect duplicate ids array to be empty

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x5458d3a904069153e3282550e017965de8989a51-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x94c36a1b7d7736fc14f00d008a56e1b589d55f2f-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x174a7cec21994fca7a60e8d0e2c856363a26f33e-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x842b1cc396159aeb4fdb46536e671379e9347459-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x1a93ef2bac520dd83083189d22c2ba3f0efcfb2c-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x0c663fcce8d9d364ae3f03ee1feda85d16bb6bfc-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x9e4b11b5891afedec7943be2715cb6d9df6d6395-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x41c509821f0127aa01cf5677022dad92fbe10183-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x1a6b39f82b3bae93377acdca09d1bd0f6fdd561f-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xc07b5826f4cfe02ec29ff88013857a97b84736fa-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x556f72f95cc979119d6eadd6a0fdefe791e7f2ea-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xad7adb51a579134049469ca11b1b101ae1e1c862-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xd06da775ff6c94659e84a60895e87023a8ed26b9-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x4766418ba5498f9cd35ee9304a80f33aeb062fa7-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xb2deb618da0093bd8ebfe18acee4c1f6f02c50b7-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x46f4fc7f9c3f935c68f7bd6c90aa61874c5f0b4a-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x857df3960bd46afd2d1f00569a980727ed44e935-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x400f989aa8f15d9e9512e705e14bf45611bb81eb-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xa3f94e5825dc4ab28e0ace536aca7adab4f6ac2c-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x939f56325968f692ec25ff943d56848ef9538cf0-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x260778877569d2f749569865d7d0652e768ae5eb-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x3b2c85a36ebe943dc2b499117cc1ddefbec362c1-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x7a8bc795d602b2008583242365a901c49af36496-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x952353bfcee82e50d6ba91895d67784d98148633-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x17ee5a3063fe99a278ad70ae66e5ad79f51d0ea9-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xb96809cad1e5e092c8d9aa143c4acda8611da355-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xc9e0cbc01f5f3769997637cbd4b71eba5e4639ee-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xefe7b5cf1b3e7cd5b77e4d3a7e850ea705001b80-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xa9a5504e90b5156404157d7b8b4cefdedab91a69-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x8437a43fdeb969d0d193ae8482e1e3e5b4f9a871-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x35fa144f92c540bebf65eead4ef2d83e8ed47ea9-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x31bc79fc5be8120c9f18a079ea097b2df7024a01-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xdfb5092f7b66d2cf0bef839f61556bcde49d0d9d-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x0eed980d62fe76826fcfac9d423b07e0f90cddaf-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x29c33beba01b02788eed7aec4bae1b5bf60a6fae-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x1b149c3963b9b70dacbe2255e815f69b107d467c-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x5d345084593a57d3c78cc9a68318053337156917-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x82ca42c39cd84a36c1f0fa58707439d4f615bc41-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xff9f1ad7a4d35fd98516b8dc42449261265b21a0-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x432697ca521244a0940259fc113274756750fe70-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x5a7a8ce99532bf117b4b776808069744cf4beca5-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x68cbe35b995d8a9582032823c8c861161450043e-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x194699c0d7972c4c8cd35ac0ee555c91be61f610-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x1b53d23c0ab582ecbcafeb839358fee3f69a4a6a-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x20425a4c8c764a49b7c8aaf50c3694acf0d0ee12-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xf876807c9f75a232fbeeb9bf1a459d315c6100f9-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x38b5b55d653d26fe3b962579c9c4c1f42a36b7ec-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x7fa01647d65928ece6b1b1d90c06e9f52e689145-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x72a5c69d3205c06806d0267484c5bee54071fdba-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x840dd18ac8510f43fd0b52edc73d74d012cdc174-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xa547e075ed52451a2c52d02b06ba3acc3771631a-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xe6754e5e6ba88b15cb9e11d7e64d23ab10bbf147-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xe5a714222d32ed4a564afe1493016d15ecd8832e-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x99c75a534186bdf4aa56fc41169ead165adc314c-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xbf4ca8d5dde9fab923085a39ca5f0b79ff43eadf-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xa7adfa283d994397102fa7f56e08d48d24bfcbfb-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x687b9602d97c5d18952490e2689d28d636173355-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xd23c1399d539d8faf3010747d74628270c426175-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x28cf67c415f8e1f26cbb07329d7484fbf985b703-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x64b635fdc78ff0ed0861068b0b100fc4322a47fa-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x6abb0eeefd164d7014e965d7b17bfacf1deb5fc7-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xffddaacadd1c2c5eff46d4f1e135a7fc1c342d29-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x61bead6c4e47e626d38fd0c59030c08a0bcd7443-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x2eed3858b1e06745d609f4c9a6677add6adf5d2c-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0xdbdfe554783c91caec011f6c50378ed6531bb02d-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x683a85a52e614d307eec6443f4ef7f807346c24d-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x719447648d0031a85ccd2585c0d81e73a35d9057-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x3abcc1dc489e880085d67e7c83c2be37db8b096f-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x68c21b93aac599f00daed734642b1d7e2041f429-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

  ● Running jones-dao Test › Check if pool has a rewardApy then rewardTokens must also exist › The pool 0x3ad43772b3e43cd9c6f59a8303546b23c41aa8c8-arbitrum is expected to have a rewardTokens field

    expect(received).toBeGreaterThan(expected)

    Expected: > 0
    Received:   0

      115 |       test(`The pool ${pool.pool} is expected to have a rewardTokens field`, () => {
      116 |         if (pool.apyReward)
    > 117 |           expect((pool.rewardTokens || []).length).toBeGreaterThan(0);
          |                                                    ^
      118 |       });
      119 |     });
      120 |   });

      at Object.toBeGreaterThan (src/adaptors/test.js:117:52)

Nb of pools: 79

Sample pools:
┌─────────┬─────────────────────────────────────────────────────────────────┬────────────┬─────────────┬────────────┬────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────┬────────────────────┬────────────────────┬──────────────────────────────┬────────────────────┐
│ (index) │                              pool                               │   chain    │   project   │   symbol   │                                        underlyingTokens                                        │       tvlUsd       │      apyBase       │  apyBaseInception  │           poolMeta           │     apyReward      │
├─────────┼─────────────────────────────────────────────────────────────────┼────────────┼─────────────┼────────────┼────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────┼────────────────────┼────────────────────┼──────────────────────────────┼────────────────────┤
│    0    │      '0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │   'jGLP'   │                        [ '0x1aDDD80E6039594eE970E5872D247bf0414C8903' ]                        │ 5292524.627779952  │ 3.886575341091406  │ 24.403768509997008 │                              │                    │
│    1    │      '0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum'      │ 'Ethereum' │ 'jones-dao' │  'jAURA'   │                        [ '0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF' ]                        │ 2309604.9643957433 │ 65.45427322241045  │  73.5345155460176  │                              │                    │
│    2    │ '0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao' │ 'Arbitrum' │ 'jones-dao' │  'jUSDC'   │                        [ '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ]                        │ 1149309.4964928748 │ 2.0636877988191755 │ 9.819219947612822  │         '1day lock'          │                    │
│    3    │      '0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 368399.52911389293 │  48.4957752558971  │                    │  'BULL strategy on CAMELOT'  │ 80.06754550428876  │
│    4    │      '0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 221234.83796171582 │ 5.392145802416759  │                    │  'WIDE strategy on RAMSES'   │ 234.86423888197922 │
│    5    │      '0x5458d3a904069153e3282550e017965de8989a51-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 158114.21719652737 │ 11.051315909595537 │                    │  'WIDE strategy on CAMELOT'  │  78.4736673083062  │
│    6    │      '0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDT' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9' ] │ 108132.7616494751  │  52.6829806926149  │                    │  'WIDE strategy on CAMELOT'  │ 70.68938647564565  │
│    7    │      '0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 107949.77975486613 │ 90.48592221307845  │                    │ 'NARROW strategy on CAMELOT' │ 18.333386082599908 │
│    8    │      '0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 99361.60707858426  │ 1.5908610959785463 │                    │  'WIDE strategy on RAMSES'   │ 107.46863224189028 │
│    9    │      '0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 82071.49676725491  │ 14.768188037509212 │                    │  'WIDE strategy on UNISWAP'  │ 72.78680558185783  │
└─────────┴─────────────────────────────────────────────────────────────────┴────────────┴─────────────┴────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────────────────┴──────────────────────────────┴────────────────────┘
This adapter contains some pools with <10k TVL, these pools won't be shown in DefiLlama
}
slasher125 commented 1 month ago

@0xIvan pls add the rewardTokens field (see test output)

llamatester commented 1 month ago

The jones-dao adapter exports pools:

Test Suites: 1 passed, 1 total Tests: 554 passed, 554 total Snapshots: 0 total Time: 0.404 s Ran all test suites.

Nb of pools: 79

Sample pools:
┌─────────┬─────────────────────────────────────────────────────────────────┬────────────┬─────────────┬────────────┬────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────┬────────────────────┬────────────────────┬──────────────────────────────┬────────────────────┬──────────────────────────────────────────────────┐
│ (index) │                              pool                               │   chain    │   project   │   symbol   │                                        underlyingTokens                                        │       tvlUsd       │      apyBase       │  apyBaseInception  │           poolMeta           │     apyReward      │                   rewardTokens                   │
├─────────┼─────────────────────────────────────────────────────────────────┼────────────┼─────────────┼────────────┼────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────┼────────────────────┼────────────────────┼──────────────────────────────┼────────────────────┼──────────────────────────────────────────────────┤
│    0    │      '0x13c6bed5aa16823aba5bba691caec63788b19d9d-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │   'jGLP'   │                        [ '0x1aDDD80E6039594eE970E5872D247bf0414C8903' ]                        │ 5292524.627779952  │ 3.886575341091406  │ 24.403768509997008 │                              │                    │                                                  │
│    1    │      '0x7629fc134e5a7febef6340438d96881c8d121f2c-arbitrum'      │ 'Ethereum' │ 'jones-dao' │  'jAURA'   │                        [ '0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF' ]                        │ 2309604.9643957433 │ 65.45427322241045  │  73.5345155460176  │                              │                    │                                                  │
│    2    │ '0xb0bde111812eac913b392d80d51966ec977be3a2-arbitrum-jones-dao' │ 'Arbitrum' │ 'jones-dao' │  'jUSDC'   │                        [ '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ]                        │ 1149410.6553533853 │ 2.0636877988191755 │ 9.819219947612822  │         '1day lock'          │                    │                                                  │
│    3    │      '0xac181bc9e6217da5753a426be7ab90c062a78a7f-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 368399.52911389293 │  48.4957752558971  │                    │  'BULL strategy on CAMELOT'  │ 80.06754550428876  │ [ '0x912CE59144191C1204E64559FE8253a0e49E6548' ] │
│    4    │      '0x33ba61c99674158af618690ff5a5144a85bc9ca1-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 221234.83796171582 │ 5.392145802416759  │                    │  'WIDE strategy on RAMSES'   │ 234.86423888197922 │ [ '0x912CE59144191C1204E64559FE8253a0e49E6548' ] │
│    5    │      '0x5458d3a904069153e3282550e017965de8989a51-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 158114.21719652737 │ 11.051315909595537 │                    │  'WIDE strategy on CAMELOT'  │  78.4736673083062  │ [ '0x912CE59144191C1204E64559FE8253a0e49E6548' ] │
│    6    │      '0xb6618f214453635e980ee7b7db94d25f90499945-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDT' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9' ] │ 108132.7616494751  │  52.6829806926149  │                    │  'WIDE strategy on CAMELOT'  │ 70.68938647564565  │ [ '0x912CE59144191C1204E64559FE8253a0e49E6548' ] │
│    7    │      '0x969d0296ea7e06abda2e7b95cd40718484ece450-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'ETH-USDC' │ [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' ] │ 107949.77975486613 │ 90.48592221307845  │                    │ 'NARROW strategy on CAMELOT' │ 18.333386082599908 │ [ '0x912CE59144191C1204E64559FE8253a0e49E6548' ] │
│    8    │      '0xbc62de5f863c4bf040bcc2a6c36db553c0979040-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 99361.60707858426  │ 1.5908610959785463 │                    │  'WIDE strategy on RAMSES'   │ 107.46863224189028 │ [ '0x912CE59144191C1204E64559FE8253a0e49E6548' ] │
│    9    │      '0x723ecd39da31aa9eda433dd64c1807d6cfd8fba2-arbitrum'      │ 'Arbitrum' │ 'jones-dao' │ 'BTC-ETH'  │ [ '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' ] │ 82071.49676725491  │ 14.768188037509212 │                    │  'WIDE strategy on UNISWAP'  │ 72.78680558185783  │ [ '0x912CE59144191C1204E64559FE8253a0e49E6548' ] │
└─────────┴─────────────────────────────────────────────────────────────────┴────────────┴─────────────┴────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────────────────┴──────────────────────────────┴────────────────────┴──────────────────────────────────────────────────┘
This adapter contains some pools with <10k TVL, these pools won't be shown in DefiLlama