UNPKG

@dolomite-exchange/dolomite-margin

Version:

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

578 lines 69.7 kB
{ "contractName": "TestPolynomialInterestSetter", "abi": [ { "inputs": [ { "components": [ { "internalType": "uint128", "name": "maxAPR", "type": "uint128" }, { "internalType": "uint128", "name": "coefficients", "type": "uint128" } ], "internalType": "struct PolynomialInterestSetter.PolyStorage", "name": "parameters", "type": "tuple" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "constant": true, "inputs": [], "name": "getCoefficients", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "borrowWei", "type": "uint256" }, { "internalType": "uint256", "name": "supplyWei", "type": "uint256" } ], "name": "getInterestRate", "outputs": [ { "components": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Interest.Rate", "name": "", "type": "tuple" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getMaxAPR", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "components": [ { "internalType": "uint128", "name": "maxAPR", "type": "uint128" }, { "internalType": "uint128", "name": "coefficients", "type": "uint128" } ], "internalType": "struct PolynomialInterestSetter.PolyStorage", "name": "parameters", "type": "tuple" } ], "name": "setParameters", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "components": [ { "internalType": "uint128", "name": "maxAPR", "type": "uint128" }, { "internalType": "uint128", "name": "coefficients", "type": "uint128" } ], "internalType": "struct PolynomialInterestSetter.PolyStorage", "name": "parameters", "type": "tuple" } ], "name": "createNew", "outputs": [ { "internalType": "contract PolynomialInterestSetter", "name": "", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxAPR\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"coefficients\",\"type\":\"uint128\"}],\"internalType\":\"struct PolynomialInterestSetter.PolyStorage\",\"name\":\"parameters\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxAPR\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"coefficients\",\"type\":\"uint128\"}],\"internalType\":\"struct PolynomialInterestSetter.PolyStorage\",\"name\":\"parameters\",\"type\":\"tuple\"}],\"name\":\"createNew\",\"outputs\":[{\"internalType\":\"contract PolynomialInterestSetter\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCoefficients\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"borrowWei\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supplyWei\",\"type\":\"uint256\"}],\"name\":\"getInterestRate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Interest.Rate\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMaxAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"maxAPR\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"coefficients\",\"type\":\"uint128\"}],\"internalType\":\"struct PolynomialInterestSetter.PolyStorage\",\"name\":\"parameters\",\"type\":\"tuple\"}],\"name\":\"setParameters\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"dYdX * PolynomialInterestSetter for testing\",\"methods\":{\"getCoefficients()\":{\"return\":\"The coefficients\"},\"getInterestRate(address,uint256,uint256)\":{\"return\":\"The interest rate per second (times 10 ** 18)\"},\"getMaxAPR()\":{\"return\":\"The maximum APR\"}},\"title\":\"TestPolynomialInterestSetter\"},\"userdoc\":{\"methods\":{\"getCoefficients()\":{\"notice\":\"Get all of the coefficients of the interest calculation, starting from the coefficient for the first-order utilization variable.\"},\"getInterestRate(address,uint256,uint256)\":{\"notice\":\"Get the interest rate given some borrowed and supplied amounts. The interest function is a polynomial function of the utilization (borrowWei / supplyWei) of the market. * - If borrowWei > supplyWei then the utilization is considered to be equal to 1. - If both are zero, then the utilization is considered to be equal to 0.\"},\"getMaxAPR()\":{\"notice\":\"Get the maximum APR that this interestSetter will return. The actual APY may be higher depending on how often the interest is compounded.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestPolynomialInterestSetter.sol\":\"TestPolynomialInterestSetter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/PolynomialInterestSetter.sol\":{\"keccak256\":\"0x81ee50294a5bd1d25f34622456c7bc8a67e645a210f6fed20f56383333a34132\",\"urls\":[\"bzz-raw://5c2133a0e76c7d695ff8f8a6ac4831dcc3d57a2e36a0d128055ecb91a804b2bc\",\"dweb:/ipfs/QmYxr9YbrVN3pXeHeQMW5j1qwPsiLvnjyStVUcD9CWi3GX\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestPolynomialInterestSetter.sol\":{\"keccak256\":\"0x7463682e1bfb3e3f7c3c0d8f526811ec6a08643adf14f0f5171723dadc636911\",\"urls\":[\"bzz-raw://a203988e8f808f1cdb688cb1d1a54b5f12b067cf1842e103ba4a0302e034361d\",\"dweb:/ipfs/QmYZeqh9eqmCtoXe7yhEjjQjvPiXRX1eZzA14wVw9nPHsB\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b506040516110cc3803806110cc83398101604081905261002f9161011a565b602081015181906000906001600160801b03165b801561005b576101008106919091019060081c610043565b50606481146100855760405162461bcd60e51b815260040161007c90610179565b60405180910390fd5b508051600080546020909301516001600160801b03908116600160801b029281166001600160801b031990941693909317909216179055506101db565b6000604082840312156100d457600080fd5b6100de6040610189565b905060006100ec8484610109565b82525060206100fd84848301610109565b60208301525092915050565b8051610114816101c4565b92915050565b60006040828403121561012c57600080fd5b600061013884846100c2565b949350505050565b600061014d601c836101af565b7f436f656666696369656e7473206d7573742073756d20746f2031303000000000815260200192915050565b6020808252810161011481610140565b6040518181016001600160401b03811182821017156101a757600080fd5b604052919050565b90815260200190565b6001600160801b031690565b6101cd816101b8565b81146101d857600080fd5b50565b610ee2806101ea6000396000f3fe60806040523480156200001157600080fd5b5060043610620000705760003560e01c8063afd4c8d61162000057578063afd4c8d614620000bd578063b3adafcf14620000d6578063e8177dcf14620000ef5762000070565b80631e68607a1462000075578063a524d8fb1462000097575b600080fd5b6200007f62000115565b6040516200008e9190620006cf565b60405180910390f35b620000ae620000a83660046200050d565b6200012d565b6040516200008e91906200068d565b620000c76200016e565b6040516200008e91906200067a565b620000ed620000e73660046200050d565b620001fe565b005b6200010662000100366004620004b9565b62000264565b6040516200008e9190620006bf565b6000546fffffffffffffffffffffffffffffffff1690565b6000816040516200013e906200040c565b6200014a9190620006af565b604051809103906000f08015801562000167573d6000803e3d6000fd5b5092915050565b604080516010808252610220820190925260609182919060208201610200803883395050600080549293509170010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690505b8015620001f6576101008106838381518110620001dc57fe5b602090810291909101015260019091019060081c620001c3565b508152905090565b8051600080546020909301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029281167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941693909317909216179055565b6200026e6200041a565b826200028a575060408051602081019091526000815262000399565b620002946200042d565b50604080518082019091526000546fffffffffffffffffffffffffffffffff808216808452700100000000000000000000000000000000909204166020830152838510620003035760405180602001604052806301e133808381620002f557fe5b048152509250505062000399565b6020820151600090670de0b6b3a7640000906fffffffffffffffffffffffffffffffff165b60ff811680156200034a5782810284019350818114156200034a575062000372565b876200035d848b63ffffffff620003a016565b816200036557fe5b0492505060081c62000328565b6040805160208101909152806b0a3098c68eb9427db8000000858702049052955050505050505b9392505050565b600082620003b15750600062000406565b82820282848281620003bf57fe5b041462000403576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003fa906200069d565b60405180910390fd5b90505b92915050565b61070a806200079683390190565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b8035620004068162000765565b6000604082840312156200046457600080fd5b620004706040620006df565b905060006200048084846200049f565b825250602062000493848483016200049f565b60208301525092915050565b803562000406816200077f565b803562000406816200078a565b600080600060608486031215620004cf57600080fd5b6000620004dd868662000444565b9350506020620004f086828701620004ac565b92505060406200050386828701620004ac565b9150509250925092565b6000604082840312156200052057600080fd5b60006200052e848462000451565b949350505050565b60006200054483836200066f565b505060200190565b600062000559826200070d565b62000565818562000711565b9350620005728362000707565b8060005b83811015620005a65781516200058d888262000536565b97506200059a8362000707565b92505060010162000576565b509495945050505050565b620005bc8162000758565b82525050565b6000620005d160218362000711565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051604083019062000636848262000664565b5060208201516200064b602085018262000664565b50505050565b805160208301906200064b84826200066f565b620005bc8162000727565b620005bc8162000755565b602080825281016200039981846200054c565b60208101620004068284620005b1565b602080825281016200040681620005c2565b6040810162000406828462000623565b6020810162000406828462000651565b602081016200040682846200066f565b60405181810167ffffffffffffffff81118282101715620006ff57600080fd5b604052919050565b60200190565b5190565b90815260200190565b600062000406826200073c565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b600062000406826200071a565b62000770816200071a565b81146200077c57600080fd5b50565b620007708162000727565b62000770816200075556fe608060405234801561001057600080fd5b5060405161070a38038061070a83398101604081905261002f91610117565b60208101516000906001600160801b03165b8015610059576101008106919091019060081c610041565b50606481146100835760405162461bcd60e51b815260040161007a90610176565b60405180910390fd5b508051600080546020909301516001600160801b03908116600160801b029281166001600160801b0319909416939093179092161790556101d8565b6000604082840312156100d157600080fd5b6100db6040610186565b905060006100e98484610106565b82525060206100fa84848301610106565b60208301525092915050565b8051610111816101c1565b92915050565b60006040828403121561012957600080fd5b600061013584846100bf565b949350505050565b600061014a601c836101ac565b7f436f656666696369656e7473206d7573742073756d20746f2031303000000000815260200192915050565b602080825281016101118161013d565b6040518181016001600160401b03811182821017156101a457600080fd5b604052919050565b90815260200190565b6001600160801b031690565b6101ca816101b5565b81146101d557600080fd5b50565b610523806101e76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631e68607a14610046578063afd4c8d614610064578063e8177dcf14610079575b600080fd5b61004e610099565b60405161005b919061047e565b60405180910390f35b61006c6100b1565b60405161005b919061044f565b61008c610087366004610310565b61013e565b60405161005b9190610470565b6000546fffffffffffffffffffffffffffffffff1690565b604080516010808252610220820190925260609182919060208201610200803883395050600080549293509170010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690505b801561013657610100810683838151811061011d57fe5b602090810291909101015260019091019060081c610106565b508152905090565b6101466102d0565b826101605750604080516020810190915260008152610263565b6101686102e3565b50604080518082019091526000546fffffffffffffffffffffffffffffffff8082168084527001000000000000000000000000000000009092041660208301528385106101d45760405180602001604052806301e1338083816101c757fe5b0481525092505050610263565b6020820151600090670de0b6b3a7640000906fffffffffffffffffffffffffffffffff165b60ff81168015610218578281028401935081811415610218575061023c565b87610229848b63ffffffff61026a16565b8161023057fe5b0492505060081c6101f9565b6040805160208101909152806b0a3098c68eb9427db8000000858702049052955050505050505b9392505050565b600082610279575060006102ca565b8282028284828161028657fe5b04146102c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102be90610460565b60405180910390fd5b90505b92915050565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b80356102ca816104c0565b80356102ca816104d7565b60008060006060848603121561032557600080fd5b600061033186866102fa565b935050602061034286828701610305565b925050604061035386828701610305565b9150509250925092565b60006103698383610440565b505060200190565b600061037c82610492565b6103868185610496565b93506103918361048c565b8060005b838110156103bf5781516103a9888261035d565b97506103b48361048c565b925050600101610395565b509495945050505050565b60006103d7602183610496565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051602083019061043a8482610440565b50505050565b610449816104bd565b82525050565b602080825281016102638184610371565b602080825281016102ca816103ca565b602081016102ca8284610429565b602081016102ca8284610440565b60200190565b5190565b90815260200190565b600073ffffffffffffffffffffffffffffffffffffffff82166102ca565b90565b6104c98161049f565b81146104d457600080fd5b50565b6104c9816104bd56fea365627a7a72315820135fbb61036c3303ad0389bb379cb458cabc89c9e3e130b81b8f7d81dee38c456c6578706572696d656e74616cf564736f6c63430005100040a365627a7a72315820e5386c7239da80e55859568ac8949802cb8fc741d71a77ce8d56df62bf259ba66c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620000705760003560e01c8063afd4c8d61162000057578063afd4c8d614620000bd578063b3adafcf14620000d6578063e8177dcf14620000ef5762000070565b80631e68607a1462000075578063a524d8fb1462000097575b600080fd5b6200007f62000115565b6040516200008e9190620006cf565b60405180910390f35b620000ae620000a83660046200050d565b6200012d565b6040516200008e91906200068d565b620000c76200016e565b6040516200008e91906200067a565b620000ed620000e73660046200050d565b620001fe565b005b6200010662000100366004620004b9565b62000264565b6040516200008e9190620006bf565b6000546fffffffffffffffffffffffffffffffff1690565b6000816040516200013e906200040c565b6200014a9190620006af565b604051809103906000f08015801562000167573d6000803e3d6000fd5b5092915050565b604080516010808252610220820190925260609182919060208201610200803883395050600080549293509170010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690505b8015620001f6576101008106838381518110620001dc57fe5b602090810291909101015260019091019060081c620001c3565b508152905090565b8051600080546020909301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029281167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941693909317909216179055565b6200026e6200041a565b826200028a575060408051602081019091526000815262000399565b620002946200042d565b50604080518082019091526000546fffffffffffffffffffffffffffffffff808216808452700100000000000000000000000000000000909204166020830152838510620003035760405180602001604052806301e133808381620002f557fe5b048152509250505062000399565b6020820151600090670de0b6b3a7640000906fffffffffffffffffffffffffffffffff165b60ff811680156200034a5782810284019350818114156200034a575062000372565b876200035d848b63ffffffff620003a016565b816200036557fe5b0492505060081c62000328565b6040805160208101909152806b0a3098c68eb9427db8000000858702049052955050505050505b9392505050565b600082620003b15750600062000406565b82820282848281620003bf57fe5b041462000403576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003fa906200069d565b60405180910390fd5b90505b92915050565b61070a806200079683390190565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b8035620004068162000765565b6000604082840312156200046457600080fd5b620004706040620006df565b905060006200048084846200049f565b825250602062000493848483016200049f565b60208301525092915050565b803562000406816200077f565b803562000406816200078a565b600080600060608486031215620004cf57600080fd5b6000620004dd868662000444565b9350506020620004f086828701620004ac565b92505060406200050386828701620004ac565b9150509250925092565b6000604082840312156200052057600080fd5b60006200052e848462000451565b949350505050565b60006200054483836200066f565b505060200190565b600062000559826200070d565b62000565818562000711565b9350620005728362000707565b8060005b83811015620005a65781516200058d888262000536565b97506200059a8362000707565b92505060010162000576565b509495945050505050565b620005bc8162000758565b82525050565b6000620005d160218362000711565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051604083019062000636848262000664565b5060208201516200064b602085018262000664565b50505050565b805160208301906200064b84826200066f565b620005bc8162000727565b620005bc8162000755565b602080825281016200039981846200054c565b60208101620004068284620005b1565b602080825281016200040681620005c2565b6040810162000406828462000623565b6020810162000406828462000651565b602081016200040682846200066f565b60405181810167ffffffffffffffff81118282101715620006ff57600080fd5b604052919050565b60200190565b5190565b90815260200190565b600062000406826200073c565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b600062000406826200071a565b62000770816200071a565b81146200077c57600080fd5b50565b620007708162000727565b62000770816200075556fe608060405234801561001057600080fd5b5060405161070a38038061070a83398101604081905261002f91610117565b60208101516000906001600160801b03165b8015610059576101008106919091019060081c610041565b50606481146100835760405162461bcd60e51b815260040161007a90610176565b60405180910390fd5b508051600080546020909301516001600160801b03908116600160801b029281166001600160801b0319909416939093179092161790556101d8565b6000604082840312156100d157600080fd5b6100db6040610186565b905060006100e98484610106565b82525060206100fa84848301610106565b60208301525092915050565b8051610111816101c1565b92915050565b60006040828403121561012957600080fd5b600061013584846100bf565b949350505050565b600061014a601c836101ac565b7f436f656666696369656e7473206d7573742073756d20746f2031303000000000815260200192915050565b602080825281016101118161013d565b6040518181016001600160401b03811182821017156101a457600080fd5b604052919050565b90815260200190565b6001600160801b031690565b6101ca816101b5565b81146101d557600080fd5b50565b610523806101e76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631e68607a14610046578063afd4c8d614610064578063e8177dcf14610079575b600080fd5b61004e610099565b60405161005b919061047e565b60405180910390f35b61006c6100b1565b60405161005b919061044f565b61008c610087366004610310565b61013e565b60405161005b9190610470565b6000546fffffffffffffffffffffffffffffffff1690565b604080516010808252610220820190925260609182919060208201610200803883395050600080549293509170010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690505b801561013657610100810683838151811061011d57fe5b602090810291909101015260019091019060081c610106565b508152905090565b6101466102d0565b826101605750604080516020810190915260008152610263565b6101686102e3565b50604080518082019091526000546fffffffffffffffffffffffffffffffff8082168084527001000000000000000000000000000000009092041660208301528385106101d45760405180602001604052806301e1338083816101c757fe5b0481525092505050610263565b6020820151600090670de0b6b3a7640000906fffffffffffffffffffffffffffffffff165b60ff81168015610218578281028401935081811415610218575061023c565b87610229848b63ffffffff61026a16565b8161023057fe5b0492505060081c6101f9565b6040805160208101909152806b0a3098c68eb9427db8000000858702049052955050505050505b9392505050565b600082610279575060006102ca565b8282028284828161028657fe5b04146102c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102be90610460565b60405180910390fd5b90505b92915050565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b80356102ca816104c0565b80356102ca816104d7565b60008060006060848603121561032557600080fd5b600061033186866102fa565b935050602061034286828701610305565b925050604061035386828701610305565b9150509250925092565b60006103698383610440565b505060200190565b600061037c82610492565b6103868185610496565b93506103918361048c565b8060005b838110156103bf5781516103a9888261035d565b97506103b48361048c565b925050600101610395565b509495945050505050565b60006103d7602183610496565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051602083019061043a8482610440565b50505050565b610449816104bd565b82525050565b602080825281016102638184610371565b602080825281016102ca816103ca565b602081016102ca8284610429565b602081016102ca8284610440565b60200190565b5190565b90815260200190565b600073ffffffffffffffffffffffffffffffffffffffff82166102ca565b90565b6104c98161049f565b81146104d457600080fd5b50565b6104c9816104bd56fea365627a7a72315820135fbb61036c3303ad0389bb379cb458cabc89c9e3e130b81b8f7d81dee38c456c6578706572696d656e74616cf564736f6c63430005100040a365627a7a72315820e5386c7239da80e55859568ac8949802cb8fc741d71a77ce8d56df62bf259ba66c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "871:534:135:-;;;947:128;8:9:-1;5:2;;;30:1;27;20:12;5:2;947:128:135;;;;;;;;;;;;;;;;;;;;;1929:19:11;;;;1052:10:135;;1849:25:11;;-1:-1:-1;;;;;1906:42:11;1888:201;1962:17;;1888:201;;2075:3;2060:12;:18;2039:39;;;;;1460:1;1993:21;1888:201;;;;1325:3;2119:17;:28;2098:103;;;;-1:-1:-1;;;2098:103:11;;;;;;;;;;;;;;;;;-1:-1:-1;2240:18:11;;:9;:18;;;;;;;-1:-1:-1;;;;;2240:18:11;;;-1:-1:-1;;;2240:18:11;;;;-1:-1:-1;;;;;;2240:18:11;;;;;;;;;;;;;-1:-1:-1;871:534:135;;55:514:-1;;184:4;172:9;167:3;163:19;159:30;156:2;;;202:1;199;192:12;156:2;220:20;235:4;220:20;;;211:29;-1:-1;292:1;324:60;380:3;360:9;324:60;;;299:86;;-1:-1;454:2;487:60;543:3;519:22;;;487:60;;;480:4;473:5;469:16;462:86;406:153;150:419;;;;;576:134;654:13;;672:33;654:13;672:33;;;639:71;;;;;717:321;;861:2;849:9;840:7;836:23;832:32;829:2;;;877:1;874;867:12;829:2;912:1;929:93;1014:7;994:9;929:93;;;919:103;823:215;-1:-1;;;;823:215;1046:328;;1206:67;1270:2;1265:3;1206:67;;;1306:30;1286:51;;1365:2;1356:12;;1192:182;-1:-1;;1192:182;1382:407;1573:2;1587:47;;;1558:18;;1648:131;1558:18;1648:131;;1796:256;1858:2;1852:9;1884:17;;;-1:-1;;;;;1944:34;;1980:22;;;1941:62;1938:2;;;2016:1;2013;2006:12;1938:2;2032;2025:22;1836:216;;-1:-1;1836:216;2060:163;2163:19;;;2212:4;2203:14;;2156:67;2231:113;-1:-1;;;;;2293:46;;2276:68;2351:117;2420:24;2438:5;2420:24;;;2413:5;2410:35;2400:2;;2459:1;2456;2449:12;2400:2;2394:74;;;871:534:135;;;;;;", "deployedSourceMap": "871:534:135:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;871:534:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4839:121:11;;;:::i;:::-;;;;;;;;;;;;;;;;1213:190:135;;;;;;;;;:::i;:::-;;;;;;;;5164:772:11;;;:::i;:::-;;;;;;;;1081:126:135;;;;;;;;;:::i;:::-;;2767:1860:11;;;;;;;;;:::i;:::-;;;;;;;;4839:121;4907:7;4937:16;;;4839:121;:::o;1213:190:135:-;1309:24;1385:10;1356:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1349:47:135;1213:190;-1:-1:-1;;1213:190:135:o;5164:772:11:-;5358:17;;;5372:2;5358:17;;;;;;;;;5238:16;;;;5358:17;;;;17:15:-1;;105:10;5358:17:11;88:34:-1;-1:-1;;5431:23:11;5509:22;;5332:43;;-1:-1:-1;5431:23:11;5509:22;;;;;;-1:-1:-1;5468:240:11;5545:17;;5468:240;;5663:3;5648:12;:18;5622:6;5629:15;5622:23;;;;;;;;;;;;;;;;;:44;5680:17;;;;;1460:1;5576:21;5468:240;;;-1:-1:-1;5865:31:11;;5872:6;-1:-1:-1;5164:772:11;:::o;1081:126:135:-;1178:22;;:9;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1081:126::o;2767:1860:11:-;2928:20;;:::i;:::-;2968:14;2964:107;;-1:-1:-1;3005:55:11;;;;;;;;;-1:-1:-1;3005:55:11;;2998:62;;2964:107;3081:20;;:::i;:::-;-1:-1:-1;3081:32:11;;;;;;;;;3104:9;3081:32;;;;;;;;;;;;;;;;;3163:22;;;3159:140;;3208:80;;;;;;;;1411:18;3247:6;:26;;;;;;3208:80;;;3201:87;;;;;;3159:140;3440:14;;;;3309;;1359:8;;3417:37;;3464:857;3555:18;;;3634:16;;3630:402;;3844:10;3830:11;:24;3820:34;;;;3958:12;3943:11;:27;3939:79;;;3994:5;;;3939:79;4225:9;4197:25;:10;4212:9;4197:25;:14;:25;:::i;:::-;:37;;;;;;;-1:-1:-1;;1460:1:11;4289:21;3464:857;;;4520:100;;;;;;;;;;4574:34;4555:15;;;:54;4520:100;;4513:107;-1:-1:-1;;;;;;2767:1860:11;;;;;;:::o;2159:459:150:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:150;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;;;;;;;;;;;;;;;;;;;2610:1;-1:-1:-1;2159:459:150;;;;;:::o;871:534:135:-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;871:534:135;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;192:481;;310:4;298:9;293:3;289:19;285:30;282:2;;;328:1;325;318:12;282:2;346:20;361:4;346:20;;;337:29;-1:-1;418:1;450:49;495:3;475:9;450:49;;;425:75;;-1:-1;569:2;602:49;647:3;623:22;;;602:49;;;595:4;588:5;584:16;577:75;521:142;276:397;;;;;680:130;747:20;;772:33;747:20;772:33;;817:130;884:20;;909:33;884:20;909:33;;954:491;;;;1092:2;1080:9;1071:7;1067:23;1063:32;1060:2;;;1108:1;1105;1098:12;1060:2;1143:1;1160:53;1205:7;1185:9;1160:53;;;1150:63;;1122:97;1250:2;1268:53;1313:7;1304:6;1293:9;1289:22;1268:53;;;1258:63;;1229:98;1358:2;1376:53;1421:7;1412:6;1401:9;1397:22;1376:53;;;1366:63;;1337:98;1054:391;;;;;;1452:299;;1585:2;1573:9;1564:7;1560:23;1556:32;1553:2;;;1601:1;1598;1591:12;1553:2;1636:1;1653:82;1727:7;1707:9;1653:82;;;1643:92;1547:204;-1:-1;;;;1547:204;1759:173;;1846:46;1888:3;1880:6;1846:46;;;-1:-1;;1921:4;1912:14;;1839:93;1971:690;;2116:54;2164:5;2116:54;;;2183:86;2262:6;2257:3;2183:86;;;2176:93;;2290:56;2340:5;2290:56;;;2366:7;2394:1;2379:260;2404:6;2401:1;2398:13;2379:260;;;2471:6;2465:13;2492:63;2551:3;2536:13;2492:63;;;2485:70;;2572:60;2625:6;2572:60;;;2562:70;-1:-1;;2426:1;2419:9;2379:260;;;-1:-1;2652:3;;2095:566;-1:-1;;;;;2095:566;2669:192;2785:70;2849:5;2785:70;;;2780:3;2773:83;2767:94;;;2869:370;;3029:67;3093:2;3088:3;3029:67;;;3129:34;3109:55;;3198:3;3193:2;3184:12;;3177:25;3230:2;3221:12;;3015:224;-1:-1;;3015:224;3344:494;3563:23;;3495:4;3486:14;;;3592:63;3490:3;3563:23;3592:63;;;3515:146;3742:4;3735:5;3731:16;3725:23;3754:63;3811:4;3806:3;3802:14;3788:12;3754:63;;;3671:152;3468:370;;;;3896:319;4102:23;;4035:4;4026:14;;;4131:63;4030:3;4102:23;4131:63;;4222:103;4295:24;4313:5;4295:24;;4332:103;4405:24;4423:5;4405:24;;4562:361;4730:2;4744:47;;;4715:18;;4805:108;4715:18;4899:6;4805:108;;4930:279;5081:2;5066:18;;5095:104;5070:9;5172:6;5095:104;;5216:407;5407:2;5421:47;;;5392:18;;5482:131;5392:18;5482:131;;5630:329;5806:2;5791:18;;5820:129;5795:9;5922:6;5820:129;;5966:305;6130:2;6115:18;;6144:117;6119:9;6234:6;6144:117;;6278:213;6396:2;6381:18;;6410:71;6385:9;6454:6;6410:71;;6498:256;6560:2;6554:9;6586:17;;;6661:18;6646:34;;6682:22;;;6643:62;6640:2;;;6718:1;6715;6708:12;6640:2;6734;6727:22;6538:216;;-1:-1;6538:216;6761:151;6885:4;6876:14;;6833:79;6919:137;7022:12;;6993:63;7179:178;7297:19;;;7346:4;7337:14;;7290:67;7537:91;;7599:24;7617:5;7599:24;;7635:113;7708:34;7697:46;;7680:68;7755:121;7828:42;7817:54;;7800:76;7883:72;7945:5;7928:27;7962:187;;8074:70;8138:5;8074:70;;8304:117;8373:24;8391:5;8373:24;;;8366:5;8363:35;8353:2;;8412:1;8409;8402:12;8353:2;8347:74;;8428:117;8497:24;8515:5;8497:24;;8552:117;8621:24;8639:5;8621:24;", "source": "/*\n\n Copyright 2019 dYdX Trading Inc.\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 { PolynomialInterestSetter } from \"../external/interestsetters/PolynomialInterestSetter.sol\";\n\n\n/**\n * @title TestPolynomialInterestSetter\n * @author dYdX\n *\n * PolynomialInterestSetter for testing\n */\ncontract TestPolynomialInterestSetter is\n PolynomialInterestSetter\n{\n constructor(\n PolyStorage memory parameters\n )\n public\n PolynomialInterestSetter(parameters)\n {\n }\n\n function setParameters(\n PolyStorage memory parameters\n )\n public\n {\n g_storage = parameters;\n }\n\n function createNew(\n PolyStorage memory parameters\n )\n public\n returns (PolynomialInterestSetter)\n {\n return new PolynomialInterestSetter(parameters);\n }\n}\n", "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestPolynomialInterestSetter.sol", "ast": { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestPolynomialInterestSetter.sol", "exportedSymbols": { "TestPolynomialInterestSetter": [ 36149 ] }, "id": 36150, "nodeType": "SourceUnit", "nodes": [ { "id": 36111, "literals": [ "solidity", "^", "0.5", ".7" ], "nodeType": "PragmaDirective", "src": "603:23:135" }, { "id": 36112, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "627:33:135" }, { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/PolynomialInterestSetter.sol", "file": "../external/interestsetters/PolynomialInterestSetter.sol", "id": 36114, "nodeType": "ImportDirective", "scope": 36150, "sourceUnit": 3896, "src": "662:100:135", "symbolAliases": [ { "foreign": 36113, "local": null } ], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 36115, "name": "PolynomialInterestSetter", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3895, "src": "916:24:135", "typeDescriptions": { "typeIdentifier": "t_contract$_PolynomialInterestSetter_$3895", "typeString": "contract PolynomialInterestSetter" } }, "id": 36116, "nodeType": "InheritanceSpecifier", "src": "916:24:135" } ], "contractDependencies": [ 3895, 24789 ], "contractKind": "contract", "documentation": "@title TestPolynomialInterestSetter\n@author dYdX\n * PolynomialInterestSetter for testing", "fullyImplemented": true, "id": 36149, "linearizedBaseContracts": [ 36149, 3895, 24789 ], "name": "TestPolynomialInterestSetter", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 36124, "nodeType": "Block", "src": "1068:7:135", "statements": [] }, "documentation": null, "id": 36125, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { "argumentTypes": null, "id": 36121, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 36118, "src": "1052:10:135", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_memory_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage memory" } } ], "id": 36122, "modifierName": { "argumentTypes": null, "id": 36120, "name": "PolynomialInterestSetter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3895, "src": "1027:24:135", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_PolynomialInterestSetter_$3895_$", "typeString": "type(contract PolynomialInterestSetter)" } }, "nodeType": "ModifierInvocation", "src": "1027:36:135" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 36119, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 36118, "name": "parameters", "nodeType": "VariableDeclaration", "scope": 36125, "src": "968:29:135", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_memory_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage" }, "typeName": { "contractScope": null, "id": 36117, "name": "PolyStorage", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3684, "src": "968:11:135", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_storage_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage" } }, "value": null, "visibility": "internal" } ], "src": "958:45:135" }, "returnParameters": { "id": 36123, "nodeType": "ParameterList", "parameters": [], "src": "1068:0:135" }, "scope": 36149, "src": "947:128:135", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 36134, "nodeType": "Block", "src": "1168:39:135", "statements": [ { "expression": { "argumentTypes": null, "id": 36132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 36130, "name": "g_storage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3686, "src": "1178:9:135", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_storage", "typeString": "struct PolynomialInterestSetter.PolyStorage storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 36131, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 36127, "src": "1190:10:135", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_memory_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage memory" } }, "src": "1178:22:135", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_storage", "typeString": "struct PolynomialInterestSetter.PolyStorage storage ref" } }, "id": 36133, "nodeType": "ExpressionStatement", "src": "1178:22:135" } ] }, "documentation": null, "id": 36135, "implemented": true, "kind": "function", "modifiers": [], "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { "id": 36128, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 36127, "name": "parameters", "nodeType": "VariableDeclaration", "scope": 36135, "src": "1113:29:135", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_memory_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage" }, "typeName": { "contractScope": null, "id": 36126, "name": "PolyStorage", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3684, "src": "1113:11:135", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_storage_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage" } }, "value": null, "visibility": "internal" } ], "src": "1103:45:135" }, "returnParameters": { "id": 36129, "nodeType": "ParameterList", "parameters": [], "src": "1168:0:135" }, "scope": 36149, "src": "1081:126:135", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 36147, "nodeType": "Block", "src": "1339:64:135", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 36144, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 36137, "src": "1385:10:135", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_memory_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_PolyStorage_$3684_memory_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage memory" } ], "id": 36143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "1356:28:135", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$_t_struct$_PolyStorage_$3684_memory_ptr_$returns$_t_contract$_PolynomialInterestSetter_$3895_$", "typeString": "function (struct PolynomialInterestSetter.PolyStorage memory) returns (contract PolynomialInterestSetter)" }, "typeName": { "contractScope": null, "id": 36142, "name": "PolynomialInterestSetter", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3895, "src": "1360:24:135", "typeDescriptions": { "typeIdentifier": "t_contract$_PolynomialInterestSetter_$3895", "typeString": "contract PolynomialInterestSetter" } } }, "id": 36145, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1356:40:135", "typeDescriptions": { "typeIdentifier": "t_contract$_PolynomialInterestSetter_$3895", "typeString": "contract PolynomialInterestSetter" } }, "functionReturnParameters": 36141, "id": 36146, "nodeType": "Return", "src": "1349:47:135" } ] }, "documentation": null, "id": 36148, "implemented": true, "kind": "function", "modifiers": [], "name": "createNew", "nodeType": "FunctionDefinition", "parameters": { "id": 36138, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 36137, "name": "parameters", "nodeType": "VariableDeclaration", "scope": 36148, "src": "1241:29:135", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_memory_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage" }, "typeName": { "contractScope": null, "id": 36136, "name": "PolyStorage", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3684, "src": "1241:11:135", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3684_storage_ptr", "typeString": "struct PolynomialInterestSetter.PolyStorage" } }, "value": null, "visibility": "internal" } ], "src": "1231:45:135" }, "returnParameters": { "id": 36141, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 36140, "name": "", "nodeType": "VariableDeclaration", "scope": 36148, "src": "1309: