Skip to content

lifinance/tenderly-sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tenderly simulations

This package makes it easier to interact with Tenderly API for simulating transactions. It exposes functions to gather transaction information, simulate transactions and apply overrides such as faking approvals and token balances.

Integration

In order to use this package you will need to add this line in your package.json using the npm as follows:

    npm i @lifi/tenderlysim

Example usage - Simulate a diamond call

  const quote = await http()
    .get<LiFiStep>(
      'https://li.quest/v1/quote?fromChain=POL&fromAmount=1000000&fromToken=USDC&fromAddress=0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0&toChain=POL&toToken=DAI&integrator=postman&slippage=0.03'
    )
    .then((q) => q.data)

  const config: TenderlyConfig = {
    accessKey: '---',
    user: 'LiFi',
    project: 'simulate',
  }

  logger().info(quote)
  const sim = await simulate(config)(
    {
      fromToken: quote.action.fromToken.address,
      toToken: quote.action.toToken.address,
      fromChain: quote.action.fromChainId,
      fromAmount: BigInt(quote.action.fromAmount),
      transactionRequest: quote.transactionRequest!,
    },
    {
      senderTokenBalanceAndApproval: true,
      senderNativeBalance: false,
    }
  )

which results in the following response:

{
  "result": "WORKED",
  "simulation": {
    "id": "191d2b0b-e92f-46fc-809a-3edb089a3dc8",
    "project_id": "f7c3f141-bf2e-4e27-bb24-d4f5c355455a",
    "owner_id": "367f1f0a-a61e-4397-b4d1-1222ffa42777",
    "network_id": "137",
    "block_number": 60500475,
    "transaction_index": 0,
    "from": "0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0",
    "to": "0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE",
    "input": "0x4666fc809022dcd5929a421d9df95e5be8c5a00fa845c320b876f6f58ff76398626e8b9700000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000552008c0f6870c2f77e5cc1d2eb9bdff03e30ea00000000000000000000000000000000000000000000000000d76664c066ba77a00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000007706f73746d616e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a3078303030303030303030303030303030303030303030303030303030303030303030303030303030300000000000000000000000000000000000000000000000000000000000000000000046b3fdf7b5cde91ac049936bf0bdb12c5d22202e00000000000000000000000046b3fdf7b5cde91ac049936bf0bdb12c5d22202e0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c33590000000000000000000000008f3cf7ad23cd3cadbd9735aff958023239c6a06300000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001442646478b0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c335900000000000000000000000000000000000000000000000000000000000f42400000000000000000000000008f3cf7ad23cd3cadbd9735aff958023239c6a0630000000000000000000000000000000000000000000000000d76664c066ba77a0000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000042023c499c542cef5e3811e1192ce70d8cc03d5c335901ffff01bc8f3da0bd42e1f2509cd8671ce7c7e5f7fd39c8011231deb6f5749ef6ce6943a275a1d3e7486f4eae00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "gas": 640103,
    "gas_price": "33000000036",
    "gas_used": 368375,
    "value": "0",
    "method": "swapTokensSingleV3ERC20ToERC20",
    "status": true,
    "access_list": null,
    "queue_origin": "",
    "block_header": {
      "number": "0x39b29fb",
      "hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "parentHash": "0x5a70a6bf770a0c8cdfb96bd5f0555e9f98a33e73afaeb3d36415b7c995392c62",
      "sha3Uncles": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "transactionsRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "receiptsRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
      "timestamp": "0x66ba08fc",
      "difficulty": "0x17",
      "gasLimit": "0x1c78737",
      "gasUsed": "0x79aa04",
      "miner": "0x0000000000000000000000000000000000000000",
      "extraData": "0xd78301030683626f7288676f312e32322e36856c696e75780000000000000000f87580f872c0c0c0c0c0c0c103c0c0c108c180c0c0c0c0c10cc101c110c0c111c0c0c115c116c113c117c119c11ac11bc11cc11dc118c11fc120c121c0c123c10fc0c122c127c0c129c0c101c0c12dc12ec0c128c131c0c133c20a34c0c0c137c138c0c0c0c0c125c135c13fc0c0c20c35c0c0c0c132c0fefbb33b097ed70b4eb69b2c51eac3273421ffb0892e7a746ea24b1a350da78348db1d29b0371bec11071dcda93d033d27a7aed08e2d5900d6a0d0b0729fc3bf00",
      "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "nonce": "0x0000000000000000",
      "baseFeePerGas": "0x1",
      "size": "0x0",
      "totalDifficulty": "0x0",
      "uncles": null,
      "transactions": null
    },
    "state_overrides": {
      "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359": {
        "storage": {
          "0x1b97ad081d0128f22397aee12eada728ac24d30fb68803f99829a39e3486bf47": "0x00000000000000000000000000000000000000000000000000000000000f4240",
          "0xb26e7f10e47fab21d4150c3b04278a58e182f70019f420f00f371a8fb881fe15": "0x00000000000000000000000000000000000000000000000000000000000f4240"
        }
      }
    },
    "deposit_tx": false,
    "system_tx": false,
    "nonce": 4852,
    "addresses": [
      "0x552008c0f6870c2f77e5cc1d2eb9bdff03e30ea0",
      "0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae",
      "0x31a9b1835864706af10103b31ea2b79bdb995f5f",
      "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",
      "0x235ae97b28466db30469b89a9fe4cff0659f82cb",
      "0x46b3fdf7b5cde91ac049936bf0bdb12c5d22202e",
      "0x8f3cf7ad23cd3cadbd9735aff958023239c6a063",
      "0x490e379c9cff64944be82b849f8fd5972c7999a7",
      "0xbc8f3da0bd42e1f2509cd8671ce7c7e5f7fd39c8",
      "0x6394c365fd17fb316c34ba60610067abdf88a7b1",
      "0x411b0facc3489691f28ad58c47006af5e3ab3a28"
    ],
    "contract_ids": [
      "eth:137:0x552008c0f6870c2f77e5cc1d2eb9bdff03e30ea0",
      "eth:137:0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae",
      "eth:137:0x31a9b1835864706af10103b31ea2b79bdb995f5f",
      "eth:137:0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",
      "eth:137:0x235ae97b28466db30469b89a9fe4cff0659f82cb",
      "eth:137:0x46b3fdf7b5cde91ac049936bf0bdb12c5d22202e",
      "eth:137:0x8f3cf7ad23cd3cadbd9735aff958023239c6a063",
      "eth:137:0x490e379c9cff64944be82b849f8fd5972c7999a7",
      "eth:137:0xbc8f3da0bd42e1f2509cd8671ce7c7e5f7fd39c8",
      "eth:137:0x6394c365fd17fb316c34ba60610067abdf88a7b1",
      "eth:137:0x411b0facc3489691f28ad58c47006af5e3ab3a28"
    ],
    "shared": false,
    "created_at": "2024-08-12T13:07:09.414383789Z"
  },
  "link": "https://dashboard.tenderly.co/LiFi/simulate/simulator/191d2b0b-e92f-46fc-809a-3edb089a3dc8"
}

Development

Update supported Chains

The supported chains have to be matched between the chains Tenderly supports and the chain LI.FI has types for.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 7