Gas Benchmarks
The gas usage of the Lockup protocol is not deterministic and varies by user. Calls to third-party contracts, such as ERC-20 tokens, may use an arbitrary amount of gas. The values in the table below are rough estimations on Ethereum mainnet - you shouldn't take them for granted. The gas usage may vary depending on the network.
Lockup Core
note
Please refer to the GitHub repository to view the code that generates these benchmarks.
Lockup Linear
Function | Gas Usage |
---|---|
burn | 15,694 |
cancel | 56,829 |
renounce | 19,381 |
createWithDurations (Broker fee set) (cliff not set) | 129,276 |
createWithDurations (Broker fee not set) (cliff not set) | 113,680 |
createWithDurations (Broker fee set) (cliff set) | 138,071 |
createWithDurations (Broker fee not set) (cliff set) | 133,273 |
createWithTimestamps (Broker fee set) (cliff not set) | 115,334 |
createWithTimestamps (Broker fee not set) (cliff not set) | 110,530 |
createWithTimestamps (Broker fee set) (cliff set) | 137,629 |
createWithTimestamps (Broker fee not set) (cliff set) | 132,827 |
withdraw (After End Time) (by Recipient) | 29,701 |
withdraw (Before End Time) (by Recipient) | 19,104 |
withdraw (After End Time) (by Anyone) | 24,799 |
withdraw (Before End Time) (by Anyone) | 19,002 |
Lockup Dynamic
Function | Gas Usage |
---|---|
burn | 15,716 |
cancel | 74,341 |
renounce | 39,007 |
createWithDurations (2 segments) (Broker fee set) | 200,602 |
createWithDurations (2 segments) (Broker fee not set) | 185,037 |
createWithTimestamps (2 segments) (Broker fee set) | 184,780 |
createWithTimestamps (2 segments) (Broker fee not set) | 180,015 |
withdraw (2 segments) (After End Time) (by Recipient) | 19,108 |
withdraw (2 segments) (Before End Time) (by Recipient) | 27,554 |
withdraw (2 segments) (After End Time) (by Anyone) | 14,239 |
withdraw (2 segments) (Before End Time) (by Anyone) | 27,485 |
createWithDurations (10 segments) (Broker fee set) | 395,084 |
createWithDurations (10 segments) (Broker fee not set) | 390,326 |
createWithTimestamps (10 segments) (Broker fee set) | 385,125 |
createWithTimestamps (10 segments) (Broker fee not set) | 380,375 |
withdraw (10 segments) (After End Time) (by Recipient) | 14,295 |
withdraw (10 segments) (Before End Time) (by Recipient) | 32,545 |
withdraw (10 segments) (After End Time) (by Anyone) | 14,246 |
withdraw (10 segments) (Before End Time) (by Anyone) | 32,476 |
createWithDurations (100 segments) (Broker fee set) | 2,740,781 |
createWithDurations (100 segments) (Broker fee not set) | 2,736,987 |
createWithTimestamps (100 segments) (Broker fee set) | 2,642,946 |
createWithTimestamps (100 segments) (Broker fee not set) | 2,639,185 |
withdraw (100 segments) (After End Time) (by Recipient) | 14,295 |
withdraw (100 segments) (Before End Time) (by Recipient) | 88,968 |
withdraw (100 segments) (After End Time) (by Anyone) | 14,226 |
withdraw (100 segments) (Before End Time) (by Anyone) | 88,899 |
Lockup Tranched
Function | Gas Usage |
---|---|
burn | 15,738 |
cancel | 63,994 |
renounce | 26,501 |
createWithDurations (2 tranches) (Broker fee set) | 199,536 |
createWithDurations (2 tranches) (Broker fee not set) | 183,969 |
createWithTimestamps (2 tranches) (Broker fee set) | 189,410 |
createWithTimestamps (2 tranches) (Broker fee not set) | 183,945 |
withdraw (2 tranches) (After End Time) (by Recipient) | 20,100 |
withdraw (2 tranches) (Before End Time) (by Recipient) | 14,797 |
withdraw (2 tranches) (After End Time) (by Anyone) | 15,199 |
withdraw (2 tranches) (Before End Time) (by Anyone) | 14,695 |
createWithDurations (10 tranches) (Broker fee set) | 388,757 |
createWithDurations (10 tranches) (Broker fee not set) | 383,998 |
createWithTimestamps (10 tranches) (Broker fee set) | 397,102 |
createWithTimestamps (10 tranches) (Broker fee not set) | 391,750 |
withdraw (10 tranches) (After End Time) (by Recipient) | 17,855 |
withdraw (10 tranches) (Before End Time) (by Recipient) | 19,616 |
withdraw (10 tranches) (After End Time) (by Anyone) | 17,760 |
withdraw (10 tranches) (Before End Time) (by Anyone) | 19,514 |
createWithDurations (100 tranches) (Broker fee set) | 2,672,918 |
createWithDurations (100 tranches) (Broker fee not set) | 2,668,643 |
createWithTimestamps (100 tranches) (Broker fee set) | 2,738,297 |
createWithTimestamps (100 tranches) (Broker fee not set) | 2,734,635 |
withdraw (100 tranches) (After End Time) (by Recipient) | 46,746 |
withdraw (100 tranches) (Before End Time) (by Recipient) | 73,989 |
withdraw (100 tranches) (After End Time) (by Anyone) | 46,644 |
withdraw (100 tranches) (Before End Time) (by Anyone) | 73,887 |
Lockup Periphery
note
Please refer to the GitHub repository to view the code that generates these benchmarks.
Batch Lockup
Function | Lockup Type | Segments/Tranches | Batch Size | Gas Usage |
---|---|---|---|---|
createWithDurationsLL | Lockup Linear | N/A | 5 | 771,013 |
createWithTimestampsLL | Lockup Linear | N/A | 5 | 732,772 |
createWithDurationsLD | Lockup Dynamic | 24 | 5 | 3,951,599 |
createWithTimestampsLD | Lockup Dynamic | 24 | 5 | 3,815,274 |
createWithDurationsLT | Lockup Tranched | 24 | 5 | 3,862,651 |
createWithTimestampsLT | Lockup Tranched | 24 | 5 | 3,744,523 |
createWithDurationsLL | Lockup Linear | N/A | 10 | 1,417,180 |
createWithTimestampsLL | Lockup Linear | N/A | 10 | 1,414,247 |
createWithDurationsLD | Lockup Dynamic | 24 | 10 | 7,819,165 |
createWithTimestampsLD | Lockup Dynamic | 24 | 10 | 7,585,616 |
createWithDurationsLT | Lockup Tranched | 24 | 10 | 7,632,114 |
createWithTimestampsLT | Lockup Tranched | 24 | 10 | 7,444,115 |
createWithDurationsLL | Lockup Linear | N/A | 20 | 2,783,510 |
createWithTimestampsLL | Lockup Linear | N/A | 20 | 2,779,081 |
createWithDurationsLD | Lockup Dynamic | 24 | 20 | 15,617,207 |
createWithTimestampsLD | Lockup Dynamic | 24 | 20 | 15,131,248 |
createWithDurationsLT | Lockup Tranched | 24 | 20 | 15,211,892 |
createWithTimestampsLT | Lockup Tranched | 24 | 20 | 14,846,363 |
createWithDurationsLL | Lockup Linear | N/A | 30 | 4,143,337 |
createWithTimestampsLL | Lockup Linear | N/A | 30 | 4,148,585 |
createWithDurationsLD | Lockup Dynamic | 24 | 30 | 23,460,912 |
createWithTimestampsLD | Lockup Dynamic | 24 | 30 | 22,697,560 |
createWithDurationsLT | Lockup Tranched | 24 | 30 | 22,794,686 |
createWithTimestampsLT | Lockup Tranched | 24 | 30 | 22,267,335 |
createWithDurationsLL | Lockup Linear | N/A | 50 | 6,871,104 |
createWithTimestampsLL | Lockup Linear | N/A | 50 | 6,893,797 |
createWithDurationsLD | Lockup Dynamic | 12 | 50 | 22,990,726 |
createWithTimestampsLD | Lockup Dynamic | 12 | 50 | 22,355,943 |
createWithDurationsLT | Lockup Tranched | 12 | 50 | 22,413,554 |
createWithTimestampsLT | Lockup Tranched | 12 | 50 | 22,006,169 |