0 txs
1 call
constructor
constructor()
functions
CLAIMER_ROLE
viewfunction CLAIMER_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
FEE_OPERATOR_ROLE
viewfunction FEE_OPERATOR_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getStakeAndBakeDepositor
viewfunction getStakeAndBakeDepositor() view returns (address)
getStakeAndBakeFee
viewfunction getStakeAndBakeFee() view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MAXIMUM_FEE
viewfunction MAXIMUM_FEE() view returns (uint256)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
batchStakeAndBake
nonpayablefunction batchStakeAndBake(tuple[] data) returns (bytes[])
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address lbtc_, address owner_, address operator_, uint256 fee_, address claimer_, address pauser_, uint256 gasLimit_)
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setDepositor
nonpayablefunction setDepositor(address depositor)
setFee
nonpayablefunction setFee(uint256 fee)
setGasLimit
nonpayablefunction setGasLimit(uint256 gasLimit)
stakeAndBake
nonpayablefunction stakeAndBake(tuple data) returns (bytes)
stakeAndBakeInternal
nonpayablefunction stakeAndBakeInternal(tuple data) returns (bytes)
unpause
nonpayablefunction unpause()
events
BatchStakeAndBakeReverted
event BatchStakeAndBakeReverted(uint256 indexed index, string message, bytes customError)
DepositorSet
event DepositorSet(address indexed depositor)
FeeChanged
event FeeChanged(uint256 newFee)
GasLimitChanged
event GasLimitChanged(uint256 newGasLimit)
Initialized
event Initialized(uint64 version)
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)
Unpaused
event Unpaused(address account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
CallerNotSelf
error CallerNotSelf(address caller)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
FailedInnerCall
error FailedInnerCall()
FeeGreaterThanMaximum
error FeeGreaterThanMaximum(uint256 fee)
InvalidInitialization
error InvalidInitialization()
NoDepositorSet
error NoDepositorSet()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
WrongAmount
error WrongAmount()
ZeroAddress
error ZeroAddress()
ZeroDepositAmount
error ZeroDepositAmount()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611fde806100df6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80635c975abb116100c3578063c452359f1161007c578063c452359f146102e8578063d547741f146102fb578063e63ab1e91461030e578063ee7d72b414610335578063f2c098b714610348578063fc5f18d31461035b57600080fd5b80635c975abb1461027257806369fe0e2d1461028a5780638456cb591461029d57806391d14854146102a5578063a217fddf146102b8578063ba2fc666146102c057600080fd5b806336568abe1161011557806336568abe146101f35780633ea7dd1b146102065780633f4ba83a146102265780634f66a3221461022e57806350010f4e1461023857806351a2e88c1461025f57600080fd5b806301ffc9a7146101525780631959f3c11461017a578063248a9ca3146101ab5780632ab73c23146101be5780632f2ff15d146101de575b600080fd5b610165610160366004611784565b610370565b60405190151581526020015b60405180910390f35b7fd0321c9642a0f7a5931cd62db04cb9e2c0d32906ef8824eece128a7ad5e4f502545b604051908152602001610171565b61019d6101b93660046117ae565b6103a7565b6101d16101cc3660046117c7565b6103c9565b604051610171919061188c565b6101f16101ec366004611905565b610638565b005b6101f1610201366004611905565b61065a565b610219610214366004611935565b610692565b6040516101719190611970565b6101f161079e565b61019d620186a081565b61019d7f8efbb70a6b43a0e337cb93750666361f6a0fe46a0aee356063f13c9b68520bb781565b6101f161026d366004611983565b6107b4565b600080516020611f298339815191525460ff16610165565b6101f16102983660046117ae565b610a09565b6101f1610ac7565b6101656102b3366004611905565b610af9565b61019d600081565b600080516020611f89833981519152546040516001600160a01b039091168152602001610171565b6102196102f6366004611935565b610b31565b6101f1610309366004611905565b610b5e565b61019d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101f16103433660046117ae565b610b7a565b6101f1610356366004611a07565b610be9565b61019d600080516020611ee983398151915281565b60006001600160e01b03198216637965db0b60e01b14806103a157506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000908152600080516020611f09833981519152602052604090206001015490565b60606103d3610c85565b600080516020611ee98339815191526103eb81610cbd565b600080516020611f89833981519152546001600160a01b031661042157604051639ef6c3ff60e01b815260040160405180910390fd5b610429610cc7565b600080516020611f4983398151915260008467ffffffffffffffff81111561045357610453611a24565b60405190808252806020026020018201604052801561048657816020015b60608152602001906001900390816104715790505b50905060005b8581101561061c57306001600160a01b031663c452359f84600301548989858181106104ba576104ba611a3a565b90506020028101906104cc9190611a50565b6040518363ffffffff1660e01b81526004016104e89190611ae6565b60006040518083038160008887f19350505050801561052957506040513d6000823e601f3d908101601f191682016040526105269190810190611bc9565b60015b6105f457610535611c61565b806308c379a0036105925750610549611c7d565b806105545750610594565b817ff10bf22fb71560ba19ac9613f5821a110ecfbf9dccc4167cc4072864a330cd71826040516105849190611d07565b60405180910390a250610614565b505b3d8080156105be576040519150601f19603f3d011682016040523d82523d6000602084013e6105c3565b606091505b50817ff10bf22fb71560ba19ac9613f5821a110ecfbf9dccc4167cc4072864a330cd71826040516105849190611d31565b8083838151811061060757610607611a3a565b6020026020010181905250505b60010161048c565b50925050506103a16001600080516020611f6983398151915255565b610641826103a7565b61064a81610cbd565b6106548383610d0e565b50505050565b6001600160a01b03811633146106835760405163334bd91960e11b815260040160405180910390fd5b61068d8282610db3565b505050565b606061069c610c85565b600080516020611ee98339815191526106b481610cbd565b600080516020611f89833981519152546001600160a01b03166106ea57604051639ef6c3ff60e01b815260040160405180910390fd5b6106f2610cc7565b7fd0321c9642a0f7a5931cd62db04cb9e2c0d32906ef8824eece128a7ad5e4f5035460405163c452359f60e01b8152309163c452359f91610737908790600401611ae6565b60006040518083038160008887f1158015610756573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261077f9190810190611bc9565b9150506107996001600080516020611f6983398151915255565b919050565b60006107a981610cbd565b6107b1610e2f565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156107fa5750825b905060008267ffffffffffffffff1660011480156108175750303b155b905081158015610825575080155b156108435760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561086d57845460ff60401b1916600160401b1785555b620186a089111561089957604051632d7e1e9960e21b8152600481018a90526024015b60405180910390fd5b6108a1610e8f565b6108a9610e9f565b6108b1610eaf565b6108bc60008c610d0e565b506108e77f8efbb70a6b43a0e337cb93750666361f6a0fe46a0aee356063f13c9b68520bb78b610d0e565b506109127f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a88610d0e565b5061092b600080516020611ee983398151915289610d0e565b50610944600080516020611ee983398151915230610d0e565b50600080516020611f4983398151915280546001600160a01b0319166001600160a01b038e161790557fd0321c9642a0f7a5931cd62db04cb9e2c0d32906ef8824eece128a7ad5e4f5028990557fd0321c9642a0f7a5931cd62db04cb9e2c0d32906ef8824eece128a7ad5e4f50386905583156109fb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b7f8efbb70a6b43a0e337cb93750666361f6a0fe46a0aee356063f13c9b68520bb7610a3381610cbd565b620186a0821115610a5a57604051632d7e1e9960e21b815260048101839052602401610890565b7fd0321c9642a0f7a5931cd62db04cb9e2c0d32906ef8824eece128a7ad5e4f502829055604051828152600080516020611f49833981519152907f6bbc57480a46553fa4d156ce702beef5f3ad66303b0ed1a5d4cb44966c6584c3906020015b60405180910390a1505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610af181610cbd565b6107b1610eb7565b6000918252600080516020611f09833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060333014610b55576040516303c0199360e21b8152336004820152602401610890565b6103a182610f00565b610b67826103a7565b610b7081610cbd565b6106548383610db3565b6000610b8581610cbd565b7fd0321c9642a0f7a5931cd62db04cb9e2c0d32906ef8824eece128a7ad5e4f503829055604051828152600080516020611f49833981519152907f511b9ad9f129c7e7895a28a2e1a5e81ad57bdb23af0fee47dd12bc680e24ed2f90602001610aba565b6000610bf481610cbd565b6001600160a01b038216610c1b5760405163d92e233d60e01b815260040160405180910390fd5b600080516020611f8983398151915280546001600160a01b0319166001600160a01b038416908117909155604051600080516020611f4983398151915291907f206352915439eaf303e567806f90699d60d2447047d948300ae179651ff42c0590600090a2505050565b600080516020611f69833981519152805460011901610cb757604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6107b181336111f7565b600080516020611f298339815191525460ff1615610cf85760405163d93c066560e01b815260040160405180910390fd5b565b6001600080516020611f6983398151915255565b6000600080516020611f09833981519152610d298484610af9565b610da9576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610d5f3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506103a1565b60009150506103a1565b6000600080516020611f09833981519152610dce8484610af9565b15610da9576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506103a1565b610e37611234565b600080516020611f29833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b610e97611264565b610cf86112ad565b610ea7611264565b610cf86112b5565b610cf8611264565b610ebf610cc7565b600080516020611f29833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610e71565b600080516020611f498339815191528054606091906000906001600160a01b0316636bc63893610f336040870187611d52565b610f406060890189611d52565b6040518563ffffffff1660e01b8152600401610f5f9493929190611d99565b6020604051808303816000875af1158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa29190611dcb565b9050600080808080610fb48980611d52565b810190610fc19190611de8565b8b54604051636eb1769f60e11b81526001600160a01b038d81166004830152306024830152969b50949950929750909550935060808c013592169063dd62ed3e90604401602060405180830381865afa158015611022573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110469190611e37565b10156110fb578489608001351115611071576040516349986e7360e01b815260040160405180910390fd5b865460405163d505accf60e01b81526001600160a01b038881166004830152306024830152604482018890526064820187905260ff8616608483015260a4820185905260c482018490529091169063d505accf9060e401600060405180830381600087803b1580156110e257600080fd5b505af11580156110f6573d6000803e3d6000fd5b505050505b8654611116906001600160a01b0316873060808d01356112d6565b600287015460808a0135811061113f5760405163078e1d8560e01b815260040160405180910390fd5b80156111c557875460408051631d8cf42560e11b815290516111c5926001600160a01b031691633b19e84a9160048083019260209291908290030181865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190611dcb565b89546001600160a01b0316908361133d565b6111e96111d68260808d0135611e66565b886111e460208e018e611d52565b61136e565b9a9950505050505050505050565b6112018282610af9565b6112305760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610890565b5050565b600080516020611f298339815191525460ff16610cf857604051638dfc202b60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610cf857604051631afcd79f60e31b815260040160405180910390fd5b610cfa611264565b6112bd611264565b600080516020611f29833981519152805460ff19169055565b6040516001600160a01b0384811660248301528381166044830152606482018390526106549186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611432565b6040516001600160a01b0383811660248301526044820183905261068d91859182169063a9059cbb9060640161130b565b600080516020611f8983398151915254600080516020611f4983398151915280546060926113a9916001600160a01b03908116911688611495565b6001810154604051630937b85760e31b81526001600160a01b03909116906349bdc2b8906113e19088908a9089908990600401611e79565b6000604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114289190810190611bc9565b9695505050505050565b60006114476001600160a01b0384168361151f565b9050805160001415801561146c57508080602001905181019061146a9190611ea1565b155b1561068d57604051635274afe760e01b81526001600160a01b0384166004820152602401610890565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa1580156114e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115099190611e37565b9050610654848461151a8585611ec3565b611534565b606061152d838360006115c4565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526115858482611657565b610654576040516001600160a01b038481166024830152600060448301526115ba91869182169063095ea7b39060640161130b565b6106548482611432565b6060814710156115e95760405163cd78605960e01b8152306004820152602401610890565b600080856001600160a01b031684866040516116059190611ed6565b60006040518083038185875af1925050503d8060008114611642576040519150601f19603f3d011682016040523d82523d6000602084013e611647565b606091505b50915091506114288683836116ff565b6000806000846001600160a01b0316846040516116749190611ed6565b6000604051808303816000865af19150503d80600081146116b1576040519150601f19603f3d011682016040523d82523d6000602084013e6116b6565b606091505b50915091508180156116e05750805115806116e05750808060200190518101906116e09190611ea1565b80156116f657506000856001600160a01b03163b115b95945050505050565b6060826117145761170f8261175b565b61152d565b815115801561172b57506001600160a01b0384163b155b1561175457604051639996b31560e01b81526001600160a01b0385166004820152602401610890565b508061152d565b80511561176b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60006020828403121561179657600080fd5b81356001600160e01b03198116811461152d57600080fd5b6000602082840312156117c057600080fd5b5035919050565b600080602083850312156117da57600080fd5b823567ffffffffffffffff808211156117f257600080fd5b818501915085601f83011261180657600080fd5b81358181111561181557600080fd5b8660208260051b850101111561182a57600080fd5b60209290920196919550909350505050565b60005b8381101561185757818101518382015260200161183f565b50506000910152565b6000815180845261187881602086016020860161183c565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b828110156118e357603f198886030184526118d1858351611860565b945092850192908501906001016118b5565b5092979650505050505050565b6001600160a01b03811681146107b157600080fd5b6000806040838503121561191857600080fd5b82359150602083013561192a816118f0565b809150509250929050565b60006020828403121561194757600080fd5b813567ffffffffffffffff81111561195e57600080fd5b820160a0818503121561152d57600080fd5b60208152600061152d6020830184611860565b600080600080600080600060e0888a03121561199e57600080fd5b87356119a9816118f0565b965060208801356119b9816118f0565b955060408801356119c9816118f0565b94506060880135935060808801356119e0816118f0565b925060a08801356119f0816118f0565b8092505060c0880135905092959891949750929550565b600060208284031215611a1957600080fd5b813561152d816118f0565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008235609e19833603018112611a6657600080fd5b9190910192915050565b6000808335601e19843603018112611a8757600080fd5b830160208101925035905067ffffffffffffffff811115611aa757600080fd5b803603821315611ab657600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000611af68384611a70565b60a06020850152611b0b60c085018284611abd565b915050611b1b6020850185611a70565b601f1980868503016040870152611b33848385611abd565b9350611b426040880188611a70565b9350915080868503016060870152611b5b848484611abd565b9350611b6a6060880188611a70565b935091508086850301608087015250611b84838383611abd565b92505050608084013560a08401528091505092915050565b601f8201601f1916810167ffffffffffffffff81118282101715611bc257611bc2611a24565b6040525050565b600060208284031215611bdb57600080fd5b815167ffffffffffffffff80821115611bf357600080fd5b818401915084601f830112611c0757600080fd5b815181811115611c1957611c19611a24565b6040519150611c32601f8201601f191660200183611b9c565b808252856020828501011115611c4757600080fd5b611c5881602084016020860161183c565b50949350505050565b600060033d1115611c7a5760046000803e5060005160e01c5b90565b600060443d1015611c8b5790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611cbb57505050505090565b8285019150815181811115611cd35750505050505090565b843d8701016020828501011115611ced5750505050505090565b611cfc60208286010187611b9c565b509095945050505050565b604081526000611d1a6040830184611860565b828103602093840152600081529190910192915050565b604081526000604082015260606020820152600061152d6060830184611860565b6000808335601e19843603018112611d6957600080fd5b83018035915067ffffffffffffffff821115611d8457600080fd5b602001915036819003821315611ab657600080fd5b604081526000611dad604083018688611abd565b8281036020840152611dc0818587611abd565b979650505050505050565b600060208284031215611ddd57600080fd5b815161152d816118f0565b600080600080600060a08688031215611e0057600080fd5b8535945060208601359350604086013560ff81168114611e1f57600080fd5b94979396509394606081013594506080013592915050565b600060208284031215611e4957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156103a1576103a1611e50565b60018060a01b0385168152836020820152606060408201526000611428606083018486611abd565b600060208284031215611eb357600080fd5b8151801515811461152d57600080fd5b808201808211156103a1576103a1611e50565b60008251611a6681846020870161183c56fe11a8cb5a02bd6c42679835e867ef2118ba78f088f8300511420c6603c21d9c7802dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300d0321c9642a0f7a5931cd62db04cb9e2c0d32906ef8824eece128a7ad5e4f5009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00d0321c9642a0f7a5931cd62db04cb9e2c0d32906ef8824eece128a7ad5e4f501a2646970667358221220b01c68f0d50c78ebe3217f5d5b7857c2540df505d1b7497f052f25a45a1e43da64736f6c63430008180033