@arbitrum/nitro-contracts
Version:
Layer 2 precompiles and rollup for Arbitrum Nitro
1,597 lines • 109 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ExpressLaneAuction",
"sourceName": "src/express-lane-auction/ExpressLaneAuction.sol",
"abi": [
{
"inputs": [],
"name": "AuctionNotClosed",
"type": "error"
},
{
"inputs": [],
"name": "BidsWrongOrder",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "fixedUntilRound",
"type": "uint64"
}
],
"name": "FixedTransferor",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountRequested",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"name": "InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountRequested",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"name": "InsufficientBalanceAcc",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "currentRound",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "newRound",
"type": "uint64"
}
],
"name": "InvalidNewRound",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "currentStart",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "newStart",
"type": "uint64"
}
],
"name": "InvalidNewStart",
"type": "error"
},
{
"inputs": [],
"name": "NegativeOffset",
"type": "error"
},
{
"inputs": [
{
"internalType": "int64",
"name": "roundStart",
"type": "int64"
}
],
"name": "NegativeRoundStart",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
},
{
"internalType": "address",
"name": "controller",
"type": "address"
},
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "NotExpressLaneController",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
},
{
"internalType": "address",
"name": "expectedTransferor",
"type": "address"
},
{
"internalType": "address",
"name": "msgSender",
"type": "address"
}
],
"name": "NotTransferor",
"type": "error"
},
{
"inputs": [],
"name": "NothingToWithdraw",
"type": "error"
},
{
"inputs": [],
"name": "ReserveBlackout",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bidAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reservePrice",
"type": "uint256"
}
],
"name": "ReservePriceNotMet",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reservePrice",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minReservePrice",
"type": "uint256"
}
],
"name": "ReservePriceTooLow",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
}
],
"name": "RoundAlreadyResolved",
"type": "error"
},
{
"inputs": [],
"name": "RoundDurationTooShort",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
}
],
"name": "RoundNotResolved",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "roundDurationSeconds",
"type": "uint64"
}
],
"name": "RoundTooLong",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "currentRound",
"type": "uint64"
}
],
"name": "RoundTooOld",
"type": "error"
},
{
"inputs": [],
"name": "SameBidder",
"type": "error"
},
{
"inputs": [],
"name": "TieBidsWrongOrder",
"type": "error"
},
{
"inputs": [],
"name": "WithdrawalInProgress",
"type": "error"
},
{
"inputs": [],
"name": "WithdrawalMaxRound",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAmount",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAuctionClosingSeconds",
"type": "error"
},
{
"inputs": [],
"name": "ZeroBiddingToken",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bool",
"name": "isMultiBidAuction",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint64",
"name": "round",
"type": "uint64"
},
{
"indexed": true,
"internalType": "address",
"name": "firstPriceBidder",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "firstPriceExpressLaneController",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "firstPriceAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "price",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint64",
"name": "roundStartTimestamp",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "roundEndTimestamp",
"type": "uint64"
}
],
"name": "AuctionResolved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "oldBeneficiary",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newBeneficiary",
"type": "address"
}
],
"name": "SetBeneficiary",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "round",
"type": "uint64"
},
{
"indexed": true,
"internalType": "address",
"name": "previousExpressLaneController",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newExpressLaneController",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "transferor",
"type": "address"
},
{
"indexed": false,
"internalType": "uint64",
"name": "startTimestamp",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "endTimestamp",
"type": "uint64"
}
],
"name": "SetExpressLaneController",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newPrice",
"type": "uint256"
}
],
"name": "SetMinReservePrice",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldReservePrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newReservePrice",
"type": "uint256"
}
],
"name": "SetReservePrice",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "currentRound",
"type": "uint64"
},
{
"indexed": false,
"internalType": "int64",
"name": "offsetTimestamp",
"type": "int64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "roundDurationSeconds",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "auctionClosingSeconds",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint64",
"name": "reserveSubmissionSeconds",
"type": "uint64"
}
],
"name": "SetRoundTimingInfo",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "expressLaneController",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "transferor",
"type": "address"
},
{
"indexed": false,
"internalType": "uint64",
"name": "fixedUntilRound",
"type": "uint64"
}
],
"name": "SetTransferor",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "withdrawalAmount",
"type": "uint256"
}
],
"name": "WithdrawalFinalized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "withdrawalAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "roundWithdrawable",
"type": "uint256"
}
],
"name": "WithdrawalInitiated",
"type": "event"
},
{
"inputs": [],
"name": "AUCTIONEER_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "AUCTIONEER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "BENEFICIARY_SETTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MIN_RESERVE_SETTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "RESERVE_SETTER_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "RESERVE_SETTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ROUND_TIMING_SETTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
}
],
"name": "balanceOfAtRound",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "beneficiary",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "beneficiaryBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "biddingToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentRound",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "domainSeparator",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "finalizeWithdrawal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "flushBeneficiaryBalance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
},
{
"internalType": "address",
"name": "expressLaneController",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "getBidHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "getRoleMember",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleMemberCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "_auctioneer",
"type": "address"
},
{
"internalType": "address",
"name": "_biddingToken",
"type": "address"
},
{
"internalType": "address",
"name": "_beneficiary",
"type": "address"
},
{
"components": [
{
"internalType": "int64",
"name": "offsetTimestamp",
"type": "int64"
},
{
"internalType": "uint64",
"name": "roundDurationSeconds",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "auctionClosingSeconds",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "reserveSubmissionSeconds",
"type": "uint64"
}
],
"internalType": "struct RoundTimingInfo",
"name": "_roundTimingInfo",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "_minReservePrice",
"type": "uint256"
},
{
"internalType": "address",
"name": "_auctioneerAdmin",
"type": "address"
},
{
"internalType": "address",
"name": "_minReservePriceSetter",
"type": "address"
},
{
"internalType": "address",
"name": "_reservePriceSetter",
"type": "address"
},
{
"internalType": "address",
"name": "_reservePriceSetterAdmin",
"type": "address"
},
{
"internalType": "address",
"name": "_beneficiarySetter",
"type": "address"
},
{
"internalType": "address",
"name": "_roundTimingSetter",
"type": "address"
},
{
"internalType": "address",
"name": "_masterAdmin",
"type": "address"
}
],
"internalType": "struct InitArgs",
"name": "args",
"type": "tuple"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "initiateWithdrawal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isAuctionRoundClosed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isReserveBlackout",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minReservePrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "reservePrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "expressLaneController",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"internalType": "struct Bid",
"name": "firstPriceBid",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "expressLaneController",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"internalType": "struct Bid",
"name": "secondPriceBid",
"type": "tuple"
}
],
"name": "resolveMultiBidAuction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "expressLaneController",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"internalType": "struct Bid",
"name": "firstPriceBid",
"type": "tuple"
}
],
"name": "resolveSingleBidAuction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "resolvedRounds",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "expressLaneController",
"type": "address"
},
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
}
],
"internalType": "struct ELCRound",
"name": "",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "expressLaneController",
"type": "address"
},
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
}
],
"internalType": "struct ELCRound",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
}
],
"name": "roundTimestamps",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "roundTimingInfo",
"outputs": [
{
"internalType": "int64",
"name": "offsetTimestamp",
"type": "int64"
},
{
"internalType": "uint64",
"name": "roundDurationSeconds",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "auctionClosingSeconds",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "reserveSubmissionSeconds",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newBeneficiary",
"type": "address"
}
],
"name": "setBeneficiary",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newMinReservePrice",
"type": "uint256"
}
],
"name": "setMinReservePrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newReservePrice",
"type": "uint256"
}
],
"name": "setReservePrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "int64",
"name": "offsetTimestamp",
"type": "int64"
},
{
"internalType": "uint64",
"name": "roundDurationSeconds",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "auctionClosingSeconds",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "reserveSubmissionSeconds",
"type": "uint64"
}
],
"internalType": "struct RoundTimingInfo",
"name": "newRoundTimingInfo",
"type": "tuple"
}
],
"name": "setRoundTimingInfo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "uint64",
"name": "fixedUntilRound",
"type": "uint64"
}
],
"internalType": "struct Transferor",
"name": "transferor",
"type": "tuple"
}
],
"name": "setTransferor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
},
{
"internalType": "address",
"name": "newExpressLaneController",
"type": "address"
}
],
"name": "transferExpressLaneController",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "transferorOf",
"outputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "uint64",
"name": "fixedUntilRound",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "withdrawableBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint64",
"name": "round",
"type": "uint64"
}
],
"name": "withdrawableBalanceAtRound",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60a06040523060805234801561001457600080fd5b506080516147d7610030600039600061173901526147d76000f3fe608060405234801561001057600080fd5b50600436106103145760003560e01c80637b617f94116101a7578063c5b6aa2f116100ee578063e2fc6f6811610097578063e4d20c1d11610071578063e4d20c1d146107de578063f698da25146107f1578063fed87be8146107f957600080fd5b8063e2fc6f68146107a5578063e3f7bb55146107af578063e460d2c5146107d657600080fd5b8063cfe9232b116100c8578063cfe9232b14610761578063d547741f14610788578063db2e1eed1461079b57600080fd5b8063c5b6aa2f14610733578063ca15c8731461073b578063ce9c7c0d1461074e57600080fd5b80639a1fadd311610150578063b51d1d4f1161012a578063b51d1d4f14610705578063b6b55f251461070d578063bef0ec741461072057600080fd5b80639a1fadd3146106c3578063a217fddf146106d6578063b3ee252f146106de57600080fd5b80638a19c8bc116101815780638a19c8bc146106565780639010d07c1461067757806391d148541461068a57600080fd5b80637b617f94146105f157806383af0a1f146106255780638948cc4e1461062f57600080fd5b80632f2ff15d1161026b578063639d7566116102145780636dc4fc4e116101ee5780636dc4fc4e146105b85780636e8cace5146105cb57806370a08231146105de57600080fd5b8063639d7566146105375780636a514beb1461054b5780636ad72517146105b057600080fd5b806338af3eed1161024557806338af3eed146104e5578063447a709e146105115780635633c3371461052457600080fd5b80632f2ff15d14610498578063336a5b5e146104ab57806336568abe146104d257600080fd5b80630d253fbe116102cd5780631c31f710116102a75780631c31f7101461045a578063248a9ca31461046d5780632d668ce71461049057600080fd5b80630d253fbe146103f657806314d963161461040c5780631682e50b1461043357600080fd5b806301ffc9a7116102fe57806301ffc9a71461039f57806302b62938146103c257806304c584ad146103e357600080fd5b80627be2fe146103195780630152682d1461032e575b600080fd5b61032c610327366004613e9b565b61080c565b005b6101045461036590600781900b9067ffffffffffffffff600160401b8204811691600160801b8104821691600160c01b9091041684565b6040805160079590950b855267ffffffffffffffff9384166020860152918316918401919091521660608201526080015b60405180910390f35b6103b26103ad366004613ed4565b610ab2565b6040519015158152602001610396565b6103d56103d0366004613efe565b610af6565b604051908152602001610396565b6103d56103f1366004613f1b565b610b6f565b6103fe610bf0565b604051610396929190613f5c565b6103d57f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826181565b6103d57f6d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256f81565b61032c610468366004613efe565b610cb1565b6103d561047b366004613faa565b60009081526065602052604090206001015490565b6103b2610d54565b61032c6104a6366004613fc3565b610db0565b6103d57fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf476181565b61032c6104e0366004613fc3565b610dda565b610100546104f9906001600160a01b031681565b6040516001600160a01b039091168152602001610396565b61032c61051f366004614000565b610e66565b6103d5610532366004614064565b611145565b610101546104f9906001600160a01b031681565b610588610559366004613efe565b610106602052600090815260409020546001600160a01b03811690600160a01b900467ffffffffffffffff1682565b604080516001600160a01b03909316835267ffffffffffffffff909116602083015201610396565b61032c611275565b61032c6105c6366004614092565b6112c3565b6103d56105d9366004614064565b61142b565b6103d56105ec366004613efe565b611515565b6106046105ff3660046140cf565b61158e565b6040805167ffffffffffffffff938416815292909116602083015201610396565b6103d56101035481565b6103d57fb07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d14181565b61065e6115f1565b60405167ffffffffffffffff9091168152602001610396565b6104f96106853660046140ec565b611648565b6103b2610698366004613fc3565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61032c6106d136600461410e565b611660565b6103d5600081565b6103d57f19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf981565b61032c611c2b565b61032c61071b366004613faa565b611cf3565b61032c61072e366004614121565b611d5e565b61032c611ec4565b6103d5610749366004613faa565b611f81565b61032c61075c366004613faa565b611f98565b6103d57f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a781565b61032c610796366004613fc3565b612070565b6103d56101025481565b6103d56101055481565b6103d57fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9681565b6103b2612095565b61032c6107ec366004613faa565b61210a565b6103d561218b565b61032c610807366004614133565b612195565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600061086282612348565b90508067ffffffffffffffff168467ffffffffffffffff1610156108cb576040517f395f4fd600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8086166004830152821660248201526044015b60405180910390fd5b60006108d860fe8661237e565b80546001600160a01b039081166000818152610106602052604090205492935091168015610968576001600160a01b0381163314610963576040517f7621d94a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff881660048201526001600160a01b03821660248201523360448201526064016108c2565b6109cb565b6001600160a01b03821633146109cb576040517f660af6d200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff881660048201526001600160a01b03831660248201523360448201526064016108c2565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0387161783556000806109fe878a61241d565b90925090506001600160a01b038316610a175783610a19565b825b6001600160a01b0316886001600160a01b0316856001600160a01b03167fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b8c4267ffffffffffffffff168767ffffffffffffffff1610610a795786610a7b565b425b6040805167ffffffffffffffff938416815291831660208301529187168183015290519081900360600190a4505050505050505050565b60006001600160e01b031982167f5a05180f000000000000000000000000000000000000000000000000000000001480610af05750610af0826124b5565b92915050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610af090610b5190612348565b6001600160a01b038416600090815260fd602052604090209061251c565b604080517f0358b2b705d5c5ef47651be44f418326852a390f3b4c933661a5f4f0d8fa1ee3602082015267ffffffffffffffff8516918101919091526001600160a01b038316606082015260808101829052600090610be69060a00160405160208183030381529060405280519060200120612546565b90505b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260fe60010154600160a01b900467ffffffffffffffff1660fe60000154600160a01b900467ffffffffffffffff1611610c545760ff60fe610c59565b60fe60ff5b60408051808201825292546001600160a01b03808216855267ffffffffffffffff600160a01b928390048116602080880191909152845180860190955294549182168452919004169181019190915290939092509050565b7fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf4761610cdb816125af565b61010054604080516001600160a01b03928316815291841660208301527f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6910160405180910390a150610100805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610dab906125b9565b905090565b600082815260656020526040902060010154610dcb816125af565b610dd58383612625565b505050565b6001600160a01b0381163314610e585760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016108c2565b610e628282612647565b5050565b7f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a7610e90816125af565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152610ee4816125b9565b610f1a576040517fb9adeefd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826020013584602001351015610f5c576040517fa234cb1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101025483602001351015610faf57610102546040517f56f9b75a0000000000000000000000000000000000000000000000000000000081526020850135600482015260248101919091526044016108c2565b6000610fba82612348565b90506000610fc9826001614171565b9050600080610fe0610fda89614202565b84612669565b91509150600080610ffa89610ff490614202565b86612669565b91509150816001600160a01b0316846001600160a01b031603611049576040517ff4a3e48500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b88602001358a602001351480156110db57506040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260540160408051808303601f190181529082905280516020918201206bffffffffffffffffffffffff19606088901b169183019190915260348201859052906054016040516020818303038152906040528051906020012060001c105b15611112576040517f9185a0ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061111f898861241d565b9150915061113760018d888e602001358c8787612760565b505050505050505050505050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061119c90612348565b67ffffffffffffffff168267ffffffffffffffff161015611253576040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152829061120d90612348565b6040517f395f4fd600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9283166004820152911660248201526044016108c2565b6001600160a01b038316600090815260fd60205260409020610be990836128b8565b61010554600081900361129b57604051631f2a200560e01b815260040160405180910390fd5b60006101055561010054610101546112c0916001600160a01b039182169116836128d0565b50565b7f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a76112ed816125af565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152611341816125b9565b611377576040517fb9adeefd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010254836020013510156113ca57610102546040517f56f9b75a0000000000000000000000000000000000000000000000000000000081526020850135600482015260248101919091526044016108c2565b60006113d582612348565b905060006113e4826001614171565b905060006113fa6113f487614202565b83612669565b50905060008061140a868561241d565b915091506114216000898561010254898787612760565b5050505050505050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061148290612348565b67ffffffffffffffff168267ffffffffffffffff1610156114f3576040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152829061120d90612348565b6001600160a01b038316600090815260fd60205260409020610be9908361251c565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610af09061157090612348565b6001600160a01b038416600090815260fd60205260409020906128b8565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009081906115e8908461241d565b91509150915091565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610dab90612348565b6000828152609760205260408120610be99083612961565b600054610100900460ff16158080156116805750600054600160ff909116105b8061169a5750303b15801561169a575060005460ff166001145b61170c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108c2565b6000805460ff19166001179055801561172f576000805461ff0019166101001790555b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117cd5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016108c2565b6117d561296d565b6118496040518060400160405280601281526020017f457870726573734c616e6541756374696f6e00000000000000000000000000008152506040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506129ec565b600061185b6040840160208501613efe565b6001600160a01b03160361189b576040517f3fb3c7af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118ab6040830160208401613efe565b610101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556118e96060830160408401613efe565b610100805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6600061194a6060850160408601613efe565b604080516001600160a01b0393841681529290911660208301520160405180910390a160e0820135610103819055604080516000815260208101929092527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a160e0820135610102819055604080516000815260208101929092527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a16000611a0b60808401606085016142ca565b60070b1215611a46576040517f16f46dfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a5282606001612a73565b611a6e6000611a696101e085016101c08601613efe565b612625565b611aa47fb07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d141611a6961014085016101208601613efe565b611ada7fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf4761611a696101a085016101808601613efe565b611b437f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a7611b0b6020850185613efe565b7f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f658261611b3e61012087016101008801613efe565b612c82565b611bac7f19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf9611b7961016085016101408601613efe565b7fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a96611b3e61018087016101608801613efe565b611be27f6d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256f611a696101c085016101a08601613efe565b8015610e62576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090611c8290612348565b611c8d906002614171565b33600090815260fd602052604090208054919250611cab9083612ca6565b6040805182815267ffffffffffffffff8416602082015233917f31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401910160405180910390a25050565b33600090815260fd602052604