UNPKG

@gooddollar/goodprotocol

Version:
257 lines (256 loc) 17.9 kB
{ "_format": "hh-sol-artifact-1", "contractName": "BaseShareField", "sourceName": "contracts/staking/BaseShareField.sol", "abi": [ { "inputs": [], "name": "accAmountPerShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "accumulatedRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getProductivity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "rewardsPerBlock", "type": "uint256" }, { "internalType": "uint256", "name": "blockStart", "type": "uint256" }, { "internalType": "uint256", "name": "blockEnd", "type": "uint256" } ], "name": "getUserPendingReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastRewardBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMultiplierThreshold", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintedRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "rewardsPerBlock", "type": "uint256" }, { "internalType": "uint256", "name": "blockStart", "type": "uint256" }, { "internalType": "uint256", "name": "blockEnd", "type": "uint256" } ], "name": "rewardsMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tokenDecimalDifference", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalEffectiveStakes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalProductivity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "users", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "effectiveStakes", "type": "uint256" }, { "internalType": "uint256", "name": "rewardDebt", "type": "uint256" }, { "internalType": "uint256", "name": "rewardEarn", "type": "uint256" }, { "internalType": "uint256", "name": "rewardMinted", "type": "uint256" }, { "internalType": "uint64", "name": "lastRewardTime", "type": "uint64" }, { "internalType": "uint64", "name": "multiplierResetTime", "type": "uint64" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50610c28806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c80631ce720f3146100a957806328e964e9146100cd5780633a6080321461010e5780634a291b0114610125578063574c5c931461012e578063899e1b6c146101415780639c81ff6b1461016c578063a82415ae14610175578063a87430ba14610188578063a9f8d18114610220578063bea2811514610229578063e319828c14610232575b600080fd5b6007546100b69060ff1681565b60405160ff90911681526020015b60405180910390f35b6100f96100db366004610a0f565b6001600160a01b031660009081526008602052604081205490549091565b604080519283526020830191909152016100c4565b61011760025481565b6040519081526020016100c4565b61011760015481565b61011761013c366004610a2a565b61023b565b600554610154906001600160401b031681565b6040516001600160401b0390911681526020016100c4565b61011760045481565b610117610183366004610a2a565b6102c1565b6101df610196366004610a0f565b60086020526000908152604090208054600182015460028301546003840154600485015460059095015493949293919290916001600160401b0380821691600160401b90041687565b60408051978852602088019690965294860193909352606085019190915260808401526001600160401b0390811660a08401521660c082015260e0016100c4565b61011760065481565b61011760005481565b61011760035481565b6001600160a01b038416600090815260086020526040812061025e8585856104fb565b61026e8682600001546001610600565b6003810180546000918290556004830180549192839261028f908490610a79565b90915550506003546102a2908290610a79565b6003556102b6662386f26fc1000082610a8c565b979650505050505050565b6001600160a01b0384166000908152600860209081526040808320815160e08101835281548152600180830154948201949094526002808301549382019390935260038201546060820152600482015460808201526005909101546001600160401b0380821660a0840152600160401b9091041660c0820152905491549091908390158015906103515750854310155b801561035d5750438510155b156104df576000600654436103729190610aae565b9050600061038789662386f26fc10000610ac1565b6103919083610ac1565b905060008060006103a18861092a565b60075492955090935091506103ba9060ff16600a610bbc565b6001546103c79190610ac1565b6103dc85676765c793fa10079d601b1b610ac1565b6103e69190610a8c565b6103f09088610a79565b96508783156104d8576040810151600754676765c793fa10079d601b1b908a9061041e9060ff16600a610bbc565b846020015161042d9190610ac1565b6104379190610ac1565b6104419190610a8c565b61044b9190610aae565b9650600061046185670de0b6b3a7640000610ac1565b61047689676765c793fa10079d601b1b610ac1565b6104809190610a8c565b905064174876e80081610494856064610ac1565b600a6104a1886064610ac1565b6104ac906005610ac1565b6104b69190610a8c565b6104c09190610a79565b6104ca9190610ac1565b6104d49190610a8c565b9750505b5050505050505b8083606001516104ef9190610a79565b98975050505050505050565b60015460000361050e5750504360065550565b81431015801561051f575081600654105b1561052a5760068290555b60008260065410801561053d5750824310155b6105495760065461054b565b825b9050600082431161055c574361055e565b825b90508381108061056e5750828210155b1561057a575050505050565b60006105868383610aae565b9050600061059b87662386f26fc10000610ac1565b6105a59083610ac1565b6007549091506105b99060ff16600a610bbc565b6001546105c69190610ac1565b6105db82676765c793fa10079d601b1b610ac1565b6105e59190610a8c565b6002546105f29190610a79565b600255505060065550505050565b6001600160a01b03831660009081526008602052604090208054600182015480156107ac576040805160e0810182528454815260018501546020820152600285015491810191909152600384015460608201526004840154608082015260058401546001600160401b0380821660a0840152600160401b9091041660c0820152600090819081906106909061092a565b925092509250826000146107a457600280870154905460075460009291676765c793fa10079d601b1b916106c89060ff16600a610bbc565b6106d29089610ac1565b6106dc9190610ac1565b6106e69190610a8c565b6106f09190610aae565b9050600061070685670de0b6b3a7640000610ac1565b61071b83676765c793fa10079d601b1b610ac1565b6107259190610a8c565b905064174876e80081610739856064610ac1565b600a610746886064610ac1565b610751906005610ac1565b61075b9190610a8c565b6107659190610a79565b61076f9190610ac1565b6107799190610a8c565b915081886003015461078b9190610a79565b600389015560045461079e908390610a79565b60045550505b5050506107d3565b600583018054600160401b600160801b031916600160401b436001600160401b0316021790555b81851161086957600583018054600160401b600160801b031916600160401b436001600160401b0316021790558115610864576000828460010154878561081a9190610aae565b6108249190610ac1565b61082e9190610a8c565b9050808460010160008282546108449190610aae565b92505081905550806001600082825461085d9190610aae565b9091555050505b6108b5565b836000036108b55761087b8286610aae565b83600101600082825461088e9190610a79565b9091555061089e90508286610aae565b600160008282546108af9190610a79565b90915550505b6005830180546001600160401b031916436001600160401b0316179055848355600254600754676765c793fa10079d601b1b91906108f79060ff16600a610bbc565b85600101546109069190610ac1565b6109109190610ac1565b61091a9190610a8c565b8360020181905550505050505050565b6000806000808460c001518560a001516109449190610bcb565b60055460c08701516001600160401b0392831693506000926109739281169161096e911643610aae565b6109d9565b905060008660a001516001600160401b0316436109909190610aae565b6005549091506000906001600160401b03168410156109b8576109b38484610aae565b6109bb565b60005b905060006109c98284610aae565b9299919850919650945050505050565b60008183106109e857816109ea565b825b90505b92915050565b80356001600160a01b0381168114610a0a57600080fd5b919050565b600060208284031215610a2157600080fd5b6109ea826109f3565b60008060008060808587031215610a4057600080fd5b610a49856109f3565b966020860135965060408601359560600135945092505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109ed576109ed610a63565b600082610aa957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109ed576109ed610a63565b80820281158282048414176109ed576109ed610a63565b600181815b80851115610b13578160001904821115610af957610af9610a63565b80851615610b0657918102915b93841c9390800290610add565b509250929050565b600082610b2a575060016109ed565b81610b37575060006109ed565b8160018114610b4d5760028114610b5757610b73565b60019150506109ed565b60ff841115610b6857610b68610a63565b50506001821b6109ed565b5060208310610133831016604e8410600b8410161715610b96575081810a6109ed565b610ba08383610ad8565b8060001904821115610bb457610bb4610a63565b029392505050565b60006109ea60ff841683610b1b565b6001600160401b03828116828216039080821115610beb57610beb610a63565b509291505056fea2646970667358221220b050fb6bb86fe0da18801bba366e32609be7be345cf12225e4aada1f28dc693e64736f6c63430008130033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c80631ce720f3146100a957806328e964e9146100cd5780633a6080321461010e5780634a291b0114610125578063574c5c931461012e578063899e1b6c146101415780639c81ff6b1461016c578063a82415ae14610175578063a87430ba14610188578063a9f8d18114610220578063bea2811514610229578063e319828c14610232575b600080fd5b6007546100b69060ff1681565b60405160ff90911681526020015b60405180910390f35b6100f96100db366004610a0f565b6001600160a01b031660009081526008602052604081205490549091565b604080519283526020830191909152016100c4565b61011760025481565b6040519081526020016100c4565b61011760015481565b61011761013c366004610a2a565b61023b565b600554610154906001600160401b031681565b6040516001600160401b0390911681526020016100c4565b61011760045481565b610117610183366004610a2a565b6102c1565b6101df610196366004610a0f565b60086020526000908152604090208054600182015460028301546003840154600485015460059095015493949293919290916001600160401b0380821691600160401b90041687565b60408051978852602088019690965294860193909352606085019190915260808401526001600160401b0390811660a08401521660c082015260e0016100c4565b61011760065481565b61011760005481565b61011760035481565b6001600160a01b038416600090815260086020526040812061025e8585856104fb565b61026e8682600001546001610600565b6003810180546000918290556004830180549192839261028f908490610a79565b90915550506003546102a2908290610a79565b6003556102b6662386f26fc1000082610a8c565b979650505050505050565b6001600160a01b0384166000908152600860209081526040808320815160e08101835281548152600180830154948201949094526002808301549382019390935260038201546060820152600482015460808201526005909101546001600160401b0380821660a0840152600160401b9091041660c0820152905491549091908390158015906103515750854310155b801561035d5750438510155b156104df576000600654436103729190610aae565b9050600061038789662386f26fc10000610ac1565b6103919083610ac1565b905060008060006103a18861092a565b60075492955090935091506103ba9060ff16600a610bbc565b6001546103c79190610ac1565b6103dc85676765c793fa10079d601b1b610ac1565b6103e69190610a8c565b6103f09088610a79565b96508783156104d8576040810151600754676765c793fa10079d601b1b908a9061041e9060ff16600a610bbc565b846020015161042d9190610ac1565b6104379190610ac1565b6104419190610a8c565b61044b9190610aae565b9650600061046185670de0b6b3a7640000610ac1565b61047689676765c793fa10079d601b1b610ac1565b6104809190610a8c565b905064174876e80081610494856064610ac1565b600a6104a1886064610ac1565b6104ac906005610ac1565b6104b69190610a8c565b6104c09190610a79565b6104ca9190610ac1565b6104d49190610a8c565b9750505b5050505050505b8083606001516104ef9190610a79565b98975050505050505050565b60015460000361050e5750504360065550565b81431015801561051f575081600654105b1561052a5760068290555b60008260065410801561053d5750824310155b6105495760065461054b565b825b9050600082431161055c574361055e565b825b90508381108061056e5750828210155b1561057a575050505050565b60006105868383610aae565b9050600061059b87662386f26fc10000610ac1565b6105a59083610ac1565b6007549091506105b99060ff16600a610bbc565b6001546105c69190610ac1565b6105db82676765c793fa10079d601b1b610ac1565b6105e59190610a8c565b6002546105f29190610a79565b600255505060065550505050565b6001600160a01b03831660009081526008602052604090208054600182015480156107ac576040805160e0810182528454815260018501546020820152600285015491810191909152600384015460608201526004840154608082015260058401546001600160401b0380821660a0840152600160401b9091041660c0820152600090819081906106909061092a565b925092509250826000146107a457600280870154905460075460009291676765c793fa10079d601b1b916106c89060ff16600a610bbc565b6106d29089610ac1565b6106dc9190610ac1565b6106e69190610a8c565b6106f09190610aae565b9050600061070685670de0b6b3a7640000610ac1565b61071b83676765c793fa10079d601b1b610ac1565b6107259190610a8c565b905064174876e80081610739856064610ac1565b600a610746886064610ac1565b610751906005610ac1565b61075b9190610a8c565b6107659190610a79565b61076f9190610ac1565b6107799190610a8c565b915081886003015461078b9190610a79565b600389015560045461079e908390610a79565b60045550505b5050506107d3565b600583018054600160401b600160801b031916600160401b436001600160401b0316021790555b81851161086957600583018054600160401b600160801b031916600160401b436001600160401b0316021790558115610864576000828460010154878561081a9190610aae565b6108249190610ac1565b61082e9190610a8c565b9050808460010160008282546108449190610aae565b92505081905550806001600082825461085d9190610aae565b9091555050505b6108b5565b836000036108b55761087b8286610aae565b83600101600082825461088e9190610a79565b9091555061089e90508286610aae565b600160008282546108af9190610a79565b90915550505b6005830180546001600160401b031916436001600160401b0316179055848355600254600754676765c793fa10079d601b1b91906108f79060ff16600a610bbc565b85600101546109069190610ac1565b6109109190610ac1565b61091a9190610a8c565b8360020181905550505050505050565b6000806000808460c001518560a001516109449190610bcb565b60055460c08701516001600160401b0392831693506000926109739281169161096e911643610aae565b6109d9565b905060008660a001516001600160401b0316436109909190610aae565b6005549091506000906001600160401b03168410156109b8576109b38484610aae565b6109bb565b60005b905060006109c98284610aae565b9299919850919650945050505050565b60008183106109e857816109ea565b825b90505b92915050565b80356001600160a01b0381168114610a0a57600080fd5b919050565b600060208284031215610a2157600080fd5b6109ea826109f3565b60008060008060808587031215610a4057600080fd5b610a49856109f3565b966020860135965060408601359560600135945092505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109ed576109ed610a63565b600082610aa957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109ed576109ed610a63565b80820281158282048414176109ed576109ed610a63565b600181815b80851115610b13578160001904821115610af957610af9610a63565b80851615610b0657918102915b93841c9390800290610add565b509250929050565b600082610b2a575060016109ed565b81610b37575060006109ed565b8160018114610b4d5760028114610b5757610b73565b60019150506109ed565b60ff841115610b6857610b68610a63565b50506001821b6109ed565b5060208310610133831016604e8410600b8410161715610b96575081810a6109ed565b610ba08383610ad8565b8060001904821115610bb457610bb4610a63565b029392505050565b60006109ea60ff841683610b1b565b6001600160401b03828116828216039080821115610beb57610beb610a63565b509291505056fea2646970667358221220b050fb6bb86fe0da18801bba366e32609be7be345cf12225e4aada1f28dc693e64736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} }