UNPKG

@dolomite-exchange/dolomite-margin

Version:

Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol

570 lines (569 loc) 84.4 kB
{ "contractName": "CallImpl", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/impl/CallImpl.sol\":\"CallImpl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/impl/CallImpl.sol\":{\"keccak256\":\"0x868f8c2ed6dfdf4714505719fc12839df3010f4e83d14daa3b068013e4bd8cca\",\"urls\":[\"bzz-raw://1ad15cf77619f7f2830de1dc1e2278fd4184da7100937b5ad46903a08b1e4e94\",\"dweb:/ipfs/QmYaGB1xqfDLHbWQRASWR6Yt7CxKM2da3QkCU9NZwb1fhB\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IAccountRiskOverrideSetter.sol\":{\"keccak256\":\"0x5b9fde139ddfdaae7b650b3c3f6699e0e44605f0d9d3daadc1622eb06ad4c3f8\",\"urls\":[\"bzz-raw://2dfd5af24b6de63f94519c99fd8777a264d7cd11266fa2d525c7d72d96a9c7cf\",\"dweb:/ipfs/QmPg9fjhbnmBayZMh6yTG79xsK1PWSoAHA5pfwSXfnKKjF\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/ICallee.sol\":{\"keccak256\":\"0x0b65209369307041e67c28634fc17a19e953199ac42a88198b76578f7fa9b0f8\",\"urls\":[\"bzz-raw://46618851882c2bc5a6212bb0a8ad095e0f38049f24ecf404163ad6b493c728a1\",\"dweb:/ipfs/QmRx4VabTaXTGSyMt8NCTZ7nMiWCHfrvqZjRaKNRir3zEe\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IOracleSentinel.sol\":{\"keccak256\":\"0xa94499fda55ef112640daed2cb1d06062e72c51c7b925c323b4e0ffa9b456ce5\",\"urls\":[\"bzz-raw://18b4a16acac577590a57f34f7ec6583e3cb35f575c948abb928b308d29cac1ab\",\"dweb:/ipfs/QmR1jLkzj6w7SjrdZ7GVW4V2vofSdMJwzjTqKpeUKABvxu\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x7b2fcf441c034952dd042b6c8b20b148359db771e7c9ac07d06369560a9f0301\",\"urls\":[\"bzz-raw://84665ee4a780360fe6160d197ba98f0bf0ab0d7c6ad87bfed6226bf2f88d8d30\",\"dweb:/ipfs/QmRDfRdAd8hSXeu4SAeeYKkKoXBhStu7n4uReYBce2JD5Z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2dd25e648c65f5d9e4949a57938e29ddc4c9dddefd74a9964aeef\",\"urls\":[\"bzz-raw://67e5a04ed4055faafbc100d6ccca9c54448ed378a1a8c71171562edda7bcbf7c\",\"dweb:/ipfs/QmYRikK3Xbgiq3UBJkgoo2zNUSSrShVabpRHmQj6iQHhrc\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0xe57c80a7621a77fcb2acb9f883fb5248e71a6dce03bc2db56df0db3fee332950\",\"urls\":[\"bzz-raw://28e221c04629674490b9a0041d4f9a5f15e669dc0cc192a5df6e2c701c36369f\",\"dweb:/ipfs/QmaL3oh8c7v9cx91pB175pyCEuzxnhNTab4UxmBMsDYfUx\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x41a3460e34b7b8635d936e35e6568ceb5354b638f53b884530e0d4875fa0f151\",\"urls\":[\"bzz-raw://d1a5ba866ee95d455afe5075dadd91fc71c2806371f2c1b358a1f67c632bb0df\",\"dweb:/ipfs/QmW4qCjmsG8J3UJv97GwDLDM7wt1K4yLDKAwzWMY7TFYi5\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Events.sol\":{\"keccak256\":\"0x2345dcc1ebf53a3d5449dab083b1fb90b5362dae692f8ff3ad00078862894e9b\",\"urls\":[\"bzz-raw://ebd34c557c06caf0696774844f0ca9746412ecc452bdd978b3bca0fd71aefbde\",\"dweb:/ipfs/QmcwXXKgv77DqfhxABRg85WR6RBPTLmge5vJGp99o9kFf8\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9c27f3cd52af28c9b6bca18097b1793f114d08284d78417467d0d05f67e9e2a9\",\"urls\":[\"bzz-raw://d1ed0e7a7f76d59f30572996d4e164ab8fb5b2ec4bfca127983f9e936b904813\",\"dweb:/ipfs/QmePVYbgrY8Yw3Vf76pmEvE9pX916Jaa9we4kjM8tGM4J1\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0x095b5f8eb3665f6e246200311efc8a654fa3e90f9a1a522e27a4d089e8ab3917\",\"urls\":[\"bzz-raw://5db812b752a03d601d424e6e21be38153477082af0acf51b5c98eefa5553ed18\",\"dweb:/ipfs/QmbE549QUXYTurpx8hSMLBJvuBpfYqyNE6FBCgHJDY8PLf\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", "bytecode": "0x610ae7610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063907d6b901461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004610730565b61005c565b005b80516100709083903363ffffffff61010e16565b6020810151815160408084015190517f8b41871300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90931692638b418713926100cf9233926004016108c6565b600060405180830381600087803b1580156100e957600080fd5b505af11580156100fd573d6000803e3d6000fd5b5050505061010a816101c7565b5050565b6000826000015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806101595750610159848363ffffffff61022816565b80610173575082516101739085908463ffffffff61025a16565b90506101c1817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d697373696f6e6564206f70657261746f720000000000000000008561029a565b50505050565b805180516020918201519183015160405173ffffffffffffffffffffffffffffffffffffffff909216927fab38cdc4a831ebe6542bf277d36b65dbc5c66a4d03ec6cf56ac38de05dc300989261021d929061090d565b60405180910390a250565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005830160205260409020546001145b92915050565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526004850160209081526040808320938516835292905220546001145b9392505050565b836101c1576102a883610399565b7f3a200000000000000000000000000000000000000000000000000000000000006102d284610399565b7f203c0000000000000000000000000000000000000000000000000000000000006102fc85610473565b6040516103329594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001610868565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610390916004016108fc565b60405180910390fd5b606080826040516020016103ad9190610853565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156104565781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091019082908290811061041957fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610451576001018152905061046e565b6103e0565b5060408051600080825260208201909252905b509150505b919050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b816000815181106104bf57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b8160018151811061050057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015610469576002810261054b600f85166105ea565b83826029038151811061055a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061059c600f85166105ea565b8382602803815181106105ab57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101610532565b6000600a82101561060257506030810160f81b61046e565b5060570160f81b90565b803561025481610a84565b600082601f83011261062857600080fd5b813561063b6106368261094f565b610928565b9150808252602083016020830185838301111561065757600080fd5b610662838284610a24565b50505092915050565b60006080828403121561067d57600080fd5b6106876060610928565b9050600061069584846106de565b82525060406106a68484830161060c565b602083015250606082013567ffffffffffffffff8111156106c657600080fd5b6106d284828501610617565b60408301525092915050565b6000604082840312156106f057600080fd5b6106fa6040610928565b90506000610708848461060c565b825250602061071984848301610725565b60208301525092915050565b803561025481610a9b565b6000806040838503121561074357600080fd5b600061074f8585610725565b925050602083013567ffffffffffffffff81111561076c57600080fd5b6107788582860161066b565b9150509250929050565b61078b81610a13565b82525050565b61078b816109a2565b61078b6107a6826109ad565b6109f7565b61078b6107a6826109d2565b61078b6107a6826109f7565b60006107ce82610995565b6107d8818561046e565b93506107e8818560208601610a30565b9290920192915050565b60006107fd82610995565b6108078185610999565b9350610817818560208601610a30565b61082081610a5c565b9093019392505050565b8051604083019061083b8482610791565b5060208201516101c160208501825b61078b816109f7565b600061085f82846107b7565b50602001919050565b600061087482896107c3565b915061088082886107ab565b60028201915061089082876107c3565b915061089c82866107ab565b6002820191506108ac82856107c3565b91506108b8828461079a565b506001019695505050505050565b608081016108d48286610782565b6108e1602083018561082a565b81810360608301526108f381846107f2565b95945050505050565b6020808252810161029381846107f2565b6040810161091b828561084a565b6102936020830184610791565b60405181810167ffffffffffffffff8111828210171561094757600080fd5b604052919050565b600067ffffffffffffffff82111561096657600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b90815260200190565b6000610254826109fa565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000610254826000610254826109a2565b82818337506000910152565b60005b83811015610a4b578181015183820152602001610a33565b838111156101c15750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b610a8d816109a2565b8114610a9857600080fd5b50565b610a8d816109f756fea365627a7a7231582039a8254a71661e4ef020c14260da3a5cbd632f5ce22a67d66ed4172bdc7339af6c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063907d6b901461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004610730565b61005c565b005b80516100709083903363ffffffff61010e16565b6020810151815160408084015190517f8b41871300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90931692638b418713926100cf9233926004016108c6565b600060405180830381600087803b1580156100e957600080fd5b505af11580156100fd573d6000803e3d6000fd5b5050505061010a816101c7565b5050565b6000826000015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806101595750610159848363ffffffff61022816565b80610173575082516101739085908463ffffffff61025a16565b90506101c1817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d697373696f6e6564206f70657261746f720000000000000000008561029a565b50505050565b805180516020918201519183015160405173ffffffffffffffffffffffffffffffffffffffff909216927fab38cdc4a831ebe6542bf277d36b65dbc5c66a4d03ec6cf56ac38de05dc300989261021d929061090d565b60405180910390a250565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005830160205260409020546001145b92915050565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526004850160209081526040808320938516835292905220546001145b9392505050565b836101c1576102a883610399565b7f3a200000000000000000000000000000000000000000000000000000000000006102d284610399565b7f203c0000000000000000000000000000000000000000000000000000000000006102fc85610473565b6040516103329594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001610868565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610390916004016108fc565b60405180910390fd5b606080826040516020016103ad9190610853565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156104565781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091019082908290811061041957fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610451576001018152905061046e565b6103e0565b5060408051600080825260208201909252905b509150505b919050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b816000815181106104bf57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b8160018151811061050057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015610469576002810261054b600f85166105ea565b83826029038151811061055a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061059c600f85166105ea565b8382602803815181106105ab57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101610532565b6000600a82101561060257506030810160f81b61046e565b5060570160f81b90565b803561025481610a84565b600082601f83011261062857600080fd5b813561063b6106368261094f565b610928565b9150808252602083016020830185838301111561065757600080fd5b610662838284610a24565b50505092915050565b60006080828403121561067d57600080fd5b6106876060610928565b9050600061069584846106de565b82525060406106a68484830161060c565b602083015250606082013567ffffffffffffffff8111156106c657600080fd5b6106d284828501610617565b60408301525092915050565b6000604082840312156106f057600080fd5b6106fa6040610928565b90506000610708848461060c565b825250602061071984848301610725565b60208301525092915050565b803561025481610a9b565b6000806040838503121561074357600080fd5b600061074f8585610725565b925050602083013567ffffffffffffffff81111561076c57600080fd5b6107788582860161066b565b9150509250929050565b61078b81610a13565b82525050565b61078b816109a2565b61078b6107a6826109ad565b6109f7565b61078b6107a6826109d2565b61078b6107a6826109f7565b60006107ce82610995565b6107d8818561046e565b93506107e8818560208601610a30565b9290920192915050565b60006107fd82610995565b6108078185610999565b9350610817818560208601610a30565b61082081610a5c565b9093019392505050565b8051604083019061083b8482610791565b5060208201516101c160208501825b61078b816109f7565b600061085f82846107b7565b50602001919050565b600061087482896107c3565b915061088082886107ab565b60028201915061089082876107c3565b915061089c82866107ab565b6002820191506108ac82856107c3565b91506108b8828461079a565b506001019695505050505050565b608081016108d48286610782565b6108e1602083018561082a565b81810360608301526108f381846107f2565b95945050505050565b6020808252810161029381846107f2565b6040810161091b828561084a565b6102936020830184610791565b60405181810167ffffffffffffffff8111828210171561094757600080fd5b604052919050565b600067ffffffffffffffff82111561096657600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b90815260200190565b6000610254826109fa565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000610254826000610254826109a2565b82818337506000910152565b60005b83811015610a4b578181015183820152602001610a33565b838111156101c15750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b610a8d816109a2565b8114610a9857600080fd5b50565b610a8d816109f756fea365627a7a7231582039a8254a71661e4ef020c14260da3a5cbd632f5ce22a67d66ed4172bdc7339af6c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "886:579:69:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", "deployedSourceMap": "886:579:69:-;;;;;;;;;;;;;;;;;;;;;;;;1129:334;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1129:334:69;;;;;;;;:::i;:::-;;;1273:12;;1249:49;;:5;;1287:10;1249:49;:23;:49;:::i;:::-;1317:11;;;;1380:12;;1406:9;;;;;1309:116;;;;;:33;;;;;;;:116;;1356:10;;1309:116;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1309:116:69;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1309:116:69;;;;1436:20;1451:4;1436:14;:20::i;:::-;1129:334;;:::o;20846:495:101:-;21023:20;21070:7;:13;;;21058:25;;:8;:25;;;:73;;;-1:-1:-1;21099:32:101;:5;21122:8;21099:32;:22;:32;:::i;:::-;21058:135;;;-1:-1:-1;21169:13:101;;21147:46;;:5;;21184:8;21147:46;:21;:46;:::i;:::-;21023:170;;21204:130;21230:15;21259:4;21204:130;21316:8;21204:12;:130::i;:::-;20846:495;;;;:::o;9270:211:94:-;9388:12;;:18;;9420:19;;;;;9453:11;;;;9367:107;;;;;;;;;;;9453:11;9367:107;;;;;;;;;;9270:211;:::o;19797:212:101:-;19966:31;;;19939:4;19966:31;;;:21;;;:31;;;;;;20001:1;19966:36;19797:212;;;;;:::o;20243:235::-;20434:22;;;;20407:4;20434:22;;;:15;;;:22;;;;;;;;:32;;;;;;;;;;20470:1;20434:37;20243:235;;;;;;:::o;2962:561:99:-;3122:4;3117:400;;3236:24;3255:4;3236:18;:24::i;:::-;3286:5;3317:26;3336:6;3317:18;:26::i;:::-;3369:6;3401:19;3411:8;3401:9;:19::i;:::-;3194:280;;;;;;;;;3446:6;;3194:280;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;3194:280:99;;;;3142:364;;;;;;;;;;;;;;;;;6359:968;6463:12;6538:19;6577:5;6560:23;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;6560:23:99;;;;-1:-1:-1;49:4;6689:572:99;6710:6;;6689:572;;6962:9;;6864:3;;;;;6962:6;;6864:3;;6962:9;;;;;;;;;;;;:14;6958:293;;7017:1;7013:5;7143:22;;7150:6;-1:-1:-1;7223:13:99;;6958:293;6689:572;;;-1:-1:-1;7308:12:99;;;7318:1;7308:12;;;;;;;;;;;;7301:19;;;6359:968;;;;:::o;8252:958::-;8524:13;;;8534:2;8524:13;;;8346:12;8524:13;;;;;;8386:14;;;;8346:12;;8524:13;;;21:6:-1;;104:10;8524:13:99;87:34:-1;135:17;;-1:-1;8524:13:99;8502:35;;902:2;8601:23;;8589:6;8596:1;8589:9;;;;;;;;;;;:35;;;;;;;;;;;1010:3;8646:27;;8634:6;8641:1;8634:9;;;;;;;;;;;:39;;;;;;;;;;;8787:9;8782:398;8802:2;8798:1;:6;8782:398;;;8891:1;8887:5;;8984:23;1232:3;8989:17;;8984:4;:23::i;:::-;8963:6;8975:5;8970:2;:10;8963:18;;;;;;;;;;;:44;;;;;;;;;;;9030:1;9025;:6;;9021:10;;9122:23;1232:3;9127:1;:17;9122:4;:23::i;:::-;9101:6;9113:5;9108:2;:10;9101:18;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;;9168:1:99;9163:6;;;;;8806:3;;8782:398;;10178:325;10267:4;10335:2;10327:5;:10;10323:79;;;-1:-1:-1;902:2:99;10371:18;;10360:31;;10353:38;;10323:79;-1:-1:-1;956:2:99;10467:27;10456:40;;;10178:325::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;143:432;;240:3;233:4;225:6;221:17;217:27;207:2;;258:1;255;248:12;207:2;295:6;282:20;317:60;332:44;369:6;332:44;;;317:60;;;308:69;;397:6;390:5;383:21;433:4;425:6;421:17;466:4;459:5;455:16;501:3;492:6;487:3;483:16;480:25;477:2;;;518:1;515;508:12;477:2;528:41;562:6;557:3;552;528:41;;;200:375;;;;;;;;613:728;;729:4;717:9;712:3;708:19;704:30;701:2;;;747:1;744;737:12;701:2;765:20;780:4;765:20;;;756:29;-1:-1;838:1;870:68;934:3;914:9;870:68;;;845:94;;-1:-1;1002:2;1035:49;1080:3;1056:22;;;1035:49;;;1028:4;1021:5;1017:16;1010:75;960:136;1174:2;1163:9;1159:18;1146:32;1198:18;1190:6;1187:30;1184:2;;;1230:1;1227;1220:12;1184:2;1265:54;1315:3;1306:6;1295:9;1291:22;1265:54;;;1258:4;1251:5;1247:16;1240:80;1106:225;695:646;;;;;1374:464;;1482:4;1470:9;1465:3;1461:19;1457:30;1454:2;;;1500:1;1497;1490:12;1454:2;1518:20;1533:4;1518:20;;;1509:29;-1:-1;1589:1;1621:49;1666:3;1646:9;1621:49;;;1596:75;;-1:-1;1734:2;1767:49;1812:3;1788:22;;;1767:49;;;1760:4;1753:5;1749:16;1742:75;1692:136;1448:390;;;;;1845:180;1937:20;;1962:58;1937:20;1962:58;;2169:556;;;2342:2;2330:9;2321:7;2317:23;2313:32;2310:2;;;2358:1;2355;2348:12;2310:2;2393:1;2410:78;2480:7;2460:9;2410:78;;;2400:88;;2372:122;2553:2;2542:9;2538:18;2525:32;2577:18;2569:6;2566:30;2563:2;;;2609:1;2606;2599:12;2563:2;2629:80;2701:7;2692:6;2681:9;2677:22;2629:80;;;2619:90;;2504:211;2304:421;;;;;;2732:142;2823:45;2862:5;2823:45;;;2818:3;2811:58;2805:69;;;2881:103;2954:24;2972:5;2954:24;;3111:148;3210:43;3229:23;3246:5;3229:23;;;3210:43;;3266:148;3365:43;3384:23;3401:5;3384:23;;3421:152;3522:45;3542:24;3560:5;3542:24;;3580:356;;3708:38;3740:5;3708:38;;;3758:88;3839:6;3834:3;3758:88;;;3751:95;;3851:52;3896:6;3891:3;3884:4;3877:5;3873:16;3851:52;;;3915:16;;;;;3688:248;-1:-1;;3688:248;3943:335;;4049:34;4077:5;4049:34;;;4095:70;4158:6;4153:3;4095:70;;;4088:77;;4170:52;4215:6;4210:3;4203:4;4196:5;4192:16;4170:52;;;4243:29;4265:6;4243:29;;;4234:39;;;;4029:249;-1:-1;;;4029:249;4688:471;4890:23;;4823:4;4814:14;;;4919:63;4818:3;4890:23;4919:63;;;4843:145;5063:4;5056:5;5052:16;5046:23;5075:63;5132:4;5127:3;5123:14;5109:12;5166:103;5239:24;5257:5;5239:24;;5396:244;;5515:75;5586:3;5577:6;5515:75;;;-1:-1;5612:2;5603:12;;5503:137;-1:-1;5503:137;5647:978;;5961:93;6050:3;6041:6;5961:93;;;5954:100;;6065:73;6134:3;6125:6;6065:73;;;6160:1;6155:3;6151:11;6144:18;;6180:93;6269:3;6260:6;6180:93;;;6173:100;;6284:73;6353:3;6344:6;6284:73;;;6379:1;6374:3;6370:11;6363:18;;6399:93;6488:3;6479:6;6399:93;;;6392:100;;6503:73;6572:3;6563:6;6503:73;;;-1:-1;6598:1;6589:11;;5942:683;-1:-1;;;;;;5942:683;6632:612;6870:3;6855:19;;6885:79;6859:9;6937:6;6885:79;;;6975:114;7085:2;7074:9;7070:18;7061:6;6975:114;;;7137:9;7131:4;7127:20;7122:2;7111:9;7107:18;7100:48;7162:72;7229:4;7220:6;7162:72;;;7154:80;6841:403;-1:-1;;;;;6841:403;7251:301;7389:2;7403:47;;;7374:18;;7464:78;7374:18;7528:6;7464:78;;7559:324;7705:2;7690:18;;7719:71;7694:9;7763:6;7719:71;;;7801:72;7869:2;7858:9;7854:18;7845:6;7801:72;;7890:256;7952:2;7946:9;7978:17;;;8053:18;8038:34;;8074:22;;;8035:62;8032:2;;;8110:1;8107;8100:12;8032:2;8126;8119:22;7930:216;;-1:-1;7930:216;8153:317;;8292:18;8284:6;8281:30;8278:2;;;8324:1;8321;8314:12;8278:2;-1:-1;8455:4;8391;8368:17;;;;8387:9;8364:33;8445:15;;8215:255;8477:117;8560:12;;8531:63;8859:162;8961:19;;;9010:4;9001:14;;8954:67;9354:91;;9416:24;9434:5;9416:24;;9452:144;9524:66;9513:78;;9496:100;9603:144;9675:66;9664:78;;9647:100;9754:72;9816:5;9799:27;9937:121;10010:42;9999:54;;9982:76;10144:129;;10231:37;10262:5;10280:121;10359:37;10390:5;10359:37;;10524:145;10605:6;10600:3;10595;10582:30;-1:-1;10661:1;10643:16;;10636:27;10575:94;10678:268;10743:1;10750:101;10764:6;10761:1;10758:13;10750:101;;;10831:11;;;10825:18;10812:11;;;10805:39;10786:2;10779:10;10750:101;;;10866:6;10863:1;10860:13;10857:2;;;-1:-1;;10931:1;10913:16;;10906:27;10727:219;11195:97;11283:2;11263:14;11279:7;11259:28;;11243:49;11300:117;11369:24;11387:5;11369:24;;;11362:5;11359:35;11349:2;;11408:1;11405;11398:12;11349:2;11343:74;;11424:167;11518:49;11561:5;11518:49;", "source": "/*\n\n Copyright 2021 Dolomite\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.7;\npragma experimental ABIEncoderV2;\n\nimport { ICallee } from \"../interfaces/ICallee.sol\";\nimport { Actions } from \"../lib/Actions.sol\";\nimport { Cache } from \"../lib/Cache.sol\";\nimport { Events } from \"../lib/Events.sol\";\nimport { Storage } from \"../lib/Storage.sol\";\n\n\nlibrary CallImpl {\n using Cache for Cache.MarketCache;\n using Storage for Storage.State;\n\n // ============ Constants ============\n\n bytes32 private constant FILE = \"CallImpl\";\n\n // ============ Account Actions ============\n\n function call(\n Storage.State storage state,\n Actions.CallArgs memory args\n )\n public\n {\n state.requireIsOperator(args.account, msg.sender);\n\n ICallee(args.callee).callFunction(\n msg.sender,\n args.account,\n args.data\n );\n\n Events.logCall(args);\n }\n}\n", "sourcePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/impl/CallImpl.sol", "ast": { "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/impl/CallImpl.sol", "exportedSymbols": { "CallImpl": [ 19606 ] }, "id": 19607, "nodeType": "SourceUnit", "nodes": [ { "id": 19549, "literals": [ "solidity", "^", "0.5", ".7" ], "nodeType": "PragmaDirective", "src": "594:23:69" }, { "id": 19550, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "618:33:69" }, { "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/ICallee.sol", "file": "../interfaces/ICallee.sol", "id": 19552, "nodeType": "ImportDirective", "scope": 19607, "sourceUnit": 24074, "src": "653:52:69", "symbolAliases": [ { "foreign": 19551, "local": null } ], "unitAlias": "" }, { "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol", "file": "../lib/Actions.sol", "id": 19554, "nodeType": "ImportDirective", "scope": 19607, "sourceUnit": 25370, "src": "706:45:69", "symbolAliases": [ { "foreign": 19553, "local": null } ], "unitAlias": "" }, { "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol", "file": "../lib/Cache.sol", "id": 19556, "nodeType": "ImportDirective", "scope": 19607, "sourceUnit": 25933, "src": "752:41:69", "symbolAliases": [ { "foreign": 19555, "local": null } ], "unitAlias": "" }, { "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Events.sol", "file": "../lib/Events.sol", "id": 19558, "nodeType": "ImportDirective", "scope": 19607, "sourceUnit": 27154, "src": "794:43:69", "symbolAliases": [ { "foreign": 19557, "local": null } ], "unitAlias": "" }, { "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol", "file": "../lib/Storage.sol", "id": 19560, "nodeType": "ImportDirective", "scope": 19607, "sourceUnit": 30712, "src": "838:45:69", "symbolAliases": [ { "foreign": 19559, "local": null } ], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": null, "fullyImplemented": true, "id": 19606, "linearizedBaseContracts": [ 19606 ], "name": "CallImpl", "nodeType": "ContractDefinition", "nodes": [ { "id": 19563, "libraryName": { "contractScope": null, "id": 19561, "name": "Cache", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 25932, "src": "915:5:69", "typeDescriptions": { "typeIdentifier": "t_contract$_Cache_$25932", "typeString": "library Cache" } }, "nodeType": "UsingForDirective", "src": "909:34:69", "typeName": { "contractScope": null, "id": 19562, "name": "Cache.MarketCache", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 25696, "src": "925:17:69", "typeDescriptions": { "typeIdentifier": "t_struct$_MarketCache_$25696_storage_ptr", "typeString": "struct Cache.MarketCache" } } }, { "id": 19566, "libraryName": { "contractScope": null, "id": 19564, "name": "Storage", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 30711, "src": "954:7:69", "typeDescriptions": { "typeIdentifier": "t_contract$_Storage_$30711", "typeString": "library Storage" } }, "nodeType": "UsingForDirective", "src": "948:32:69", "typeName": { "contractScope": null, "id": 19565, "name": "Storage.State", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 28760, "src": "966:13:69", "typeDescriptions": { "typeIdentifier": "t_struct$_State_$28760_storage_ptr", "typeString": "struct Storage.State" } } }, { "constant": true, "id": 19569, "name": "FILE", "nodeType": "VariableDeclaration", "scope": 19606, "src": "1030:42:69", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 19567, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1030:7:69", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": { "argumentTypes": null, "hexValue": "43616c6c496d706c", "id": 19568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1062:10:69", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d996c506272279d3784edbc7c88e4b29e99c93c730e9a1cbd1fd53932d2ddbf4", "typeString": "literal_string \"CallImpl\"" }, "value": "CallImpl" }, "visibility": "private" }, { "body": { "id": 19604, "nodeType": "Block", "src": "1239:224:69", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 19579, "name": "args", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19573, "src": "1273:4:69", "typeDescriptions": { "typeIdentifier": "t_struct$_CallArgs_$25029_memory_ptr", "typeString": "struct Actions.CallArgs memory" } }, "id": 19580, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "account", "nodeType": "MemberAccess", "referencedDeclaration": 25024, "src": "1273:12:69", "typeDescriptions": { "typeIdentifier": "t_struct$_Info_$24851_memory", "typeString": "struct Account.Info memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 19581, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38107, "src": "1287:3:69", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 19582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1287:10:69", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_Info_$24851_memory", "typeString": "struct Account.Info memory" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "expression": { "argumentTypes": null, "id": 19576, "name": "state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19571, "src": "1249:5:69", "typeDescriptions": { "typeIdentifier": "t_struct$_State_$28760_storage_ptr", "typeString": "struct Storage.State storage pointer" } }, "id": 19578, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "requireIsOperator", "nodeType": "MemberAccess", "referencedDeclaration": 29699, "src": "1249:23:69", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_struct$_State_$28760_storage_ptr_$_t_struct$_Info_$24851_memory_ptr_$_t_address_$returns$__$bound_to$_t_struct$_State_$28760_storage_ptr_$", "typeString": "function (struct Storage.State storage pointer,struct Account.Info memory,address) view" } }, "id": 19583, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1249:49:69", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 19584, "nodeType": "ExpressionStatement", "src": "1249:49:69" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 19590, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38107, "src": "1356:3:69", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 19591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1356:10:69", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 19592, "name": "args", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19573, "src": "1380:4:69", "typeDescriptions": { "typeIdentifier": "t_struct$_CallArgs_$25029_memory_ptr", "typeString": "struct Actions.CallArgs memory" } }, "id": 19593, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "account", "nodeType": "MemberAccess", "referencedDeclaration": 25024, "src": "1380:12:69", "typeDescriptions": { "typeIdentifier": "t_struct$_Info_$24851_memory", "typeString": "struct Account.Info memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 19594, "name": "args", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19573, "src": "1406:4:69", "typeDescriptions": { "typeIdentifier": "t_struct$_CallArgs_$25029_memory_ptr", "typeString": "struct Actions.CallArgs memory" } }, "id": 19595, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": 25028, "src": "1406:9:69", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_struct$_Info_$24851_memory", "typeString": "struct Account.Info memory" }, { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 19586, "name": "args", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19573, "src": "1317:4:69", "typeDescriptions": { "typeIdentifier": "t_struct$_CallArgs_$25029_memory_ptr", "typeString": "struct Actions.CallArgs memory" } }, "id": 19587, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "callee", "nodeType": "MemberAccess", "referencedDeclaration": 25026, "src": "1317:11:69", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 19585, "name": "ICallee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 24073, "src": "1309:7:69", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ICallee_$24073_$", "typeString": "type(contract ICallee)" } }, "id": 19588, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1309:20:69", "typeDescriptions": { "typeIdentifier": "t_contract$_ICallee_$24073", "typeString": "contract ICallee" } }, "id": 19589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "callFunction", "nodeType": "MemberAccess", "referencedDeclaration": 24072, "src": "1309:33:69", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_struct$_Info_$24851_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,struct Account.Info memory,bytes memory) external" } }, "id": 19596, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1309:116:69", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 19597, "nodeType": "ExpressionStatement", "src": "1309:116:69" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null,