0 txs
243 calls
constructor
constructor(address _mechMarketplace, address _drainer, address _wrappedNativeToken)
functions
collectedFees
viewfunction collectedFees() view returns (uint256)
drainer
viewfunction drainer() view returns (address)
mapMechBalances
viewfunction mapMechBalances(address) view returns (uint256)
mapRequesterBalances
viewfunction mapRequesterBalances(address) view returns (uint256)
MAX_FEE_FACTOR
viewfunction MAX_FEE_FACTOR() view returns (uint256)
mechMarketplace
viewfunction mechMarketplace() view returns (address)
MIN_MECH_BALANCE
viewfunction MIN_MECH_BALANCE() view returns (uint256)
wrappedNativeToken
viewfunction wrappedNativeToken() view returns (address)
adjustMechRequesterBalances
nonpayablefunction adjustMechRequesterBalances(address mech, address requester, uint256[] mechDeliveryRates, bytes paymentData)
checkAndRecordDeliveryRates
payablefunction checkAndRecordDeliveryRates(address requester, uint256 numRequests, uint256 deliveryRate, bytes paymentData) payable
depositFor
payablefunction depositFor(address account) payable
drain
nonpayablefunction drain()
finalizeDeliveryRates
nonpayablefunction finalizeDeliveryRates(address mech, address[] requesters, bool[] deliveredRequests, uint256[] mechDeliveryRates, uint256[] requesterDeliveryRates)
processPayment
nonpayablefunction processPayment() returns (uint256 mechPayment, uint256 marketplaceFee)
processPaymentByMultisig
nonpayablefunction processPaymentByMultisig(address mech) returns (uint256 mechPayment, uint256 marketplaceFee)
events
Deposit
event Deposit(address indexed account, address indexed token, uint256 amount)
Drained
event Drained(address indexed token, uint256 collectedFees)
MechBalanceAdjusted
event MechBalanceAdjusted(address indexed mech, uint256 deliveryRate, uint256 balance, uint256 rateDiff)
RequesterBalanceAdjusted
event RequesterBalanceAdjusted(address indexed requester, uint256 deliveryRate, uint256 balance)
Withdraw
event Withdraw(address indexed account, address indexed token, uint256 amount)
errors
InsufficientBalance
error InsufficientBalance(uint256 current, uint256 required)
MarketplaceOnly
error MarketplaceOnly(address sender, address marketplace)
ReentrancyGuard
error ReentrancyGuard()
TransferFailed
error TransferFailed(address token, address from, address to, uint256 amount)
UnauthorizedAccount
error UnauthorizedAccount(address account)
ZeroAddress
error ZeroAddress()
ZeroValue
error ZeroValue()
creation bytecode
0x60e060405260018055348015610013575f5ffd5b50604051611983380380611983833981016040819052610032916100d0565b82826001600160a01b038216158061005157506001600160a01b038116155b1561006f5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03918216608052811660a05281166100a15760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b031660c052506101109050565b80516001600160a01b03811681146100cb575f5ffd5b919050565b5f5f5f606084860312156100e2575f5ffd5b6100eb846100b5565b92506100f9602085016100b5565b9150610107604085016100b5565b90509250925092565b60805160a05160c0516117fc6101875f395f8181610184015281816110f501528181611162015261137b01525f818161021a01526110c601525f81816102de015281816104240152818161048c015281816106170152818161067f0152818161090c0152818161097401526111d601526117fc5ff3fe6080604052600436106100e7575f3560e01c806379e4afe811610087578063aa67c91911610057578063aa67c91914610300578063af4937fc14610313578063e679803514610328578063f965a87314610353575f5ffd5b806379e4afe8146102865780639003adfe146102a55780639890220b146102b95780639c5e9590146102cd575f5ffd5b806338603a39116100c257806338603a39146101f457806357838e85146102095780636072dd2c1461023c5780636aeeffa81461025b575f5ffd5b8063163ad7151461014c57806317fcb39b1461017357806322081c12146101cb575f5ffd5b3661014857335f908152600260205260408120805434929061010a908490611426565b90915550506040513481525f9033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a3005b5f5ffd5b348015610157575f5ffd5b50610160600281565b6040519081526020015b60405180910390f35b34801561017e575f5ffd5b506101a67f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016a565b3480156101d6575f5ffd5b506101df610372565b6040805192835260208301919091520161016a565b6102076102023660046114a6565b6103cb565b005b348015610214575f5ffd5b506101a67f000000000000000000000000000000000000000000000000000000000000000081565b348015610247575f5ffd5b5061020761025636600461154a565b6105be565b348015610266575f5ffd5b506101606102753660046115da565b60026020525f908152604090205481565b348015610291575f5ffd5b506102076102a03660046115f3565b6108b3565b3480156102b0575f5ffd5b506101605f5481565b3480156102c4575f5ffd5b50610207610c36565b3480156102d8575f5ffd5b506101a67f000000000000000000000000000000000000000000000000000000000000000081565b61020761030e3660046115da565b610cc7565b34801561031e575f5ffd5b5061016061271081565b348015610333575f5ffd5b506101606103423660046115da565b60036020525f908152604090205481565b34801561035e575f5ffd5b506101df61036d3660046115da565b610d50565b5f5f6001546002036103b0576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001556103be33610e6e565b6001805590939092509050565b600154600203610407576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001553373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146104be576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044015b60405180910390fd5b5f6104c7610fad565b73ffffffffffffffffffffffffffffffffffffffff87165f90815260026020526040812054919250906104fb908390611426565b90505f61050887876116d3565b905061054b88838388888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610ff192505050565b73ffffffffffffffffffffffffffffffffffffffff89165f81815260026020908152604091829020849055815185815290810184905292945090917e572a5ba2b0e6be13dc09fac07a0c06782c5defdef8694b0085972ebdb12012910160405180910390a2505060018055505050505050565b6001546002036105fa576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001553373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106ac576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044016104b5565b5f805b848110156106e5578585828181106106c9576106c96116ea565b90506020020135826106db9190611426565b91506001016106af565b50805f0361071f576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490506107a187828487878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610ff192505050565b73ffffffffffffffffffffffffffffffffffffffff8089165f908152600260209081526040808320859055928c1682526003905220549091506107e48382611426565b73ffffffffffffffffffffffffffffffffffffffff8a81165f908152600360209081526040918290208490558151878152908101869052929350908a16917e572a5ba2b0e6be13dc09fac07a0c06782c5defdef8694b0085972ebdb12012910160405180910390a260408051848152602081018390525f81830152905173ffffffffffffffffffffffffffffffffffffffff8b16917fd11af879a940c7604caa3933cb8a021f09a06692f4d05a5843fe06a003abed68919081900360600190a250506001805550505050505050565b6001546002036108ef576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001553373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146109a1576040517fe56895c000000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044016104b5565b5f80805b87811015610b4e578888828181106109bf576109bf6116ea565b90506020020160208101906109d49190611727565b15610b46578686828181106109eb576109eb6116ea565b90506020020135836109fd9190611426565b9250868682818110610a1157610a116116ea565b90506020020135858583818110610a2a57610a2a6116ea565b905060200201351115610b46575f878783818110610a4a57610a4a6116ea565b90506020020135868684818110610a6357610a636116ea565b90506020020135610a749190611749565b9050610a808184611426565b92505f60025f8e8e86818110610a9857610a986116ea565b9050602002016020810190610aad91906115da565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050610af3818361106c565b60025f8f8f87818110610b0857610b086116ea565b9050602002016020810190610b1d91906115da565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f205550505b6001016109a5565b50815f03610b88576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8b165f90815260036020526040902054610bb78382611426565b73ffffffffffffffffffffffffffffffffffffffff8d165f818152600360209081526040918290208490558151878152908101849052908101859052919250907fd11af879a940c7604caa3933cb8a021f09a06692f4d05a5843fe06a003abed689060600160405180910390a250506001805550505050505050505050565b600154600203610c72576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001555f805490819003610cb4576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8055610cc081611080565b5060018055565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526002602052604081208054349290610cfb908490611426565b90915550506040513481525f9073ffffffffffffffffffffffffffffffffffffffff8316907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a350565b5f5f600154600203610d8e576040517f8beb9d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026001556040517f6d70f7ae00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff841690636d70f7ae90602401602060405180830381865afa158015610dfb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1f919061175c565b610e57576040517f32b2baa30000000000000000000000000000000000000000000000000000000081523360048201526024016104b5565b610e6083610e6e565b600180559094909350915050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526003602052604081205481906002811015610ed0576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610ed96111d3565b9050612710610ee9600182611749565b610ef383856116d3565b610efd9190611426565b610f079190611777565b9250610f138383611749565b93505f81118015610f22575082155b80610f2b575083155b15610f62576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f828254610f729190611426565b909155505073ffffffffffffffffffffffffffffffffffffffff85165f90815260036020526040812055610fa68585611266565b5050915091565b5f3415610fec576040513481525f9033907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a35b503490565b5f82841015611059575f6110058585611749565b90506110115f86611426565b945083851015611057576040517fcf47918100000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044016104b5565b505b6110638385611749565b95945050505050565b5f6110778284611426565b90505b92915050565b61108981611379565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af115801561113b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115f919061175c565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fb2559daa129ad136aac2133ac6a0c75920abbef7d6663a017a94e181b13786c3826040516111c891815260200190565b60405180910390a250565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126191906117af565b905090565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146112bc576040519150601f19603f3d011682016040523d82523d5f602084013e6112c1565b606091505b5050905080611327576040517fcd3f16590000000000000000000000000000000000000000000000000000000081525f600482015230602482015273ffffffffffffffffffffffffffffffffffffffff84166044820152606481018390526084016104b5565b6040518281525f9073ffffffffffffffffffffffffffffffffffffffff8516907f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9060200160405180910390a3505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b1580156113df575f5ffd5b505af11580156113f1573d5f5f3e3d5ffd5b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561107a5761107a6113f9565b803573ffffffffffffffffffffffffffffffffffffffff8116811461145c575f5ffd5b919050565b5f5f83601f840112611471575f5ffd5b50813567ffffffffffffffff811115611488575f5ffd5b60208301915083602082850101111561149f575f5ffd5b9250929050565b5f5f5f5f5f608086880312156114ba575f5ffd5b6114c386611439565b94506020860135935060408601359250606086013567ffffffffffffffff8111156114ec575f5ffd5b6114f888828901611461565b969995985093965092949392505050565b5f5f83601f840112611519575f5ffd5b50813567ffffffffffffffff811115611530575f5ffd5b6020830191508360208260051b850101111561149f575f5ffd5b5f5f5f5f5f5f6080878903121561155f575f5ffd5b61156887611439565b955061157660208801611439565b9450604087013567ffffffffffffffff811115611591575f5ffd5b61159d89828a01611509565b909550935050606087013567ffffffffffffffff8111156115bc575f5ffd5b6115c889828a01611461565b979a9699509497509295939492505050565b5f602082840312156115ea575f5ffd5b61107782611439565b5f5f5f5f5f5f5f5f5f60a08a8c03121561160b575f5ffd5b6116148a611439565b985060208a013567ffffffffffffffff81111561162f575f5ffd5b61163b8c828d01611509565b90995097505060408a013567ffffffffffffffff81111561165a575f5ffd5b6116668c828d01611509565b90975095505060608a013567ffffffffffffffff811115611685575f5ffd5b6116918c828d01611509565b90955093505060808a013567ffffffffffffffff8111156116b0575f5ffd5b6116bc8c828d01611509565b915080935050809150509295985092959850929598565b808202811582820484141761107a5761107a6113f9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8015158114611724575f5ffd5b50565b5f60208284031215611737575f5ffd5b813561174281611717565b9392505050565b8181038181111561107a5761107a6113f9565b5f6020828403121561176c575f5ffd5b815161174281611717565b5f826117aa577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f602082840312156117bf575f5ffd5b505191905056fea26469706673582212204d50d2673896150157990f656d6097352568fffa53f07c76b043de309e7bd34d64736f6c634300081c0033000000000000000000000000f24ee42eda0fc9b33b7d41b06ee8ccd2ef7c50200000000000000000000000003fd8c757de190bcc82cf69df3cd9ab15bcec14260000000000000000000000004200000000000000000000000000000000000006