@keep-network/tbtc-v2 1.6.0-dev.0 → 1.6.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/artifacts/BLS.json +1 -1
  2. package/artifacts/Bank.json +3 -3
  3. package/artifacts/BeaconAuthorization.json +1 -1
  4. package/artifacts/BeaconDkg.json +1 -1
  5. package/artifacts/BeaconDkgValidator.json +1 -1
  6. package/artifacts/BeaconInactivity.json +1 -1
  7. package/artifacts/BeaconSortitionPool.json +3 -3
  8. package/artifacts/Bridge.json +5 -5
  9. package/artifacts/BridgeGovernance.json +2 -2
  10. package/artifacts/BridgeGovernanceParameters.json +2 -2
  11. package/artifacts/Deposit.json +2 -2
  12. package/artifacts/DepositSweep.json +2 -2
  13. package/artifacts/DonationVault.json +3 -3
  14. package/artifacts/EcdsaDkgValidator.json +1 -1
  15. package/artifacts/EcdsaInactivity.json +1 -1
  16. package/artifacts/EcdsaSortitionPool.json +3 -3
  17. package/artifacts/Fraud.json +2 -2
  18. package/artifacts/KeepRegistry.json +1 -1
  19. package/artifacts/KeepStake.json +2 -2
  20. package/artifacts/KeepToken.json +2 -2
  21. package/artifacts/KeepTokenStaking.json +1 -1
  22. package/artifacts/LightRelay.json +18 -18
  23. package/artifacts/LightRelayMaintainerProxy.json +8 -8
  24. package/artifacts/MaintainerProxy.json +19 -19
  25. package/artifacts/MovingFunds.json +2 -2
  26. package/artifacts/NuCypherStakingEscrow.json +1 -1
  27. package/artifacts/NuCypherToken.json +2 -2
  28. package/artifacts/RandomBeacon.json +2 -2
  29. package/artifacts/RandomBeaconChaosnet.json +2 -2
  30. package/artifacts/RandomBeaconGovernance.json +2 -2
  31. package/artifacts/Redemption.json +2 -2
  32. package/artifacts/ReimbursementPool.json +2 -2
  33. package/artifacts/T.json +2 -2
  34. package/artifacts/TBTC.json +3 -3
  35. package/artifacts/TBTCToken.json +3 -3
  36. package/artifacts/TBTCVault.json +23 -23
  37. package/artifacts/TokenStaking.json +1 -1
  38. package/artifacts/TokenholderGovernor.json +9 -9
  39. package/artifacts/TokenholderTimelock.json +8 -8
  40. package/artifacts/VendingMachine.json +3 -3
  41. package/artifacts/VendingMachineKeep.json +1 -1
  42. package/artifacts/VendingMachineNuCypher.json +1 -1
  43. package/artifacts/VendingMachineV2.json +3 -3
  44. package/artifacts/VendingMachineV3.json +3 -3
  45. package/artifacts/WalletCoordinator.json +5 -5
  46. package/artifacts/WalletRegistry.json +5 -5
  47. package/artifacts/WalletRegistryGovernance.json +2 -2
  48. package/artifacts/Wallets.json +2 -2
  49. package/artifacts/solcInputs/{6cc4a0b423ac26dbfcae644b54bee6ae.json → d2d7e276da75d7184610fe11a4a103b7.json} +4 -1
  50. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  51. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  52. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  53. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  54. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  55. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  56. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  57. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  58. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  59. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  60. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  61. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  62. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  63. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  64. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  65. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  66. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  67. package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
  68. package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
  69. package/build/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.dbg.json +1 -1
  70. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  71. package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
  72. package/build/contracts/l2/L2WormholeGateway.sol/IWormholeTokenBridge.dbg.json +1 -1
  73. package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
  74. package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +2 -15
  75. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  76. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
  77. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
  78. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
  79. package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
  80. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  81. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  82. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  83. package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
  84. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  85. package/contracts/l2/L2WormholeGateway.sol +7 -27
  86. package/deploy/01_deploy_light_relay.ts +3 -0
  87. package/deploy/09_deploy_bridge_governance.ts +5 -2
  88. package/deploy/19_authorize_spv_maintainer_in_bridge.ts +3 -3
  89. package/deploy/24_transfer_tbtc_ownership.ts +1 -1
  90. package/deploy/28_authorize_bridge_in_reimbursement_pool.ts +1 -1
  91. package/deploy/40_authorize_light_relay_maintainer_proxy_in_reimbursement_pool.ts +1 -1
  92. package/deploy/41_authorize_light_relay_maintainer_proxy_in_light_relay.ts +3 -1
  93. package/export/artifacts/@keep-network/bitcoin-spv-sol/contracts/BTCUtils.sol/BTCUtils.json +20 -20
  94. package/export/artifacts/@keep-network/ecdsa/contracts/EcdsaDkgValidator.sol/EcdsaDkgValidator.json +1986 -1986
  95. package/export/artifacts/@keep-network/ecdsa/contracts/libraries/EcdsaDkg.sol/EcdsaDkg.json +20 -20
  96. package/export/artifacts/@keep-network/ecdsa/contracts/libraries/EcdsaInactivity.sol/EcdsaInactivity.json +1836 -1836
  97. package/export/artifacts/@keep-network/random-beacon/contracts/ReimbursementPool.sol/ReimbursementPool.json +545 -545
  98. package/export/artifacts/@keep-network/sortition-pools/contracts/Chaosnet.sol/Chaosnet.json +506 -506
  99. package/export/artifacts/@keep-network/sortition-pools/contracts/Rewards.sol/Rewards.json +23 -23
  100. package/export/artifacts/@keep-network/sortition-pools/contracts/SortitionPool.sol/SortitionPool.json +2456 -2456
  101. package/export/artifacts/@keep-network/sortition-pools/contracts/SortitionTree.sol/SortitionTree.json +465 -465
  102. package/export/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +568 -568
  103. package/export/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +603 -603
  104. package/export/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1001 -1001
  105. package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +1877 -1877
  106. package/export/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +654 -654
  107. package/export/artifacts/@thesis/solidity-contracts/contracts/token/ERC20WithPermit.sol/ERC20WithPermit.json +2534 -2534
  108. package/export/artifacts/@thesis/solidity-contracts/contracts/token/MisfundRecovery.sol/MisfundRecovery.json +736 -736
  109. package/export/artifacts/contracts/bank/Bank.sol/Bank.json +1872 -1872
  110. package/export/artifacts/contracts/bridge/Bridge.sol/Bridge.json +7061 -7061
  111. package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +1257 -1257
  112. package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +972 -972
  113. package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +1122 -1122
  114. package/export/artifacts/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.json +5403 -5403
  115. package/export/artifacts/contracts/l2/L2TBTC.sol/L2TBTC.json +2961 -2961
  116. package/export/artifacts/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +3599 -4067
  117. package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +2393 -2393
  118. package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +1921 -1921
  119. package/export/artifacts/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.json +1013 -1013
  120. package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +1874 -1874
  121. package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +8094 -8094
  122. package/export/artifacts/contracts/test/GoerliLightRelay.sol/GoerliLightRelay.json +1923 -1923
  123. package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +129 -129
  124. package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +2046 -2046
  125. package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +353 -353
  126. package/export/artifacts/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +12024 -0
  127. package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +568 -568
  128. package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +2291 -2291
  129. package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +1698 -1698
  130. package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +189 -189
  131. package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +1448 -1448
  132. package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2847 -2847
  133. package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +858 -858
  134. package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +3476 -3476
  135. package/export/deploy/01_deploy_light_relay.js +3 -0
  136. package/export/deploy/09_deploy_bridge_governance.js +4 -2
  137. package/export/deploy/19_authorize_spv_maintainer_in_bridge.js +3 -3
  138. package/export/deploy/24_transfer_tbtc_ownership.js +1 -1
  139. package/export/deploy/28_authorize_bridge_in_reimbursement_pool.js +1 -1
  140. package/export/deploy/40_authorize_light_relay_maintainer_proxy_in_reimbursement_pool.js +1 -1
  141. package/export/deploy/41_authorize_light_relay_maintainer_proxy_in_light_relay.js +7 -3
  142. package/export/hardhat.config.js +23 -0
  143. package/export/typechain/SepoliaLightRelay.js +2 -0
  144. package/export/typechain/factories/L2WormholeGateway__factory.js +1 -14
  145. package/export/typechain/factories/SepoliaLightRelay__factory.js +535 -0
  146. package/export/typechain/factories/WormholeBridgeStub__factory.js +1 -1
  147. package/export/typechain/index.js +3 -1
  148. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ad2c4f91b13417738dc63e06bfaa5d8f.json"
3
+ "buildInfo": "../../../build-info/c4339f1d03c92248ba145e4a93c303ef.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ad2c4f91b13417738dc63e06bfaa5d8f.json"
3
+ "buildInfo": "../../../build-info/c4339f1d03c92248ba145e4a93c303ef.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ad2c4f91b13417738dc63e06bfaa5d8f.json"
3
+ "buildInfo": "../../../build-info/c4339f1d03c92248ba145e4a93c303ef.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ad2c4f91b13417738dc63e06bfaa5d8f.json"
3
+ "buildInfo": "../../../build-info/c4339f1d03c92248ba145e4a93c303ef.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ad2c4f91b13417738dc63e06bfaa5d8f.json"
3
+ "buildInfo": "../../../build-info/c4339f1d03c92248ba145e4a93c303ef.json"
4
4
  }
@@ -281,14 +281,17 @@ contract L2WormholeGateway is
281
281
  /// - The receiver of the canonical tBTC should be abi-encoded in the
282
282
  /// payload.
283
283
  /// - The receiver of the canonical tBTC must not be the zero address.
284
+ ///
284
285
  /// The Wormhole Token Bridge contract has protection against redeeming
285
286
  /// the same VAA again. When a Token Bridge VAA is redeemed, its
286
287
  /// message body hash is stored in a map. This map is used to check
287
288
  /// whether the hash has already been set in this map. For this reason,
288
- /// this function does not have to be nonReentrant.
289
+ /// this function does not have to be nonReentrant in theory. However,
290
+ /// to make this function non-dependent on Wormhole Bridge implementation,
291
+ /// we are making it nonReentrant anyway.
289
292
  /// @param encodedVm A byte array containing a Wormhole VAA signed by the
290
293
  /// guardians.
291
- function receiveTbtc(bytes calldata encodedVm) external {
294
+ function receiveTbtc(bytes calldata encodedVm) external nonReentrant {
292
295
  // ITokenBridge.completeTransferWithPayload completes a contract-controlled
293
296
  // transfer of an ERC20 token. Calling this function is not enough to
294
297
  // ensure L2WormholeGateway received Wormhole tBTC representation.
@@ -318,40 +321,17 @@ contract L2WormholeGateway is
318
321
  if (mintedAmount + amount > mintingLimit) {
319
322
  bridgeToken.safeTransfer(receiver, amount);
320
323
  } else {
321
- // The function is non-reentrant given bridge.completeTransferWithPayload
322
- // call that does not allow to use the same VAA again.
324
+ // The function is non-reentrant.
323
325
  // slither-disable-next-line reentrancy-benign
324
326
  mintedAmount += amount;
325
327
  tbtc.mint(receiver, amount);
326
328
  }
327
329
 
328
- // The function is non-reentrant given bridge.completeTransferWithPayload
329
- // call that does not allow to use the same VAA again.
330
+ // The function is non-reentrant.
330
331
  // slither-disable-next-line reentrancy-events
331
332
  emit WormholeTbtcReceived(receiver, amount);
332
333
  }
333
334
 
334
- /// @notice Allows to deposit Wormhole tBTC token in exchange for canonical
335
- /// tBTC. Useful in a situation when user received wormhole tBTC
336
- /// instead of canonical tBTC. One example of such situation is
337
- /// when the minting limit was exceeded but the user minted anyway.
338
- /// @dev Requirements:
339
- /// - The sender must have at least `amount` of the Wormhole tBTC and
340
- /// it has to be approved for L2WormholeGateway.
341
- /// - The minting limit must allow for minting the given amount.
342
- /// @param amount The amount of Wormhole tBTC to deposit.
343
- function depositWormholeTbtc(uint256 amount) external {
344
- require(
345
- mintedAmount + amount <= mintingLimit,
346
- "Minting limit exceeded"
347
- );
348
-
349
- emit WormholeTbtcDeposited(msg.sender, amount);
350
- mintedAmount += amount;
351
- bridgeToken.safeTransferFrom(msg.sender, address(this), amount);
352
- tbtc.mint(msg.sender, amount);
353
- }
354
-
355
335
  /// @notice Lets the governance to update the tBTC gateway address on the
356
336
  /// chain with the given Wormhole ID.
357
337
  /// @dev Use toWormholeAddress function to convert between Ethereum and
@@ -9,6 +9,9 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
9
9
  if (hre.network.name === "goerli") {
10
10
  return "GoerliLightRelay"
11
11
  }
12
+ if (hre.network.name === "sepolia") {
13
+ return "SepoliaLightRelay"
14
+ }
12
15
  if (hre.network.name === "system_tests") {
13
16
  return "SystemTestRelay"
14
17
  }
@@ -17,8 +17,11 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
17
17
  }
18
18
  )
19
19
 
20
- // 60 seconds for Goerli. 48 hours otherwise.
21
- const GOVERNANCE_DELAY = hre.network.name === "goerli" ? 60 : 172800
20
+ // 60 seconds for Goerli/Sepolia. 48 hours otherwise.
21
+ const GOVERNANCE_DELAY =
22
+ hre.network.name === "goerli" || hre.network.name === "sepolia"
23
+ ? 60
24
+ : 172800
22
25
 
23
26
  const bridgeGovernance = await deploy("BridgeGovernance", {
24
27
  contract: "BridgeGovernance",
@@ -21,9 +21,9 @@ func.tags = ["AuthorizeSpvMaintainer"]
21
21
  func.dependencies = ["Bridge"]
22
22
 
23
23
  // SPV maintainer can submit SPV proofs to the Bridge. We authorize spvMaintainer
24
- // account for Hardhat network (unit tests) and Goerli (testnet) but we DO NOT
25
- // want to authorize it for Mainnet deployment. SPV maintainer will be authorized
26
- // separately by the Governance when sweeping will be activated.
24
+ // account for Hardhat network (unit tests) and Goerli/Sepolia (testnets) but we
25
+ // DO NOT want to authorize it for Mainnet deployment. SPV maintainer will be
26
+ // authorized separately by the Governance when sweeping will be activated.
27
27
  //
28
28
  // Note that at this point MaintainerProxy contract is already authorized in the
29
29
  // Bridge (see AuthorizeMaintainerProxyInBridge tag).
@@ -8,7 +8,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
8
8
  // In unit tests we cover VendingMachine, VendingMachineV2, and TBTCVault
9
9
  // contracts. All those tests require minting TBTC. To make the test setup
10
10
  // easier, we leave the responsibility of transferring the TBTC ownership
11
- // to the test. In system tests and on Goerli, TBTCVault is the owner of TBTC
11
+ // to the test. In system tests and on testnet, TBTCVault is the owner of TBTC
12
12
  // token, just like on v1.0 mainnet, after transferring the ownership from the
13
13
  // VendingMachine.
14
14
  if (hre.network.name !== "hardhat") {
@@ -24,6 +24,6 @@ func.dependencies = ["ReimbursementPool", "Bridge"]
24
24
  // On mainnet, the ReimbursementPool ownership is passed to the Threshold
25
25
  // Council / DAO and that address is not controlled by the dev team.
26
26
  // Hence, this step can be executed only for non-mainnet networks such as
27
- // Hardhat (unit tests) and Goerli (testnet).
27
+ // Hardhat (unit tests) and Goerli or Sepolia (testnets).
28
28
  func.skip = async (hre: HardhatRuntimeEnvironment): Promise<boolean> =>
29
29
  hre.network.name === "mainnet"
@@ -26,6 +26,6 @@ func.dependencies = ["ReimbursementPool", "LightRelayMaintainerProxy"]
26
26
  // On mainnet, the ReimbursementPool ownership is passed to the Threshold
27
27
  // Council / DAO and that address is not controlled by the dev team.
28
28
  // Hence, this step can be executed only for non-mainnet networks such as
29
- // Hardhat (unit tests) and Goerli (testnet).
29
+ // Hardhat (unit tests) and Goerli or Sepolia (testnets).
30
30
  func.skip = async (hre: HardhatRuntimeEnvironment): Promise<boolean> =>
31
31
  hre.network.name === "mainnet"
@@ -24,4 +24,6 @@ func.tags = ["AuthorizeLightRelayMaintainerProxyInLightRelay"]
24
24
  func.dependencies = ["LightRelay", "LightRelayMaintainerProxy"]
25
25
 
26
26
  func.skip = async (hre: HardhatRuntimeEnvironment): Promise<boolean> =>
27
- hre.network.name === "goerli" || hre.network.name === "system_tests"
27
+ hre.network.name === "goerli" ||
28
+ hre.network.name === "sepolia" ||
29
+ hre.network.name === "system_tests"
@@ -109,32 +109,32 @@
109
109
  {
110
110
  "ast": {
111
111
  "nodeType": "YulBlock",
112
- "src": "0:201:125",
112
+ "src": "0:201:126",
113
113
  "statements": [
114
114
  {
115
115
  "nodeType": "YulBlock",
116
- "src": "6:3:125",
116
+ "src": "6:3:126",
117
117
  "statements": []
118
118
  },
119
119
  {
120
120
  "body": {
121
121
  "nodeType": "YulBlock",
122
- "src": "123:76:125",
122
+ "src": "123:76:126",
123
123
  "statements": [
124
124
  {
125
125
  "nodeType": "YulAssignment",
126
- "src": "133:26:125",
126
+ "src": "133:26:126",
127
127
  "value": {
128
128
  "arguments": [
129
129
  {
130
130
  "name": "headStart",
131
131
  "nodeType": "YulIdentifier",
132
- "src": "145:9:125"
132
+ "src": "145:9:126"
133
133
  },
134
134
  {
135
135
  "kind": "number",
136
136
  "nodeType": "YulLiteral",
137
- "src": "156:2:125",
137
+ "src": "156:2:126",
138
138
  "type": "",
139
139
  "value": "32"
140
140
  }
@@ -142,16 +142,16 @@
142
142
  "functionName": {
143
143
  "name": "add",
144
144
  "nodeType": "YulIdentifier",
145
- "src": "141:3:125"
145
+ "src": "141:3:126"
146
146
  },
147
147
  "nodeType": "YulFunctionCall",
148
- "src": "141:18:125"
148
+ "src": "141:18:126"
149
149
  },
150
150
  "variableNames": [
151
151
  {
152
152
  "name": "tail",
153
153
  "nodeType": "YulIdentifier",
154
- "src": "133:4:125"
154
+ "src": "133:4:126"
155
155
  }
156
156
  ]
157
157
  },
@@ -161,24 +161,24 @@
161
161
  {
162
162
  "name": "headStart",
163
163
  "nodeType": "YulIdentifier",
164
- "src": "175:9:125"
164
+ "src": "175:9:126"
165
165
  },
166
166
  {
167
167
  "name": "value0",
168
168
  "nodeType": "YulIdentifier",
169
- "src": "186:6:125"
169
+ "src": "186:6:126"
170
170
  }
171
171
  ],
172
172
  "functionName": {
173
173
  "name": "mstore",
174
174
  "nodeType": "YulIdentifier",
175
- "src": "168:6:125"
175
+ "src": "168:6:126"
176
176
  },
177
177
  "nodeType": "YulFunctionCall",
178
- "src": "168:25:125"
178
+ "src": "168:25:126"
179
179
  },
180
180
  "nodeType": "YulExpressionStatement",
181
- "src": "168:25:125"
181
+ "src": "168:25:126"
182
182
  }
183
183
  ]
184
184
  },
@@ -188,13 +188,13 @@
188
188
  {
189
189
  "name": "headStart",
190
190
  "nodeType": "YulTypedName",
191
- "src": "92:9:125",
191
+ "src": "92:9:126",
192
192
  "type": ""
193
193
  },
194
194
  {
195
195
  "name": "value0",
196
196
  "nodeType": "YulTypedName",
197
- "src": "103:6:125",
197
+ "src": "103:6:126",
198
198
  "type": ""
199
199
  }
200
200
  ],
@@ -202,16 +202,16 @@
202
202
  {
203
203
  "name": "tail",
204
204
  "nodeType": "YulTypedName",
205
- "src": "114:4:125",
205
+ "src": "114:4:126",
206
206
  "type": ""
207
207
  }
208
208
  ],
209
- "src": "14:185:125"
209
+ "src": "14:185:126"
210
210
  }
211
211
  ]
212
212
  },
213
213
  "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}",
214
- "id": 125,
214
+ "id": 126,
215
215
  "language": "Yul",
216
216
  "name": "#utility.yul"
217
217
  }
@@ -219,7 +219,7 @@
219
219
  "immutableReferences": {},
220
220
  "linkReferences": {},
221
221
  "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x51 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x56E04EC EQ PUSH1 0x56 JUMPI DUP1 PUSH4 0x8CC71569 EQ PUSH1 0x71 JUMPI DUP1 PUSH4 0x8DB69E60 EQ PUSH1 0x79 JUMPI DUP1 PUSH4 0xD4258CA7 EQ PUSH1 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5F PUSH3 0x127500 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x5F PUSH2 0x7E0 DUP2 JUMP JUMPDEST PUSH1 0x5F PUSH1 0x0 NOT DUP2 JUMP JUMPDEST PUSH1 0x5F PUSH28 0xFFFF0000000000000000000000000000000000000000000000000000 DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 0xD8 0x5F GT 0xF6 0x4E 0xD4 0x4F 0xFB 0xA5 SWAP12 0xFC PUSH12 0x4A327F00D51E8E91CA784A04 DUP14 CALLDATACOPY 0x29 0xDB ADD 0xB3 PUSH32 0x64736F6C63430008110033000000000000000000000000000000000000000000 ",
222
- "sourceMap": "175:38691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;443:62;;485:20;443:62;;;;;168:25:125;;;156:2;141:18;443:62:0;;;;;;;534:53;;583:4;534:53;;616:104;;-1:-1:-1;;616:104:0;;339:97;;378:58;339:97;"
222
+ "sourceMap": "175:38691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;443:62;;485:20;443:62;;;;;168:25:126;;;156:2;141:18;443:62:0;;;;;;;534:53;;583:4;534:53;;616:104;;-1:-1:-1;;616:104:0;;339:97;;378:58;339:97;"
223
223
  },
224
224
  "gasEstimates": {
225
225
  "creation": {