0 txs
0 calls
constructor
No constructor.
functions
bmiCoverStakingAddress
viewfunction bmiCoverStakingAddress() view returns (address)
bmiStakingAddress
viewfunction bmiStakingAddress() view returns (address)
bmiToken
viewfunction bmiToken() view returns (address)
cumulativeSum
viewfunction cumulativeSum() view returns (uint256)
getPolicyBookAPY
viewfunction getPolicyBookAPY(address policyBookAddress) view returns (uint256)
getPolicyBookRewardPerBlock
viewfunction getPolicyBookRewardPerBlock(address policyBookAddress) view returns (uint256)
getReward
viewfunction getReward(address policyBookAddress, uint256 nftIndex) view returns (uint256)
getStakedNFTSTBL
viewfunction getStakedNFTSTBL(uint256 nftIndex) view returns (uint256)
getStakedPolicyBookSTBL
viewfunction getStakedPolicyBookSTBL(address policyBookAddress) view returns (uint256)
injector
viewfunction injector() view returns (address _injector)
lastUpdateBlock
viewfunction lastUpdateBlock() view returns (uint256)
owner
viewfunction owner() view returns (address)
policyBookRegistry
viewfunction policyBookRegistry() view returns (address)
priceFeed
viewfunction priceFeed() view returns (address)
rewardPerBlock
viewfunction rewardPerBlock() view returns (uint256)
startStakeBlock
viewfunction startStakeBlock() view returns (uint256)
stblDecimals
viewfunction stblDecimals() view returns (uint256)
totalPoolStaked
viewfunction totalPoolStaked() view returns (uint256)
toUpdateRatio
viewfunction toUpdateRatio() view returns (uint256)
__RewardsGenerator_init
nonpayablefunction __RewardsGenerator_init()
aggregate
nonpayablefunction aggregate(address policyBookAddress, uint256[] nftIndexes, uint256 nftIndexTo)
recoverTokens
nonpayablefunction recoverTokens()
renounceOwnership
nonpayablefunction renounceOwnership()
sendFundsToBMICoverStaking
nonpayablefunction sendFundsToBMICoverStaking(uint256 amount)
sendFundsToBMIStaking
nonpayablefunction sendFundsToBMIStaking(uint256 amount)
setDependencies
nonpayablefunction setDependencies(address _contractsRegistry)
setInjector
nonpayablefunction setInjector(address _injector)
setRewardPerBlock
nonpayablefunction setRewardPerBlock(uint256 _rewardPerBlock)
stake
nonpayablefunction stake(address policyBookAddress, uint256 nftIndex, uint256 amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updatePolicyBookShare
nonpayablefunction updatePolicyBookShare(uint256 newRewardMultiplier)
withdrawFunds
nonpayablefunction withdrawFunds(address policyBookAddress, uint256 nftIndex) returns (uint256)
withdrawReward
nonpayablefunction withdrawReward(address policyBookAddress, uint256 nftIndex) returns (uint256)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardPerBlockSet
event RewardPerBlockSet(uint256 rewardPerBlock)
TokensRecovered
event TokensRecovered(address to, uint256 amount)
TokensSent
event TokensSent(address stakingAddress, uint256 amount)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b506124b2806100206000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806375f74c901161011a578063a8baf9df116100ad578063d77379f11161007c578063d77379f114610389578063db7fc40114610391578063e34246a5146103a4578063f2fde38b146103b7578063f474c8ce146103ca576101fb565b8063a8baf9df14610353578063b77f39fe1461035b578063bb872b4a14610363578063c107532914610376576101fb565b80638cb941cc116100e95780638cb941cc146103285780638da5cb5b1461033b578063a16f5fd214610343578063a218141b1461034b576101fb565b806375f74c90146102fd5780637c8f990e146103055780638389cb181461030d5780638ae39cac14610320576101fb565b80634f66fd33116101925780636cf8ecfd116101615780636cf8ecfd146102c75780636d771c6e146102da578063715018a6146102ed578063741bef1a146102f5576101fb565b80634f66fd331461027b57806351ce4b131461028e57806355e2c123146102a157806358d3232f146102b4576101fb565b80632c0316b3116101ce5780632c0316b314610250578063432e092a14610258578063461716101461026b5780634deebf6a14610273576101fb565b806307e2ad2f146102005780630c51b88f1461021e5780630d60ab48146102335780631bd470e61461023b575b600080fd5b6102086103dd565b60405161021591906121f5565b60405180910390f35b61023161022c366004612150565b6103ec565b005b610208610532565b610243610541565b60405161021591906123c9565b610243610547565b61023161026636600461209d565b61054d565b61020861071a565b61024361073f565b6102316102893660046121a4565b610745565b61024361029c366004612065565b610857565b6102436102af366004612065565b6109d1565b6102436102c2366004612125565b6109ef565b6102316102d53660046121a4565b610a7f565b6102316102e83660046121a4565b610bb4565b610231610cde565b610208610d8a565b610243610d99565b610231610d9f565b61023161031b366004612065565b610e49565b6102436112a2565b610231610336366004612065565b6112a8565b610208611348565b610243611357565b61024361135d565b610208611363565b610231611372565b6102316103713660046121a4565b61151a565b610243610384366004612125565b6115ba565b610208611631565b61024361039f366004612065565b611640565b6102436103b23660046121a4565b61169f565b6102316103c5366004612065565b6116b4565b6102436103d8366004612125565b6117b7565b6066546001600160a01b031681565b6068546001600160a01b0316610400611824565b6001600160a01b03161461042f5760405162461bcd60e51b815260040161042690612325565b60405180910390fd5b6000828152607260205260409020600301541561045e5760405162461bcd60e51b815260040161042690612259565b6001600160a01b0383166000908152607160205260409020600181015461049e574360028201819055600382015560058101541561049e57600060058201555b80546104b8906104af908490611828565b606c5490611881565b606c556104c4846118db565b60018101546104d39083611881565b60018201556104e1846119cd565b60408051608081018252600690920154825260006020808401828152848401958652436060860190815296835260729091529190209151825551600182015590516002820155905160039091015550565b6068546001600160a01b031681565b606f5481565b606c5481565b6068546001600160a01b0316610561611824565b6001600160a01b0316146105875760405162461bcd60e51b815260040161042690612325565b600081815260726020526040902060030154156105b65760405162461bcd60e51b8152600401610426906122df565b6105bf846118db565b6105c8846119cd565b6001600160a01b03841660009081526071602052604081206006810154600590910154909180805b868110156106ab576106206106198a8a8a8581811061060b57fe5b905060200201358888611a02565b8490611881565b925061065d607260008a8a8581811061063557fe5b905060200201358152602001908152602001600020600201548361188190919063ffffffff16565b91506072600089898481811061066f57fe5b602090810292909201358352508101919091526040016000908120818155600180820183905560028201839055600390910191909155016105f0565b50600081116106cc5760405162461bcd60e51b815260040161042690612382565b60408051608081018252948552602080860193845285820192835243606087019081526000978852607290915295209351845590516001840155516002830155509051600390910155505050565b7fd6b8f2e074594ceb05d47c27386969754b6ad0c15e5eb8f691399cd0be980e765490565b606a5481565b6066546001600160a01b0316634c3b9f1961075e611824565b6040518263ffffffff1660e01b815260040161077a91906121f5565b60206040518083038186803b15801561079257600080fd5b505afa1580156107a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ca9190612184565b6107e65760405162461bcd60e51b81526004016104269061228e565b6000607160006107f4611824565b6001600160a01b031681526020810191909152604001600020600181015481549192509061083090610827908390611828565b606c5490611a3e565b606c556108406104af8285611828565b606c5561085361084e611824565b6118db565b5055565b6068546000906001600160a01b031661086e611824565b6001600160a01b0316146108945760405162461bcd60e51b815260040161042690612325565b6001600160a01b038216600090815260716020526040812080546001909101549091906108c990670de0b6b3a7640000611881565b905060006109026108e56104af85670de0b6b3a7640000611828565b606b546108fc906108f68787611828565b90611828565b90611a9b565b90508061091557600093505050506109cc565b6067546040516373eaac6160e01b81526000916109ad91620186a0916108f6916001600160a01b03909116906373eaac61906109559088906004016123c9565b60206040518083038186803b15801561096d57600080fd5b505afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a591906121bc565b606a54611b02565b90506109c5836108fc60646108f6856223ec4a611828565b9450505050505b919050565b6001600160a01b031660009081526071602052604090206001015490565b6068546000906001600160a01b0316610a06611824565b6001600160a01b031614610a2c5760405162461bcd60e51b815260040161042690612325565b6000610a3a84846001611b10565b6001600160a01b038516600090815260716020908152604080832060060154878452607290925282209081556001810191909155436003909101559150505b92915050565b610a87611824565b6001600160a01b0316610a98611348565b6001600160a01b031614610ae1576040805162461bcd60e51b8152602060048201819052602482015260008051602061245d833981519152604482015290519081900360640190fd5b60655460695460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92610b17929116908590600401612209565b602060405180830381600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b699190612184565b506069546040517ff18d5a93c62c1d0c761ed52107f11d20bc2071851206b79c4dd3283bd9f006f191610ba9916001600160a01b03909116908490612209565b60405180910390a150565b610bbc611824565b6001600160a01b0316610bcd611348565b6001600160a01b031614610c16576040805162461bcd60e51b8152602060048201819052602482015260008051602061245d833981519152604482015290519081900360640190fd5b60655460685460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92610c4c929116908590600401612209565b602060405180830381600087803b158015610c6657600080fd5b505af1158015610c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9e9190612184565b506068546040517ff18d5a93c62c1d0c761ed52107f11d20bc2071851206b79c4dd3283bd9f006f191610ba9916001600160a01b03909116908490612209565b610ce6611824565b6001600160a01b0316610cf7611348565b6001600160a01b031614610d40576040805162461bcd60e51b8152602060048201819052602482015260008051602061245d833981519152604482015290519081900360640190fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b6067546001600160a01b031681565b606e5481565b600054610100900460ff1680610db85750610db8611bca565b80610dc6575060005460ff16155b610e015760405162461bcd60e51b815260040180806020018281038252602e81526020018061240e602e913960400191505060405180910390fd5b600054610100900460ff16158015610e2c576000805460ff1961ff0019909116610100171660011790555b610e34611bdb565b8015610e46576000805461ff00191690555b50565b6000610e5361071a565b90506001600160a01b0381161580610e7357506001600160a01b03811633145b610ec4576040805162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a204e6f7420616e20696e6a6563746f72000000000000604482015290519081900360640190fd5b816001600160a01b0316632fe83b026040518163ffffffff1660e01b815260040160206040518083038186803b158015610efd57600080fd5b505afa158015610f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f359190612081565b606560006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316632463efd66040518163ffffffff1660e01b815260040160206040518083038186803b158015610f9457600080fd5b505afa158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc9190612081565b606960006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663f0f8c04e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561102b57600080fd5b505afa15801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110639190612081565b606860006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663dc9c563f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c257600080fd5b505afa1580156110d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fa9190612081565b606660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316639bc0c5d26040518163ffffffff1660e01b815260040160206040518083038186803b15801561115957600080fd5b505afa15801561116d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111919190612081565b606760006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316639038a3ce6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111f057600080fd5b505afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112289190612081565b6001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129891906121d4565b60ff16606a555050565b606b5481565b60006112b261071a565b90506001600160a01b03811615806112d257506001600160a01b03811633145b611323576040805162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a204e6f7420616e20696e6a6563746f72000000000000604482015290519081900360640190fd5b507fd6b8f2e074594ceb05d47c27386969754b6ad0c15e5eb8f691399cd0be980e7655565b6033546001600160a01b031690565b606d5481565b60705481565b6069546001600160a01b031681565b61137a611824565b6001600160a01b031661138b611348565b6001600160a01b0316146113d4576040805162461bcd60e51b8152602060048201819052602482015260008051602061245d833981519152604482015290519081900360640190fd5b6065546040516370a0823160e01b81526000916001600160a01b0316906370a08231906114059030906004016121f5565b60206040518083038186803b15801561141d57600080fd5b505afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145591906121bc565b6065549091506001600160a01b031663a9059cbb611471611824565b836040518363ffffffff1660e01b815260040161148f929190612209565b602060405180830381600087803b1580156114a957600080fd5b505af11580156114bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e19190612184565b507f46d2e6e71fc567877b817ff3d940571f989d4ee4d40f2b70806d36e738feef6f61150b611824565b82604051610ba9929190612209565b611522611824565b6001600160a01b0316611533611348565b6001600160a01b03161461157c576040805162461bcd60e51b8152602060048201819052602482015260008051602061245d833981519152604482015290519081900360640190fd5b606b81905561158b60006118db565b7f5d7c78d0ee3ce6196f90e74ed58c0ada9ac7ccc47d3aca0547ac893776f0382681604051610ba991906123c9565b6068546000906001600160a01b03166115d1611824565b6001600160a01b0316146115f75760405162461bcd60e51b815260040161042690612325565b600061160584846000611b10565b600084815260726020526040812081815560018101829055600281018290556003015591505092915050565b6065546001600160a01b031681565b606c5460009080611652576000611698565b606b546001600160a01b0384166000908152607160205260409020600181015490546116989284926108fc926a084595161401484a000000926108f69290918391611828565b9392505050565b60009081526072602052604090206002015490565b6116bc611824565b6001600160a01b03166116cd611348565b6001600160a01b031614611716576040805162461bcd60e51b8152602060048201819052602482015260008051602061245d833981519152604482015290519081900360640190fd5b6001600160a01b03811661175b5760405162461bcd60e51b81526004018080602001828103825260268152602001806123e86026913960400191505060405180910390fd5b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b6068546000906001600160a01b03166117ce611824565b6001600160a01b0316146117f45760405162461bcd60e51b815260040161042690612325565b60006117ff84611c78565b9050600061180c85611d09565b50905061181b85858385611a02565b95945050505050565b3390565b60008261183757506000610a79565b8282028284828161184457fe5b04146116985760405162461bcd60e51b815260040180806020018281038252602181526020018061243c6021913960400191505060405180910390fd5b600082820183811015611698576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006118f8606e546108f660705443611a3e90919063ffffffff16565b606c54606d549192509060009061190f9084611881565b905060008211611925576000606e81905561194c565b606b546119469083906108fc906d04ee2d6d415b85acef8100000000611828565b606e8190555b506001600160a01b038416156119c1576001600160a01b03841660009081526071602052604090208054600182015460048301546119b5926119aa926d04ee2d6d415b85acef8100000000926108fc92916108f69182908a90611a3e565b600583015490611881565b60058201556004018190555b606d5550504360705550565b6001600160a01b03811660009081526071602052604090206119ee82611d09565b600783015560068201554360039091015550565b600061181b611a266b033b2e3c9fd0803ce80000006108fc856108f68a8a8a611dee565b60008681526072602052604090206001015490611881565b600082821115611a95576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211611af1576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611afa57fe5b049392505050565b600061169883836012611e84565b600082815260726020526040812060030154611b3e5760405162461bcd60e51b815260040161042690612222565b6001600160a01b038416600090815260716020526040902082611ba4576000848152607260205260409020600201548154611b7e90610827908390611828565b606c55611b8a866118db565b6001820154611b999082611a3e565b600183015550611bad565b611bad856118db565b611bb6856119cd565b61181b858583600601548460050154611a02565b6000611bd530611ec6565b15905090565b600054610100900460ff1680611bf45750611bf4611bca565b80611c02575060005460ff16155b611c3d5760405162461bcd60e51b815260040180806020018281038252602e81526020018061240e602e913960400191505060405180910390fd5b600054610100900460ff16158015611c68576000805460ff1961ff0019909116610100171660011790555b611c70611ecc565b610e34611f6c565b6001600160a01b0381166000908152607160205260408120606e546070548391611ca7916108f6904390611a3e565b9050611d01611cf66a084595161401484a000000606402620186a0026108fc85600001546108f687600101546108f68960040154611cf08a606d5461188190919063ffffffff16565b90611a3e565b600584015490611881565b949350505050565b6001600160a01b0381166000908152607160205260408120600281015460038201546001830154849392919084611d408385611a3e565b90506000611d4e4385611a3e565b90506000611d5c4387611a3e565b905060008111611d70576000985088611da8565b611da4816108fc611d8e858b6007015461182890919063ffffffff16565b60068b0154611d9e908890611828565b90611881565b9850885b5060008411611dbb576000975087611de1565b611ddd846108fc6b033b2e3c9fd0803ce8000000670de0b6b3a7640000611828565b9750875b5050505050505050915091565b6001600160a01b03831660009081526071602052604081206002015481611e154383611a3e565b60008681526072602052604081206003015491925090611e359084611a3e565b600087815260726020526040902060028101549054919250611e7991670de0b6b3a76400008502916108fc916108f690611e6f9087611828565b611cf08b89611828565b979650505050505050565b600081831115611ea457611e9d84838503600a0a611a9b565b9350611ebe565b81831015611ebe57611ebb84848403600a0a611828565b93505b509192915050565b3b151590565b600054610100900460ff1680611ee55750611ee5611bca565b80611ef3575060005460ff16155b611f2e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061240e602e913960400191505060405180910390fd5b600054610100900460ff16158015610e34576000805460ff1961ff0019909116610100171660011790558015610e46576000805461ff001916905550565b600054610100900460ff1680611f855750611f85611bca565b80611f93575060005460ff16155b611fce5760405162461bcd60e51b815260040180806020018281038252602e81526020018061240e602e913960400191505060405180910390fd5b600054610100900460ff16158015611ff9576000805460ff1961ff0019909116610100171660011790555b6000612003611824565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e46576000805461ff001916905550565b600060208284031215612076578081fd5b8135611698816123d2565b600060208284031215612092578081fd5b8151611698816123d2565b600080600080606085870312156120b2578283fd5b84356120bd816123d2565b9350602085013567ffffffffffffffff808211156120d9578485fd5b818701915087601f8301126120ec578485fd5b8135818111156120fa578586fd5b886020808302850101111561210d578586fd5b95986020929092019750949560400135945092505050565b60008060408385031215612137578182fd5b8235612142816123d2565b946020939093013593505050565b600080600060608486031215612164578283fd5b833561216f816123d2565b95602085013595506040909401359392505050565b600060208284031215612195578081fd5b81518015158114611698578182fd5b6000602082840312156121b5578081fd5b5035919050565b6000602082840312156121cd578081fd5b5051919050565b6000602082840312156121e5578081fd5b815160ff81168114611698578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252601c908201527f5265776172647347656e657261746f723a204e6f74207374616b656400000000604082015260600190565b6020808252818101527f5265776172647347656e657261746f723a20416c7265616479207374616b6564604082015260600190565b60208082526031908201527f5265776172647347656e657261746f723a205468652063616c6c657220646f6560408201527073206e6f7420686176652061636365737360781b606082015260800190565b60208082526026908201527f5265776172647347656e657261746f723a2041676772656761746f72206973206040820152651cdd185ad95960d21b606082015260800190565b6020808252603a908201527f5265776172647347656e657261746f723a2043616c6c6572206973206e6f742060408201527f6120424d49436f7665725374616b696e6720636f6e7472616374000000000000606082015260800190565b60208082526027908201527f5265776172647347656e657261746f723a2041676772656761746564206e6f74604082015266081cdd185ad95960ca1b606082015260800190565b90815260200190565b6001600160a01b0381168114610e4657600080fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220a39e51c9f0766228841b86900eb859d2491b254746fcb43c0871927cb50b09d764736f6c63430007040033