0 txs
11 calls
constructor
constructor()
functions
allowMintLbtc
viewfunction allowMintLbtc() view returns (bool)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
fbtc
viewfunction fbtc() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
lockedFbtc
viewfunction lockedFbtc() view returns (address)
OPERATOR_ROLE
viewfunction OPERATOR_ROLE() view returns (bytes32)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
remainingStake
viewfunction remainingStake() view returns (uint256)
stakeLimit
viewfunction stakeLimit() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
finalizeBurn
nonpayablefunction finalizeBurn(address recipient, uint256 amount, bytes32 depositTxId, uint256 outputIndex)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address admin, address fbtc_, address lbtc_, uint256 stakeLimit_)
initializeBurn
nonpayablefunction initializeBurn(address recipient, uint256 amount, bytes32 depositTxId, uint256 outputIndex) returns (bytes32, tuple)
mint
nonpayablefunction mint(uint256 amount) returns (uint256)
pause
nonpayablefunction pause()
removeWithdrawalRequest
nonpayablefunction removeWithdrawalRequest(address recipient, uint256 amount, bytes32 depositTxId, uint256 outputIndex)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAllowMintLbtc
nonpayablefunction setAllowMintLbtc(bool shouldMint)
setLockedFbtc
nonpayablefunction setLockedFbtc(address lockedFbtc_)
setStakeLimit
nonpayablefunction setStakeLimit(uint256 newStakeLimit)
unpause
nonpayablefunction unpause()
events
BurnFinalized
event BurnFinalized(address indexed recipient, uint256 amount, bytes32 indexed depositTxId, uint256 indexed outputIndex)
BurnInitiated
event BurnInitiated(address indexed recipient, uint256 amount, bytes32 indexed depositTxId, uint256 indexed outputIndex)
FBTCLocked
event FBTCLocked(address indexed recipient, uint256 amountLocked, bool indexed lbtcMinted)
Initialized
event Initialized(uint64 version)
LockedFBTCSet
event LockedFBTCSet(address lockedFbtc)
MintLBTCSet
event MintLBTCSet(bool shouldMint)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
StakeLimitSet
event StakeLimitSet(uint256 newStakeLimit)
Unpaused
event Unpaused(address account)
WithdrawalDeleted
event WithdrawalDeleted(address indexed recipient, uint256 amount, bytes32 indexed depositTxId, uint256 indexed outputIndex)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
FailedInnerCall
error FailedInnerCall()
InsufficientFunds
error InsufficientFunds()
InvalidInitialization
error InvalidInitialization()
NoResetLockedFBTC
error NoResetLockedFBTC()
NotInitializing
error NotInitializing()
NoUnsetLockedFBTC
error NoUnsetLockedFBTC()
NoWithdrawalInitiated
error NoWithdrawalInitiated()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
StakeLimitExceeded
error StakeLimitExceeded()
WithdrawalInProgress
error WithdrawalInProgress()
ZeroAmount
error ZeroAmount()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611fd4806100df6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80638456cb59116100de578063a1c9b21311610097578063d547741f11610071578063d547741f1461037a578063e63ab1e91461038d578063eb6c2497146103b4578063f5b541a6146103c757600080fd5b8063a1c9b2131461034c578063a217fddf1461035f578063cf756fdf1461036757600080fd5b80638456cb59146102d95780638b5c9e84146102e15780638f5c1801146102f457806391d14854146102fc57806393d2c86e1461030f578063a0712d681461033957600080fd5b80633f4ba83a116101305780633f4ba83a1461022e57806345ef79af146102365780635ad134f01461025d5780635c975abb1461028d5780636e363ed1146102a55780637c5fc243146102b857600080fd5b806301ffc9a714610178578063232838c4146101a0578063248a9ca3146101b55780632eb3e1d1146101d65780632f2ff15d1461020857806336568abe1461021b575b600080fd5b61018b610186366004611848565b6103dc565b60405190151581526020015b60405180910390f35b6101b36101ae366004611889565b610413565b005b6101c86101c33660046118c2565b610538565b604051908152602001610197565b600080516020611f3f833981519152546001600160a01b03165b6040516001600160a01b039091168152602001610197565b6101b36102163660046118db565b61055a565b6101b36102293660046118db565b61057c565b6101b36105b4565b7ff2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec03546101c8565b7ff2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec02546001600160a01b03166101f0565b600080516020611f5f8339815191525460ff1661018b565b6101b36102b3366004611889565b6105ca565b6102cb6102c6366004611889565b610867565b604051610197929190611991565b6101b3610bad565b6101b36102ef366004611a69565b610bdf565b6101c8610c63565b61018b61030a3660046118db565b610ce2565b7ff2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec055460ff1661018b565b6101c86103473660046118c2565b610d1a565b6101b361035a3660046118c2565b610f9d565b6101c8600081565b6101b3610375366004611a86565b611000565b6101b36103883660046118db565b611172565b6101c87f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101b36103c2366004611ad1565b61118e565b6101c8600080516020611eff83398151915281565b60006001600160e01b03198216637965db0b60e01b148061040d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b61041b611269565b600080516020611eff8339815191526104338161129c565b60008585858560405160200161044c9493929190611aec565b604051602081830303815290604052805190602001209050600061047b600080516020611f3f83398151915290565b6000838152600682016020526040812080546001600160901b0319168155600181018290559192506104b060028301826117fa565b60038201600090556004820160006104c891906117fa565b600582016000905560068201600090556007820160006104e891906117fa565b50508385886001600160a01b03167f901d1e5cbe26a196335da36e665449b4a5b06b0728412ca0b37c52830a5cb6148960405161052791815260200190565b60405180910390a450505050505050565b6000908152600080516020611f1f833981519152602052604090206001015490565b61056382610538565b61056c8161129c565b61057683836112a6565b50505050565b6001600160a01b03811633146105a55760405163334bd91960e11b815260040160405180910390fd5b6105af828261134b565b505050565b60006105bf8161129c565b6105c76113c7565b50565b6105d2611427565b6105da611269565b600080516020611eff8339815191526105f28161129c565b60008585858560405160200161060b9493929190611aec565b604051602081830303815290604052805190602001209050600061063a600080516020611f3f83398151915290565b60008381526006820160205260409020600501549091508614610670576040516336a863b560e21b815260040160405180910390fd5b80600401548611156106955760405163356680b760e01b815260040160405180910390fd5b858160040160008282546106a99190611b28565b90915550506000828152600682016020526040812080546001600160901b031916815560018101829055906106e160028301826117fa565b60038201600090556004820160006106f991906117fa565b6005820160009055600682016000905560078201600061071991906117fa565b5050600581015460ff1615610791576001810154604051632770a7eb60e21b81526001600160a01b0389811660048301526024820189905290911690639dc29fac90604401600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b600281015460405163db76009360e01b8152600481018890526001600160a01b039091169063db76009390602401600060405180830381600087803b1580156107d957600080fd5b505af11580156107ed573d6000803e3d6000fd5b5050825461080892506001600160a01b03169050888861145f565b8385886001600160a01b03167f6cafc71584d6ece7348f5d24d80d2dba904e5cc97263dd369abd05b25bbec5128960405161084591815260200190565b60405180910390a45050506105766001600080516020611f7f83398151915255565b604080516101408101825260008082526020820181905291810182905260608082018390526080820181905260a0820183905260c0820181905260e0820183905261010082018390526101208201526108be611427565b6108c6611269565b600080516020611eff8339815191526108de8161129c565b856000036108ff57604051631f2a200560e01b815260040160405180910390fd5b7ff2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec0454600080516020611f3f833981519152908711156109515760405163356680b760e01b815260040160405180910390fd5b60008888888860405160200161096a9493929190611aec565b60408051601f198184030181529181528151602092830120600081815260068601909352912060050154909150156109b5576040516304eb6b3f60e01b815260040160405180910390fd5b600282015460405163e9ac06dd60e01b8152600481018a9052602481018990526044810188905260009182916001600160a01b039091169063e9ac06dd906064016000604051808303816000875af1158015610a15573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a3d9190810190611c2e565b60008581526006870160205260409020815181549395509193508392909190829060ff19166001836004811115610a7657610a76611907565b021790555060208201518154829061ff001916610100836003811115610a9e57610a9e611907565b0217905550604082015181546001600160801b03909116620100000271ffffffffffffffffffffffffffffffff0000199091161781556060820151600182015560808201516002820190610af29082611dd9565b5060a0820151600382015560c08201516004820190610b119082611dd9565b5060e0820151600582015561010082015160068201556101208201516007820190610b3c9082611dd9565b5090505087898c6001600160a01b03167fa8d358d92e6c0442fb10767a6c9c679f996c21681d803e96e88d61165768067c8d604051610b7d91815260200190565b60405180910390a49095509350505050610ba46001600080516020611f7f83398151915255565b94509492505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610bd78161129c565b6105c76114d2565b6000610bea8161129c565b7ff2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec05805460ff1916831515908117909155604051908152600080516020611f3f833981519152907f2ae65eee4b94cc1d6d888521c7e594df0923a94e8fba95e832f21d1fd4225086906020015b60405180910390a1505050565b7ff2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec03547ff2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec0454600091600080516020611f3f833981519152911115610cc857600091505090565b80600401548160030154610cdc9190611b28565b91505090565b6000918252600080516020611f1f833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610d24611427565b610d2c611269565b81600003610d4d57604051631f2a200560e01b815260040160405180910390fd5b600080516020611f3f8339815191528054610d73906001600160a01b031633308661151b565b8054600282015460405163095ea7b360e01b81526001600160a01b0391821660048201526024810186905291169063095ea7b3906044016020604051808303816000875af1158015610dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ded9190611e99565b506002810154604051639d3d156760e01b8152600481018590526000916001600160a01b031690639d3d1567906024016020604051808303816000875af1158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611eb6565b90508160030154818360040154610e779190611ecf565b1115610e9657604051631f12fec560e31b815260040160405180910390fd5b80826004016000828254610eaa9190611ecf565b9091555050600582015460ff1615610f315760018201546001600160a01b03166340c10f19336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610f1857600080fd5b505af1158015610f2c573d6000803e3d6000fd5b505050505b600582015460ff161515336001600160a01b03167f37979428422a84f1310b77b00722450d143497bfb90307df2a9ed86b5ab6186583604051610f7691815260200190565b60405180910390a3915050610f986001600080516020611f7f83398151915255565b919050565b600080516020611eff833981519152610fb58161129c565b81600080516020611f3f833981519152600301556040518281527f415a161d8d826a6105792427a68922b7aa3bba4ed824409f9f5750405457f00b9060200160405180910390a15050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156110465750825b905060008267ffffffffffffffff1660011480156110635750303b155b905081158015611071575080155b1561108f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156110b957845460ff60401b1916600160401b1785555b6110c1611554565b6110c9611564565b6110d1611574565b6110dc60008a6112a6565b506000600080516020611f3f83398151915280546001600160a01b03808c166001600160a01b0319928316178355600183018054918c169190921617905560030187905550831561116757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b61117b82610538565b6111848161129c565b610576838361134b565b60006111998161129c565b6001600160a01b0382166111c057604051635997c2b560e11b815260040160405180910390fd5b7ff2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec0254600080516020611f3f833981519152906001600160a01b0316156112195760405163f81832a760e01b815260040160405180910390fd5b6002810180546001600160a01b0319166001600160a01b0385169081179091556040519081527f95aec3d4f14be5f6beda73ef9f51b1b0c1daf8ceaa365ab82c955a289b554e2d90602001610c56565b600080516020611f5f8339815191525460ff161561129a5760405163d93c066560e01b815260040160405180910390fd5b565b6105c7813361157c565b6000600080516020611f1f8339815191526112c18484610ce2565b611341576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556112f73390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061040d565b600091505061040d565b6000600080516020611f1f8339815191526113668484610ce2565b15611341576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061040d565b6113cf6115be565b600080516020611f5f833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b600080516020611f7f83398151915280546001190161145957604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6040516001600160a01b038381166024830152604482018390526105af91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506115ee565b6001600080516020611f7f83398151915255565b6114da611269565b600080516020611f5f833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611409565b6040516001600160a01b0384811660248301528381166044830152606482018390526105769186918216906323b872dd9060840161148c565b61155c611651565b61129a61169a565b61156c611651565b61129a6116bb565b61129a611651565b6115868282610ce2565b6115ba5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b5050565b600080516020611f5f8339815191525460ff1661129a57604051638dfc202b60e01b815260040160405180910390fd5b60006116036001600160a01b038416836116c3565b905080516000141580156116285750808060200190518101906116269190611e99565b155b156105af57604051635274afe760e01b81526001600160a01b03841660048201526024016115b1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661129a57604051631afcd79f60e31b815260040160405180910390fd5b6116a2611651565b600080516020611f5f833981519152805460ff19169055565b6114be611651565b60606116d1838360006116d8565b9392505050565b6060814710156116fd5760405163cd78605960e01b81523060048201526024016115b1565b600080856001600160a01b031684866040516117199190611ee2565b60006040518083038185875af1925050503d8060008114611756576040519150601f19603f3d011682016040523d82523d6000602084013e61175b565b606091505b509150915061176b868383611775565b9695505050505050565b60608261178a57611785826117d1565b6116d1565b81511580156117a157506001600160a01b0384163b155b156117ca57604051639996b31560e01b81526001600160a01b03851660048201526024016115b1565b50806116d1565b8051156117e15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50805461180690611d4f565b6000825580601f10611816575050565b601f0160209004906000526020600020908101906105c791905b808211156118445760008155600101611830565b5090565b60006020828403121561185a57600080fd5b81356001600160e01b0319811681146116d157600080fd5b80356001600160a01b0381168114610f9857600080fd5b6000806000806080858703121561189f57600080fd5b6118a885611872565b966020860135965060408601359560600135945092505050565b6000602082840312156118d457600080fd5b5035919050565b600080604083850312156118ee57600080fd5b823591506118fe60208401611872565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b6005811061192d5761192d611907565b9052565b6004811061192d5761192d611907565b60005b8381101561195c578181015183820152602001611944565b50506000910152565b6000815180845261197d816020860160208601611941565b601f01601f19169290920160200192915050565b828152604060208201526119a960408201835161191d565b600060208301516119bd6060840182611931565b5060408301516001600160801b038116608084015250606083015160a083015260808301516101408060c08501526119f9610180850183611965565b915060a085015160e085015260c0850151603f19610100818786030181880152611a238584611965565b945060e088015192506101208381890152818901518589015280890151945050508086850301610160870152505061176b8282611965565b80151581146105c757600080fd5b600060208284031215611a7b57600080fd5b81356116d181611a5b565b60008060008060808587031215611a9c57600080fd5b611aa585611872565b9350611ab360208601611872565b9250611ac160408601611872565b9396929550929360600135925050565b600060208284031215611ae357600080fd5b6116d182611872565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561040d5761040d611b12565b634e487b7160e01b600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715611b7557611b75611b3b565b60405290565b805160058110610f9857600080fd5b805160048110610f9857600080fd5b80516001600160801b0381168114610f9857600080fd5b600082601f830112611bc157600080fd5b815167ffffffffffffffff80821115611bdc57611bdc611b3b565b604051601f8301601f19908116603f01168101908282118183101715611c0457611c04611b3b565b81604052838152866020858801011115611c1d57600080fd5b61176b846020830160208901611941565b60008060408385031215611c4157600080fd5b82519150602083015167ffffffffffffffff80821115611c6057600080fd5b908401906101408287031215611c7557600080fd5b611c7d611b51565b611c8683611b7b565b8152611c9460208401611b8a565b6020820152611ca560408401611b99565b604082015260608301516060820152608083015182811115611cc657600080fd5b611cd288828601611bb0565b60808301525060a083015160a082015260c083015182811115611cf457600080fd5b611d0088828601611bb0565b60c08301525060e083015160e08201526101008084015181830152506101208084015183811115611d3057600080fd5b611d3c89828701611bb0565b8284015250508093505050509250929050565b600181811c90821680611d6357607f821691505b602082108103611d8357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156105af576000816000526020600020601f850160051c81016020861015611db25750805b601f850160051c820191505b81811015611dd157828155600101611dbe565b505050505050565b815167ffffffffffffffff811115611df357611df3611b3b565b611e0781611e018454611d4f565b84611d89565b602080601f831160018114611e3c5760008415611e245750858301515b600019600386901b1c1916600185901b178555611dd1565b600085815260208120601f198616915b82811015611e6b57888601518255948401946001909101908401611e4c565b5085821015611e895787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215611eab57600080fd5b81516116d181611a5b565b600060208284031215611ec857600080fd5b5051919050565b8082018082111561040d5761040d611b12565b60008251611ef4818460208701611941565b919091019291505056fe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f2032fbd6c6daf0509f7b47277c23d318b85e97f8401e745afc792c2709cec00cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122007e3be3cfac9d81a77ad156b4d00ceb83fabc506593980efdb72cb59543a801f64736f6c63430008180033