The Spanning Demo App is live! Check it out here: https://demo.spanning.network/
We have also published the open-source demo code and related JavaScript utilities.
Gas Profiling
Methodology
Solc version: 0.8.14 | Optimizer enabled: true | Runs: 1000 |
Block limit: 30000000 gas | 25 gwei/gas | 13.44 usd/avax |
Spanning Requests
Spanning Requests don't change any state on the blockchain. Most of the gas cost of a Spanning Request is determined based on the size of the request payload
that must be written to the SpanningRequest event log.
Contract | Method | Min | Max | Avg | # calls | usd (avg) |
---|---|---|---|---|---|---|
SpanningDelegate | makeRequest | 91291 | 170119 | 113097 | 22 | 0.04 |
Spanning ERC20
Contract | Method | Min | Max | Avg | # calls | usd (avg) |
---|---|---|---|---|---|---|
MockSpanningERC20 | approve | 51443 | 68543 | 53886 | 14 | 0.02 |
MockSpanningERC20 | approve | 53261 | 53273 | 53267 | 4 | 0.02 |
MockSpanningERC20 | burn | - | - | 51995 | 2 | 0.02 |
MockSpanningERC20 | decreaseAllowance | - | - | 54951 | 2 | 0.02 |
MockSpanningERC20 | decreaseAllowance | - | - | 56804 | 2 | 0.02 |
MockSpanningERC20 | increaseAllowance | - | - | 56800 | 2 | 0.02 |
MockSpanningERC20 | increaseAllowance | - | - | 54956 | 2 | 0.02 |
MockSpanningERC20 | mint | 52004 | 86204 | 59333 | 14 | 0.02 |
MockSpanningERC20 | renounceOwnership | - | - | 38377 | 1 | 0.01 |
MockSpanningERC20 | transfer | 73110 | 73765 | 73438 | 4 | 0.02 |
MockSpanningERC20 | transfer | - | - | 58481 | 2 | 0.02 |
MockSpanningERC20 | transferFrom | - | - | 79404 | 2 | 0.03 |
MockSpanningERC20 | transferFrom | - | - | 75691 | 2 | 0.03 |
MockSpanningERC20 | transferOwnership | - | - | 43654 | 1 | 0.01 |
MockSpanningERC20Container | duringTokenApprove | - | - | 22316 | 2 | 0.01 |
MockSpanningERC20Container | duringTokenBurn | - | - | 22314 | 2 | 0.01 |
MockSpanningERC20Container | duringTokenMint | - | - | 22315 | 2 | 0.01 |
MockSpanningERC20Container | duringTokenTransfer | - | - | 22314 | 2 | 0.01 |
MockSpanningERC20Container | updateDelegate | - | - | 43278 | 4 | 0.01 |
Spanning ERC721
Contract | Method | Min | Max | Avg | # calls | usd (avg) |
---|---|---|---|---|---|---|
MockSpanningERC721 | approve | - | - | 73228 | 2 | 0.02 |
MockSpanningERC721 | approve | - | - | 55277 | 2 | 0.02 |
MockSpanningERC721 | burn | - | - | 57356 | 2 | 0.02 |
MockSpanningERC721 | mint | 67898 | 84998 | 76445 | 8 | 0.03 |
MockSpanningERC721 | safeMint | - | - | 90811 | 2 | 0.03 |
MockSpanningERC721 | safeTransferFrom | 89590 | 115894 | 102742 | 4 | 0.03 |
MockSpanningERC721 | safeTransferFrom | - | - | 90296 | 2 | 0.03 |
MockSpanningERC721 | safeTransferFrom | - | - | 80969 | 2 | 0.03 |
MockSpanningERC721 | safeTransferFrom | - | - | 86517 | 2 | 0.03 |
MockSpanningERC721 | setApprovalForAll | - | - | 58162 | 2 | 0.02 |
MockSpanningERC721 | setApprovalForAll | 77515 | 78217 | 77866 | 4 | 0.03 |
MockSpanningERC721 | transferFrom | - | - | 91627 | 2 | 0.03 |
MockSpanningERC721Enumerable | burn | - | - | 89065 | 2 | 0.03 |
MockSpanningERC721Enumerable | mint | 117314 | 162726 | 140020 | 4 | 0.05 |
MockSpanningERC721Enumerable | transferFrom | - | - | 125036 | 2 | 0.04 |
MockSpanningERC721Pausable | mint | - | - | 87134 | 2 | 0.03 |
MockSpanningERC721Pausable | pause | - | - | 44666 | 2 | 0.02 |
Spanning ERC1155
Contract | Method | Min | Max | Avg | # calls | usd (avg) |
---|---|---|---|---|---|---|
MockSpanningERC1155 | burn | - | - | 51265 | 4 | 0.02 |
MockSpanningERC1155 | burnBatch | - | - | 68900 | 2 | 0.02 |
MockSpanningERC1155 | mint | 54756 | 80365 | 64161 | 68 | 0.02 |
MockSpanningERC1155 | mintBatch | 127448 | 135425 | 128246 | 20 | 0.04 |
MockSpanningERC1155 | safeBatchTransferFrom | - | - | 154705 | 2 | 0.05 |
MockSpanningERC1155 | safeBatchTransferFrom | - | - | 150966 | 2 | 0.05 |
MockSpanningERC1155 | safeTransferFrom | 73955 | 91031 | 82493 | 4 | 0.03 |
MockSpanningERC1155 | safeTransferFrom | 82539 | 87327 | 84933 | 4 | 0.03 |
MockSpanningERC1155 | setApprovalForAll | - | - | 69135 | 4 | 0.02 |
MockSpanningERC1155 | setApprovalForAll | 66621 | 67312 | 67016 | 14 | 0.02 |
Deployments
Deployments | Min | Max | Avg | % of limit | usd (avg) |
---|---|---|---|---|---|
MockSpanningERC1155 | 3164246 | 3164630 | 3164603 | 10.5 % | 1.06 |
MockSpanningERC1155InvalidReceiver | - | - | 274635 | 0.9 % | 0.09 |
MockSpanningERC1155Receiver | - | - | 289755 | 1 % | 0.10 |
MockSpanningERC20 | - | - | 2221311 | 7.4 % | 0.75 |
MockSpanningERC20Container | - | - | 1616840 | 5.4 % | 0.54 |
MockSpanningERC721 | - | - | 2623704 | 8.7 % | 0.88 |
MockSpanningERC721Enumerable | - | - | 2816896 | 9.4 % | 0.95 |
MockSpanningERC721Pausable | - | - | 2782864 | 9.3 % | 0.94 |
MockSpanningERC721Receiver | - | - | 164173 | 0.5 % | 0.06 |
SpanningAddress | - | - | 261971 | 0.9 % | 0.09 |
SpanningDelegate | 908694 | 908790 | 908783 | 3 % | 0.31 |
SpanningERC20MockUpgradeable | - | - | 1705859 | 5.7 % | 0.57 |
SpanningERC721MockUpgradeable | - | - | 2384301 | 7.9 % | 0.80 |