UNPKG

@dolomite-exchange/dolomite-margin

Version:

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

561 lines (560 loc) 70.4 kB
{ "contractName": "TestDoubleExponentInterestSetter", "abi": [ { "inputs": [ { "components": [ { "internalType": "uint128", "name": "maxAPR", "type": "uint128" }, { "internalType": "uint128", "name": "coefficients", "type": "uint128" } ], "internalType": "struct DoubleExponentInterestSetter.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 DoubleExponentInterestSetter.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 DoubleExponentInterestSetter.PolyStorage", "name": "parameters", "type": "tuple" } ], "name": "createNew", "outputs": [ { "internalType": "contract DoubleExponentInterestSetter", "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 DoubleExponentInterestSetter.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 DoubleExponentInterestSetter.PolyStorage\",\"name\":\"parameters\",\"type\":\"tuple\"}],\"name\":\"createNew\",\"outputs\":[{\"internalType\":\"contract DoubleExponentInterestSetter\",\"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 DoubleExponentInterestSetter.PolyStorage\",\"name\":\"parameters\",\"type\":\"tuple\"}],\"name\":\"setParameters\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"dYdX * DoubleExponentInterestSetter 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\":\"TestDoubleExponentInterestSetter\"},\"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/TestDoubleExponentInterestSetter.sol\":\"TestDoubleExponentInterestSetter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/DoubleExponentInterestSetter.sol\":{\"keccak256\":\"0x4addd530b74b0d284c2497f40c1858812bda24297998091bc769cd2a57e73033\",\"urls\":[\"bzz-raw://c66134e987d91850eb438e9a5e59cf6877b6d00b8e78d38e69028c1d052c7dc6\",\"dweb:/ipfs/QmXwEeX8mPVmKzZfs4MX3KwHNvEazYfQks8YgPTG9YHozW\"]},\"/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/TestDoubleExponentInterestSetter.sol\":{\"keccak256\":\"0xb801be528eb6b40a52f63aca59845dfc349579e9a4e9699ab5d245573a29e5c3\",\"urls\":[\"bzz-raw://ae727e65bfb23a34007b7f48c5f5bd9d4e01892d7a2673433ce6113316ee4cac\",\"dweb:/ipfs/QmPbqUNKDKsZa1rR1qRfjDE6kKsfYBEHyKuL71oJDZ9DMy\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b5060405161110638038061110683398101604081905261002f9161011a565b602081015181906000906001600160801b03165b801561005b576101008106919091019060081c610043565b50606481146100855760405162461bcd60e51b815260040161007c90610179565b60405180910390fd5b508051600080546020909301516001600160801b03908116600160801b029281166001600160801b031990941693909317909216179055506101db565b6000604082840312156100d457600080fd5b6100de6040610189565b905060006100ec8484610109565b82525060206100fd84848301610109565b60208301525092915050565b8051610114816101c4565b92915050565b60006040828403121561012c57600080fd5b600061013884846100c2565b949350505050565b600061014d601c836101af565b7f436f656666696369656e7473206d7573742073756d20746f2031303000000000815260200192915050565b6020808252810161011481610140565b6040518181016001600160401b03811182821017156101a757600080fd5b604052919050565b90815260200190565b6001600160801b031690565b6101cd816101b8565b81146101d857600080fd5b50565b610f1c806101ea6000396000f3fe60806040523480156200001157600080fd5b5060043610620000705760003560e01c8063afd4c8d61162000057578063afd4c8d614620000bd578063b3adafcf14620000d6578063e8177dcf14620000ef5762000070565b80631e68607a1462000075578063a524d8fb1462000097575b600080fd5b6200007f62000115565b6040516200008e9190620006ec565b60405180910390f35b620000ae620000a83660046200052a565b6200012d565b6040516200008e9190620006aa565b620000c76200016e565b6040516200008e919062000697565b620000ed620000e73660046200052a565b620001fe565b005b6200010662000100366004620004d6565b62000264565b6040516200008e9190620006dc565b6000546fffffffffffffffffffffffffffffffff1690565b6000816040516200013e9062000429565b6200014a9190620006cc565b604051809103906000f08015801562000167573d6000803e3d6000fd5b5092915050565b604080516010808252610220820190925260609182919060208201610200803883395050600080549293509170010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690505b8015620001f6576101008106838381518110620001dc57fe5b602090810291909101015260019091019060081c620001c3565b508152905090565b8051600080546020909301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029281167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941693909317909216179055565b6200026e62000437565b826200028a5750604080516020810190915260008152620003b6565b620002946200044a565b50604080518082019091526000546fffffffffffffffffffffffffffffffff808216808452700100000000000000000000000000000000909204166020830152838510620003035760405180602001604052806301e133808381620002f557fe5b0481525092505050620003b6565b60208201516effffffffffffffffffffffffffffff600882901c169060ff16670de0b6b3a764000090810290600090879062000346908a63ffffffff620003bd16565b816200034e57fe5b0490505b60ff83168015620003745781810283019250838114156200037457506200038f565b5060089290921c91670de0b6b3a76400009080020462000352565b6040805160208101909152806b0a3098c68eb9427db8000000848702049052955050505050505b9392505050565b600082620003ce5750600062000423565b82820282848281620003dc57fe5b041462000420576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200041790620006ba565b60405180910390fd5b90505b92915050565b61072780620007b383390190565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b8035620004238162000782565b6000604082840312156200048157600080fd5b6200048d6040620006fc565b905060006200049d8484620004bc565b8252506020620004b084848301620004bc565b60208301525092915050565b803562000423816200079c565b80356200042381620007a7565b600080600060608486031215620004ec57600080fd5b6000620004fa868662000461565b93505060206200050d86828701620004c9565b92505060406200052086828701620004c9565b9150509250925092565b6000604082840312156200053d57600080fd5b60006200054b84846200046e565b949350505050565b60006200056183836200068c565b505060200190565b600062000576826200072a565b6200058281856200072e565b93506200058f8362000724565b8060005b83811015620005c3578151620005aa888262000553565b9750620005b78362000724565b92505060010162000593565b509495945050505050565b620005d98162000775565b82525050565b6000620005ee6021836200072e565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051604083019062000653848262000681565b50602082015162000668602085018262000681565b50505050565b805160208301906200066884826200068c565b620005d98162000744565b620005d98162000772565b60208082528101620003b6818462000569565b60208101620004238284620005ce565b602080825281016200042381620005df565b6040810162000423828462000640565b602081016200042382846200066e565b602081016200042382846200068c565b60405181810167ffffffffffffffff811182821017156200071c57600080fd5b604052919050565b60200190565b5190565b90815260200190565b6000620004238262000759565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b6000620004238262000737565b6200078d8162000737565b81146200079957600080fd5b50565b6200078d8162000744565b6200078d816200077256fe608060405234801561001057600080fd5b5060405161072738038061072783398101604081905261002f91610117565b60208101516000906001600160801b03165b8015610059576101008106919091019060081c610041565b50606481146100835760405162461bcd60e51b815260040161007a90610176565b60405180910390fd5b508051600080546020909301516001600160801b03908116600160801b029281166001600160801b0319909416939093179092161790556101d8565b6000604082840312156100d157600080fd5b6100db6040610186565b905060006100e98484610106565b82525060206100fa84848301610106565b60208301525092915050565b8051610111816101c1565b92915050565b60006040828403121561012957600080fd5b600061013584846100bf565b949350505050565b600061014a601c836101ac565b7f436f656666696369656e7473206d7573742073756d20746f2031303000000000815260200192915050565b602080825281016101118161013d565b6040518181016001600160401b03811182821017156101a457600080fd5b604052919050565b90815260200190565b6001600160801b031690565b6101ca816101b5565b81146101d557600080fd5b50565b610540806101e76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631e68607a14610046578063afd4c8d614610064578063e8177dcf14610079575b600080fd5b61004e610099565b60405161005b919061049b565b60405180910390f35b61006c6100b1565b60405161005b919061046c565b61008c61008736600461032d565b61013e565b60405161005b919061048d565b6000546fffffffffffffffffffffffffffffffff1690565b604080516010808252610220820190925260609182919060208201610200803883395050600080549293509170010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690505b801561013657610100810683838151811061011d57fe5b602090810291909101015260019091019060081c610106565b508152905090565b6101466102ed565b826101605750604080516020810190915260008152610280565b610168610300565b50604080518082019091526000546fffffffffffffffffffffffffffffffff8082168084527001000000000000000000000000000000009092041660208301528385106101d45760405180602001604052806301e1338083816101c757fe5b0481525092505050610280565b60208201516effffffffffffffffffffffffffffff600882901c169060ff16670de0b6b3a7640000908102906000908790610215908a63ffffffff61028716565b8161021c57fe5b0490505b60ff8316801561023f57818102830192508381141561023f5750610259565b5060089290921c91670de0b6b3a764000090800204610220565b6040805160208101909152806b0a3098c68eb9427db8000000848702049052955050505050505b9392505050565b600082610296575060006102e7565b828202828482816102a357fe5b04146102e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102db9061047d565b60405180910390fd5b90505b92915050565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b80356102e7816104dd565b80356102e7816104f4565b60008060006060848603121561034257600080fd5b600061034e8686610317565b935050602061035f86828701610322565b925050604061037086828701610322565b9150509250925092565b6000610386838361045d565b505060200190565b6000610399826104af565b6103a381856104b3565b93506103ae836104a9565b8060005b838110156103dc5781516103c6888261037a565b97506103d1836104a9565b9250506001016103b2565b509495945050505050565b60006103f46021836104b3565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b80516020830190610457848261045d565b50505050565b610466816104da565b82525050565b60208082528101610280818461038e565b602080825281016102e7816103e7565b602081016102e78284610446565b602081016102e7828461045d565b60200190565b5190565b90815260200190565b600073ffffffffffffffffffffffffffffffffffffffff82166102e7565b90565b6104e6816104bc565b81146104f157600080fd5b50565b6104e6816104da56fea365627a7a723158209e96ff507b912983dadfb6f0862171e8629e68b0f97e759b2c4c3d6817e61b046c6578706572696d656e74616cf564736f6c63430005100040a365627a7a72315820b82c7383acaf6e5eb0561172c468477ae2e2b4de81f7fc4ba7eec6b4d8c53b3d6c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620000705760003560e01c8063afd4c8d61162000057578063afd4c8d614620000bd578063b3adafcf14620000d6578063e8177dcf14620000ef5762000070565b80631e68607a1462000075578063a524d8fb1462000097575b600080fd5b6200007f62000115565b6040516200008e9190620006ec565b60405180910390f35b620000ae620000a83660046200052a565b6200012d565b6040516200008e9190620006aa565b620000c76200016e565b6040516200008e919062000697565b620000ed620000e73660046200052a565b620001fe565b005b6200010662000100366004620004d6565b62000264565b6040516200008e9190620006dc565b6000546fffffffffffffffffffffffffffffffff1690565b6000816040516200013e9062000429565b6200014a9190620006cc565b604051809103906000f08015801562000167573d6000803e3d6000fd5b5092915050565b604080516010808252610220820190925260609182919060208201610200803883395050600080549293509170010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690505b8015620001f6576101008106838381518110620001dc57fe5b602090810291909101015260019091019060081c620001c3565b508152905090565b8051600080546020909301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029281167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941693909317909216179055565b6200026e62000437565b826200028a5750604080516020810190915260008152620003b6565b620002946200044a565b50604080518082019091526000546fffffffffffffffffffffffffffffffff808216808452700100000000000000000000000000000000909204166020830152838510620003035760405180602001604052806301e133808381620002f557fe5b0481525092505050620003b6565b60208201516effffffffffffffffffffffffffffff600882901c169060ff16670de0b6b3a764000090810290600090879062000346908a63ffffffff620003bd16565b816200034e57fe5b0490505b60ff83168015620003745781810283019250838114156200037457506200038f565b5060089290921c91670de0b6b3a76400009080020462000352565b6040805160208101909152806b0a3098c68eb9427db8000000848702049052955050505050505b9392505050565b600082620003ce5750600062000423565b82820282848281620003dc57fe5b041462000420576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200041790620006ba565b60405180910390fd5b90505b92915050565b61072780620007b383390190565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b8035620004238162000782565b6000604082840312156200048157600080fd5b6200048d6040620006fc565b905060006200049d8484620004bc565b8252506020620004b084848301620004bc565b60208301525092915050565b803562000423816200079c565b80356200042381620007a7565b600080600060608486031215620004ec57600080fd5b6000620004fa868662000461565b93505060206200050d86828701620004c9565b92505060406200052086828701620004c9565b9150509250925092565b6000604082840312156200053d57600080fd5b60006200054b84846200046e565b949350505050565b60006200056183836200068c565b505060200190565b600062000576826200072a565b6200058281856200072e565b93506200058f8362000724565b8060005b83811015620005c3578151620005aa888262000553565b9750620005b78362000724565b92505060010162000593565b509495945050505050565b620005d98162000775565b82525050565b6000620005ee6021836200072e565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051604083019062000653848262000681565b50602082015162000668602085018262000681565b50505050565b805160208301906200066884826200068c565b620005d98162000744565b620005d98162000772565b60208082528101620003b6818462000569565b60208101620004238284620005ce565b602080825281016200042381620005df565b6040810162000423828462000640565b602081016200042382846200066e565b602081016200042382846200068c565b60405181810167ffffffffffffffff811182821017156200071c57600080fd5b604052919050565b60200190565b5190565b90815260200190565b6000620004238262000759565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b6000620004238262000737565b6200078d8162000737565b81146200079957600080fd5b50565b6200078d8162000744565b6200078d816200077256fe608060405234801561001057600080fd5b5060405161072738038061072783398101604081905261002f91610117565b60208101516000906001600160801b03165b8015610059576101008106919091019060081c610041565b50606481146100835760405162461bcd60e51b815260040161007a90610176565b60405180910390fd5b508051600080546020909301516001600160801b03908116600160801b029281166001600160801b0319909416939093179092161790556101d8565b6000604082840312156100d157600080fd5b6100db6040610186565b905060006100e98484610106565b82525060206100fa84848301610106565b60208301525092915050565b8051610111816101c1565b92915050565b60006040828403121561012957600080fd5b600061013584846100bf565b949350505050565b600061014a601c836101ac565b7f436f656666696369656e7473206d7573742073756d20746f2031303000000000815260200192915050565b602080825281016101118161013d565b6040518181016001600160401b03811182821017156101a457600080fd5b604052919050565b90815260200190565b6001600160801b031690565b6101ca816101b5565b81146101d557600080fd5b50565b610540806101e76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631e68607a14610046578063afd4c8d614610064578063e8177dcf14610079575b600080fd5b61004e610099565b60405161005b919061049b565b60405180910390f35b61006c6100b1565b60405161005b919061046c565b61008c61008736600461032d565b61013e565b60405161005b919061048d565b6000546fffffffffffffffffffffffffffffffff1690565b604080516010808252610220820190925260609182919060208201610200803883395050600080549293509170010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690505b801561013657610100810683838151811061011d57fe5b602090810291909101015260019091019060081c610106565b508152905090565b6101466102ed565b826101605750604080516020810190915260008152610280565b610168610300565b50604080518082019091526000546fffffffffffffffffffffffffffffffff8082168084527001000000000000000000000000000000009092041660208301528385106101d45760405180602001604052806301e1338083816101c757fe5b0481525092505050610280565b60208201516effffffffffffffffffffffffffffff600882901c169060ff16670de0b6b3a7640000908102906000908790610215908a63ffffffff61028716565b8161021c57fe5b0490505b60ff8316801561023f57818102830192508381141561023f5750610259565b5060089290921c91670de0b6b3a764000090800204610220565b6040805160208101909152806b0a3098c68eb9427db8000000848702049052955050505050505b9392505050565b600082610296575060006102e7565b828202828482816102a357fe5b04146102e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102db9061047d565b60405180910390fd5b90505b92915050565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b80356102e7816104dd565b80356102e7816104f4565b60008060006060848603121561034257600080fd5b600061034e8686610317565b935050602061035f86828701610322565b925050604061037086828701610322565b9150509250925092565b6000610386838361045d565b505060200190565b6000610399826104af565b6103a381856104b3565b93506103ae836104a9565b8060005b838110156103dc5781516103c6888261037a565b97506103d1836104a9565b9250506001016103b2565b509495945050505050565b60006103f46021836104b3565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b80516020830190610457848261045d565b50505050565b610466816104da565b82525050565b60208082528101610280818461038e565b602080825281016102e7816103e7565b602081016102e78284610446565b602081016102e7828461045d565b60200190565b5190565b90815260200190565b600073ffffffffffffffffffffffffffffffffffffffff82166102e7565b90565b6104e6816104bc565b81146104f157600080fd5b50565b6104e6816104da56fea365627a7a723158209e96ff507b912983dadfb6f0862171e8629e68b0f97e759b2c4c3d6817e61b046c6578706572696d656e74616cf564736f6c63430005100040a365627a7a72315820b82c7383acaf6e5eb0561172c468477ae2e2b4de81f7fc4ba7eec6b4d8c53b3d6c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "887:554:119:-;;;971:132;8:9:-1;5:2;;;30:1;27;20:12;5:2;971:132:119;;;;;;;;;;;;;;;;;;;;;2007:19:10;;;;1080:10:119;;1927:25:10;;-1:-1:-1;;;;;1984:42:10;1966:201;2040:17;;1966:201;;2153:3;2138:12;:18;2117:39;;;;;1538:1;2071:21;1966:201;;;;1403:3;2197:17;:28;2176:103;;;;-1:-1:-1;;;2176:103:10;;;;;;;;;;;;;;;;;-1:-1:-1;2318:18:10;;:9;:18;;;;;;;-1:-1:-1;;;;;2318:18:10;;;-1:-1:-1;;;2318:18:10;;;;-1:-1:-1;;;;;;2318:18:10;;;;;;;;;;;;;-1:-1:-1;887:554:119;;59:514:-1;;188:4;176:9;171:3;167:19;163:30;160:2;;;206:1;203;196:12;160:2;224:20;239:4;224:20;;;215:29;-1:-1;296:1;328:60;384:3;364:9;328:60;;;303:86;;-1:-1;458:2;491:60;547:3;523:22;;;491:60;;;484:4;477:5;473:16;466:86;410:153;154:419;;;;;580:134;658:13;;676:33;658:13;676:33;;;643:71;;;;;721:321;;865:2;853:9;844:7;840:23;836:32;833:2;;;881:1;878;871:12;833:2;916:1;933:93;1018:7;998:9;933:93;;;923:103;827:215;-1:-1;;;;827:215;1050:328;;1210:67;1274:2;1269:3;1210:67;;;1310:30;1290:51;;1369:2;1360:12;;1196:182;-1:-1;;1196:182;1386:407;1577:2;1591:47;;;1562:18;;1652:131;1562:18;1652:131;;1800:256;1862:2;1856:9;1888:17;;;-1:-1;;;;;1948:34;;1984:22;;;1945:62;1942:2;;;2020:1;2017;2010:12;1942:2;2036;2029:22;1840:216;;-1:-1;1840:216;2064:163;2167:19;;;2216:4;2207:14;;2160:67;2235:113;-1:-1;;;;;2297:46;;2280:68;2355:117;2424:24;2442:5;2424:24;;;2417:5;2414:35;2404:2;;2463:1;2460;2453:12;2404:2;2398:74;;;887:554:119;;;;;;", "deployedSourceMap": "887:554:119:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;887:554:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5202:121:10;;;:::i;:::-;;;;;;;;;;;;;;;;1241:198:119;;;;;;;;;:::i;:::-;;;;;;;;5527:772:10;;;:::i;:::-;;;;;;;;1109:126:119;;;;;;;;;:::i;:::-;;2845:2145:10;;;;;;;;;:::i;:::-;;;;;;;;5202:121;5270:7;5300:16;;;5202:121;:::o;1241:198:119:-;1337:28;1421:10;1388:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1381:51:119;1241:198;-1:-1:-1;;1241:198:119:o;5527:772:10:-;5721:17;;;5735:2;5721:17;;;;;;;;;5601:16;;;;5721:17;;;;17:15:-1;;105:10;5721:17:10;88:34:-1;-1:-1;;5794:23:10;5872:22;;5695:43;;-1:-1:-1;5794:23:10;5872:22;;;;;;-1:-1:-1;5831:240:10;5908:17;;5831:240;;6026:3;6011:12;:18;5985:6;5992:15;5985:23;;;;;;;;;;;;;;;;;:44;6043:17;;;;;1538:1;5939:21;5831:240;;;-1:-1:-1;6228:31:10;;6235:6;-1:-1:-1;5527:772:10;:::o;1109:126:119:-;1206:22;;:9;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1109:126::o;2845:2145:10:-;3006:20;;:::i;:::-;3046:14;3042:107;;-1:-1:-1;3083:55:10;;;;;;;;;-1:-1:-1;3083:55:10;;3076:62;;3042:107;3159:20;;:::i;:::-;-1:-1:-1;3159:32:10;;;;;;;;;3182:9;3159:32;;;;;;;;;;;;;;;;;3241:22;;;3237:140;;3286:80;;;;;;;;1489:18;3325:6;:26;;;;;;3286:80;;;3279:87;;;;;;3237:140;3451:14;;;;3528:21;1538:1;3528:21;;;;;3492:26;;1437:8;3492:26;;;;3428:20;;3724:9;;3702:19;;3711:9;3702:19;:8;:19;:::i;:::-;:31;;;;;;3681:52;;3788:896;3879:28;;;3968:16;;3964:402;;4178:10;4164:11;:24;4154:34;;;;4292:12;4277:11;:27;4273:79;;;4328:5;;;4273:79;-1:-1:-1;1538:1:10;4652:21;;;;;1437:8;4567:23;;;:30;3788:896;;;4883:100;;;;;;;;;;4937:34;4918:15;;;:54;4883:100;;4876:107;-1:-1:-1;;;;;;2845:2145:10;;;;;;:::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;887:554:119:-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;887:554:119;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;196:481;;314:4;302:9;297:3;293:19;289:30;286:2;;;332:1;329;322:12;286:2;350:20;365:4;350:20;;;341:29;-1:-1;422:1;454:49;499:3;479:9;454:49;;;429:75;;-1:-1;573:2;606:49;651:3;627:22;;;606:49;;;599:4;592:5;588:16;581:75;525:142;280:397;;;;;684:130;751:20;;776:33;751:20;776:33;;821:130;888:20;;913:33;888:20;913:33;;958:491;;;;1096:2;1084:9;1075:7;1071:23;1067:32;1064:2;;;1112:1;1109;1102:12;1064:2;1147:1;1164:53;1209:7;1189:9;1164:53;;;1154:63;;1126:97;1254:2;1272:53;1317:7;1308:6;1297:9;1293:22;1272:53;;;1262:63;;1233:98;1362:2;1380:53;1425:7;1416:6;1405:9;1401:22;1380:53;;;1370:63;;1341:98;1058:391;;;;;;1456:299;;1589:2;1577:9;1568:7;1564:23;1560:32;1557:2;;;1605:1;1602;1595:12;1557:2;1640:1;1657:82;1731:7;1711:9;1657:82;;;1647:92;1551:204;-1:-1;;;;1551:204;1763:173;;1850:46;1892:3;1884:6;1850:46;;;-1:-1;;1925:4;1916:14;;1843:93;1975:690;;2120:54;2168:5;2120:54;;;2187:86;2266:6;2261:3;2187:86;;;2180:93;;2294:56;2344:5;2294:56;;;2370:7;2398:1;2383:260;2408:6;2405:1;2402:13;2383:260;;;2475:6;2469:13;2496:63;2555:3;2540:13;2496:63;;;2489:70;;2576:60;2629:6;2576:60;;;2566:70;-1:-1;;2430:1;2423:9;2383:260;;;-1:-1;2656:3;;2099:566;-1:-1;;;;;2099:566;2673:200;2793:74;2861:5;2793:74;;;2788:3;2781:87;2775:98;;;2881:370;;3041:67;3105:2;3100:3;3041:67;;;3141:34;3121:55;;3210:3;3205:2;3196:12;;3189:25;3242:2;3233:12;;3027:224;-1:-1;;3027:224;3364:494;3583:23;;3515:4;3506:14;;;3612:63;3510:3;3583:23;3612:63;;;3535:146;3762:4;3755:5;3751:16;3745:23;3774:63;3831:4;3826:3;3822:14;3808:12;3774:63;;;3691:152;3488:370;;;;3916:319;4122:23;;4055:4;4046:14;;;4151:63;4050:3;4122:23;4151:63;;4242:103;4315:24;4333:5;4315:24;;4352:103;4425:24;4443:5;4425:24;;4582:361;4750:2;4764:47;;;4735:18;;4825:108;4735:18;4919:6;4825:108;;4950:287;5105:2;5090:18;;5119:108;5094:9;5200:6;5119:108;;5244:407;5435:2;5449:47;;;5420:18;;5510:131;5420:18;5510:131;;5658:329;5834:2;5819:18;;5848:129;5823:9;5950:6;5848:129;;5994:305;6158:2;6143:18;;6172:117;6147:9;6262:6;6172:117;;6306:213;6424:2;6409:18;;6438:71;6413:9;6482:6;6438:71;;6526:256;6588:2;6582:9;6614:17;;;6689:18;6674:34;;6710:22;;;6671:62;6668:2;;;6746:1;6743;6736:12;6668:2;6762;6755:22;6566:216;;-1:-1;6566:216;6789:151;6913:4;6904:14;;6861:79;6947:137;7050:12;;7021:63;7207:178;7325:19;;;7374:4;7365:14;;7318:67;7565:91;;7627:24;7645:5;7627:24;;7663:113;7736:34;7725:46;;7708:68;7783:121;7856:42;7845:54;;7828:76;7911:72;7973:5;7956:27;7990:195;;8106:74;8174:5;8106:74;;8344:117;8413:24;8431:5;8413:24;;;8406:5;8403:35;8393:2;;8452:1;8449;8442:12;8393:2;8387:74;;8468:117;8537:24;8555:5;8537:24;;8592:117;8661:24;8679:5;8661: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 { DoubleExponentInterestSetter } from \"../external/interestsetters/DoubleExponentInterestSetter.sol\";\n\n\n/**\n * @title TestDoubleExponentInterestSetter\n * @author dYdX\n *\n * DoubleExponentInterestSetter for testing\n */\ncontract TestDoubleExponentInterestSetter is\n DoubleExponentInterestSetter\n{\n constructor(\n PolyStorage memory parameters\n )\n public\n DoubleExponentInterestSetter(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 (DoubleExponentInterestSetter)\n {\n return new DoubleExponentInterestSetter(parameters);\n }\n}\n", "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestDoubleExponentInterestSetter.sol", "ast": { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestDoubleExponentInterestSetter.sol", "exportedSymbols": { "TestDoubleExponentInterestSetter": [ 33521 ] }, "id": 33522, "nodeType": "SourceUnit", "nodes": [ { "id": 33483, "literals": [ "solidity", "^", "0.5", ".7" ], "nodeType": "PragmaDirective", "src": "603:23:119" }, { "id": 33484, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "627:33:119" }, { "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interestsetters/DoubleExponentInterestSetter.sol", "file": "../external/interestsetters/DoubleExponentInterestSetter.sol", "id": 33486, "nodeType": "ImportDirective", "scope": 33522, "sourceUnit": 3641, "src": "662:108:119", "symbolAliases": [ { "foreign": 33485, "local": null } ], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 33487, "name": "DoubleExponentInterestSetter", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3640, "src": "936:28:119", "typeDescriptions": { "typeIdentifier": "t_contract$_DoubleExponentInterestSetter_$3640", "typeString": "contract DoubleExponentInterestSetter" } }, "id": 33488, "nodeType": "InheritanceSpecifier", "src": "936:28:119" } ], "contractDependencies": [ 3640, 24789 ], "contractKind": "contract", "documentation": "@title TestDoubleExponentInterestSetter\n@author dYdX\n * DoubleExponentInterestSetter for testing", "fullyImplemented": true, "id": 33521, "linearizedBaseContracts": [ 33521, 3640, 24789 ], "name": "TestDoubleExponentInterestSetter", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 33496, "nodeType": "Block", "src": "1096:7:119", "statements": [] }, "documentation": null, "id": 33497, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { "argumentTypes": null, "id": 33493, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 33490, "src": "1080:10:119", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_memory_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage memory" } } ], "id": 33494, "modifierName": { "argumentTypes": null, "id": 33492, "name": "DoubleExponentInterestSetter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3640, "src": "1051:28:119", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DoubleExponentInterestSetter_$3640_$", "typeString": "type(contract DoubleExponentInterestSetter)" } }, "nodeType": "ModifierInvocation", "src": "1051:40:119" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 33491, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 33490, "name": "parameters", "nodeType": "VariableDeclaration", "scope": 33497, "src": "992:29:119", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_memory_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage" }, "typeName": { "contractScope": null, "id": 33489, "name": "PolyStorage", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3415, "src": "992:11:119", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_storage_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage" } }, "value": null, "visibility": "internal" } ], "src": "982:45:119" }, "returnParameters": { "id": 33495, "nodeType": "ParameterList", "parameters": [], "src": "1096:0:119" }, "scope": 33521, "src": "971:132:119", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 33506, "nodeType": "Block", "src": "1196:39:119", "statements": [ { "expression": { "argumentTypes": null, "id": 33504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 33502, "name": "g_storage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3417, "src": "1206:9:119", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_storage", "typeString": "struct DoubleExponentInterestSetter.PolyStorage storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 33503, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 33499, "src": "1218:10:119", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_memory_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage memory" } }, "src": "1206:22:119", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_storage", "typeString": "struct DoubleExponentInterestSetter.PolyStorage storage ref" } }, "id": 33505, "nodeType": "ExpressionStatement", "src": "1206:22:119" } ] }, "documentation": null, "id": 33507, "implemented": true, "kind": "function", "modifiers": [], "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { "id": 33500, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 33499, "name": "parameters", "nodeType": "VariableDeclaration", "scope": 33507, "src": "1141:29:119", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_memory_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage" }, "typeName": { "contractScope": null, "id": 33498, "name": "PolyStorage", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3415, "src": "1141:11:119", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_storage_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage" } }, "value": null, "visibility": "internal" } ], "src": "1131:45:119" }, "returnParameters": { "id": 33501, "nodeType": "ParameterList", "parameters": [], "src": "1196:0:119" }, "scope": 33521, "src": "1109:126:119", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 33519, "nodeType": "Block", "src": "1371:68:119", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 33516, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 33509, "src": "1421:10:119", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_memory_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_PolyStorage_$3415_memory_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage memory" } ], "id": 33515, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "1388:32:119", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$_t_struct$_PolyStorage_$3415_memory_ptr_$returns$_t_contract$_DoubleExponentInterestSetter_$3640_$", "typeString": "function (struct DoubleExponentInterestSetter.PolyStorage memory) returns (contract DoubleExponentInterestSetter)" }, "typeName": { "contractScope": null, "id": 33514, "name": "DoubleExponentInterestSetter", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3640, "src": "1392:28:119", "typeDescriptions": { "typeIdentifier": "t_contract$_DoubleExponentInterestSetter_$3640", "typeString": "contract DoubleExponentInterestSetter" } } }, "id": 33517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1388:44:119", "typeDescriptions": { "typeIdentifier": "t_contract$_DoubleExponentInterestSetter_$3640", "typeString": "contract DoubleExponentInterestSetter" } }, "functionReturnParameters": 33513, "id": 33518, "nodeType": "Return", "src": "1381:51:119" } ] }, "documentation": null, "id": 33520, "implemented": true, "kind": "function", "modifiers": [], "name": "createNew", "nodeType": "FunctionDefinition", "parameters": { "id": 33510, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 33509, "name": "parameters", "nodeType": "VariableDeclaration", "scope": 33520, "src": "1269:29:119", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_memory_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage" }, "typeName": { "contractScope": null, "id": 33508, "name": "PolyStorage", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3415, "src": "1269:11:119", "typeDescriptions": { "typeIdentifier": "t_struct$_PolyStorage_$3415_storage_ptr", "typeString": "struct DoubleExponentInterestSetter.PolyStorage" }