5 txs
4.5k calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender, address currency) view returns (uint256 amount)
balanceOf
viewfunction balanceOf(address owner, address currency) view returns (uint256 balance)
currencyDelta
viewfunction currencyDelta(address settler, address currency) view returns (int256)
getLocker
viewfunction getLocker() view returns (address)
getUnsettledDeltasCount
viewfunction getUnsettledDeltasCount() view returns (uint256)
getVaultReserve
viewfunction getVaultReserve() view returns (address, uint256)
isAppRegistered
viewfunction isAppRegistered(address app) view returns (bool isRegistered)
isOperator
viewfunction isOperator(address owner, address operator) view returns (bool isOperator)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
reservesOfApp
viewfunction reservesOfApp(address app, address currency) view returns (uint256 reserve)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
acceptOwnership
nonpayablefunction acceptOwnership()
accountAppBalanceDelta
nonpayablefunction accountAppBalanceDelta(address currency, int128 delta, address settler)
accountAppBalanceDelta
nonpayablefunction accountAppBalanceDelta(address currency0, address currency1, int256 delta, address settler, int256 hookDelta, address hook)
accountAppBalanceDelta
nonpayablefunction accountAppBalanceDelta(address currency0, address currency1, int256 delta, address settler)
approve
nonpayablefunction approve(address spender, address currency, uint256 amount) returns (bool)
burn
nonpayablefunction burn(address from, address currency, uint256 amount)
clear
nonpayablefunction clear(address currency, uint256 amount)
collectFee
nonpayablefunction collectFee(address currency, uint256 amount, address recipient)
lock
nonpayablefunction lock(bytes data) returns (bytes result)
mint
nonpayablefunction mint(address to, address currency, uint256 amount)
registerApp
nonpayablefunction registerApp(address app)
renounceOwnership
nonpayablefunction renounceOwnership()
setOperator
nonpayablefunction setOperator(address operator, bool approved) returns (bool)
settle
payablefunction settle() payable returns (uint256)
settleFor
payablefunction settleFor(address recipient) payable returns (uint256)
sync
nonpayablefunction sync(address currency)
take
nonpayablefunction take(address currency, address to, uint256 amount)
transfer
nonpayablefunction transfer(address receiver, address currency, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address receiver, address currency, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AppRegistered
event AppRegistered(address indexed app)
Approval
event Approval(address indexed owner, address indexed spender, address indexed currency, uint256 amount)
OperatorSet
event OperatorSet(address indexed owner, address indexed operator, bool approved)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address caller, address indexed from, address indexed to, address indexed currency, uint256 amount)
errors
AppUnregistered
error AppUnregistered()
CurrencyNotSettled
error CurrencyNotSettled()
FeeCurrencySynced
error FeeCurrencySynced()
LockerAlreadySet
error LockerAlreadySet(address locker)
MustClearExactPositiveDelta
error MustClearExactPositiveDelta()
NoLocker
error NoLocker()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SettleNonNativeCurrencyWithValue
error SettleNonNativeCurrencyWithValue()
creation bytecode
0x60808060405234607a573315606757600480546001600160a01b0319908116909155600380543392811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a361209b908161007f8239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611798575080630b0d9c091461171557806311da60b4146116c257806315dacbea1461153f57806317a1d80f146114ad578063322c36201461143f57806336223ce9146113c85780633dd45adb1461136c578063558a7297146112b45780635d4e0ced146112625780635d685a3c1461116c5780636d102799146110dc578063715018a61461103657806379ba509714610f4a57806380f0b44c14610e9c5780638154831914610b3d5780638403be9114610af35780638da5cb5b14610ac05780639073e5ca14610a0e578063927da10514610978578063a54b283114610944578063a584119414610874578063b6363cf214610802578063beabacc81461071c578063c6c3bbe61461065a578063e1f21c67146105d1578063e30c39781461059e578063eb78b4351461047d578063f2fde38b146103dd578063f6b911bc1461022a578063f7888aec146101bc5763fda428921461017c575f80fd5b346101b8575f6003193601126101b85760207fa88ffc6a483ae852b901fb1c3a0df606e2e4461b493434e6643ebdc3ffabd1515c604051908152f35b5f80fd5b346101b85760406003193601126101b8576101d5611836565b73ffffffffffffffffffffffffffffffffffffffff6101f2611859565b91165f52600160205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101b857610238366118c2565b919073ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b5577f5b21a3c624a398df3917a0a930f91e3837519b8eab3302b834746433065f295973ffffffffffffffffffffffffffffffffffffffff805f946102c66102bc886119e5565b600f0b8633611a10565b16928333141580610393575b610311575b8385526001602052604085208282168652602052604085206102fa878254611916565b9055604080513381526020810197909752911694a4005b83855260026020526040852082331686526020526040852082821686526020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604086205403156102d75783855260026020526040852082331686526020526040852082821686526020526040852061038c878254611916565b90556102d7565b508385528460205260408520823316865260205260ff604086205416156102d2565b7f05185ab0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101b85760206003193601126101b85773ffffffffffffffffffffffffffffffffffffffff61040b611836565b610413611e9e565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600454161760045573ffffffffffffffffffffffffffffffffffffffff600354167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b346101b85760606003193601126101b857610496611836565b6024356104a161187c565b335f52600560205260ff60405f205416156105765773ffffffffffffffffffffffffffffffffffffffff831692831515847f52a1be34b47478d7c75e2b6c3eea1e05dcb8dbb8c6a42c6482d0dca0df53cb275c82610556575b505061052e5761052c93335f52600660205260405f20905f5260205260405f20610525848254611916565b9055611b5c565b005b7ff22c9825000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff1614905084866104fa565b7feb385691000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101b8575f6003193601126101b857602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b346101b85773ffffffffffffffffffffffffffffffffffffffff806105f5366118c2565b92919390335f52600260205260405f208286165f5260205260405f208282165f526020528360405f2055604051938452169216907fa0175360a15bca328baf7ea85c7b784d58b222a50d0ce760b10dba336d226a6160203392a4602060405160018152f35b346101b857610668366118c2565b9173ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b5577f5b21a3c624a398df3917a0a930f91e3837519b8eab3302b834746433065f295973ffffffffffffffffffffffffffffffffffffffff805f936106f76106eb886119e5565b8603600f0b8733611a10565b16938484526001602052604084208282168552602052604084206102fa878254611950565b346101b85773ffffffffffffffffffffffffffffffffffffffff61073f366118c2565b91929092335f52600160205260405f208285165f5260205260405f20610766848254611916565b90551690815f52600160205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f5260205260405f206107a1828254611950565b90556040805133808252602082019390935273ffffffffffffffffffffffffffffffffffffffff94909416937f5b21a3c624a398df3917a0a930f91e3837519b8eab3302b834746433065f295991819081015b0390a4602060405160018152f35b346101b85760406003193601126101b85761081b611836565b73ffffffffffffffffffffffffffffffffffffffff610838611859565b91165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060ff60405f2054166040519015158152f35b346101b85760206003193601126101b85761088d611836565b73ffffffffffffffffffffffffffffffffffffffff811690816108f45750505f7f52a1be34b47478d7c75e2b6c3eea1e05dcb8dbb8c6a42c6482d0dca0df53cb275d5f7fb0879d96d58bcff08d1fd45590200072d5a8c380da0b5aa1052b48b84e1152075d005b6108fd90611ff7565b907f52a1be34b47478d7c75e2b6c3eea1e05dcb8dbb8c6a42c6482d0dca0df53cb275d7fb0879d96d58bcff08d1fd45590200072d5a8c380da0b5aa1052b48b84e1152075d005b346101b85760406003193601126101b8576020610970610962611836565b61096a611859565b90611f92565b604051908152f35b346101b85760606003193601126101b857610991611836565b610999611859565b73ffffffffffffffffffffffffffffffffffffffff6109b661187c565b92165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101b85760806003193601126101b857610a27611836565b610a2f611859565b60443590610a3b61189f565b73ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b557335f52600560205260ff60405f2054161561057657610abb61052c948460801d94600f0b94610aa78183611ebf565b610ab18686611ebf565b600f0b9083611a10565b611a10565b346101b8575f6003193601126101b857602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b346101b85760206003193601126101b85773ffffffffffffffffffffffffffffffffffffffff610b21611836565b165f526005602052602060ff60405f2054166040519015158152f35b346101b85760206003193601126101b85760043567ffffffffffffffff81116101b857366023820112156101b85780600401359067ffffffffffffffff82116101b85736602483830101116101b85773ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c1680151580610e93575b610d595750602460445f92337fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8660405197889687957fab6291fe0000000000000000000000000000000000000000000000000000000087526020600488015282828801520186860137868582860101520116810103018183335af1908115610e88575f91610db3575b507fa88ffc6a483ae852b901fb1c3a0df606e2e4461b493434e6643ebdc3ffabd1515c610d8b5773ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c1680151580610d84575b610d595760206040835f7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f835194859381855280519182918282880152018686015e5f85828601015201168101030190f35b7fc6742a3f000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b505f610ce3565b7f5212cba1000000000000000000000000000000000000000000000000000000005f5260045ffd5b90503d805f833e610dc481836119a4565b8101906020818303126101b85780519067ffffffffffffffff82116101b8570181601f820112156101b85780519067ffffffffffffffff8211610e5b5760405192610e3760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601856119a4565b828452602083830101116101b857815f9260208093018386015e8301015281610c7b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040513d5f823e3d90fd5b50331515610bcd565b346101b85760406003193601126101b857610eb5611836565b73ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b557610efc8133611f92565b90610f086024356119e5565b9182600f0b03610f225761052c915f03600f0b9033611a10565b7fbda73abf000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101b8575f6003193601126101b8573373ffffffffffffffffffffffffffffffffffffffff600454160361100a577fffffffffffffffffffffffff000000000000000000000000000000000000000060045416600455600354337fffffffffffffffffffffffff000000000000000000000000000000000000000082161760035573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346101b8575f6003193601126101b85761104e611e9e565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600454166004555f73ffffffffffffffffffffffffffffffffffffffff6003547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101b85760606003193601126101b8576110f5611836565b6024359081600f0b908183036101b85761110d61187c565b73ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b557335f52600560205260ff60405f2054161561057657610abb61052c9483611ebf565b346101b85760c06003193601126101b857611185611836565b61118d611859565b6044359061119961189f565b926084359360a4359173ffffffffffffffffffffffffffffffffffffffff831683036101b85773ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b557335f52600560205260ff60405f205416156105765761052c95610ab1610abb93868860801d98600f0b91610abb8560801d95600f0b9a61124561123f888361195d565b89611ebf565b6112586112528d8761195d565b85611ebf565b600f0b8783611a10565b346101b8575f6003193601126101b85760207fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346101b85760406003193601126101b8576112cd611836565b602435908115158092036101b85773ffffffffffffffffffffffffffffffffffffffff90335f525f60205260405f208282165f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff851617905560405192835216907fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa26760203392a3602060405160018152f35b60206003193601126101b857611380611836565b73ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b557610970602091611d91565b346101b8575f6003193601126101b8576040805173ffffffffffffffffffffffffffffffffffffffff7f52a1be34b47478d7c75e2b6c3eea1e05dcb8dbb8c6a42c6482d0dca0df53cb275c1681527fb0879d96d58bcff08d1fd45590200072d5a8c380da0b5aa1052b48b84e1152075c6020820152f35b346101b85760406003193601126101b857611458611836565b73ffffffffffffffffffffffffffffffffffffffff611475611859565b91165f52600660205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101b85760206003193601126101b85773ffffffffffffffffffffffffffffffffffffffff6114db611836565b6114e3611e9e565b16805f52600560205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef75f80a2005b346101b85760806003193601126101b857611558611836565b611560611859565b61156861187c565b907f5b21a3c624a398df3917a0a930f91e3837519b8eab3302b834746433065f295973ffffffffffffffffffffffffffffffffffffffff808060643596169384331415806116a0575b61161e575b845f52600160205260405f208287165f5260205260405f206115d9888254611916565b90551693845f52600160205260405f208282165f5260205260405f20611600878254611950565b905560408051338152602081019790975291169490819081016107f4565b845f52600260205260405f208233165f5260205260405f208287165f526020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405f205403156115b657845f52600260205260405f208233165f5260205260405f208287165f5260205260405f20611699888254611916565b90556115b6565b50845f525f60205260405f208233165f5260205260ff60405f205416156115b1565b5f6003193601126101b85773ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b557602061097033611d91565b346101b85760606003193601126101b85761172e611836565b611736611859565b6044359073ffffffffffffffffffffffffffffffffffffffff7fedda7c051899c54dd66eaf5e13c031326ab4729812a579bed198ab93fd313d705c16156103b55761052c92611793611787846119e5565b5f03600f0b8233611a10565b611b5c565b346101b85760206003193601126101b857600435907fffffffff0000000000000000000000000000000000000000000000000000000082168092036101b857817f01ffc9a7000000000000000000000000000000000000000000000000000000006020931490811561180c575b5015158152f35b7fb2e69f8a0000000000000000000000000000000000000000000000000000000091501483611805565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101b857565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101b857565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036101b857565b6064359073ffffffffffffffffffffffffffffffffffffffff821682036101b857565b60031960609101126101b85760043573ffffffffffffffffffffffffffffffffffffffff811681036101b8579060243573ffffffffffffffffffffffffffffffffffffffff811681036101b8579060443590565b9190820391821161192357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9190820180921161192357565b90600f0b90600f0b01907fffffffffffffffffffffffffffffffff8000000000000000000000000000000082126f7fffffffffffffffffffffffffffffff83131761192357565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e5b57604052565b6f80000000000000000000000000000000811015611a0357600f0b90565b6393dafdf15f526004601cfd5b908215611b5757611a218183611f92565b8381019384125f82129080158216911516176119235783611b0757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fa88ffc6a483ae852b901fb1c3a0df606e2e4461b493434e6643ebdc3ffabd1515c017fa88ffc6a483ae852b901fb1c3a0df606e2e4461b493434e6643ebdc3ffabd1515d5b73ffffffffffffffffffffffffffffffffffffffff604051918160208401941684521660408201527f6dc13502b9ba2a9e8e42c53a1856d632b29d5aab3bcb4a2476bfec06cbd9cf22606082015260608152611b016080826119a4565b5190205d565b611aa45760017fa88ffc6a483ae852b901fb1c3a0df606e2e4461b493434e6643ebdc3ffabd1515c017fa88ffc6a483ae852b901fb1c3a0df606e2e4461b493434e6643ebdc3ffabd1515d611aa4565b505050565b90919073ffffffffffffffffffffffffffffffffffffffff81169081611c4e5750505f80808093855af115611b8e5750565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d011673ffffffffffffffffffffffffffffffffffffffff604051927f90bfb8650000000000000000000000000000000000000000000000000000000084521660048301525f6024830152608060448301528060a00160648301523d60848301523d5f60a484013e7ff4b3b1bc0000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b60205f60448194968260409573ffffffffffffffffffffffffffffffffffffffff988751998a947fa9059cbb00000000000000000000000000000000000000000000000000000000865216600485015260248401525af13d15601f3d11600185511416171692828152826020820152015215611cc75750565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d0116604051917f90bfb86500000000000000000000000000000000000000000000000000000000835260048301527fa9059cbb000000000000000000000000000000000000000000000000000000006024830152608060448301528060a00160648301523d60848301523d5f60a484013e7ff27f64e40000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b7f52a1be34b47478d7c75e2b6c3eea1e05dcb8dbb8c6a42c6482d0dca0df53cb275c91907fb0879d96d58bcff08d1fd45590200072d5a8c380da0b5aa1052b48b84e1152075c9073ffffffffffffffffffffffffffffffffffffffff841615611e925734611e6a57611e0e611e6892611e0986611ff7565b611916565b935f7f52a1be34b47478d7c75e2b6c3eea1e05dcb8dbb8c6a42c6482d0dca0df53cb275d5f7fb0879d96d58bcff08d1fd45590200072d5a8c380da0b5aa1052b48b84e1152075d5b611e5f856119e5565b600f0b91611a10565b565b7f11e56171000000000000000000000000000000000000000000000000000000005f5260045ffd5b611e6891503493611e56565b73ffffffffffffffffffffffffffffffffffffffff60035416330361100a57565b81600f0b8015611b57575f8112611f1e5750335f52600660205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052611f1a6fffffffffffffffffffffffffffffffff60405f2092168254611916565b9055565b91507fffffffffffffffffffffffffffffffff80000000000000000000000000000000821461192357335f52600660205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052611f1a6fffffffffffffffffffffffffffffffff60405f20925f03168254611950565b9073ffffffffffffffffffffffffffffffffffffffff604051918160208401941684521660408201527f6dc13502b9ba2a9e8e42c53a1856d632b29d5aab3bcb4a2476bfec06cbd9cf22606082015260608152611ff06080826119a4565b5190205c90565b73ffffffffffffffffffffffffffffffffffffffff168061201757504790565b6020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610e88575f9161205f575090565b90506020813d602011612086575b8161207a602093836119a4565b810103126101b8575190565b3d915061206d56fea164736f6c634300081a000a