0.0.11 • Published 8 months ago

@lifi/tenderlysim v0.0.11

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
8 months ago

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.

0.0.17

6 months ago

0.0.16

6 months ago

0.0.16-beta.0

6 months ago

0.0.15

6 months ago

0.0.14-beta.3

7 months ago

0.0.14

8 months ago

0.0.14-beta.2

8 months ago

0.0.14-beta.1

8 months ago

0.0.14-beta.0

8 months ago

0.0.13

8 months ago

0.0.12

8 months ago

0.0.11

8 months ago

0.0.11-beta.0

8 months ago

0.0.10

8 months ago

0.0.9

9 months ago

0.0.9-beta.2

9 months ago

0.0.9-beta.0

9 months ago

0.0.8

9 months ago

0.0.4-beta.3

9 months ago

0.0.7

9 months ago

0.0.7-beta.0

9 months ago

0.0.4-beta.2

9 months ago

0.0.6

9 months ago

0.0.4-beta.1

9 months ago

0.0.6-beta.0

9 months ago

0.0.5

9 months ago

0.0.4-beta.0

9 months ago

0.0.3

9 months ago

0.0.2

10 months ago

0.0.2-beta.5

10 months ago

0.0.2-beta.1

10 months ago

0.0.1

10 months ago