@alpsfinance/core
Version:
This is the official Alps Finance smart contract repository.
1,150 lines (1,149 loc) • 322 kB
JSON
{
"contractName": "AccountManager",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "hedgeFundAccountRegistry",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "marginAccountRegistry",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "accountId",
"type": "uint256"
}
],
"name": "createNewAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "accountId",
"type": "uint256"
},
{
"internalType": "address",
"name": "accountAddress",
"type": "address"
}
],
"name": "deleteAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"accountId\",\"type\":\"uint256\"}],\"name\":\"createNewAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"accountId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accountAddress\",\"type\":\"address\"}],\"name\":\"deleteAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"hedgeFundAccountRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"marginAccountRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createNewAccount(uint256)\":{\"notice\":\"Create new user account with type based on `accountId`\"},\"deleteAccount(uint256,address)\":{\"notice\":\"Delete an existing user account of `accountAddress`\"},\"marginAccountRegistry(address)\":{\"notice\":\"ACCOUNT REGISTRIES The registry variables is used to store users account information in mapping type - first address is for user address, e.g. msg.sender - second address is for account address (type: margin or hedge fund)\"}},\"notice\":\"THIS IS THE `AccountManager` contract Description: This contract will function as a manager + factory for the account contracts. Some of the main functionality for the `AccountManager` contract will be to: - Create a new user account - Delete an existing user account - Managing access control to protect user's account Currently there are two types of account: - Margin Account (accountId = 0) - Hedge Fund Account (accountId = 1)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/account/AccountManager.sol\":\"AccountManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/account/AccountManager.sol\":{\"keccak256\":\"0x3aba70c4ebb23e102a34b08c0bc6146bfc11ea575bc78ca03a38b9b18c32071c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://88fdc2c9526f78c5ab7cb89b70e8acfb967de3e8ddf22e72248688be42f02425\",\"dweb:/ipfs/QmPAZWfpGJCSpt4sZtfhG5DyQWoUsP3Kr6Vznd9j8yZzG6\"]},\"project:/contracts/account/HedgeFundAccount.sol\":{\"keccak256\":\"0x6752ad6bd02dd20e9ec9b2cac8345d196c8ed87b41686352acb496706b1029c1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://f8d18bb322ee8a54b281c6b79ff3831e66165586609b2a94edfe7a3323bbfc5b\",\"dweb:/ipfs/QmV1XjPDub8bG8erkYgBD6F9hYjtc5Dtidd2dpxrH81Fpa\"]},\"project:/contracts/account/MarginAccount.sol\":{\"keccak256\":\"0x010661f4b1de9bd01693bd6229e55c6c336fc6e69fe688cefb20b07b83109d67\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a8e501f0531844960e3095c7800d121948cd4a084faf177d4a3e5793128fbcf4\",\"dweb:/ipfs/QmYcBWx3D5EEszAJcQpKhNiyARKBdpMEDpHx8HHR5picYm\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b506105b8806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806341596f081461005157806385a237a914610096578063a7a368fe146100ab578063c787c924146100be575b600080fd5b61007a61005f366004610463565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100a96100a4366004610485565b6100e7565b005b6100a96100b936600461049e565b61027c565b61007a6100cc366004610463565b6001602052600090815260409020546001600160a01b031681565b8060006100f8565b60405180910390fd5b600061010483336103d3565b6001600160a01b03161461016a5760405162461bcd60e51b815260206004820152602760248201527f416e206578697374696e67206163636f756e7420666f756e6420666f722074686044820152666520757365722160c81b60648201526084016100ef565b826101cd57600060405161017d9061042f565b604051809103906000f080158015610199573d6000803e3d6000fd5b5033600090815260208190526040902080546001600160a01b0319166001600160a01b039290921691909117905550505050565b82600114156102345760006040516101e49061043b565b604051809103906000f080158015610200573d6000803e3d6000fd5b5033600090815260016020526040902080546001600160a01b0319166001600160a01b039290921691909117905550505050565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f7420612076616c6964206163636f756e74496420676976656e210000000060448201526064016100ef565b816001600061028b83336103d3565b6001600160a01b031614156102f25760405162461bcd60e51b815260206004820152602760248201527f4e6f206578697374696e67206163636f756e7420666f756e6420666f722074686044820152666520757365722160c81b60648201526084016100ef565b8383806001600160a01b031661030883336103d3565b6001600160a01b03161461037d5760405162461bcd60e51b815260206004820152603660248201527f596f7520617265206e6f7420746865206163636f756e74206f776e6572206f666044820152752074686973206163636f756e7420616464726573732160501b60648201526084016100ef565b856103a45733600090815260208190526040902080546001600160a01b03191690556103cb565b85600114156103cb5733600090815260016020526040902080546001600160a01b03191690555b505050505050565b6000826103fb57506001600160a01b0380821660009081526020819052604090205416610429565b826001141561042557506001600160a01b0380821660009081526001602052604090205416610429565b5060005b92915050565b605c806104cb83390190565b605c8061052783390190565b80356001600160a01b038116811461045e57600080fd5b919050565b60006020828403121561047557600080fd5b61047e82610447565b9392505050565b60006020828403121561049757600080fd5b5035919050565b600080604083850312156104b157600080fd5b823591506104c160208401610447565b9050925092905056fe6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122024691ad3b39668e7fe5d1eb35e84fb02a09a7f911004a85cb45bc27b61da4d2764736f6c634300080b00336080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220b00f0803c7be2ee89cb3617f40a29fd6c5a43d088888963e3a8a9eaf7da8fbc764736f6c634300080b0033a2646970667358221220fa34ac00ad052cdca7212523055d79a7c688065065c064d1140659f70274b93f64736f6c634300080b0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806341596f081461005157806385a237a914610096578063a7a368fe146100ab578063c787c924146100be575b600080fd5b61007a61005f366004610463565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100a96100a4366004610485565b6100e7565b005b6100a96100b936600461049e565b61027c565b61007a6100cc366004610463565b6001602052600090815260409020546001600160a01b031681565b8060006100f8565b60405180910390fd5b600061010483336103d3565b6001600160a01b03161461016a5760405162461bcd60e51b815260206004820152602760248201527f416e206578697374696e67206163636f756e7420666f756e6420666f722074686044820152666520757365722160c81b60648201526084016100ef565b826101cd57600060405161017d9061042f565b604051809103906000f080158015610199573d6000803e3d6000fd5b5033600090815260208190526040902080546001600160a01b0319166001600160a01b039290921691909117905550505050565b82600114156102345760006040516101e49061043b565b604051809103906000f080158015610200573d6000803e3d6000fd5b5033600090815260016020526040902080546001600160a01b0319166001600160a01b039290921691909117905550505050565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f7420612076616c6964206163636f756e74496420676976656e210000000060448201526064016100ef565b816001600061028b83336103d3565b6001600160a01b031614156102f25760405162461bcd60e51b815260206004820152602760248201527f4e6f206578697374696e67206163636f756e7420666f756e6420666f722074686044820152666520757365722160c81b60648201526084016100ef565b8383806001600160a01b031661030883336103d3565b6001600160a01b03161461037d5760405162461bcd60e51b815260206004820152603660248201527f596f7520617265206e6f7420746865206163636f756e74206f776e6572206f666044820152752074686973206163636f756e7420616464726573732160501b60648201526084016100ef565b856103a45733600090815260208190526040902080546001600160a01b03191690556103cb565b85600114156103cb5733600090815260016020526040902080546001600160a01b03191690555b505050505050565b6000826103fb57506001600160a01b0380821660009081526020819052604090205416610429565b826001141561042557506001600160a01b0380821660009081526001602052604090205416610429565b5060005b92915050565b605c806104cb83390190565b605c8061052783390190565b80356001600160a01b038116811461045e57600080fd5b919050565b60006020828403121561047557600080fd5b61047e82610447565b9392505050565b60006020828403121561049757600080fd5b5035919050565b600080604083850312156104b157600080fd5b823591506104c160208401610447565b9050925092905056fe6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122024691ad3b39668e7fe5d1eb35e84fb02a09a7f911004a85cb45bc27b61da4d2764736f6c634300080b00336080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220b00f0803c7be2ee89cb3617f40a29fd6c5a43d088888963e3a8a9eaf7da8fbc764736f6c634300080b0033a2646970667358221220fa34ac00ad052cdca7212523055d79a7c688065065c064d1140659f70274b93f64736f6c634300080b0033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2628:56",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:56",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "63:124:56",
"statements": [
{
"nodeType": "YulAssignment",
"src": "73:29:56",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "95:6:56"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "82:12:56"
},
"nodeType": "YulFunctionCall",
"src": "82:20:56"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:56"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "165:16:56",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "174:1:56",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "177:1:56",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "167:6:56"
},
"nodeType": "YulFunctionCall",
"src": "167:12:56"
},
"nodeType": "YulExpressionStatement",
"src": "167:12:56"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "124:5:56"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "135:5:56"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:3:56",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "155:1:56",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "146:3:56"
},
"nodeType": "YulFunctionCall",
"src": "146:11:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "159:1:56",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "142:3:56"
},
"nodeType": "YulFunctionCall",
"src": "142:19:56"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "131:3:56"
},
"nodeType": "YulFunctionCall",
"src": "131:31:56"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "121:2:56"
},
"nodeType": "YulFunctionCall",
"src": "121:42:56"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "114:6:56"
},
"nodeType": "YulFunctionCall",
"src": "114:50:56"
},
"nodeType": "YulIf",
"src": "111:70:56"
}
]
},
"name": "abi_decode_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "42:6:56",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:56",
"type": ""
}
],
"src": "14:173:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "262:116:56",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "308:16:56",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:56",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:56",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:56"
},
"nodeType": "YulFunctionCall",
"src": "310:12:56"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:56"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "283:7:56"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "292:9:56"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "279:3:56"
},
"nodeType": "YulFunctionCall",
"src": "279:23:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "304:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "275:3:56"
},
"nodeType": "YulFunctionCall",
"src": "275:32:56"
},
"nodeType": "YulIf",
"src": "272:52:56"
},
{
"nodeType": "YulAssignment",
"src": "333:39:56",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "362:9:56"
}
],
"functionName": {
"name": "abi_decode_address",
"nodeType": "YulIdentifier",
"src": "343:18:56"
},
"nodeType": "YulFunctionCall",
"src": "343:29:56"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "333:6:56"
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "228:9:56",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "239:7:56",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "251:6:56",
"type": ""
}
],
"src": "192:186:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "484:102:56",
"statements": [
{
"nodeType": "YulAssignment",
"src": "494:26:56",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "506:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "517:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "502:3:56"
},
"nodeType": "YulFunctionCall",
"src": "502:18:56"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "494:4:56"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "536:9:56"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "551:6:56"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "567:3:56",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "572:1:56",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "563:3:56"
},
"nodeType": "YulFunctionCall",
"src": "563:11:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "576:1:56",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "559:3:56"
},
"nodeType": "YulFunctionCall",
"src": "559:19:56"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "547:3:56"
},
"nodeType": "YulFunctionCall",
"src": "547:32:56"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "529:6:56"
},
"nodeType": "YulFunctionCall",
"src": "529:51:56"
},
"nodeType": "YulExpressionStatement",
"src": "529:51:56"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "453:9:56",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "464:6:56",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "475:4:56",
"type": ""
}
],
"src": "383:203:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "661:110:56",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "707:16:56",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "716:1:56",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "719:1:56",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "709:6:56"
},
"nodeType": "YulFunctionCall",
"src": "709:12:56"
},
"nodeType": "YulExpressionStatement",
"src": "709:12:56"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "682:7:56"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "691:9:56"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "678:3:56"
},
"nodeType": "YulFunctionCall",
"src": "678:23:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "703:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "674:3:56"
},
"nodeType": "YulFunctionCall",
"src": "674:32:56"
},
"nodeType": "YulIf",
"src": "671:52:56"
},
{
"nodeType": "YulAssignment",
"src": "732:33:56",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "755:9:56"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "742:12:56"
},
"nodeType": "YulFunctionCall",
"src": "742:23:56"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "732:6:56"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "627:9:56",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "638:7:56",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "650:6:56",
"type": ""
}
],
"src": "591:180:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "863:167:56",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "909:16:56",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "918:1:56",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "921:1:56",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "911:6:56"
},
"nodeType": "YulFunctionCall",
"src": "911:12:56"
},
"nodeType": "YulExpressionStatement",
"src": "911:12:56"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "884:7:56"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "893:9:56"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "880:3:56"
},
"nodeType": "YulFunctionCall",
"src": "880:23:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "905:2:56",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "876:3:56"
},
"nodeType": "YulFunctionCall",
"src": "876:32:56"
},
"nodeType": "YulIf",
"src": "873:52:56"
},
{
"nodeType": "YulAssignment",
"src": "934:33:56",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "957:9:56"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "944:12:56"
},
"nodeType": "YulFunctionCall",
"src": "944:23:56"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "934:6:56"
}
]
},
{
"nodeType": "YulAssignment",
"src": "976:48:56",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1009:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1020:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1005:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1005:18:56"
}
],
"functionName": {
"name": "abi_decode_address",
"nodeType": "YulIdentifier",
"src": "986:18:56"
},
"nodeType": "YulFunctionCall",
"src": "986:38:56"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "976:6:56"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "821:9:56",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "832:7:56",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "844:6:56",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "852:6:56",
"type": ""
}
],
"src": "776:254:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1209:229:56",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1226:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1237:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1219:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1219:21:56"
},
"nodeType": "YulExpressionStatement",
"src": "1219:21:56"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1260:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1271:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1256:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1256:18:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1276:2:56",
"type": "",
"value": "39"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1249:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1249:30:56"
},
"nodeType": "YulExpressionStatement",
"src": "1249:30:56"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1299:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1310:2:56",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1295:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1295:18:56"
},
{
"hexValue": "4e6f206578697374696e67206163636f756e7420666f756e6420666f72207468",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1315:34:56",
"type": "",
"value": "No existing account found for th"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1288:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1288:62:56"
},
"nodeType": "YulExpressionStatement",
"src": "1288:62:56"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1370:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1381:2:56",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1366:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1366:18:56"
},
{
"hexValue": "65207573657221",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1386:9:56",
"type": "",
"value": "e user!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1359:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1359:37:56"
},
"nodeType": "YulExpressionStatement",
"src": "1359:37:56"
},
{
"nodeType": "YulAssignment",
"src": "1405:27:56",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1417:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1428:3:56",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1413:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1413:19:56"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1405:4:56"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_46ff4170890dba931d86a0f349a11b3c83a9006cb94de9299cf8e82fd2c10cb5__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1186:9:56",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1200:4:56",
"type": ""
}
],
"src": "1035:403:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1617:229:56",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1634:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1645:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1627:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1627:21:56"
},
"nodeType": "YulExpressionStatement",
"src": "1627:21:56"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1668:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",