@gnosis.pm/util-contracts
Version:
Utility contracts for Gnosis
911 lines (910 loc) • 204 kB
JSON
{
"contractName": "StorageAccessibleWrapper",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "SIMULATE_DELEGATECALL_INTERNAL_SELECTOR",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SLOT_BAM",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SLOT_BAR",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SLOT_BAZ",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SLOT_FOO",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SLOT_FOOBAR",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SLOT_QUX",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "offset",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "getStorageAt",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "response",
"type": "bytes"
}
],
"name": "revertWith",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "buffer",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "setLength",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "targetContract",
"type": "address"
},
{
"internalType": "bytes",
"name": "calldataPayload",
"type": "bytes"
}
],
"name": "simulateDelegatecall",
"outputs": [
{
"internalType": "bytes",
"name": "response",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "targetContract",
"type": "address"
},
{
"internalType": "bytes",
"name": "calldataPayload",
"type": "bytes"
}
],
"name": "simulateDelegatecallInternal",
"outputs": [
{
"internalType": "bytes",
"name": "response",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "foo_",
"type": "uint256"
}
],
"name": "setFoo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint128",
"name": "bar_",
"type": "uint128"
}
],
"name": "setBar",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "bam_",
"type": "uint64"
}
],
"name": "setBam",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "baz_",
"type": "uint256[]"
}
],
"name": "setBaz",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "key",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "setQuxKeyValue",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "foo_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bar_",
"type": "uint256"
}
],
"name": "setFoobar",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.7.5+commit.eb77ed08\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"SIMULATE_DELEGATECALL_INTERNAL_SELECTOR\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLOT_BAM\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLOT_BAR\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLOT_BAZ\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLOT_FOO\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLOT_FOOBAR\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLOT_QUX\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"getStorageAt\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"name\":\"revertWith\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"bam_\",\"type\":\"uint64\"}],\"name\":\"setBam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"bar_\",\"type\":\"uint128\"}],\"name\":\"setBar\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"baz_\",\"type\":\"uint256[]\"}],\"name\":\"setBaz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"foo_\",\"type\":\"uint256\"}],\"name\":\"setFoo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"foo_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bar_\",\"type\":\"uint256\"}],\"name\":\"setFoobar\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"buffer\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"setLength\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"key\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setQuxKeyValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"calldataPayload\",\"type\":\"bytes\"}],\"name\":\"simulateDelegatecall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"calldataPayload\",\"type\":\"bytes\"}],\"name\":\"simulateDelegatecallInternal\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getStorageAt(uint256,uint256)\":{\"details\":\"Reads `length` bytes of storage in the currents contract\",\"params\":{\"length\":\"- the number of words (32 bytes) of data to read\",\"offset\":\"- the offset in the current contract's storage in words to start reading from\"},\"returns\":{\"_0\":\"the bytes that were read.\"}},\"simulateDelegatecall(address,bytes)\":{\"details\":\"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). Catches revert and returns encoded result as bytes.\",\"params\":{\"calldataPayload\":\"Calldata that should be sent to the target contract (encoded method name and arguments).\",\"targetContract\":\"Address of the contract containing the code to execute.\"}},\"simulateDelegatecallInternal(address,bytes)\":{\"details\":\"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). Returns encoded result as revert message concatenated with the success flag of the inner call as a last byte.\",\"params\":{\"calldataPayload\":\"Calldata that should be sent to the target contract (encoded method name and arguments).\",\"targetContract\":\"Address of the contract containing the code to execute.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/bensniff/Projects/gnosis/util-contracts/contracts/test/StorageAccessibleWrapper.sol\":\"StorageAccessibleWrapper\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/bensniff/Projects/gnosis/util-contracts/contracts/StorageAccessible.sol\":{\"keccak256\":\"0xc8b52a0614f7537b65d6db188ffc5b16fd23b71d9174cb29f8020c9bf3ccb333\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3445810f14c830c1a10f21df9f67014c0a8c110334431f3ac5d9f296234be505\",\"dweb:/ipfs/QmZefwGQd6A1quZZk78e4eTVRjQSwMwFCXTFNkxAvKDFmw\"]},\"/Users/bensniff/Projects/gnosis/util-contracts/contracts/test/StorageAccessibleWrapper.sol\":{\"keccak256\":\"0x3efce0b9c27dbab9e83a61b0c4dd46052473861c85b984c7f96dd1ea946f84ac\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bfe540d250671147f58993a55af3f129150db108e4be07cd6be0045e448e7391\",\"dweb:/ipfs/QmWrUeXvb4Xbuh12nrmicHdbdqvbPq3br4JmGEeqwYuFQs\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50610b16806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80637a5d379b116100a2578063bd0276fc11610071578063bd0276fc146104f8578063dc0f34901461051f578063dc80035d14610527578063eeb21aaf14610544578063f84436bd1461056757610116565b80637a5d379b146104a75780638e9c68f2146104af57806399cf6449146104d55780639fde4466146103fb57610116565b80634e78b547116100e95780634e78b5471461032a57806352b8dfc5146103325780635624b25b146103d85780636334bd13146103fb57806365906ca31461040357610116565b80630697a74f1461011b57806338cccf07146101395780633a1b407a146101dc57806343218e1914610201575b600080fd5b61012361061b565b6040805160ff9092168252519081900360200190f35b6101da6004803603602081101561014f57600080fd5b810190602081018135600160201b81111561016957600080fd5b82018360208201111561017b57600080fd5b803590602001918460208302840111600160201b8311171561019c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610620945050505050565b005b6101e4610637565b604080516001600160e01b03199092168252519081900360200190f35b6102b56004803603604081101561021757600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561024157600080fd5b82018360208201111561025357600080fd5b803590602001918460018302840111600160201b8311171561027457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061065b945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ef5781810151838201526020016102d7565b50505050905090810190601f16801561031c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61012361078a565b6101da6004803603604081101561034857600080fd5b810190602081018135600160201b81111561036257600080fd5b82018360208201111561037457600080fd5b803590602001918460018302840111600160201b8311171561039557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061078f915050565b6102b5600480360360408110156103ee57600080fd5b5080359060200135610793565b610123610808565b6101da6004803603602081101561041957600080fd5b810190602081018135600160201b81111561043357600080fd5b82018360208201111561044557600080fd5b803590602001918460018302840111600160201b8311171561046657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061080d945050505050565b610123610815565b6101da600480360360208110156104c557600080fd5b50356001600160801b031661081a565b6101da600480360360408110156104eb57600080fd5b5080359060200135610845565b6101da6004803603602081101561050e57600080fd5b503567ffffffffffffffff16610857565b610123610885565b6101da6004803603602081101561053d57600080fd5b503561088a565b6101da6004803603604081101561055a57600080fd5b508035906020013561088f565b6102b56004803603604081101561057d57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a757600080fd5b8201836020820111156105b957600080fd5b803590602001918460018302840111600160201b831117156105da57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108ad945050505050565b600281565b8051610633906002906020840190610a80565b5050565b7f43218e198a5f5c70ca65adf1973b6285a79c4d29a39cc2a8bb67b912f447dc6481565b60606000836001600160a01b0316836040518082805190602001908083835b602083106106995780518252601f19909201916020918201910161067a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106f9576040519150601f19603f3d011682016040523d82523d6000602084013e6106fe565b606091505b50809350819250505061078382826040516020018083805190602001908083835b6020831061073e5780518252601f19909201916020918201910161071f565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b81526001019250505060405160208183030381529060405261080d565b5092915050565b600081565b9052565b6060808260200267ffffffffffffffff811180156107b057600080fd5b506040519080825280601f01601f1916602001820160405280156107db576020820181803683370190505b50905060005b838110156107fe57848101546020808302840101526001016107e1565b5090505b92915050565b600181565b805160208201fd5b600381565b600180546fffffffffffffffffffffffffffffffff19166001600160801b0392909216919091179055565b60009182526003602052604090912055565b6001805467ffffffffffffffff909216600160801b0267ffffffffffffffff60801b19909216919091179055565b600481565b600055565b60408051808201909152828152602001819052600491909155600555565b6060807f43218e198a5f5c70ca65adf1973b6285a79c4d29a39cc2a8bb67b912f447dc64848460405160240180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561092257818101518382015260200161090a565b50505050905090810190601f16801561094f5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909816979097178752518151919750309688965090945084935091508083835b602083106109b75780518252601f199092019160209182019101610998565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610a19576040519150601f19603f3d011682016040523d82523d6000602084013e610a1e565b606091505b50905080925050600082600184510381518110610a3757fe5b602001015160f81c60f81b6001600160f81b031916600160f81b149050610a6283600185510361078f565b8015610a6f575050610802565b610a788361080d565b505092915050565b828054828255906000526020600020908101928215610abb579160200282015b82811115610abb578251825591602001919060010190610aa0565b50610ac7929150610acb565b5090565b5b80821115610ac75760008155600101610acc56fea26469706673582212203f731b77c8f811929f054f70c652be765a2221680d0c79626e0e35bc0243b47664736f6c63430007050033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c80637a5d379b116100a2578063bd0276fc11610071578063bd0276fc146104f8578063dc0f34901461051f578063dc80035d14610527578063eeb21aaf14610544578063f84436bd1461056757610116565b80637a5d379b146104a75780638e9c68f2146104af57806399cf6449146104d55780639fde4466146103fb57610116565b80634e78b547116100e95780634e78b5471461032a57806352b8dfc5146103325780635624b25b146103d85780636334bd13146103fb57806365906ca31461040357610116565b80630697a74f1461011b57806338cccf07146101395780633a1b407a146101dc57806343218e1914610201575b600080fd5b61012361061b565b6040805160ff9092168252519081900360200190f35b6101da6004803603602081101561014f57600080fd5b810190602081018135600160201b81111561016957600080fd5b82018360208201111561017b57600080fd5b803590602001918460208302840111600160201b8311171561019c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610620945050505050565b005b6101e4610637565b604080516001600160e01b03199092168252519081900360200190f35b6102b56004803603604081101561021757600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561024157600080fd5b82018360208201111561025357600080fd5b803590602001918460018302840111600160201b8311171561027457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061065b945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ef5781810151838201526020016102d7565b50505050905090810190601f16801561031c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61012361078a565b6101da6004803603604081101561034857600080fd5b810190602081018135600160201b81111561036257600080fd5b82018360208201111561037457600080fd5b803590602001918460018302840111600160201b8311171561039557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061078f915050565b6102b5600480360360408110156103ee57600080fd5b5080359060200135610793565b610123610808565b6101da6004803603602081101561041957600080fd5b810190602081018135600160201b81111561043357600080fd5b82018360208201111561044557600080fd5b803590602001918460018302840111600160201b8311171561046657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061080d945050505050565b610123610815565b6101da600480360360208110156104c557600080fd5b50356001600160801b031661081a565b6101da600480360360408110156104eb57600080fd5b5080359060200135610845565b6101da6004803603602081101561050e57600080fd5b503567ffffffffffffffff16610857565b610123610885565b6101da6004803603602081101561053d57600080fd5b503561088a565b6101da6004803603604081101561055a57600080fd5b508035906020013561088f565b6102b56004803603604081101561057d57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a757600080fd5b8201836020820111156105b957600080fd5b803590602001918460018302840111600160201b831117156105da57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108ad945050505050565b600281565b8051610633906002906020840190610a80565b5050565b7f43218e198a5f5c70ca65adf1973b6285a79c4d29a39cc2a8bb67b912f447dc6481565b60606000836001600160a01b0316836040518082805190602001908083835b602083106106995780518252601f19909201916020918201910161067a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146106f9576040519150601f19603f3d011682016040523d82523d6000602084013e6106fe565b606091505b50809350819250505061078382826040516020018083805190602001908083835b6020831061073e5780518252601f19909201916020918201910161071f565b6001836020036101000a03801982511681845116808217855250505050505090500182151560f81b81526001019250505060405160208183030381529060405261080d565b5092915050565b600081565b9052565b6060808260200267ffffffffffffffff811180156107b057600080fd5b506040519080825280601f01601f1916602001820160405280156107db576020820181803683370190505b50905060005b838110156107fe57848101546020808302840101526001016107e1565b5090505b92915050565b600181565b805160208201fd5b600381565b600180546fffffffffffffffffffffffffffffffff19166001600160801b0392909216919091179055565b60009182526003602052604090912055565b6001805467ffffffffffffffff909216600160801b0267ffffffffffffffff60801b19909216919091179055565b600481565b600055565b60408051808201909152828152602001819052600491909155600555565b6060807f43218e198a5f5c70ca65adf1973b6285a79c4d29a39cc2a8bb67b912f447dc64848460405160240180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561092257818101518382015260200161090a565b50505050905090810190601f16801561094f5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909816979097178752518151919750309688965090945084935091508083835b602083106109b75780518252601f199092019160209182019101610998565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610a19576040519150601f19603f3d011682016040523d82523d6000602084013e610a1e565b606091505b50905080925050600082600184510381518110610a3757fe5b602001015160f81c60f81b6001600160f81b031916600160f81b149050610a6283600185510361078f565b8015610a6f575050610802565b610a788361080d565b505092915050565b828054828255906000526020600020908101928215610abb579160200282015b82811115610abb578251825591602001919060010190610aa0565b50610ac7929150610acb565b5090565b5b80821115610ac75760008155600101610acc56fea26469706673582212203f731b77c8f811929f054f70c652be765a2221680d0c79626e0e35bc0243b47664736f6c63430007050033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "102:1020:8:-:0;;;602:16;;;;;;;;;;102:1020;;;;;;",
"deployedSourceMap": "102:1020:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;352:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;833:73;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;833:73:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;833:73:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;833:73:8;;-1:-1:-1;833:73:8;;-1:-1:-1;;;;;833:73:8:i;:::-;;788:143:6;;;:::i;:::-;;;;-1:-1:-1;;;;;;788:143:6;;;;;;;;;;;;;;3220:337;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3220:337:6;;;;;;;;;;;;;;;-1:-1:-1;;;3220:337:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3220:337:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3220:337:6;;-1:-1:-1;3220:337:6;;-1:-1:-1;;;;;3220:337:6:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;232:34:8;;;:::i;3717:139:6:-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3717:139:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3717:139:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3717:139:6;;-1:-1:-1;;3717:139:6;;;-1:-1:-1;3717:139:6;;-1:-1:-1;;3717:139:6:i;1233:432::-;;;;;;;;;;;;;;;;-1:-1:-1;1233:432:6;;;;;;;:::i;272:34:8:-;;;:::i;3563:148:6:-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3563:148:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3563:148:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3563:148:6;;-1:-1:-1;3563:148:6;;-1:-1:-1;;;;;3563:148:6:i;392:34:8:-;;;:::i;694:64::-;;;;;;;;;;;;;;;;-1:-1:-1;694:64:8;-1:-1:-1;;;;;694:64:8;;:::i;912:92::-;;;;;;;;;;;;;;;;-1:-1:-1;912:92:8;;;;;;;:::i;764:63::-;;;;;;;;;;;;;;;;-1:-1:-1;764:63:8;;;;:::i;432:37::-;;;:::i;624:64::-;;;;;;;;;;;;;;;;-1:-1:-1;624:64:8;;:::i;1010:110::-;;;;;;;;;;;;;;;;-1:-1:-1;1010:110:8;;;;;;;:::i;2101:618:6:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2101:618:6;;;;;;;;;;;;;;;-1:-1:-1;;;2101:618:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2101:618:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2101:618:6;;-1:-1:-1;2101:618:6;;-1:-1:-1;;;;;2101:618:6:i;352:34:8:-;385:1;352:34;:::o;833:73::-;889:10;;;;:3;;:10;;;;;:::i;:::-;;833:73;:::o;788:143:6:-;869:56;788:143;:::o;3220:337::-;3350:21;3383:12;3427:14;-1:-1:-1;;;;;3427:27:6;3468:15;3427:66;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3427:66:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3405:88;;;;;;;;3503:47;3531:8;3541:7;3514:35;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3514:35:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3503:10;:47::i;:::-;3220:337;;;;;:::o;232:34:8:-;265:1;232:34;:::o;3717:139:6:-;3818:22;;3804:46::o;1233:432::-;1332:12;1360:19;1392:6;1401:2;1392:11;1382:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1382:22:6;;1360:44;;1419:13;1414:222;1446:6;1438:5;:14;1414:222;;;1522:18;;;1516:25;1599:4;1588:16;;;1565:40;;;1558:54;1454:7;;1414:222;;;-1:-1:-1;1652:6:6;-1:-1:-1;1233:432:6;;;;;:::o;272:34:8:-;305:1;272:34;:::o;3563:148:6:-;3685:8;3679:15;3672:4;3662:8;3658:19;3651:44;392:34:8;425:1;392:34;:::o;694:64::-;741:3;:10;;-1:-1:-1;;741:10:8;-1:-1:-1;;;;;741:10:8;;;;;;;;;;694:64::o;912:92::-;981:8;;;;:3;:8;;;;;;:16;912:92::o;764:63::-;810:3;:10;;;;;;-1:-1:-1;;;810:10:8;-1:-1:-1;;;;810:10:8;;;;;;;;;764:63::o;432:37::-;468:1;432:37;:::o;624:64::-;671:3;:10;624:64::o;1010:110::-;1083:30;;;;;;;;;;;;;;;;;1074:6;:39;;;;;;1010:110::o;2101:618:6:-;2223:21;2256:22;869:56;2370:14;2398:15;2281:142;;;;;;-1:-1:-1;;;;;2281:142:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2281:142:6;;;-1:-1:-1;;2281:142:6;;;;;;;;;;;;;;-1:-1:-1;;;;;2281:142:6;-1:-1:-1;;;;;;2281:142:6;;;;;;;;;2448:29;;;2281:142;;-1:-1:-1;2456:4:6;;2281:142;;-1:-1:-1;2448:29:6;;-1:-1:-1;2448:29:6;;-1:-1:-1;2281:142:6;-1:-1:-1;2448:29:6;;2281:142;2448:29;;;;;;;;;;-1:-1:-1;;2448:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2433:44;;;;;;2487:17;2507:8;2534:1;2516:8;:15;:19;2507:29;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2507:37:6;;2540:4;2507:37;;;2487:57;;2554:40;2564:8;2592:1;2574:8;:15;:19;2554:9;:40::i;:::-;2608:12;2604:109;;;2636:15;;;;2604:109;2682:20;2693:8;2682:10;:20::i;:::-;2101:618;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;",
"source": "// SPDX-License-Identifier: LGPL-3.0-only\npragma solidity ^0.7.0;\nimport \"../StorageAccessible.sol\";\n\ncontract StorageAccessibleWrapper is StorageAccessible {\n struct FooBar {\n uint256 foo;\n uint256 bar;\n }\n\n uint8 public constant SLOT_FOO = 0;\n uint8 public constant SLOT_BAR = 1;\n uint8 public constant SLOT_BAM = 1;\n uint8 public constant SLOT_BAZ = 2;\n uint8 public constant SLOT_QUX = 3;\n uint8 public constant SLOT_FOOBAR = 4;\n\n uint256 foo;\n uint128 bar;\n uint64 bam;\n uint256[] baz;\n mapping(uint256 => uint256) qux;\n FooBar foobar;\n\n constructor() {}\n\n function setFoo(uint256 foo_) public {\n foo = foo_;\n }\n\n function setBar(uint128 bar_) public {\n bar = bar_;\n }\n\n function setBam(uint64 bam_) public {\n bam = bam_;\n }\n\n function setBaz(uint256[] memory baz_) public {\n baz = baz_;\n }\n\n function setQuxKeyValue(uint256 key, uint256 value) public {\n qux[key] = value;\n }\n\n function setFoobar(uint256 foo_, uint256 bar_) public {\n foobar = FooBar({foo: foo_, bar: bar_});\n }\n}\n\n/**\n * Defines reader methods on StorageAccessibleWrapper that can be later executed\n * in the context of a previously deployed instance\n */\ncontract ExternalStorageReader {\n // Needs same storage layout as the contract it is reading from\n uint256 foo;\n\n function getFoo() public view returns (uint256) {\n return foo;\n }\n\n function setAndGetFoo(uint256 foo_) public returns (uint256) {\n foo = foo_;\n return foo;\n }\n\n function doRevert() public pure {\n revert();\n }\n\n function invokeDoRevertViaStorageAccessible(StorageAccessible target)\n public\n {\n target.simulateDelegatecall(\n address(this),\n abi.encodeWithSignature(\"doRevert()\")\n );\n }\n\n function invokeStaticDelegatecall(\n ViewStorageAccessible target,\n bytes calldata encodedCall\n ) public view returns (uint256) {\n uint256 result = abi.decode(\n target.simulateDelegatecall(address(this), encodedCall),\n (uint256)\n );\n return result;\n }\n}\n",
"sourcePath": "/Users/bensniff/Projects/gnosis/util-contracts/contracts/test/StorageAccessibleWrapper.sol",
"ast": {
"absolutePath": "/Users/bensniff/Projects/gnosis/util-contracts/contracts/test/StorageAccessibleWrapper.sol",
"exportedSymbols": {
"ExternalStorageReader": [
2102
],
"StorageAccessible": [
1833
],
"StorageAccessibleWrapper": [
2021
],
"ViewStorageAccessible": [
1681
]
},
"id": 2103,
"license": "LGPL-3.0-only",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1905,
"literals": [
"solidity",
"^",
"0.7",
".0"
],
"nodeType": "PragmaDirective",
"src": "42:23:8"
},
{
"absolutePath": "/Users/bensniff/Projects/gnosis/util-contracts/contracts/StorageAccessible.sol",
"file": "../StorageAccessible.sol",
"id": 1906,
"nodeType": "ImportDirective",
"scope": 2103,
"sourceUnit": 1834,
"src": "66:34:8",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 1907,
"name": "StorageAccessible",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1833,
"src": "139:17:8",
"typeDescriptions": {
"typeIdentifier": "t_contract$_StorageAccessible_$1833",
"typeString": "contract StorageAccessible"
}
},
"id": 1908,
"nodeType": "InheritanceSpecifier",
"src": "139:17:8"
}
],
"contractDependencies": [
1833
],
"contractKind": "contract",
"fullyImplemented": true,
"id": 2021,
"linearizedBaseContracts": [
2021,
1833
],
"name": "StorageAccessibleWrapper",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "StorageAccessibleWrapper.FooBar",
"id": 1913,
"members": [
{
"constant": false,
"id": 1910,
"mutability": "mutable",
"name": "foo",
"nodeType": "VariableDeclaration",
"scope": 1913,
"src": "187:11:8",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1909,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "187:7:8",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1912,
"mutability": "mutable",
"name": "bar",
"nodeType": "VariableDeclaration",
"scope": 1913,
"src": "208:11:8",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1911,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "208:7:8",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"name": "FooBar",
"nodeType": "StructDefinition",
"scope": 2021,
"src": "163:63:8",
"visibility": "public"
},
{
"constant": true,
"functionSelector": "4e78b547",
"id": 1916,
"mutability": "constant",
"name": "SLOT_FOO",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "232:34:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 1914,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "232:5:8",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"hexValue": "30",
"id": 1915,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "265:1:8",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "6334bd13",
"id": 1919,
"mutability": "constant",
"name": "SLOT_BAR",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "272:34:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 1917,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "272:5:8",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"hexValue": "31",
"id": 1918,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "305:1:8",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "9fde4466",
"id": 1922,
"mutability": "constant",
"name": "SLOT_BAM",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "312:34:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 1920,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "312:5:8",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"hexValue": "31",
"id": 1921,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "345:1:8",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "0697a74f",
"id": 1925,
"mutability": "constant",
"name": "SLOT_BAZ",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "352:34:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 1923,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "352:5:8",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"hexValue": "32",
"id": 1924,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "385:1:8",
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "7a5d379b",
"id": 1928,
"mutability": "constant",
"name": "SLOT_QUX",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "392:34:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 1926,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "392:5:8",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"hexValue": "33",
"id": 1927,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "425:1:8",
"typeDescriptions": {
"typeIdentifier": "t_rational_3_by_1",
"typeString": "int_const 3"
},
"value": "3"
},
"visibility": "public"
},
{
"constant": true,
"functionSelector": "dc0f3490",
"id": 1931,
"mutability": "constant",
"name": "SLOT_FOOBAR",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "432:37:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 1929,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "432:5:8",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"hexValue": "34",
"id": 1930,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "468:1:8",
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
},
"visibility": "public"
},
{
"constant": false,
"id": 1933,
"mutability": "mutable",
"name": "foo",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "476:11:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1932,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "476:7:8",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1935,
"mutability": "mutable",
"name": "bar",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "493:11:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint128",
"typeString": "uint128"
},
"typeName": {
"id": 1934,
"name": "uint128",
"nodeType": "ElementaryTypeName",
"src": "493:7:8",
"typeDescriptions": {
"typeIdentifier": "t_uint128",
"typeString": "uint128"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1937,
"mutability": "mutable",
"name": "bam",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "510:10:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 1936,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "510:6:8",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1940,
"mutability": "mutable",
"name": "baz",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "526:13:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 1938,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "526:7:8",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1939,
"nodeType": "ArrayTypeName",
"src": "526:9:8",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1944,
"mutability": "mutable",
"name": "qux",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "545:31:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 1943,
"keyType": {
"id": 1941,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "553:7:8",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "545:27:8",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 1942,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "564:7:8",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1946,
"mutability": "mutable",
"name": "foobar",
"nodeType": "VariableDeclaration",
"scope": 2021,
"src": "582:13:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_FooBar_$1913_storage",
"typeString": "struct StorageAccessibleWrapper.FooBar"
},
"typeName": {
"id": 1945,
"name": "FooBar",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1913,
"src": "582:6:8",
"typeDescriptions": {
"typeIdentifier": "t_struct$_FooBar_$1913_storage_ptr",
"typeString": "struct StorageAccessibleWrapper.FooBar"
}
},
"visibility": "internal"
},
{
"body": {
"id": 1949,
"nodeType": "Block",
"src": "616:2:8",
"statements": []
},
"id": 1950,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1947,
"nodeType": "ParameterList",
"parameters": [],
"src": "613:2:8"
},
"returnParameters": {
"id": 1948,
"nodeType": "ParameterList",
"parameters": [],
"src": "616:0:8"
},
"scope": 2021,
"src": "602:16:8",
"stateMutability": "nonpayable",