MaintainerProxy
MaintainerProxy
Maintainers are the willing off-chain clients approved by the governance. Maintainers proxy calls to the Bridge contract via 'MaintainerProxy' and are refunded for the spent gas from the ReimbursementPool. There are two types of maintainers: wallet maintainers and SPV maintainers.
bridge
contract Bridge bridgeisWalletMaintainer
mapping(address => uint256) isWalletMaintainerAuthorized wallet maintainers that can interact with the set of functions for wallet maintainers only. Authorization can be granted and removed by the governance.
'Key' is the address of the maintainer. 'Value' represents an index+1 in the 'maintainers' array. 1 was added so the maintainer index can never be 0 which is a reserved index for a non-existent maintainer in this map.
walletMaintainers
address[] walletMaintainersThis list of wallet maintainers keeps the order of which wallet maintainer should be submitting a next transaction. It does not enforce the order but only tracks who should be next in line.
isSpvMaintainer
mapping(address => uint256) isSpvMaintainerAuthorized SPV maintainers that can interact with the set of functions for SPV maintainers only. Authorization can be granted and removed by the governance.
'Key' is the address of the maintainer. 'Value' represents an index+1 in the 'maintainers' array. 1 was added so the maintainer index can never be 0 which is a reserved index for a non-existent maintainer in this map.
spvMaintainers
This list of SPV maintainers keeps the order of which SPV maintainer should be submitting a next transaction. It does not enforce the order but only tracks who should be next in line.
submitDepositSweepProofGasOffset
Gas that is meant to balance the submission of deposit sweep proof overall cost. Can be updated by the governance based on the current market conditions.
submitRedemptionProofGasOffset
Gas that is meant to balance the submission of redemption proof overall cost. Can be updated by the governance based on the current market conditions.
resetMovingFundsTimeoutGasOffset
Gas that is meant to balance the reset of moving funds timeout overall cost. Can be updated by the governance based on the current market conditions.
submitMovingFundsProofGasOffset
Gas that is meant to balance the submission of moving funds proof overall cost. Can be updated by the governance based on the current market conditions.
notifyMovingFundsBelowDustGasOffset
Gas that is meant to balance the notification of moving funds below dust overall cost. Can be updated by the governance based on the current market conditions.
submitMovedFundsSweepProofGasOffset
Gas that is meant to balance the submission of moved funds sweep proof overall cost. Can be updated by the governance based on the current market conditions.
requestNewWalletGasOffset
Gas that is meant to balance the request of a new wallet overall cost. Can be updated by the governance based on the current market conditions.
notifyWalletCloseableGasOffset
Gas that is meant to balance the notification of closeable wallet overall cost. Can be updated by the governance based on the current market conditions.
notifyWalletClosingPeriodElapsedGasOffset
Gas that is meant to balance the notification of wallet closing period elapsed overall cost. Can be updated by the governance based on the current market conditions.
defeatFraudChallengeGasOffset
Gas that is meant to balance the defeat fraud challenge overall cost. Can be updated by the governance based on the current market conditions.
defeatFraudChallengeWithHeartbeatGasOffset
Gas that is meant to balance the defeat fraud challenge with heartbeat overall cost. Can be updated by the governance based on the current market conditions.
WalletMaintainerAuthorized
WalletMaintainerUnauthorized
SpvMaintainerAuthorized
SpvMaintainerUnauthorized
BridgeUpdated
GasOffsetParametersUpdated
onlyWalletMaintainer
onlySpvMaintainer
onlyReimbursableAdmin
constructor
submitDepositSweepProof
Wraps Bridge.submitDepositSweepProof call and reimburses the caller's transaction cost.
See Bridge.submitDepositSweepProof function documentation.
submitRedemptionProof
Wraps Bridge.submitRedemptionProof call and reimburses the caller's transaction cost.
See Bridge.submitRedemptionProof function documentation.
resetMovingFundsTimeout
Wraps Bridge.resetMovingFundsTimeout call and reimburses the caller's transaction cost.
See Bridge.resetMovingFundsTimeout function documentation.
submitMovingFundsProof
Wraps Bridge.submitMovingFundsProof call and reimburses the caller's transaction cost.
See Bridge.submitMovingFundsProof function documentation.
notifyMovingFundsBelowDust
Wraps Bridge.notifyMovingFundsBelowDust call and reimburses the caller's transaction cost.
See Bridge.notifyMovingFundsBelowDust function documentation.
submitMovedFundsSweepProof
Wraps Bridge.submitMovedFundsSweepProof call and reimburses the caller's transaction cost.
See Bridge.submitMovedFundsSweepProof function documentation.
requestNewWallet
Wraps Bridge.requestNewWallet call and reimburses the caller's transaction cost.
See Bridge.requestNewWallet function documentation.
notifyWalletCloseable
Wraps Bridge.notifyWalletCloseable call and reimburses the caller's transaction cost.
See Bridge.notifyWalletCloseable function documentation.
notifyWalletClosingPeriodElapsed
Wraps Bridge.notifyWalletClosingPeriodElapsed call and reimburses the caller's transaction cost.
See Bridge.notifyWalletClosingPeriodElapsed function documentation.
defeatFraudChallenge
Wraps Bridge.defeatFraudChallenge call and reimburses the caller's transaction cost.
See Bridge.defeatFraudChallenge function documentation.
defeatFraudChallengeWithHeartbeat
Wraps Bridge.defeatFraudChallengeWithHeartbeat call and reimburses the caller's transaction cost.
See Bridge.defeatFraudChallengeWithHeartbeat function documentation.
authorizeWalletMaintainer
Authorize a wallet maintainer that can interact with this reimbursement pool. Can be authorized by the owner only.
Parameters
maintainer
address
Wallet maintainer to authorize.
authorizeSpvMaintainer
Authorize an SPV maintainer that can interact with this reimbursement pool. Can be authorized by the owner only.
Parameters
maintainer
address
SPV maintainer to authorize.
unauthorizeWalletMaintainer
Unauthorize a wallet maintainer that was previously authorized to interact with the Maintainer Proxy contract. Can be unauthorized by the owner only.
The last maintainer is swapped with the one to be unauthorized. The unauthorized maintainer is then removed from the list. An index of the last maintainer is changed with the removed maintainer. Ex. 'walletMaintainers' list: [0x1, 0x2, 0x3, 0x4, 0x5] 'isWalletMaintainer' map: [0x1 -> 1, 0x2 -> 2, 0x3 -> 3, 0x4 -> 4, 0x5 -> 5] unauthorize: 0x3 new 'walletMaintainers' list: [0x1, 0x2, 0x5, 0x4] new 'isWalletMaintainer' map: [0x1 -> 1, 0x2 -> 2, 0x4 -> 4, 0x5 -> 3]
Parameters
maintainerToUnauthorize
address
Maintainer to unauthorize.
unauthorizeSpvMaintainer
Unauthorize an SPV maintainer that was previously authorized to interact with the Maintainer Proxy contract. Can be unauthorized by the owner only.
The last maintainer is swapped with the one to be unauthorized. The unauthorized maintainer is then removed from the list. An index of the last maintainer is changed with the removed maintainer. Ex. 'spvMaintainers' list: [0x1, 0x2, 0x3, 0x4, 0x5] 'isSpvMaintainer' map: [0x1 -> 1, 0x2 -> 2, 0x3 -> 3, 0x4 -> 4, 0x5 -> 5] unauthorize: 0x3 new 'spvMaintainers' list: [0x1, 0x2, 0x5, 0x4] new 'isSpvMaintainer' map: [0x1 -> 1, 0x2 -> 2, 0x4 -> 4, 0x5 -> 3]
Parameters
maintainerToUnauthorize
address
Maintainer to unauthorize.
updateBridge
Allows the Governance to upgrade the Bridge address.
The function does not implement any governance delay and does not check the status of the Bridge. The Governance implementation needs to ensure all requirements for the upgrade are satisfied before executing this function.
updateGasOffsetParameters
Updates the values of gas offset parameters.
Can be called only by the contract owner. The caller is responsible for validating parameters.
Parameters
newSubmitDepositSweepProofGasOffset
uint256
New submit deposit sweep proof gas offset.
newSubmitRedemptionProofGasOffset
uint256
New submit redemption proof gas offset.
newResetMovingFundsTimeoutGasOffset
uint256
New reset moving funds timeout gas offset.
newSubmitMovingFundsProofGasOffset
uint256
New submit moving funds proof gas offset.
newNotifyMovingFundsBelowDustGasOffset
uint256
New notify moving funds below dust gas offset.
newSubmitMovedFundsSweepProofGasOffset
uint256
New submit moved funds sweep proof gas offset.
newRequestNewWalletGasOffset
uint256
New request new wallet gas offset.
newNotifyWalletCloseableGasOffset
uint256
New notify closeable wallet gas offset.
newNotifyWalletClosingPeriodElapsedGasOffset
uint256
New notify wallet closing period elapsed gas offset.
newDefeatFraudChallengeGasOffset
uint256
New defeat fraud challenge gas offset.
newDefeatFraudChallengeWithHeartbeatGasOffset
uint256
New defeat fraud challenge with heartbeat gas offset.
allWalletMaintainers
Gets an entire array of wallet maintainer addresses.
allSpvMaintainers
Gets an entire array of SPV maintainer addresses.
Last updated
Was this helpful?