@keep-network/tbtc-v2 1.7.0 → 1.7.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.
- package/artifacts/.chainId +1 -1
- package/artifacts/BLS.json +223 -0
- package/artifacts/Bank.json +50 -40
- package/artifacts/BeaconAuthorization.json +273 -0
- package/artifacts/BeaconDkg.json +241 -0
- package/artifacts/BeaconDkgValidator.json +501 -0
- package/artifacts/BeaconInactivity.json +151 -0
- package/artifacts/BeaconSortitionPool.json +1187 -0
- package/artifacts/Bridge.json +449 -32
- package/artifacts/BridgeGovernance.json +22 -22
- package/artifacts/BridgeGovernanceParameters.json +10 -10
- package/artifacts/Deposit.json +12 -12
- package/artifacts/DepositSweep.json +12 -12
- package/artifacts/DonationVault.json +17 -17
- package/artifacts/EcdsaDkgValidator.json +517 -0
- package/artifacts/EcdsaInactivity.json +156 -0
- package/artifacts/EcdsaSortitionPool.json +1187 -0
- package/artifacts/Fraud.json +12 -12
- package/artifacts/LightRelay.json +38 -38
- package/artifacts/LightRelayMaintainerProxy.json +31 -31
- package/artifacts/MaintainerProxy.json +44 -44
- package/artifacts/MovingFunds.json +12 -12
- package/artifacts/NuCypherToken.json +711 -0
- package/artifacts/RandomBeacon.json +3271 -0
- package/artifacts/RandomBeaconChaosnet.json +252 -0
- package/artifacts/RandomBeaconGovernance.json +3499 -0
- package/artifacts/Redemption.json +12 -12
- package/artifacts/RedemptionWatchtower.json +39 -39
- package/artifacts/ReimbursementPool.json +509 -0
- package/artifacts/T.json +1148 -0
- package/artifacts/TBTC.json +37 -36
- package/artifacts/TBTCToken.json +738 -0
- package/artifacts/TBTCVault.json +47 -47
- package/artifacts/Timelock.json +148 -148
- package/artifacts/TokenStaking.json +2117 -0
- package/artifacts/TokenholderGovernor.json +1795 -0
- package/artifacts/TokenholderTimelock.json +1058 -0
- package/artifacts/VendingMachine.json +35 -34
- package/artifacts/VendingMachineNuCypher.json +400 -0
- package/artifacts/VendingMachineV2.json +21 -21
- package/artifacts/VendingMachineV3.json +21 -21
- package/artifacts/WalletProposalValidator.json +12 -12
- package/artifacts/WalletRegistry.json +1962 -0
- package/artifacts/WalletRegistryGovernance.json +2863 -0
- package/artifacts/Wallets.json +12 -12
- package/artifacts/solcInputs/{be146ce112252bdda3a03de3614fbbf1.json → 2cb3f9e60e45f0ca528d3d5260ff3139.json} +31 -7
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/Timelock.sol/Timelock.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
- package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
- package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
- package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
- package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
- package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/IRedemptionWatchtower.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
- package/build/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
- package/build/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.dbg.json +1 -1
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
- package/build/contracts/integrator/AbstractTBTCDepositor.sol/AbstractTBTCDepositor.dbg.json +1 -1
- package/build/contracts/integrator/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/integrator/IBridge.sol/IBridgeTypes.dbg.json +1 -1
- package/build/contracts/integrator/ITBTCVault.sol/ITBTCVault.dbg.json +1 -1
- package/build/contracts/l2/L1BitcoinDepositor.sol/L1BitcoinDepositor.dbg.json +1 -1
- package/build/contracts/l2/L1BitcoinDepositor.sol/L1BitcoinDepositor.json +41 -2
- package/build/contracts/l2/L2BitcoinDepositor.sol/IL2WormholeGateway.dbg.json +1 -1
- package/build/contracts/l2/L2BitcoinDepositor.sol/L2BitcoinDepositor.dbg.json +1 -1
- package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
- package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/IWormhole.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/IWormholeReceiver.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/IWormholeRelayer.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/IWormholeTokenBridge.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/WormholeTypes.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/WormholeUtils.dbg.json +1 -1
- package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
- package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
- package/build/contracts/test/BankStub.sol/BankStub.dbg.json +1 -1
- package/build/contracts/test/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.dbg.json +1 -1
- package/build/contracts/test/LightRelayStub.sol/LightRelayStub.dbg.json +1 -1
- package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.dbg.json +1 -1
- package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.dbg.json +1 -1
- package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.dbg.json +1 -1
- package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.dbg.json +1 -1
- package/build/contracts/test/TestERC20.sol/TestERC20.dbg.json +1 -1
- package/build/contracts/test/TestERC721.sol/TestERC721.dbg.json +1 -1
- package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.dbg.json +1 -1
- package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/l2/L1BitcoinDepositor.sol +31 -0
- package/export/artifacts/@keep-network/ecdsa/contracts/EcdsaDkgValidator.sol/EcdsaDkgValidator.json +24 -24
- package/export/artifacts/@keep-network/ecdsa/contracts/WalletRegistry.sol/WalletRegistry.json +4999 -4814
- package/export/artifacts/@keep-network/ecdsa/contracts/libraries/EcdsaDkg.sol/EcdsaDkg.json +2 -2
- package/export/artifacts/@keep-network/ecdsa/contracts/libraries/EcdsaInactivity.sol/EcdsaInactivity.json +23 -23
- package/export/artifacts/@keep-network/random-beacon/contracts/ReimbursementPool.sol/ReimbursementPool.json +53 -53
- package/export/artifacts/@keep-network/sortition-pools/contracts/Chaosnet.sol/Chaosnet.json +21 -21
- package/export/artifacts/@keep-network/sortition-pools/contracts/Rewards.sol/Rewards.json +16 -16
- package/export/artifacts/@keep-network/sortition-pools/contracts/SortitionPool.sol/SortitionPool.json +206 -206
- package/export/artifacts/@keep-network/sortition-pools/contracts/SortitionTree.sol/SortitionTree.json +26 -26
- package/export/artifacts/@openzeppelin/contracts/governance/TimelockController.sol/TimelockController.json +107 -107
- package/export/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +46 -46
- package/export/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +36 -36
- package/export/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +78 -78
- package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +68 -68
- package/export/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +43 -43
- package/export/artifacts/@thesis/solidity-contracts/contracts/token/ERC20WithPermit.sol/ERC20WithPermit.json +79 -79
- package/export/artifacts/@thesis/solidity-contracts/contracts/token/MisfundRecovery.sol/MisfundRecovery.json +42 -42
- package/export/artifacts/contracts/Timelock.sol/Timelock.json +109 -109
- package/export/artifacts/contracts/bank/Bank.sol/Bank.json +77 -77
- package/export/artifacts/contracts/bridge/Bridge.sol/Bridge.json +338 -338
- package/export/artifacts/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.json +128 -128
- package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +108 -108
- package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +63 -63
- package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +65 -65
- package/export/artifacts/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.json +67 -67
- package/export/artifacts/contracts/l2/L1BitcoinDepositor.sol/L1BitcoinDepositor.json +4431 -4171
- package/export/artifacts/contracts/l2/L2BitcoinDepositor.sol/L2BitcoinDepositor.json +62 -62
- package/export/artifacts/contracts/l2/L2TBTC.sol/L2TBTC.json +194 -194
- package/export/artifacts/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +102 -102
- package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +149 -149
- package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +76 -76
- package/export/artifacts/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.json +62 -62
- package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +79 -79
- package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +376 -376
- package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +4 -4
- package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +78 -78
- package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
- package/export/artifacts/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +78 -78
- package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +14 -14
- package/export/artifacts/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +132 -132
- package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +85 -85
- package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +78 -78
- package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +4 -4
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockBridge.json +34 -34
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.json +20 -20
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.json +52 -52
- package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +37 -37
- package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +104 -104
- package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +19 -19
- package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +184 -184
- package/export/deploy/00_resolve_reimbursement_pool.js +1 -1
- package/export/deploy/00_resolve_tbtc_v1_token.js +1 -1
- package/export/deploy/00_resolve_wallet_registry.js +1 -1
- package/export/deploy/01_deploy_light_relay.js +1 -1
- package/export/deploy/02_deploy_tbtc_v2_token.js +1 -1
- package/export/deploy/03_deploy_vending_machine.js +1 -1
- package/export/deploy/04_transfer_vending_machine_roles.js +1 -1
- package/export/deploy/05_deploy_bank.js +1 -1
- package/export/deploy/06_deploy_bridge.js +1 -1
- package/export/deploy/07_deploy_tbtc_vault.js +1 -1
- package/export/deploy/08_deploy_donation_vault.js +1 -1
- package/export/deploy/09_deploy_bridge_governance.js +1 -1
- package/export/deploy/10_deploy_maintainer_proxy.js +1 -1
- package/export/deploy/11_bank_update_bridge.js +1 -1
- package/export/deploy/12_authorize_tbtc_vault_in_bridge.js +1 -1
- package/export/deploy/13_authorize_maintainer_proxy_in_bridge.js +1 -1
- package/export/deploy/14_set_deposit_parameters.js +1 -1
- package/export/deploy/15_set_wallet_parameters.js +1 -1
- package/export/deploy/16_disable_fraud_challenges.js +1 -1
- package/export/deploy/17_disable_redemptions.js +1 -1
- package/export/deploy/18_disable_moving_funds.js +1 -1
- package/export/deploy/19_authorize_spv_maintainer_in_bridge.js +1 -1
- package/export/deploy/20_transfer_bank_ownership.js +1 -1
- package/export/deploy/21_transfer_bridge_governance.js +1 -1
- package/export/deploy/22_transfer_bridge_governance_ownership.js +1 -1
- package/export/deploy/23_transfer_tbtc_vault_ownership.js +1 -1
- package/export/deploy/24_transfer_tbtc_ownership.js +1 -1
- package/export/deploy/25_transfer_maintainer_proxy_ownership.js +1 -1
- package/export/deploy/26_transfer_proxy_admin_ownership.js +1 -1
- package/export/deploy/27_authorize_maintainer_proxy_in_reimbursement_pool.js +1 -1
- package/export/deploy/28_authorize_bridge_in_reimbursement_pool.js +1 -1
- package/export/deploy/29_deploy_proxy_admin_with_deputy.js +1 -1
- package/export/deploy/30_deploy_vending_machine_v2.js +1 -1
- package/export/deploy/31_deploy_vending_machine_v3.js +1 -1
- package/export/deploy/32_transfer_vending_machine_v2_ownership.js +1 -1
- package/export/deploy/33_transfer_vending_machine_v3_ownership.js +1 -1
- package/export/deploy/34_deploy_light_relay_maintainer_proxy.js +1 -1
- package/export/deploy/35_authorize_maintainer_in_light_relay_maintainer_proxy.js +1 -1
- package/export/deploy/36_transfer_light_relay_maintainer_proxy_ownership.js +1 -1
- package/export/deploy/37_authorize_light_relay_maintainer_proxy_in_reimbursement_pool.js +1 -1
- package/export/deploy/38_authorize_light_relay_maintainer_proxy_in_light_relay.js +1 -1
- package/export/deploy/39_deploy_wallet_proposal_validator.js +1 -1
- package/export/deploy/40_deploy_redemption_watchtower.js +1 -1
- package/export/deploy/41_transfer_redemption_watchtower_ownership.js +1 -1
- package/export/deploy/42_deploy_timelock.js +1 -1
- package/export/deploy/80_upgrade_bridge_v2.js +1 -1
- package/export/deploy/90_initialize_wallet_owner.js +1 -1
- package/export/deploy/91_genesis_relay.js +1 -1
- package/export/deploy/92_retarget_relay.js +1 -1
- package/export/deploy/93_authorize_relay_maintainer.js +1 -1
- package/export/deploy/94_transfer_relay_ownership.js +1 -1
- package/export/tasks/test-utils.js +1 -1
- package/export/test/integration/utils/ecdsa-wallet-registry.js +1 -1
- package/export/test/integration/utils/random-beacon.js +1 -1
- package/export/test/integration/utils/staking.js +1 -1
- package/export/typechain/factories/EcdsaAuthorization__factory.js +1 -1
- package/export/typechain/factories/IStaking__factory.js +24 -103
- package/export/typechain/factories/L1BitcoinDepositor__factory.js +40 -1
- package/export/typechain/factories/WalletRegistry__factory.js +1 -1
- package/package.json +6 -6
- package/artifacts/solcInputs/7c1f8f1dbded4c787d87a982d1fc8349.json +0 -410
- package/artifacts/solcInputs/7cc3eda3cb3ff2522d18b5e7b31ea228.json +0 -102
- package/artifacts/solcInputs/802132f7da69a8a4226cb9424480847b.json +0 -218
- package/artifacts/solcInputs/887fad6b16575ba42183543c324eeb0e.json +0 -335
- package/artifacts/solcInputs/98e272e2fbf178ec895387b6c503f9de.json +0 -68
- package/artifacts/solcInputs/b0025f1f7efe4824592ac0c9793776c3.json +0 -392
- package/artifacts/solcInputs/b7c5f3550cc22e16e6b6ea9582ccbee3.json +0 -341
- package/artifacts/solcInputs/d71d4b4434e6669852eaf643ebd2a7bc.json +0 -209
- package/artifacts/solcInputs/fccb130292c8c7cc958ab4fa31a3e180.json +0 -187
- package/export/deploy/00_resolve_relay.js +0 -83
- package/export/deploy/01_deploy_tbtc_v2_token.js +0 -70
- package/export/deploy/02_deploy_vending_machine.js +0 -84
- package/export/deploy/03_transfer_vending_machine_roles.js +0 -69
- package/export/deploy/04_deploy_bank.js +0 -73
- package/export/deploy/05_deploy_bridge.js +0 -178
- package/export/deploy/06_deploy_tbtc_vault.js +0 -80
- package/export/deploy/07_deploy_bridge_governance.js +0 -87
- package/export/deploy/08_deploy_maintainer_proxy.js +0 -80
- package/export/deploy/09_bank_update_bridge.js +0 -63
- package/export/deploy/10_authorize_spv_maintainer_in_bridge.js +0 -61
- package/export/deploy/11_transfer_bank_ownership.js +0 -60
- package/export/deploy/12_transfer_bridge_governance.js +0 -63
- package/export/deploy/13_transfer_bridge_governance_ownership.js +0 -60
- package/export/deploy/14_transfer_tbtc_vault_ownership.js +0 -60
- package/export/deploy/15_transfer_maintainer_proxy_ownership.js +0 -60
- package/export/deploy/16_initialize_wallet_owner.js +0 -63
- package/export/deploy/16_transfer_proxy_admin_ownership.js +0 -73
- package/export/deploy/17_authorize_maintainer_proxy_in_bridge.js +0 -63
- package/export/deploy/17_transfer_proxy_admin_ownership.js +0 -73
- package/export/deploy/18_authorize_maintainer_proxy_in_bridge.js +0 -63
- package/export/deploy/18_authorize_maintainer_proxy_in_reimbursement_pool.js +0 -63
- package/export/deploy/19_authorize_bridge_in_reimbursement_pool.js +0 -63
- package/export/deploy/19_authorize_maintainer_proxy_in_reimbursement_pool.js +0 -63
- package/export/deploy/20_authorize_bridge_in_reimbursement_pool.js +0 -63
- package/export/deploy/20_deploy_proxy_admin_with_deputy.js +0 -80
- package/export/deploy/21_transfer_reimbursement_pool_ownership.js +0 -60
- package/export/deploy/22_deploy_proxy_admin_with_deputy.js +0 -80
- package/export/deploy/24_transfer_maintainer_proxy_ownership.js +0 -60
- package/export/deploy/25_transfer_proxy_admin_ownership.js +0 -73
- package/export/deploy/26_authorize_maintainer_proxy_in_reimbursement_pool.js +0 -70
- package/export/deploy/27_authorize_bridge_in_reimbursement_pool.js +0 -70
- package/export/deploy/28_deploy_proxy_admin_with_deputy.js +0 -80
- package/export/deploy/34_deploy_wallet_coordinator.js +0 -115
- package/export/deploy/35_add_coordinator_address.js +0 -60
- package/export/deploy/35_transfer_wallet_coordinator_ownership.js +0 -60
- package/export/deploy/36_deploy_light_relay_maintainer_proxy.js +0 -86
- package/export/deploy/36_transfer_wallet_coordinator_ownership.js +0 -60
- package/export/deploy/37_authorize_maintainer_in_light_relay_maintainer_proxy.js +0 -65
- package/export/deploy/37_deploy_light_relay_maintainer_proxy.js +0 -86
- package/export/deploy/37_transfer_light_relay_maintainer_proxy_ownership.js +0 -60
- package/export/deploy/38_authorize_light_relay_maintainer_proxy_in_reimbursement_pool.js +0 -70
- package/export/deploy/38_authorize_maintainer_in_light_relay_maintainer_proxy.js +0 -65
- package/export/deploy/38_transfer_light_relay_maintainer_proxy_ownership.js +0 -60
- package/export/deploy/39_authorize_light_relay_maintainer_proxy_in_light_relay.js +0 -63
- package/export/deploy/39_authorize_light_relay_maintainer_proxy_in_reimbursement_pool.js +0 -70
- package/export/deploy/39_transfer_light_relay_maintainer_proxy_ownership.js +0 -60
- package/export/deploy/40_authorize_light_relay_maintainer_proxy_in_light_relay.js +0 -66
- package/export/deploy/40_authorize_light_relay_maintainer_proxy_in_reimbursement_pool.js +0 -70
- package/export/deploy/41_authorize_light_relay_maintainer_proxy_in_light_relay.js +0 -66
- package/export/typechain/GoerliLightRelay.js +0 -2
- package/export/typechain/RelayStub.js +0 -2
- package/export/typechain/TestRelay.js +0 -2
- package/export/typechain/WalletCoordinator.js +0 -2
- package/export/typechain/factories/GoerliLightRelay__factory.js +0 -535
- package/export/typechain/factories/RelayStub__factory.js +0 -546
- package/export/typechain/factories/TestRelay__factory.js +0 -168
- package/export/typechain/factories/WalletCoordinator__factory.js +0 -1121
|
@@ -140,6 +140,12 @@ contract L1BitcoinDepositor is
|
|
|
140
140
|
/// granted by the contract owner.
|
|
141
141
|
mapping(address => bool) public reimbursementAuthorizations;
|
|
142
142
|
|
|
143
|
+
/// @notice **Feature Flag** controlling whether the deposit transaction max fee
|
|
144
|
+
/// is **reimbursed** (added to the user’s TBTC) or **deducted**.
|
|
145
|
+
/// - `true` => Add `txMaxFee` to the minted TBTC amount
|
|
146
|
+
/// - `false` => Subtract `txMaxFee` from the minted TBTC amount
|
|
147
|
+
bool public reimburseTxMaxFee;
|
|
148
|
+
|
|
143
149
|
event DepositInitialized(
|
|
144
150
|
uint256 indexed depositKey,
|
|
145
151
|
address indexed l2DepositOwner,
|
|
@@ -166,6 +172,10 @@ contract L1BitcoinDepositor is
|
|
|
166
172
|
bool authorization
|
|
167
173
|
);
|
|
168
174
|
|
|
175
|
+
/// @notice Emitted whenever the owner toggles the reimbursement of the deposit
|
|
176
|
+
/// transaction max fee.
|
|
177
|
+
event ReimburseTxMaxFeeUpdated(bool reimburseTxMaxFee);
|
|
178
|
+
|
|
169
179
|
/// @dev This modifier comes from the `Reimbursable` base contract and
|
|
170
180
|
/// must be overridden to protect the `updateReimbursementPool` call.
|
|
171
181
|
modifier onlyReimbursableAdmin() override {
|
|
@@ -214,6 +224,7 @@ contract L1BitcoinDepositor is
|
|
|
214
224
|
l2FinalizeDepositGasLimit = 500_000;
|
|
215
225
|
initializeDepositGasOffset = 60_000;
|
|
216
226
|
finalizeDepositGasOffset = 20_000;
|
|
227
|
+
reimburseTxMaxFee = false;
|
|
217
228
|
}
|
|
218
229
|
|
|
219
230
|
/// @notice Sets the address of the `L2BitcoinDepositor` contract on the
|
|
@@ -284,6 +295,15 @@ contract L1BitcoinDepositor is
|
|
|
284
295
|
reimbursementAuthorizations[_address] = authorization;
|
|
285
296
|
}
|
|
286
297
|
|
|
298
|
+
/// @notice Toggles whether the deposit transaction max fee is reimbursed
|
|
299
|
+
/// or deducted. Only callable by the contract owner.
|
|
300
|
+
/// @param _reimburseTxMaxFee `true` => reimburse (add) the deposit tx max fee,
|
|
301
|
+
/// `false` => deduct the deposit tx max fee.
|
|
302
|
+
function setReimburseTxMaxFee(bool _reimburseTxMaxFee) external onlyOwner {
|
|
303
|
+
reimburseTxMaxFee = _reimburseTxMaxFee;
|
|
304
|
+
emit ReimburseTxMaxFeeUpdated(_reimburseTxMaxFee);
|
|
305
|
+
}
|
|
306
|
+
|
|
287
307
|
/// @notice Initializes the deposit process on L1 by revealing the deposit
|
|
288
308
|
/// data (funding transaction and components of the P2(W)SH deposit
|
|
289
309
|
/// address) to the tBTC Bridge. Once tBTC minting is completed,
|
|
@@ -461,6 +481,17 @@ contract L1BitcoinDepositor is
|
|
|
461
481
|
bytes32 l2DepositOwner
|
|
462
482
|
) = _finalizeDeposit(depositKey);
|
|
463
483
|
|
|
484
|
+
// ----------------------------
|
|
485
|
+
// Reimburse or Deduct Max Fee
|
|
486
|
+
// ----------------------------
|
|
487
|
+
if (reimburseTxMaxFee) {
|
|
488
|
+
// Retrieve deposit tx max fee in 1e8 sat precision -> scale it to 1e18.
|
|
489
|
+
(, , uint64 depositTxMaxFee, ) = bridge.depositParameters();
|
|
490
|
+
uint256 txMaxFee = depositTxMaxFee * SATOSHI_MULTIPLIER;
|
|
491
|
+
// The DAO is "refunding" it by adding it to the TBTC minted.
|
|
492
|
+
tbtcAmount += txMaxFee;
|
|
493
|
+
}
|
|
494
|
+
|
|
464
495
|
// slither-disable-next-line reentrancy-events
|
|
465
496
|
emit DepositFinalized(
|
|
466
497
|
depositKey,
|
package/export/artifacts/@keep-network/ecdsa/contracts/EcdsaDkgValidator.sol/EcdsaDkgValidator.json
CHANGED
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
"parameterSlots": 1,
|
|
480
480
|
"returnSlots": 0
|
|
481
481
|
},
|
|
482
|
-
"abi_decode_tuple_t_contract$_SortitionPool_$
|
|
482
|
+
"abi_decode_tuple_t_contract$_SortitionPool_$11064_fromMemory": {
|
|
483
483
|
"entryPoint": 64,
|
|
484
484
|
"id": null,
|
|
485
485
|
"parameterSlots": 2,
|
|
@@ -751,7 +751,7 @@
|
|
|
751
751
|
}
|
|
752
752
|
]
|
|
753
753
|
},
|
|
754
|
-
"name": "abi_decode_tuple_t_contract$_SortitionPool_$
|
|
754
|
+
"name": "abi_decode_tuple_t_contract$_SortitionPool_$11064_fromMemory",
|
|
755
755
|
"nodeType": "YulFunctionDefinition",
|
|
756
756
|
"parameters": [
|
|
757
757
|
{
|
|
@@ -779,7 +779,7 @@
|
|
|
779
779
|
}
|
|
780
780
|
]
|
|
781
781
|
},
|
|
782
|
-
"contents": "{\n { }\n function abi_decode_tuple_t_contract$_SortitionPool_$
|
|
782
|
+
"contents": "{\n { }\n function abi_decode_tuple_t_contract$_SortitionPool_$11064_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}",
|
|
783
783
|
"id": 139,
|
|
784
784
|
"language": "Yul",
|
|
785
785
|
"name": "#utility.yul"
|
|
@@ -791,9 +791,9 @@
|
|
|
791
791
|
},
|
|
792
792
|
"deployedBytecode": {
|
|
793
793
|
"functionDebugData": {
|
|
794
|
-
"@
|
|
794
|
+
"@_throwError_21661": {
|
|
795
795
|
"entryPoint": 4084,
|
|
796
|
-
"id":
|
|
796
|
+
"id": 21661,
|
|
797
797
|
"parameterSlots": 1,
|
|
798
798
|
"returnSlots": 0
|
|
799
799
|
},
|
|
@@ -821,9 +821,9 @@
|
|
|
821
821
|
"parameterSlots": 0,
|
|
822
822
|
"returnSlots": 0
|
|
823
823
|
},
|
|
824
|
-
"@
|
|
824
|
+
"@recover_21734": {
|
|
825
825
|
"entryPoint": 3979,
|
|
826
|
-
"id":
|
|
826
|
+
"id": 21734,
|
|
827
827
|
"parameterSlots": 2,
|
|
828
828
|
"returnSlots": 1
|
|
829
829
|
},
|
|
@@ -833,9 +833,9 @@
|
|
|
833
833
|
"parameterSlots": 0,
|
|
834
834
|
"returnSlots": 0
|
|
835
835
|
},
|
|
836
|
-
"@
|
|
836
|
+
"@slice_8922": {
|
|
837
837
|
"entryPoint": 3798,
|
|
838
|
-
"id":
|
|
838
|
+
"id": 8922,
|
|
839
839
|
"parameterSlots": 3,
|
|
840
840
|
"returnSlots": 1
|
|
841
841
|
},
|
|
@@ -845,21 +845,21 @@
|
|
|
845
845
|
"parameterSlots": 0,
|
|
846
846
|
"returnSlots": 0
|
|
847
847
|
},
|
|
848
|
-
"@
|
|
848
|
+
"@toEthSignedMessageHash_21925": {
|
|
849
849
|
"entryPoint": null,
|
|
850
|
-
"id":
|
|
850
|
+
"id": 21925,
|
|
851
851
|
"parameterSlots": 1,
|
|
852
852
|
"returnSlots": 1
|
|
853
853
|
},
|
|
854
|
-
"@
|
|
854
|
+
"@tryRecover_21707": {
|
|
855
855
|
"entryPoint": 4015,
|
|
856
|
-
"id":
|
|
856
|
+
"id": 21707,
|
|
857
857
|
"parameterSlots": 2,
|
|
858
858
|
"returnSlots": 2
|
|
859
859
|
},
|
|
860
|
-
"@
|
|
860
|
+
"@tryRecover_21875": {
|
|
861
861
|
"entryPoint": 4444,
|
|
862
|
-
"id":
|
|
862
|
+
"id": 21875,
|
|
863
863
|
"parameterSlots": 4,
|
|
864
864
|
"returnSlots": 2
|
|
865
865
|
},
|
|
@@ -911,19 +911,19 @@
|
|
|
911
911
|
"parameterSlots": 2,
|
|
912
912
|
"returnSlots": 1
|
|
913
913
|
},
|
|
914
|
-
"abi_decode_tuple_t_struct$_Result_$
|
|
914
|
+
"abi_decode_tuple_t_struct$_Result_$6867_calldata_ptr": {
|
|
915
915
|
"entryPoint": 4664,
|
|
916
916
|
"id": null,
|
|
917
917
|
"parameterSlots": 2,
|
|
918
918
|
"returnSlots": 1
|
|
919
919
|
},
|
|
920
|
-
"abi_decode_tuple_t_struct$_Result_$
|
|
920
|
+
"abi_decode_tuple_t_struct$_Result_$6867_calldata_ptrt_uint256": {
|
|
921
921
|
"entryPoint": 4813,
|
|
922
922
|
"id": null,
|
|
923
923
|
"parameterSlots": 2,
|
|
924
924
|
"returnSlots": 2
|
|
925
925
|
},
|
|
926
|
-
"abi_decode_tuple_t_struct$_Result_$
|
|
926
|
+
"abi_decode_tuple_t_struct$_Result_$6867_calldata_ptrt_uint256t_uint256": {
|
|
927
927
|
"entryPoint": 4882,
|
|
928
928
|
"id": null,
|
|
929
929
|
"parameterSlots": 2,
|
|
@@ -983,7 +983,7 @@
|
|
|
983
983
|
"parameterSlots": 5,
|
|
984
984
|
"returnSlots": 1
|
|
985
985
|
},
|
|
986
|
-
"abi_encode_tuple_t_contract$_SortitionPool_$
|
|
986
|
+
"abi_encode_tuple_t_contract$_SortitionPool_$11064__to_t_address__fromStack_reversed": {
|
|
987
987
|
"entryPoint": null,
|
|
988
988
|
"id": null,
|
|
989
989
|
"parameterSlots": 2,
|
|
@@ -1599,7 +1599,7 @@
|
|
|
1599
1599
|
}
|
|
1600
1600
|
]
|
|
1601
1601
|
},
|
|
1602
|
-
"name": "abi_decode_tuple_t_struct$_Result_$
|
|
1602
|
+
"name": "abi_decode_tuple_t_struct$_Result_$6867_calldata_ptr",
|
|
1603
1603
|
"nodeType": "YulFunctionDefinition",
|
|
1604
1604
|
"parameters": [
|
|
1605
1605
|
{
|
|
@@ -2465,7 +2465,7 @@
|
|
|
2465
2465
|
}
|
|
2466
2466
|
]
|
|
2467
2467
|
},
|
|
2468
|
-
"name": "abi_decode_tuple_t_struct$_Result_$
|
|
2468
|
+
"name": "abi_decode_tuple_t_struct$_Result_$6867_calldata_ptrt_uint256",
|
|
2469
2469
|
"nodeType": "YulFunctionDefinition",
|
|
2470
2470
|
"parameters": [
|
|
2471
2471
|
{
|
|
@@ -2695,7 +2695,7 @@
|
|
|
2695
2695
|
}
|
|
2696
2696
|
]
|
|
2697
2697
|
},
|
|
2698
|
-
"name": "abi_encode_tuple_t_contract$_SortitionPool_$
|
|
2698
|
+
"name": "abi_encode_tuple_t_contract$_SortitionPool_$11064__to_t_address__fromStack_reversed",
|
|
2699
2699
|
"nodeType": "YulFunctionDefinition",
|
|
2700
2700
|
"parameters": [
|
|
2701
2701
|
{
|
|
@@ -3034,7 +3034,7 @@
|
|
|
3034
3034
|
}
|
|
3035
3035
|
]
|
|
3036
3036
|
},
|
|
3037
|
-
"name": "abi_decode_tuple_t_struct$_Result_$
|
|
3037
|
+
"name": "abi_decode_tuple_t_struct$_Result_$6867_calldata_ptrt_uint256t_uint256",
|
|
3038
3038
|
"nodeType": "YulFunctionDefinition",
|
|
3039
3039
|
"parameters": [
|
|
3040
3040
|
{
|
|
@@ -11974,7 +11974,7 @@
|
|
|
11974
11974
|
}
|
|
11975
11975
|
]
|
|
11976
11976
|
},
|
|
11977
|
-
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_struct_Result_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 224) { revert(0, 0) }\n value := offset\n }\n function abi_decode_tuple_t_struct$_Result_$6858_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Result_calldata(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_bool_t_string_memory_ptr__to_t_bool_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n let _1 := 32\n mstore(add(headStart, _1), 64)\n let length := mload(value1)\n mstore(add(headStart, 64), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n }\n mstore(add(add(headStart, length), 96), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 96)\n }\n function abi_decode_tuple_t_struct$_Result_$6858_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Result_calldata(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_contract$_SortitionPool_$11055__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_struct$_Result_$6858_calldata_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Result_calldata(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function access_calldata_tail_t_array$_t_uint8_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n }\n function panic_error_0x11()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x12()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n }\n function access_calldata_tail_t_array$_t_uint32_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function panic_error_0x41()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_array_uint32_dyn(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(shl(5, length), 0x20)\n }\n function validator_revert_uint32(value)\n {\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint32_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := mload(_2)\n let dst := allocate_memory(array_allocation_size_array_uint32_dyn(_3))\n let dst_1 := dst\n mstore(dst, _3)\n dst := add(dst, _1)\n let srcEnd := add(add(_2, shl(5, _3)), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_2, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n let value := mload(src)\n validator_revert_uint32(value)\n mstore(dst, value)\n dst := add(dst, _1)\n }\n value0 := dst_1\n }\n function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint32(value)\n value0 := value\n }\n function checked_sub_t_uint8(x, y) -> diff\n {\n diff := sub(and(x, 0xff), and(y, 0xff))\n if gt(diff, 0xff) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_array$_t_uint32_$dyn_memory_ptr__to_t_array$_t_uint32_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xffffffff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_array$_t_uint32_$dyn_calldata_ptr__to_t_array$_t_uint32_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n mstore(tail_1, value1)\n pos := add(headStart, 64)\n let srcPtr := value0\n let i := 0\n for { } lt(i, value1) { i := add(i, 1) }\n {\n let value := calldataload(srcPtr)\n validator_revert_uint32(value)\n mstore(pos, and(value, 0xffffffff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_uint256_t_bytes_calldata_ptr_t_array$_t_uint8_$dyn_calldata_ptr_t_uint256__to_t_uint256_t_bytes_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n let _1 := 32\n mstore(add(headStart, _1), 128)\n mstore(add(headStart, 128), value2)\n calldatacopy(add(headStart, 160), value1, value2)\n mstore(add(add(headStart, value2), 160), 0)\n let _2 := add(headStart, and(add(value2, 31), not(31)))\n let end := add(_2, 160)\n mstore(add(headStart, 64), add(sub(_2, headStart), 160))\n let pos := end\n mstore(end, value4)\n pos := add(_2, 192)\n let srcPtr := value3\n let i := 0\n for { } lt(i, value4) { i := add(i, 1) }\n {\n mstore(pos, and(abi_decode_uint8(srcPtr), 0xff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n mstore(add(headStart, 96), value5)\n }\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := mload(_2)\n let dst := allocate_memory(array_allocation_size_array_uint32_dyn(_3))\n let dst_1 := dst\n mstore(dst, _3)\n dst := add(dst, _1)\n let srcEnd := add(add(_2, shl(5, _3)), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_2, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n let value := mload(src)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff)))\n {\n let _4 := 0\n revert(_4, _4)\n }\n mstore(dst, value)\n dst := add(dst, _1)\n }\n value0 := dst_1\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000)\n mstore(add(pos, 28), value0)\n end := add(pos, 60)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_f1c269d7eab972b2fd4d87a15c317e920493e7eea923de7e48c0ebcb7f611fa9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Slice out of bounds\")\n tail := add(headStart, 96)\n }\n function panic_error_0x21()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n mstore(add(headStart, 96), \"ue\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}",
|
|
11977
|
+
"contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_struct_Result_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 224) { revert(0, 0) }\n value := offset\n }\n function abi_decode_tuple_t_struct$_Result_$6867_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Result_calldata(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_bool_t_string_memory_ptr__to_t_bool_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n let _1 := 32\n mstore(add(headStart, _1), 64)\n let length := mload(value1)\n mstore(add(headStart, 64), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n }\n mstore(add(add(headStart, length), 96), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 96)\n }\n function abi_decode_tuple_t_struct$_Result_$6867_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Result_calldata(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_contract$_SortitionPool_$11064__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n }\n function abi_decode_tuple_t_struct$_Result_$6867_calldata_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Result_calldata(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function access_calldata_tail_t_array$_t_uint8_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n }\n function panic_error_0x11()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x12()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n }\n function access_calldata_tail_t_array$_t_uint32_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function panic_error_0x41()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_array_uint32_dyn(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(shl(5, length), 0x20)\n }\n function validator_revert_uint32(value)\n {\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint32_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := mload(_2)\n let dst := allocate_memory(array_allocation_size_array_uint32_dyn(_3))\n let dst_1 := dst\n mstore(dst, _3)\n dst := add(dst, _1)\n let srcEnd := add(add(_2, shl(5, _3)), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_2, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n let value := mload(src)\n validator_revert_uint32(value)\n mstore(dst, value)\n dst := add(dst, _1)\n }\n value0 := dst_1\n }\n function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint32(value)\n value0 := value\n }\n function checked_sub_t_uint8(x, y) -> diff\n {\n diff := sub(and(x, 0xff), and(y, 0xff))\n if gt(diff, 0xff) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_array$_t_uint32_$dyn_memory_ptr__to_t_array$_t_uint32_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xffffffff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_array$_t_uint32_$dyn_calldata_ptr__to_t_array$_t_uint32_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n mstore(tail_1, value1)\n pos := add(headStart, 64)\n let srcPtr := value0\n let i := 0\n for { } lt(i, value1) { i := add(i, 1) }\n {\n let value := calldataload(srcPtr)\n validator_revert_uint32(value)\n mstore(pos, and(value, 0xffffffff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_uint256_t_bytes_calldata_ptr_t_array$_t_uint8_$dyn_calldata_ptr_t_uint256__to_t_uint256_t_bytes_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n let _1 := 32\n mstore(add(headStart, _1), 128)\n mstore(add(headStart, 128), value2)\n calldatacopy(add(headStart, 160), value1, value2)\n mstore(add(add(headStart, value2), 160), 0)\n let _2 := add(headStart, and(add(value2, 31), not(31)))\n let end := add(_2, 160)\n mstore(add(headStart, 64), add(sub(_2, headStart), 160))\n let pos := end\n mstore(end, value4)\n pos := add(_2, 192)\n let srcPtr := value3\n let i := 0\n for { } lt(i, value4) { i := add(i, 1) }\n {\n mstore(pos, and(abi_decode_uint8(srcPtr), 0xff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n mstore(add(headStart, 96), value5)\n }\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := mload(_2)\n let dst := allocate_memory(array_allocation_size_array_uint32_dyn(_3))\n let dst_1 := dst\n mstore(dst, _3)\n dst := add(dst, _1)\n let srcEnd := add(add(_2, shl(5, _3)), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_2, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n let value := mload(src)\n if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff)))\n {\n let _4 := 0\n revert(_4, _4)\n }\n mstore(dst, value)\n dst := add(dst, _1)\n }\n value0 := dst_1\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73_t_bytes32__to_t_string_memory_ptr_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000)\n mstore(add(pos, 28), value0)\n end := add(pos, 60)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_f1c269d7eab972b2fd4d87a15c317e920493e7eea923de7e48c0ebcb7f611fa9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Slice out of bounds\")\n tail := add(headStart, 96)\n }\n function panic_error_0x21()\n {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n mstore(add(headStart, 96), \"ue\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}",
|
|
11978
11978
|
"id": 139,
|
|
11979
11979
|
"language": "Yul",
|
|
11980
11980
|
"name": "#utility.yul"
|