@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
480 lines (479 loc) • 41.2 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ChallengeSettlementLogic",
"sourceName": "contracts/challenges/libraries/ChallengeSettlementLogic.sol",
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "AlreadyClaimed",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "AlreadyRefunded",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
}
],
"name": "ChallengeAlreadyCompleted",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
}
],
"name": "ChallengeDoesNotExist",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endRound",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "currentRound",
"type": "uint256"
}
],
"name": "ChallengeEnded",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "enum ChallengeTypes.ChallengeStatus",
"name": "status",
"type": "uint8"
}
],
"name": "ChallengeInvalidStatus",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endRound",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "currentRound",
"type": "uint256"
}
],
"name": "ChallengeNotEnded",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "ChallengesUnauthorizedUser",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
}
],
"name": "NotASplitWinChallenge",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "actions",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "threshold",
"type": "uint256"
}
],
"name": "NotEligibleForSplitWin",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "address",
"name": "participant",
"type": "address"
}
],
"name": "NotParticipating",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "NotVerifiedPerson",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "NothingToClaim",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "NothingToRefund",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
}
],
"name": "SplitWinCannotComplete",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
}
],
"name": "SplitWinSlotsExhausted",
"type": "error"
},
{
"inputs": [],
"name": "TransferFailed",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "enum ChallengeTypes.SettlementMode",
"name": "settlementMode",
"type": "uint8"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bestScore",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bestCount",
"type": "uint256"
}
],
"name": "ChallengeCompleted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "ChallengePayoutClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "ChallengeRefundClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "creator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "SplitWinCreatorRefunded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "winner",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "prize",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "actions",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "winnersClaimed",
"type": "uint256"
}
],
"name": "SplitWinPrizeClaimed",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "challengeId",
"type": "uint256"
},
{
"internalType": "address",
"name": "participant",
"type": "address"
}
],
"name": "getParticipantActions",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x611e4261003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c806314cf90771461007157806387d6e21314610096578063a0427700146100b6578063a7817bbc146100d6578063b58bd356146100f8578063cb3e0d2b14610118575b600080fd5b61008461007f366004611a84565b610138565b60405190815260200160405180910390f35b8180156100a257600080fd5b506100846100b1366004611ac0565b61015a565b8180156100c257600080fd5b506100846100d1366004611ac0565b61044c565b8180156100e257600080fd5b506100f66100f1366004611ac0565b610903565b005b81801561010457600080fd5b50610084610113366004611ac0565b610e50565b81801561012457600080fd5b50610084610133366004611ac0565b6110e4565b60008061014484611532565b90506101508184611583565b9150505b92915050565b60008061016561159b565b9050600061017284611532565b90506001815462010000900460ff16600181111561019257610192611ad9565b036101c95780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b60405180910390fd5b600081546301000000900460ff1660048111156101e8576101e8611ad9565b0361026357604051632cc3c16160e21b81526004810185905273__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af415801561023d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102619190611b13565b505b600281546301000000900460ff16600481111561028257610282611ad9565b146102b05780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b6000848152600e83016020908152604080832033845290915290205460ff16156102f15783336040516302a4851560e61b81526004016101c0929190611b36565b6102fc8482336115bf565b61031d57833360405163b361b5fb60e01b81526004016101c0929190611b36565b6000610329858361163e565b905061033e82600701548284600a015461168e565b6000868152600e8501602090815260408083203384529091528120805460ff19166001179055600a840180549296509061037783611b63565b9091555050825460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906103ad9033908890600401611b7c565b6020604051808303816000875af11580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f09190611baa565b61040d576040516312171d8360e31b815260040160405180910390fd5b604051848152339086907f88f0c55826d9ef2f514f933a99edb543a1514ee7211d8bfa04e66e29954fe6b49060200160405180910390a3505050919050565b60008061045761159b565b9050600061046484611532565b90506001815462010000900460ff16600181111561048457610484611ad9565b146104a557604051637c412df960e11b8152600481018590526024016101c0565b600081546301000000900460ff1660048111156104c4576104c4611ad9565b0361053f57604051632cc3c16160e21b81526004810185905273__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af4158015610519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d9190611b13565b505b600181546301000000900460ff16600481111561055e5761055e611ad9565b1461058c5780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b600282015460408051639cbe5efd60e01b815290516000926001600160a01b031691639cbe5efd9160048083019260209291908290030181865afa1580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fc9190611bc5565b905081600201548110156106335781546040516366fc878160e01b81526101c0918791630100000090910460ff1690600401611aef565b8160030154811115610661576003820154604051637b05ab9b60e01b81526101c09187918490600401611bde565b60036000868152600985016020908152604080832033845290915290205460ff16600381111561069357610693611ad9565b146106b557843360405163c100013360e01b81526004016101c0929190611b36565b6000858152601184016020908152604080832033845290915290205460ff16156106f65784336040516302a4851560e61b81526004016101c0929190611b36565b6005820154600e830154106107215760405163387c43a960e21b8152600481018690526024016101c0565b61072b83336116dd565b6000610738833384611785565b905082600401548110156107795760048381015460405163431170f560e11b81529182018890523360248301526044820183905260648201526084016101c0565b6006830154600e84018054600181810183556000928352602080842090920180546001600160a01b031916339081179091558a8452601189018352604080852082865290935292829020805460ff191690911790558654905163a9059cbb60e01b81529297506001600160a01b03169163a9059cbb916107fd918990600401611b7c565b6020604051808303816000875af115801561081c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108409190611baa565b61085d576040516312171d8360e31b815260040160405180910390fd5b600e830154604051339188917f4dcac657463253f9668a0d5c9a2f7c00a7d7ac72a1afe05e65034691fdd911c391610898918a918791611bde565b60405180910390a36005830154600e840154036108fa57825464ffff0000001916640302000000178084556040518791600080516020611ded833981519152916108f191600160201b900460ff16906000908190611c08565b60405180910390a25b50505050919050565b600061090d61159b565b9050600061091a83611532565b90506001815462010000900460ff16600181111561093a5761093a611ad9565b0361095b5760405163180ebb8f60e21b8152600481018490526024016101c0565b600282015460408051639cbe5efd60e01b815290516000926001600160a01b031691639cbe5efd9160048083019260209291908290030181865afa1580156109a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611bc5565b9050816003015481116109fa5760038201546040516357684ca560e01b81526101c09186918490600401611bde565b604051632cc3c16160e21b81526004810185905260009073__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af4158015610a4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a719190611b13565b60ff166004811115610a8557610a85611ad9565b90506004816004811115610a9b57610a9b611ad9565b1480610ab857506003816004811115610ab657610ab6611ad9565b145b15610ada5784816040516366fc878160e01b81526004016101c0929190611aef565b6002816004811115610aee57610aee611ad9565b03610b0f57604051633c6fa5d760e21b8152600481018690526024016101c0565b600b8301546000816001600160401b03811115610b2e57610b2e611c27565b604051908082528060200260200182016040528015610b57578160200160208202803683370190505b5090506000826001600160401b03811115610b7457610b74611c27565b604051908082528060200260200182016040528015610b9d578160200160208202803683370190505b50905060005b83811015610cc857600087600b018281548110610bc257610bc2611c3d565b600091825260208220015460018b01546040516307b9c93d60e11b81526001600160a01b039283169450911690630f73927a90610c03908590600401611c53565b600060405180830381865afa158015610c20573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c489190810190611c8b565b50905080610c57575050610cb6565b6001848481518110610c6b57610c6b611c3d565b911515602092830291909101909101526000610c878a84611583565b905080868581518110610c9c57610c9c611c3d565b602002602001018181525050610cb28a82611987565b5050505b80610cc081611b63565b915050610ba3565b50600986015415610dba5760088601546000805b85811015610da657838181518110610cf657610cf6611c3d565b60200260200101518015610d22575082858281518110610d1857610d18611c3d565b6020026020010151145b15610d945760008b815260128b0160205260408120600b8b018054600193919085908110610d5257610d52611c3d565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905581610d9081611b63565b9250505b80610d9e81611b63565b915050610cdc565b5060008a815260138a016020526040902055505b600986015415610dcb576001610dce565b60025b8654879060ff60201b1916600160201b836003811115610df057610df0611ad9565b0217905550855463ff0000001916630200000017808755600887015460098801546040518b93600080516020611ded83398151915293610e3e93600160201b90920460ff1692909190611c08565b60405180910390a25050505050505050565b600080610e5b61159b565b90506000610e6884611532565b9050600081546301000000900460ff166004811115610e8957610e89611ad9565b03610f0457604051632cc3c16160e21b81526004810185905273__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af4158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190611b13565b505b600381546301000000900460ff166004811115610f2357610f23611ad9565b14158015610f4e5750600481546301000000900460ff166004811115610f4b57610f4b611ad9565b14155b15610f7c5780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b6000848152600f83016020908152604080832033845290915290205460ff1615610fbd578333604051636101359d60e01b81526004016101c0929190611b36565b610fc88482336119d6565b925082600003610fef578333604051632decd07b60e11b81526004016101c0929190611b36565b6000848152600f83016020908152604080832033808552925291829020805460ff191660011790558354915163a9059cbb60e01b81526001600160a01b03929092169163a9059cbb91611046918790600401611b7c565b6020604051808303816000875af1158015611065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110899190611baa565b6110a6576040516312171d8360e31b815260040160405180910390fd5b604051838152339085907ffb13634c7c32bbfbc28f461ca4b0c850887c9cfbde7d6c97f24bfcff25c7be369060200160405180910390a35050919050565b6000806110ef61159b565b905060006110fc84611532565b90506001815462010000900460ff16600181111561111c5761111c611ad9565b1461113d57604051637c412df960e11b8152600481018590526024016101c0565b8054600160301b90046001600160a01b0316331461117057336040516309edd0f760e11b81526004016101c09190611c53565b600081546301000000900460ff16600481111561118f5761118f611ad9565b0361120a57604051632cc3c16160e21b81526004810185905273__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af41580156111e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112089190611b13565b505b600181546301000000900460ff16600481111561122957611229611ad9565b141580156112545750600281546301000000900460ff16600481111561125157611251611ad9565b14155b156112825780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b600282015460408051639cbe5efd60e01b815290516000926001600160a01b031691639cbe5efd9160048083019260209291908290030181865afa1580156112ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f29190611bc5565b9050816003015481116113215760038201546040516357684ca560e01b81526101c09187918490600401611bde565b6000858152600f84016020908152604080832033845290915290205460ff1615611362578433604051636101359d60e01b81526004016101c0929190611b36565b600e820154600583015460009161137891611d4b565b90508060000361139f578533604051632decd07b60e11b81526004016101c0929190611b36565b600e83015460068401546000916113b591611d5e565b90508084600701546113c79190611d4b565b6000888152600f8701602090815260408083203384529091529020805460ff1916600190811790915590965084546301000000900460ff16600481111561141057611410611ad9565b0361146057835464ffff0000001916640302000000178085556040518891600080516020611ded8339815191529161145791600160201b900460ff16906000908190611c08565b60405180910390a25b845460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906114919033908a90600401611b7c565b6020604051808303816000875af11580156114b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d49190611baa565b6114f1576040516312171d8360e31b815260040160405180910390fd5b604051868152339088907f24c3cd6e13a29307bab455491e4cd5b29f6a457854a08f27f319ab4f8fec51389060200160405180910390a35050505050919050565b60008061153d61159b565b905082158061154f5750806006015483115b1561157057604051635bafafd160e01b8152600481018490526024016101c0565b6000928352600801602052506040902090565b600061159483838560030154611785565b9392505050565b7f4602c7a79eac2c186a5049fa18aa513e24b689a1ed3277f24b1e5b426612d10090565b6000806115ca61159b565b905060028454600160201b900460ff1660038111156115eb576115eb611ad9565b0361160e57505081546001600160a01b03828116600160301b9092041614611594565b6000948552601201602090815260408086206001600160a01b03949094168652929052509091205460ff16919050565b600060028254600160201b900460ff16600381111561165f5761165f611ad9565b0361166c57506001610154565b600061167661159b565b60009485526013016020525050604090912054919050565b60008061169b8486611d75565b9050836116a9846001611d97565b036116d5576116b9600185611d4b565b6116c39082611d5e565b6116cd9086611d4b565b915050611594565b949350505050565b60018201546040516307b9c93d60e11b815260009182916001600160a01b0390911690630f73927a90611714908690600401611c53565b600060405180830381865afa158015611731573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117599190810190611c8b565b915091508161177f57828160405163411f12c760e01b81526004016101c0929190611daa565b50505050565b60008061179061159b565b90506000856003015484116117a557836117ab565b85600301545b905085600201548110156117c457600092505050611594565b8554600160281b900460ff161561187d5760028601545b8181116118755760018301546040516344368ae960e11b81526001600160a01b039091169063886d15d2906118169089908590600401611b7c565b602060405180830381865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190611bc5565b6118619085611d97565b93508061186d81611b63565b9150506117db565b505050611594565b60028601545b81811161197d5760005b600f88015481101561196a576001840154600f890180546001600160a01b0390921691639352d272918a91869190869081106118cb576118cb611c3d565b6000918252602090912001546040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401602060405180830381865afa158015611928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194c9190611bc5565b6119569086611d97565b94508061196281611b63565b91505061188d565b508061197581611b63565b915050611883565b5050509392505050565b6009820154158061199b5750816008015481115b156119af5760088201556001600990910155565b816008015481036119d2576009820180549060006119cc83611b63565b91905055505b5050565b6000806119e161159b565b90506000845460ff1660018111156119fb576119fb611ad9565b03611a53576003600086815260098301602090815260408083206001600160a01b038816845290915290205460ff166003811115611a3b57611a3b611ad9565b14611a475760006116cd565b50506001820154611594565b83546001600160a01b03848116600160301b9092041614611a75576000611a7b565b83600701545b95945050505050565b60008060408385031215611a9757600080fd5b8235915060208301356001600160a01b0381168114611ab557600080fd5b809150509250929050565b600060208284031215611ad257600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b8281526040810160058310611b0657611b06611ad9565b8260208301529392505050565b600060208284031215611b2557600080fd5b815160ff8116811461159457600080fd5b9182526001600160a01b0316602082015260400190565b634e487b7160e01b600052601160045260246000fd5b600060018201611b7557611b75611b4d565b5060010190565b6001600160a01b03929092168252602082015260400190565b80518015158114611ba557600080fd5b919050565b600060208284031215611bbc57600080fd5b61159482611b95565b600060208284031215611bd757600080fd5b5051919050565b9283526020830191909152604082015260600190565b60048110611c0457611c04611ad9565b9052565b60608101611c168286611bf4565b602082019390935260400152919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0391909116815260200190565b60005b83811015611c82578181015183820152602001611c6a565b50506000910152565b60008060408385031215611c9e57600080fd5b611ca783611b95565b60208401519092506001600160401b0380821115611cc457600080fd5b818501915085601f830112611cd857600080fd5b815181811115611cea57611cea611c27565b604051601f8201601f19908116603f01168101908382118183101715611d1257611d12611c27565b81604052828152886020848701011115611d2b57600080fd5b611d3c836020830160208801611c67565b80955050505050509250929050565b8181038181111561015457610154611b4d565b808202811582820484141761015457610154611b4d565b600082611d9257634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561015457610154611b4d565b60018060a01b03831681526040602082015260008251806040840152611dd7816060850160208701611c67565b601f01601f191691909101606001939250505056fefe3d640dfe4a822948e2e15da6bbca1b630a18d21e825edeb5816d60f4e5703ba26469706673582212201dc276dad8d0af16cbcd83b7025a72bd02bac41e5beb00954e0b3f31252111eb64736f6c63430008140033",
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c806314cf90771461007157806387d6e21314610096578063a0427700146100b6578063a7817bbc146100d6578063b58bd356146100f8578063cb3e0d2b14610118575b600080fd5b61008461007f366004611a84565b610138565b60405190815260200160405180910390f35b8180156100a257600080fd5b506100846100b1366004611ac0565b61015a565b8180156100c257600080fd5b506100846100d1366004611ac0565b61044c565b8180156100e257600080fd5b506100f66100f1366004611ac0565b610903565b005b81801561010457600080fd5b50610084610113366004611ac0565b610e50565b81801561012457600080fd5b50610084610133366004611ac0565b6110e4565b60008061014484611532565b90506101508184611583565b9150505b92915050565b60008061016561159b565b9050600061017284611532565b90506001815462010000900460ff16600181111561019257610192611ad9565b036101c95780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b60405180910390fd5b600081546301000000900460ff1660048111156101e8576101e8611ad9565b0361026357604051632cc3c16160e21b81526004810185905273__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af415801561023d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102619190611b13565b505b600281546301000000900460ff16600481111561028257610282611ad9565b146102b05780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b6000848152600e83016020908152604080832033845290915290205460ff16156102f15783336040516302a4851560e61b81526004016101c0929190611b36565b6102fc8482336115bf565b61031d57833360405163b361b5fb60e01b81526004016101c0929190611b36565b6000610329858361163e565b905061033e82600701548284600a015461168e565b6000868152600e8501602090815260408083203384529091528120805460ff19166001179055600a840180549296509061037783611b63565b9091555050825460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906103ad9033908890600401611b7c565b6020604051808303816000875af11580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f09190611baa565b61040d576040516312171d8360e31b815260040160405180910390fd5b604051848152339086907f88f0c55826d9ef2f514f933a99edb543a1514ee7211d8bfa04e66e29954fe6b49060200160405180910390a3505050919050565b60008061045761159b565b9050600061046484611532565b90506001815462010000900460ff16600181111561048457610484611ad9565b146104a557604051637c412df960e11b8152600481018590526024016101c0565b600081546301000000900460ff1660048111156104c4576104c4611ad9565b0361053f57604051632cc3c16160e21b81526004810185905273__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af4158015610519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d9190611b13565b505b600181546301000000900460ff16600481111561055e5761055e611ad9565b1461058c5780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b600282015460408051639cbe5efd60e01b815290516000926001600160a01b031691639cbe5efd9160048083019260209291908290030181865afa1580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fc9190611bc5565b905081600201548110156106335781546040516366fc878160e01b81526101c0918791630100000090910460ff1690600401611aef565b8160030154811115610661576003820154604051637b05ab9b60e01b81526101c09187918490600401611bde565b60036000868152600985016020908152604080832033845290915290205460ff16600381111561069357610693611ad9565b146106b557843360405163c100013360e01b81526004016101c0929190611b36565b6000858152601184016020908152604080832033845290915290205460ff16156106f65784336040516302a4851560e61b81526004016101c0929190611b36565b6005820154600e830154106107215760405163387c43a960e21b8152600481018690526024016101c0565b61072b83336116dd565b6000610738833384611785565b905082600401548110156107795760048381015460405163431170f560e11b81529182018890523360248301526044820183905260648201526084016101c0565b6006830154600e84018054600181810183556000928352602080842090920180546001600160a01b031916339081179091558a8452601189018352604080852082865290935292829020805460ff191690911790558654905163a9059cbb60e01b81529297506001600160a01b03169163a9059cbb916107fd918990600401611b7c565b6020604051808303816000875af115801561081c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108409190611baa565b61085d576040516312171d8360e31b815260040160405180910390fd5b600e830154604051339188917f4dcac657463253f9668a0d5c9a2f7c00a7d7ac72a1afe05e65034691fdd911c391610898918a918791611bde565b60405180910390a36005830154600e840154036108fa57825464ffff0000001916640302000000178084556040518791600080516020611ded833981519152916108f191600160201b900460ff16906000908190611c08565b60405180910390a25b50505050919050565b600061090d61159b565b9050600061091a83611532565b90506001815462010000900460ff16600181111561093a5761093a611ad9565b0361095b5760405163180ebb8f60e21b8152600481018490526024016101c0565b600282015460408051639cbe5efd60e01b815290516000926001600160a01b031691639cbe5efd9160048083019260209291908290030181865afa1580156109a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611bc5565b9050816003015481116109fa5760038201546040516357684ca560e01b81526101c09186918490600401611bde565b604051632cc3c16160e21b81526004810185905260009073__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af4158015610a4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a719190611b13565b60ff166004811115610a8557610a85611ad9565b90506004816004811115610a9b57610a9b611ad9565b1480610ab857506003816004811115610ab657610ab6611ad9565b145b15610ada5784816040516366fc878160e01b81526004016101c0929190611aef565b6002816004811115610aee57610aee611ad9565b03610b0f57604051633c6fa5d760e21b8152600481018690526024016101c0565b600b8301546000816001600160401b03811115610b2e57610b2e611c27565b604051908082528060200260200182016040528015610b57578160200160208202803683370190505b5090506000826001600160401b03811115610b7457610b74611c27565b604051908082528060200260200182016040528015610b9d578160200160208202803683370190505b50905060005b83811015610cc857600087600b018281548110610bc257610bc2611c3d565b600091825260208220015460018b01546040516307b9c93d60e11b81526001600160a01b039283169450911690630f73927a90610c03908590600401611c53565b600060405180830381865afa158015610c20573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c489190810190611c8b565b50905080610c57575050610cb6565b6001848481518110610c6b57610c6b611c3d565b911515602092830291909101909101526000610c878a84611583565b905080868581518110610c9c57610c9c611c3d565b602002602001018181525050610cb28a82611987565b5050505b80610cc081611b63565b915050610ba3565b50600986015415610dba5760088601546000805b85811015610da657838181518110610cf657610cf6611c3d565b60200260200101518015610d22575082858281518110610d1857610d18611c3d565b6020026020010151145b15610d945760008b815260128b0160205260408120600b8b018054600193919085908110610d5257610d52611c3d565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905581610d9081611b63565b9250505b80610d9e81611b63565b915050610cdc565b5060008a815260138a016020526040902055505b600986015415610dcb576001610dce565b60025b8654879060ff60201b1916600160201b836003811115610df057610df0611ad9565b0217905550855463ff0000001916630200000017808755600887015460098801546040518b93600080516020611ded83398151915293610e3e93600160201b90920460ff1692909190611c08565b60405180910390a25050505050505050565b600080610e5b61159b565b90506000610e6884611532565b9050600081546301000000900460ff166004811115610e8957610e89611ad9565b03610f0457604051632cc3c16160e21b81526004810185905273__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af4158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f029190611b13565b505b600381546301000000900460ff166004811115610f2357610f23611ad9565b14158015610f4e5750600481546301000000900460ff166004811115610f4b57610f4b611ad9565b14155b15610f7c5780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b6000848152600f83016020908152604080832033845290915290205460ff1615610fbd578333604051636101359d60e01b81526004016101c0929190611b36565b610fc88482336119d6565b925082600003610fef578333604051632decd07b60e11b81526004016101c0929190611b36565b6000848152600f83016020908152604080832033808552925291829020805460ff191660011790558354915163a9059cbb60e01b81526001600160a01b03929092169163a9059cbb91611046918790600401611b7c565b6020604051808303816000875af1158015611065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110899190611baa565b6110a6576040516312171d8360e31b815260040160405180910390fd5b604051838152339085907ffb13634c7c32bbfbc28f461ca4b0c850887c9cfbde7d6c97f24bfcff25c7be369060200160405180910390a35050919050565b6000806110ef61159b565b905060006110fc84611532565b90506001815462010000900460ff16600181111561111c5761111c611ad9565b1461113d57604051637c412df960e11b8152600481018590526024016101c0565b8054600160301b90046001600160a01b0316331461117057336040516309edd0f760e11b81526004016101c09190611c53565b600081546301000000900460ff16600481111561118f5761118f611ad9565b0361120a57604051632cc3c16160e21b81526004810185905273__$e5c34f23aa37ff925bd96f5e6125be3c79$__9063b30f058490602401602060405180830381865af41580156111e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112089190611b13565b505b600181546301000000900460ff16600481111561122957611229611ad9565b141580156112545750600281546301000000900460ff16600481111561125157611251611ad9565b14155b156112825780546040516366fc878160e01b81526101c0918691630100000090910460ff1690600401611aef565b600282015460408051639cbe5efd60e01b815290516000926001600160a01b031691639cbe5efd9160048083019260209291908290030181865afa1580156112ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f29190611bc5565b9050816003015481116113215760038201546040516357684ca560e01b81526101c09187918490600401611bde565b6000858152600f84016020908152604080832033845290915290205460ff1615611362578433604051636101359d60e01b81526004016101c0929190611b36565b600e820154600583015460009161137891611d4b565b90508060000361139f578533604051632decd07b60e11b81526004016101c0929190611b36565b600e83015460068401546000916113b591611d5e565b90508084600701546113c79190611d4b565b6000888152600f8701602090815260408083203384529091529020805460ff1916600190811790915590965084546301000000900460ff16600481111561141057611410611ad9565b0361146057835464ffff0000001916640302000000178085556040518891600080516020611ded8339815191529161145791600160201b900460ff16906000908190611c08565b60405180910390a25b845460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906114919033908a90600401611b7c565b6020604051808303816000875af11580156114b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d49190611baa565b6114f1576040516312171d8360e31b815260040160405180910390fd5b604051868152339088907f24c3cd6e13a29307bab455491e4cd5b29f6a457854a08f27f319ab4f8fec51389060200160405180910390a35050505050919050565b60008061153d61159b565b905082158061154f5750806006015483115b1561157057604051635bafafd160e01b8152600481018490526024016101c0565b6000928352600801602052506040902090565b600061159483838560030154611785565b9392505050565b7f4602c7a79eac2c186a5049fa18aa513e24b689a1ed3277f24b1e5b426612d10090565b6000806115ca61159b565b905060028454600160201b900460ff1660038111156115eb576115eb611ad9565b0361160e57505081546001600160a01b03828116600160301b9092041614611594565b6000948552601201602090815260408086206001600160a01b03949094168652929052509091205460ff16919050565b600060028254600160201b900460ff16600381111561165f5761165f611ad9565b0361166c57506001610154565b600061167661159b565b60009485526013016020525050604090912054919050565b60008061169b8486611d75565b9050836116a9846001611d97565b036116d5576116b9600185611d4b565b6116c39082611d5e565b6116cd9086611d4b565b915050611594565b949350505050565b60018201546040516307b9c93d60e11b815260009182916001600160a01b0390911690630f73927a90611714908690600401611c53565b600060405180830381865afa158015611731573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117599190810190611c8b565b915091508161177f57828160405163411f12c760e01b81526004016101c0929190611daa565b50505050565b60008061179061159b565b90506000856003015484116117a557836117ab565b85600301545b905085600201548110156117c457600092505050611594565b8554600160281b900460ff161561187d5760028601545b8181116118755760018301546040516344368ae960e11b81526001600160a01b039091169063886d15d2906118169089908590600401611b7c565b602060405180830381865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190611bc5565b6118619085611d97565b93508061186d81611b63565b9150506117db565b505050611594565b60028601545b81811161197d5760005b600f88015481101561196a576001840154600f890180546001600160a01b0390921691639352d272918a91869190869081106118cb576118cb611c3d565b6000918252602090912001546040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401602060405180830381865afa158015611928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194c9190611bc5565b6119569086611d97565b94508061196281611b63565b91505061188d565b508061197581611b63565b915050611883565b5050509392505050565b6009820154158061199b5750816008015481115b156119af5760088201556001600990910155565b816008015481036119d2576009820180549060006119cc83611b63565b91905055505b5050565b6000806119e161159b565b90506000845460ff1660018111156119fb576119fb611ad9565b03611a53576003600086815260098301602090815260408083206001600160a01b038816845290915290205460ff166003811115611a3b57611a3b611ad9565b14611a475760006116cd565b50506001820154611594565b83546001600160a01b03848116600160301b9092041614611a75576000611a7b565b83600701545b95945050505050565b60008060408385031215611a9757600080fd5b8235915060208301356001600160a01b0381168114611ab557600080fd5b809150509250929050565b600060208284031215611ad257600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b8281526040810160058310611b0657611b06611ad9565b8260208301529392505050565b600060208284031215611b2557600080fd5b815160ff8116811461159457600080fd5b9182526001600160a01b0316602082015260400190565b634e487b7160e01b600052601160045260246000fd5b600060018201611b7557611b75611b4d565b5060010190565b6001600160a01b03929092168252602082015260400190565b80518015158114611ba557600080fd5b919050565b600060208284031215611bbc57600080fd5b61159482611b95565b600060208284031215611bd757600080fd5b5051919050565b9283526020830191909152604082015260600190565b60048110611c0457611c04611ad9565b9052565b60608101611c168286611bf4565b602082019390935260400152919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0391909116815260200190565b60005b83811015611c82578181015183820152602001611c6a565b50506000910152565b60008060408385031215611c9e57600080fd5b611ca783611b95565b60208401519092506001600160401b0380821115611cc457600080fd5b818501915085601f830112611cd857600080fd5b815181811115611cea57611cea611c27565b604051601f8201601f19908116603f01168101908382118183101715611d1257611d12611c27565b81604052828152886020848701011115611d2b57600080fd5b611d3c836020830160208801611c67565b80955050505050509250929050565b8181038181111561015457610154611b4d565b808202811582820484141761015457610154611b4d565b600082611d9257634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561015457610154611b4d565b60018060a01b03831681526040602082015260008251806040840152611dd7816060850160208701611c67565b601f01601f191691909101606001939250505056fefe3d640dfe4a822948e2e15da6bbca1b630a18d21e825edeb5816d60f4e5703ba26469706673582212201dc276dad8d0af16cbcd83b7025a72bd02bac41e5beb00954e0b3f31252111eb64736f6c63430008140033",
"linkReferences": {
"contracts/challenges/libraries/ChallengeCoreLogic.sol": {
"ChallengeCoreLogic": [
{
"length": 20,
"start": 573
},
{
"length": 20,
"start": 1305
},
{
"length": 20,
"start": 2637
},
{
"length": 20,
"start": 3806
},
{
"length": 20,
"start": 4580
}
]
}
},
"deployedLinkReferences": {
"contracts/challenges/libraries/ChallengeCoreLogic.sol": {
"ChallengeCoreLogic": [
{
"length": 20,
"start": 515
},
{
"length": 20,
"start": 1247
},
{
"length": 20,
"start": 2579
},
{
"length": 20,
"start": 3748
},
{
"length": 20,
"start": 4522
}
]
}
}
}