0 txs
2 calls
constructor
No constructor.
functions
assetService
viewfunction assetService() view returns (address)
BPS
viewfunction BPS() view returns (uint256)
entrypoint
viewfunction entrypoint() view returns (address)
getAvailableAmount
viewfunction getAvailableAmount(bytes32 _subaccount, address _tokenAddress) view returns (uint256 _amount)
owner
viewfunction owner() view returns (address)
perpService
viewfunction perpService() view returns (address)
executeAction
nonpayablefunction executeAction(bytes _data)
initialize
nonpayablefunction initialize(address _entryPoint, address _assetService, address _perpService)
renounceOwnership
nonpayablefunction renounceOwnership()
setAssetService
nonpayablefunction setAssetService(address _assetService)
setEntryPoint
nonpayablefunction setEntryPoint(address _entrypoint)
setPerpService
nonpayablefunction setPerpService(address _perpService)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Initialized
event Initialized(uint8 version)
LogSetAssetService
event LogSetAssetService(address indexed oldAssetService, address indexed newAssetService)
LogSetEntryPoint
event LogSetEntryPoint(address indexed _old, address indexed _new)
LogSetPerpService
event LogSetPerpService(address indexed oldPerpService, address indexed newPerpService)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
BaseHandler_Unauthorized
error BaseHandler_Unauthorized()
SwapHandler_FeeSubaccountMustNotBeSrcSubaccount
error SwapHandler_FeeSubaccountMustNotBeSrcSubaccount()
SwapHandler_InsufficientCollateral
error SwapHandler_InsufficientCollateral()
SwapHandler_InvalidAmount
error SwapHandler_InvalidAmount()
SwapHandler_InvalidToken
error SwapHandler_InvalidToken()
creation bytecode
0x60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d3565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000176565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff161015620000ed5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e49190620001b6565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200015e602783620000ef565b91506200016b8262000100565b604082019050919050565b6000602082019050818103600083015262000191816200014f565b9050919050565b600060ff82169050919050565b620001b08162000198565b82525050565b6000602082019050620001cd6000830184620001a5565b92915050565b61258580620001e36000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c578063a129568d11610066578063a129568d146101da578063a65d69d4146101f6578063c0c53b8b14610214578063f2fde38b14610230576100cf565b8063715018a6146101945780638da5cb5b1461019e5780638eedef31146101bc576100cf565b80630717a479146100d457806308f72494146100f0578063249d39e9146101205780633146fa141461013e578063584465f21461015a578063681f811b14610176575b600080fd5b6100ee60048036038101906100e9919061185b565b61024c565b005b61010a600480360381019061010591906118be565b610384565b6040516101179190611917565b60405180910390f35b6101286105ba565b6040516101359190611917565b60405180910390f35b6101586004803603810190610153919061185b565b6105c0565b005b610174600480360381019061016f919061185b565b6106f7565b005b61017e6107bf565b60405161018b9190611941565b60405180910390f35b61019c6107e5565b005b6101a66107f9565b6040516101b39190611941565b60405180910390f35b6101c4610823565b6040516101d19190611941565b60405180910390f35b6101f460048036038101906101ef9190611aa2565b610849565b005b6101fe6108dc565b60405161020b9190611941565b60405180910390f35b61022e60048036038101906102299190611aeb565b610902565b005b61024a6004803603810190610245919061185b565b610ba6565b005b610254610c29565b8073ffffffffffffffffffffffffffffffffffffffff1663249d39e96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561029f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c39190611b6a565b508073ffffffffffffffffffffffffffffffffffffffff16606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fc89660837631976d79a629297381344243203a3b253649e5781b96873611ee5f60405160405180910390a380606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff16639750d0c786866040518363ffffffff1660e01b81526004016103e9929190611ba6565b602060405180830381865afa158015610406573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042a9190611c05565b905060008273ffffffffffffffffffffffffffffffffffffffff16637b9e618d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190611c47565b90508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361059e5760008373ffffffffffffffffffffffffffffffffffffffff16631e537e3d836040518263ffffffff1660e01b815260040161050d9190611941565b602060405180830381865afa15801561052a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054e9190611cad565b60ff16905060008160126105629190611d09565b600a61056e9190611e70565b61057789610ca7565b6105819190611eea565b9050600081131561059b5780846105989190611f54565b93505b50505b600082136105ad5760006105af565b815b935050505092915050565b61271081565b6105c8610c29565b8073ffffffffffffffffffffffffffffffffffffffff1663249d39e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106379190611b6a565b508073ffffffffffffffffffffffffffffffffffffffff16606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ea20db17ca75c50c0146f9f61a9423ef40cbff4541d8c2dfc31df20a4a2deff60405160405180910390a380606760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6106ff610c29565b8073ffffffffffffffffffffffffffffffffffffffff16606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1fc6672804cd4e8d2b21333f73af45741e534c3b024117b6674b4a5dfaaf6f1360405160405180910390a380606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107ed610c29565b6107f76000610f33565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d0576040517fcbb3175600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108d981610ff9565b50565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060019054906101000a900460ff161590508080156109335750600160008054906101000a900460ff1660ff16105b806109605750610942306111f0565b15801561095f5750600160008054906101000a900460ff1660ff16145b5b61099f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109969061201b565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156109dc576001600060016101000a81548160ff0219169083151502179055505b6109e584611213565b8273ffffffffffffffffffffffffffffffffffffffff1663249d39e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190611b6a565b508173ffffffffffffffffffffffffffffffffffffffff1663249d39e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac49190611b6a565b5082606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081606760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610ba05760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610b979190612080565b60405180910390a15b50505050565b610bae610c29565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c149061210d565b60405180910390fd5b610c2681610f33565b50565b610c3161131e565b73ffffffffffffffffffffffffffffffffffffffff16610c4f6107f9565b73ffffffffffffffffffffffffffffffffffffffff1614610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612179565b60405180910390fd5b565b600080606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff1663a82d46ce876040518263ffffffff1660e01b8152600401610d329190612199565b6040805180830381865afa158015610d4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7291906121b4565b9150915060008473ffffffffffffffffffffffffffffffffffffffff1663c32f3377886040518263ffffffff1660e01b8152600401610db19190612199565b602060405180830381865afa158015610dce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df29190611c05565b9050808284610e0191906121f4565b610e0b91906121f4565b95506000861315610f2957610e21612710611326565b610f118673ffffffffffffffffffffffffffffffffffffffff1663572d98888873ffffffffffffffffffffffffffffffffffffffff16637b9e618d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaf9190611c47565b6040518263ffffffff1660e01b8152600401610ecb9190611941565b602060405180830381865afa158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c9190611b6a565b611326565b87610f1c9190612237565b610f269190611eea565b95505b5050505050919050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008180602001905181019061100f91906123a9565b905061101a81611393565b6000606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16635befe9e8836000015184602001518560c001516110798760600151611326565b6040518563ffffffff1660e01b815260040161109894939291906123e6565b600060405180830381600087803b1580156110b257600080fd5b505af11580156110c6573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16635befe9e8836020015184600001518560e001516111028760800151611326565b6040518563ffffffff1660e01b815260040161112194939291906123e6565b600060405180830381600087803b15801561113b57600080fd5b505af115801561114f573d6000803e3d6000fd5b5050505060008260a0015111156111eb578073ffffffffffffffffffffffffffffffffffffffff16635befe9e8836000015184604001518561010001516111998760a00151611326565b6040518563ffffffff1660e01b81526004016111b894939291906123e6565b600060405180830381600087803b1580156111d257600080fd5b505af11580156111e6573d6000803e3d6000fd5b505050505b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611262576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112599061249d565b60405180910390fd5b61126a61172f565b8073ffffffffffffffffffffffffffffffffffffffff16638462a7f86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d99190611b6a565b5080606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561138b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113829061252f565b60405180910390fd5b819050919050565b6000606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663572d98888460c001516040518263ffffffff1660e01b81526004016113f99190611941565b602060405180830381865afa158015611416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143a9190611b6a565b03611471576040517f4596924b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663572d98888460e001516040518263ffffffff1660e01b81526004016114b09190611941565b602060405180830381865afa1580156114cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f19190611b6a565b03611528576040517f4596924b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663572d98888461010001516040518263ffffffff1660e01b81526004016115689190611941565b602060405180830381865afa158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a99190611b6a565b036115e0576040517f4596924b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160e0015173ffffffffffffffffffffffffffffffffffffffff168260c0015173ffffffffffffffffffffffffffffffffffffffff160361164d576040517f4596924b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082606001511480611664575060008260800151145b1561169b576040517fec35811700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600001518260400151036116dc576040517f2f369c5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81606001516116f383600001518460c00151610384565b101561172b576040517f91f3dd0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b600060019054906101000a900460ff1661177e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117759061249d565b60405180910390fd5b611786611788565b565b600060019054906101000a900460ff166117d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ce9061249d565b60405180910390fd5b6117e76117e261131e565b610f33565b565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611828826117fd565b9050919050565b6118388161181d565b811461184357600080fd5b50565b6000813590506118558161182f565b92915050565b600060208284031215611871576118706117f3565b5b600061187f84828501611846565b91505092915050565b6000819050919050565b61189b81611888565b81146118a657600080fd5b50565b6000813590506118b881611892565b92915050565b600080604083850312156118d5576118d46117f3565b5b60006118e3858286016118a9565b92505060206118f485828601611846565b9150509250929050565b6000819050919050565b611911816118fe565b82525050565b600060208201905061192c6000830184611908565b92915050565b61193b8161181d565b82525050565b60006020820190506119566000830184611932565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119af82611966565b810181811067ffffffffffffffff821117156119ce576119cd611977565b5b80604052505050565b60006119e16117e9565b90506119ed82826119a6565b919050565b600067ffffffffffffffff821115611a0d57611a0c611977565b5b611a1682611966565b9050602081019050919050565b82818337600083830152505050565b6000611a45611a40846119f2565b6119d7565b905082815260208101848484011115611a6157611a60611961565b5b611a6c848285611a23565b509392505050565b600082601f830112611a8957611a8861195c565b5b8135611a99848260208601611a32565b91505092915050565b600060208284031215611ab857611ab76117f3565b5b600082013567ffffffffffffffff811115611ad657611ad56117f8565b5b611ae284828501611a74565b91505092915050565b600080600060608486031215611b0457611b036117f3565b5b6000611b1286828701611846565b9350506020611b2386828701611846565b9250506040611b3486828701611846565b9150509250925092565b611b47816118fe565b8114611b5257600080fd5b50565b600081519050611b6481611b3e565b92915050565b600060208284031215611b8057611b7f6117f3565b5b6000611b8e84828501611b55565b91505092915050565b611ba081611888565b82525050565b6000604082019050611bbb6000830185611b97565b611bc86020830184611932565b9392505050565b6000819050919050565b611be281611bcf565b8114611bed57600080fd5b50565b600081519050611bff81611bd9565b92915050565b600060208284031215611c1b57611c1a6117f3565b5b6000611c2984828501611bf0565b91505092915050565b600081519050611c418161182f565b92915050565b600060208284031215611c5d57611c5c6117f3565b5b6000611c6b84828501611c32565b91505092915050565b600060ff82169050919050565b611c8a81611c74565b8114611c9557600080fd5b50565b600081519050611ca781611c81565b92915050565b600060208284031215611cc357611cc26117f3565b5b6000611cd184828501611c98565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d14826118fe565b9150611d1f836118fe565b9250828203905081811115611d3757611d36611cda565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115611d9457808604811115611d7057611d6f611cda565b5b6001851615611d7f5780820291505b8081029050611d8d85611d3d565b9450611d54565b94509492505050565b600082611dad5760019050611e69565b81611dbb5760009050611e69565b8160018114611dd15760028114611ddb57611e0a565b6001915050611e69565b60ff841115611ded57611dec611cda565b5b8360020a915084821115611e0457611e03611cda565b5b50611e69565b5060208310610133831016604e8410600b8410161715611e3f5782820a905083811115611e3a57611e39611cda565b5b611e69565b611e4c8484846001611d4a565b92509050818404811115611e6357611e62611cda565b5b81810290505b9392505050565b6000611e7b826118fe565b9150611e86836118fe565b9250611eb37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611d9d565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ef582611bcf565b9150611f0083611bcf565b925082611f1057611f0f611ebb565b5b600160000383147f800000000000000000000000000000000000000000000000000000000000000083141615611f4957611f48611cda565b5b828205905092915050565b6000611f5f82611bcf565b9150611f6a83611bcf565b925082820190508281121560008312168382126000841215161715611f9257611f91611cda565b5b92915050565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000612005602e83611f98565b915061201082611fa9565b604082019050919050565b6000602082019050818103600083015261203481611ff8565b9050919050565b6000819050919050565b6000819050919050565b600061206a6120656120608461203b565b612045565b611c74565b9050919050565b61207a8161204f565b82525050565b60006020820190506120956000830184612071565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006120f7602683611f98565b91506121028261209b565b604082019050919050565b60006020820190508181036000830152612126816120ea565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612163602083611f98565b915061216e8261212d565b602082019050919050565b6000602082019050818103600083015261219281612156565b9050919050565b60006020820190506121ae6000830184611b97565b92915050565b600080604083850312156121cb576121ca6117f3565b5b60006121d985828601611bf0565b92505060206121ea85828601611bf0565b9150509250929050565b60006121ff82611bcf565b915061220a83611bcf565b925082820390508181126000841216828213600085121516171561223157612230611cda565b5b92915050565b600061224282611bcf565b915061224d83611bcf565b925082820261225b81611bcf565b91507f8000000000000000000000000000000000000000000000000000000000000000841460008412161561229357612292611cda565b5b82820584148315176122a8576122a7611cda565b5b5092915050565b600080fd5b6000815190506122c381611892565b92915050565b600061012082840312156122e0576122df6122af565b5b6122eb6101206119d7565b905060006122fb848285016122b4565b600083015250602061230f848285016122b4565b6020830152506040612323848285016122b4565b604083015250606061233784828501611b55565b606083015250608061234b84828501611b55565b60808301525060a061235f84828501611b55565b60a08301525060c061237384828501611c32565b60c08301525060e061238784828501611c32565b60e08301525061010061239c84828501611c32565b6101008301525092915050565b600061012082840312156123c0576123bf6117f3565b5b60006123ce848285016122c9565b91505092915050565b6123e081611bcf565b82525050565b60006080820190506123fb6000830187611b97565b6124086020830186611b97565b6124156040830185611932565b61242260608301846123d7565b95945050505050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000612487602b83611f98565b91506124928261242b565b604082019050919050565b600060208201905081810360008301526124b68161247a565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e206160008201527f6e20696e74323536000000000000000000000000000000000000000000000000602082015250565b6000612519602883611f98565b9150612524826124bd565b604082019050919050565b600060208201905081810360008301526125488161250c565b905091905056fea264697066735822122084439519ddf5b401ee2dadeeedf36b111a6b574ec57ffb6498bcb15ec73d548264736f6c63430008130033