@dolomite-exchange/dolomite-margin 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/build/contracts/Account.json +11 -11
  2. package/build/contracts/Actions.json +11 -11
  3. package/build/contracts/Address.json +1 -1
  4. package/build/contracts/Admin.json +23 -23
  5. package/build/contracts/AdminImpl.json +35 -307
  6. package/build/contracts/AdvancedMath.json +7 -7
  7. package/build/contracts/AmmRebalancerProxy.json +577 -621
  8. package/build/contracts/AmmRebalancerProxyV1.json +78 -32
  9. package/build/contracts/Babylonian.json +1 -1
  10. package/build/contracts/Bits.json +9 -9
  11. package/build/contracts/Cache.json +13 -13
  12. package/build/contracts/ChainlinkPriceOracleV1.json +16 -16
  13. package/build/contracts/Context.json +1 -1
  14. package/build/contracts/CustomTestToken.json +9 -9
  15. package/build/contracts/Decimal.json +9 -9
  16. package/build/contracts/DelayedMultiSig.json +9 -9
  17. package/build/contracts/DolomiteAmmERC20.json +11 -11
  18. package/build/contracts/DolomiteAmmFactory.json +14 -52
  19. package/build/contracts/DolomiteAmmLibrary.json +24 -24
  20. package/build/contracts/DolomiteAmmPair.json +27 -27
  21. package/build/contracts/DolomiteAmmRouterProxy.json +30 -363
  22. package/build/contracts/DolomiteMargin.json +21 -67
  23. package/build/contracts/DoubleExponentInterestSetter.json +15 -21
  24. package/build/contracts/EnumerableSet.json +7 -7
  25. package/build/contracts/ErroringOmiseToken.json +9 -9
  26. package/build/contracts/ErroringToken.json +10 -10
  27. package/build/contracts/Events.json +17 -17
  28. package/build/contracts/ExcessivelySafeCall.json +35 -35
  29. package/build/contracts/Exchange.json +15 -15
  30. package/build/contracts/Expiry.json +36 -36
  31. package/build/contracts/Getters.json +33 -33
  32. package/build/contracts/IAutoTrader.json +9 -9
  33. package/build/contracts/ICallee.json +7 -7
  34. package/build/contracts/IChainlinkAggregator.json +5 -5
  35. package/build/contracts/IDolomiteAmmERC20.json +5 -5
  36. package/build/contracts/IDolomiteAmmFactory.json +9 -9
  37. package/build/contracts/IDolomiteAmmPair.json +9 -9
  38. package/build/contracts/IDolomiteMargin.json +23 -23
  39. package/build/contracts/IERC20.json +1 -1
  40. package/build/contracts/IERC20Detailed.json +5 -5
  41. package/build/contracts/IExchangeWrapper.json +5 -5
  42. package/build/contracts/IExpiry.json +9 -9
  43. package/build/contracts/IInterestSetter.json +7 -7
  44. package/build/contracts/ILiquidationCallback.json +7 -7
  45. package/build/contracts/IMakerOracle.json +5 -5
  46. package/build/contracts/IOasisDex.json +5 -5
  47. package/build/contracts/IPriceOracle.json +7 -7
  48. package/build/contracts/IRecyclable.json +9 -9
  49. package/build/contracts/ITransferProxy.json +5 -5
  50. package/build/contracts/IUniswapV2Callee.json +5 -5
  51. package/build/contracts/IUniswapV2Factory.json +5 -5
  52. package/build/contracts/IUniswapV2Pair.json +5 -5
  53. package/build/contracts/IUniswapV2Router.json +5 -5
  54. package/build/contracts/IWETH.json +5 -5
  55. package/build/contracts/Interest.json +15 -15
  56. package/build/contracts/LiquidateOrVaporizeImpl.json +32 -83
  57. package/build/contracts/LiquidatorProxyHelper.json +23 -23
  58. package/build/contracts/LiquidatorProxyV1.json +30 -36
  59. package/build/contracts/LiquidatorProxyV1WithAmm.json +49 -105
  60. package/build/contracts/Math.json +1 -1
  61. package/build/contracts/Migrations.json +8 -14
  62. package/build/contracts/Monetary.json +7 -7
  63. package/build/contracts/MultiCall.json +8 -14
  64. package/build/contracts/MultiSig.json +7 -7
  65. package/build/contracts/OmiseToken.json +8 -8
  66. package/build/contracts/OnlyDolomiteMargin.json +11 -11
  67. package/build/contracts/Operation.json +15 -15
  68. package/build/contracts/OperationImpl.json +39 -47
  69. package/build/contracts/Ownable.json +1 -1
  70. package/build/contracts/PartiallyDelayedMultiSig.json +9 -9
  71. package/build/contracts/PayableProxy.json +17 -23
  72. package/build/contracts/Permission.json +11 -11
  73. package/build/contracts/PolynomialInterestSetter.json +13 -13
  74. package/build/contracts/RecyclableTokenProxy.json +25 -25
  75. package/build/contracts/ReentrancyGuard.json +1 -1
  76. package/build/contracts/Require.json +7 -7
  77. package/build/contracts/SafeERC20.json +1 -1
  78. package/build/contracts/SafeETH.json +7 -7
  79. package/build/contracts/SafeLiquidationCallback.json +17 -17
  80. package/build/contracts/SafeMath.json +1 -1
  81. package/build/contracts/SignedOperationProxy.json +21 -104
  82. package/build/contracts/SimpleFeeOwner.json +18 -63
  83. package/build/contracts/State.json +9 -9
  84. package/build/contracts/Storage.json +37 -37
  85. package/build/contracts/TestAmmRebalancerProxy.json +32 -58
  86. package/build/contracts/TestAutoTrader.json +22 -22
  87. package/build/contracts/TestBtcUsdChainlinkAggregator.json +10 -10
  88. package/build/contracts/TestCallee.json +19 -19
  89. package/build/contracts/TestChainlinkPriceOracleV1.json +10 -94
  90. package/build/contracts/TestCounter.json +7 -7
  91. package/build/contracts/TestDaiUsdChainlinkAggregator.json +11 -11
  92. package/build/contracts/TestDolomiteMargin.json +22 -22
  93. package/build/contracts/TestDoubleExponentInterestSetter.json +10 -10
  94. package/build/contracts/TestEthUsdChainlinkAggregator.json +11 -11
  95. package/build/contracts/TestExchangeWrapper.json +28 -28
  96. package/build/contracts/TestInterestSetter.json +13 -13
  97. package/build/contracts/TestLib.json +22 -22
  98. package/build/contracts/TestLinkUsdChainlinkAggregator.json +11 -11
  99. package/build/contracts/TestLiquidateCallback.json +719 -719
  100. package/build/contracts/TestLiquidationCallback.json +13 -13
  101. package/build/contracts/TestLrcEthChainlinkAggregator.json +11 -11
  102. package/build/contracts/TestMakerOracle.json +10 -10
  103. package/build/contracts/TestMaticUsdChainlinkAggregator.json +10 -10
  104. package/build/contracts/TestOasisDex.json +12 -12
  105. package/build/contracts/TestOperationImpl.json +14 -14
  106. package/build/contracts/TestPolynomialInterestSetter.json +10 -10
  107. package/build/contracts/TestPriceAggregator.json +9 -9
  108. package/build/contracts/TestPriceOracle.json +13 -13
  109. package/build/contracts/TestRecyclableToken.json +9 -9
  110. package/build/contracts/TestSimpleCallee.json +15 -15
  111. package/build/contracts/TestToken.json +9 -9
  112. package/build/contracts/TestTrader.json +17 -17
  113. package/build/contracts/TestUniswapAmmRebalancerProxy.json +16 -16
  114. package/build/contracts/TestUsdcUsdChainlinkAggregator.json +11 -11
  115. package/build/contracts/TestWETH.json +9 -9
  116. package/build/contracts/Time.json +9 -9
  117. package/build/contracts/Token.json +9 -9
  118. package/build/contracts/TokenA.json +10 -10
  119. package/build/contracts/TokenB.json +10 -10
  120. package/build/contracts/TokenC.json +10 -10
  121. package/build/contracts/TokenD.json +10 -10
  122. package/build/contracts/TokenE.json +10 -10
  123. package/build/contracts/TokenF.json +10 -10
  124. package/build/contracts/TransferProxy.json +22 -28
  125. package/build/contracts/TypedSignature.json +9 -9
  126. package/build/contracts/Types.json +9 -9
  127. package/build/contracts/UQ112x112.json +7 -7
  128. package/build/contracts/UniswapV2ERC20.json +7 -7
  129. package/build/contracts/UniswapV2Factory.json +12 -12
  130. package/build/contracts/UniswapV2Library.json +20 -20
  131. package/build/contracts/UniswapV2Pair.json +17 -17
  132. package/build/contracts/UniswapV2Router02.json +16 -16
  133. package/build/contracts/WETH9.json +1 -1
  134. package/contracts/external/amm/DolomiteAmmERC20.sol +135 -0
  135. package/contracts/external/amm/DolomiteAmmFactory.sol +122 -0
  136. package/contracts/external/amm/DolomiteAmmPair.sol +573 -0
  137. package/contracts/external/amm/SimpleFeeOwner.sol +107 -0
  138. package/contracts/external/helpers/LiquidatorProxyHelper.sol +252 -0
  139. package/contracts/external/helpers/OnlyDolomiteMargin.sol +63 -0
  140. package/contracts/external/interestsetters/DoubleExponentInterestSetter.sol +212 -0
  141. package/contracts/external/interestsetters/PolynomialInterestSetter.sol +205 -0
  142. package/contracts/external/interfaces/IChainlinkAggregator.sol +33 -0
  143. package/contracts/external/interfaces/IDolomiteAmmERC20.sol +52 -0
  144. package/contracts/external/interfaces/IDolomiteAmmFactory.sol +42 -0
  145. package/contracts/external/interfaces/IDolomiteAmmPair.sol +116 -0
  146. package/contracts/external/interfaces/IExpiry.sol +70 -0
  147. package/contracts/external/interfaces/IMakerOracle.sol +52 -0
  148. package/contracts/external/interfaces/IOasisDex.sol +326 -0
  149. package/contracts/external/interfaces/ITransferProxy.sol +53 -0
  150. package/contracts/external/interfaces/IUniswapV2Router.sol +134 -0
  151. package/contracts/external/lib/AdvancedMath.sol +23 -0
  152. package/contracts/external/lib/DolomiteAmmLibrary.sol +323 -0
  153. package/contracts/external/lib/TypedSignature.sol +120 -0
  154. package/contracts/external/lib/UQ112x112.sol +22 -0
  155. package/contracts/external/multisig/DelayedMultiSig.sol +206 -0
  156. package/contracts/external/multisig/MultiSig.sol +571 -0
  157. package/contracts/external/multisig/PartiallyDelayedMultiSig.sol +174 -0
  158. package/contracts/external/oracles/ChainlinkPriceOracleV1.sol +197 -0
  159. package/contracts/external/oracles/TestChainlinkPriceOracleV1.sol +98 -0
  160. package/contracts/external/proxies/AmmRebalancerProxyV1.sol +465 -0
  161. package/contracts/external/proxies/DolomiteAmmRouterProxy.sol +877 -0
  162. package/contracts/external/proxies/LiquidatorProxyV1.sol +507 -0
  163. package/contracts/external/proxies/LiquidatorProxyV1WithAmm.sol +574 -0
  164. package/contracts/external/proxies/PayableProxy.sol +146 -0
  165. package/contracts/external/proxies/RecyclableTokenProxy.sol +463 -0
  166. package/contracts/external/proxies/SignedOperationProxy.sol +553 -0
  167. package/contracts/external/proxies/TransferProxy.sol +207 -0
  168. package/contracts/external/traders/Expiry.sol +532 -0
  169. package/contracts/external/uniswap-v2/UniswapV2ERC20.sol +118 -0
  170. package/contracts/external/uniswap-v2/UniswapV2Factory.sol +67 -0
  171. package/contracts/external/uniswap-v2/UniswapV2Pair.sol +283 -0
  172. package/contracts/external/uniswap-v2/UniswapV2Router02.sol +566 -0
  173. package/contracts/external/uniswap-v2/interfaces/IUniswapV2Callee.sol +13 -0
  174. package/contracts/external/uniswap-v2/interfaces/IUniswapV2Factory.sol +18 -0
  175. package/contracts/external/uniswap-v2/interfaces/IUniswapV2Pair.sol +67 -0
  176. package/contracts/external/uniswap-v2/interfaces/IWETH.sol +7 -0
  177. package/contracts/external/uniswap-v2/libraries/SafeETH.sol +29 -0
  178. package/contracts/external/uniswap-v2/libraries/UniswapV2Library.sol +117 -0
  179. package/contracts/external/utils/MultiCall.sol +95 -0
  180. package/contracts/protocol/impl/artifacts/OperationImpl.json +80 -0
  181. package/contracts/protocol/impl/artifacts/OperationImpl_metadata.json +193 -0
  182. package/dist/build/published_contracts/AdminImpl.json +2 -2
  183. package/dist/build/published_contracts/AmmRebalancerProxyV1.json +5 -0
  184. package/dist/build/published_contracts/ChainlinkPriceOracleV1.json +1 -1
  185. package/dist/build/published_contracts/DolomiteAmmFactory.json +1 -1
  186. package/dist/build/published_contracts/DolomiteAmmRouterProxy.json +1 -1
  187. package/dist/build/published_contracts/DoubleExponentInterestSetter.json +2 -2
  188. package/dist/build/published_contracts/Expiry.json +1 -1
  189. package/dist/build/published_contracts/LiquidatorProxyV1.json +1 -1
  190. package/dist/build/published_contracts/LiquidatorProxyV1WithAmm.json +1 -1
  191. package/dist/build/published_contracts/MultiCall.json +1 -1
  192. package/dist/build/published_contracts/PayableProxy.json +2 -2
  193. package/dist/build/published_contracts/SignedOperationProxy.json +2 -2
  194. package/dist/build/published_contracts/SimpleFeeOwner.json +1 -1
  195. package/dist/build/published_contracts/TestUniswapAmmRebalancerProxy.json +140 -0
  196. package/dist/build/published_contracts/TransferProxy.json +1 -1
  197. package/dist/src/lib/Contracts.d.ts +3 -1
  198. package/dist/src/lib/Contracts.js +7 -3
  199. package/dist/src/lib/Contracts.js.map +1 -1
  200. package/package.json +2 -1
@@ -181,15 +181,15 @@
181
181
  "type": "function"
182
182
  }
183
183
  ],
184
- "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_uniswapFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_dolomiteMargin\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"uniswapSetFeeTo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeToSetter\",\"type\":\"address\"}],\"name\":\"uniswapSetFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"lpTokens\",\"type\":\"address[]\"}],\"name\":\"unwrapAllFeesByLpTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"withdrawAllFeesByTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/amm/SimpleFeeOwner.sol\":\"SimpleFeeOwner\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/amm/SimpleFeeOwner.sol\":{\"keccak256\":\"0x7829bd369aed0bfa4a0bf6dc783e3fbef9ae1f6da281f9ff78ad5465831b742c\",\"urls\":[\"bzz-raw://84c295bfa1a9aa678a1c0e8dee7c0dfaacd29931b3a5514491c397265b2faa44\",\"dweb:/ipfs/QmdVZNziU5tmf9K3tBrp9tahJ1F7E8M3zSeT6D9ESNAXiV\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmFactory.sol\":{\"keccak256\":\"0xf5fd97ee3591ff30a3576d6d58847b5f6e156639578bed3827313a2c70823b78\",\"urls\":[\"bzz-raw://f9da41065f9b3b559bfc588cea01480f1c64ee7b1f1a86e54868f464fdfe2160\",\"dweb:/ipfs/QmWeBi2zSdPCENVV4fvCQ49HgnwLGxd3WS9sGMC4vR5NrB\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmPair.sol\":{\"keccak256\":\"0xe2272c233467a78460e681419f0acdc765de0ad5357d3b768665f289941ccd47\",\"urls\":[\"bzz-raw://114f1c797f4e7e803b0764ae7107a2279c3da806450287c9e5600211faeeab57\",\"dweb:/ipfs/QmUoLx1rGgCdX5ScsUkp4NsSZLyVWdKsVKeXuPCtcrAvLn\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x1e73364879c267fdd2bfd871e62ee58ee3d65fbef3b71e3cc104fbff499eca6c\",\"urls\":[\"bzz-raw://e3b1327980a5949afd52cff4713f47ee4fdee9a8b376ceaa3402f5c9696b8c1b\",\"dweb:/ipfs/QmbhQzVEdaraPJizT5DTtk6CDzH3guHNipHW5T23uTtFkX\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/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/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x73e75454568c5dfc3bdcf7dbf2ddce6ab8d3d317618bc1f1957f7667e15d3799\",\"urls\":[\"bzz-raw://7b1c8a9a79c8ffdbb0fa633f713ae3dfeac93b31d2b1639614ac32d473fb8250\",\"dweb:/ipfs/QmfARP93W2mgeVwD9Lkd3yVmbCLF2Mos7o8HJ1x6WYQmxZ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xf930fbde3ab43ec8f079dbad062453b502542f53b7eec670c8e86c7a2e47dd9a\",\"urls\":[\"bzz-raw://e1c402fc55471e8372be478e99f91c28373f096e31f0ef1d5072dfdb81541c29\",\"dweb:/ipfs/QmTc8WSfFCbxNQqNpq1vptUVFxteKQ8HWEhyXREyPZ2neu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24\",\"urls\":[\"bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e\",\"dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x6f2c9955d65c522b80f4b8792f076512d2df947d2112cbc4d98a4781ed42ede2\",\"urls\":[\"bzz-raw://7d8ec81683520c06baeef3f7e06cd82bd6fd5fa611f26857f475f6c829540aff\",\"dweb:/ipfs/QmTDkFzKnrpiV1UKnSoiZAHPuguWzokrr4pFbSPvyaSo56\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]}},\"version\":1}",
185
- "bytecode": "0x60806040523480156200001157600080fd5b5060405162001a2538038062001a258339810160408190526200003491620000dc565b6000620000496001600160e01b03620000c516565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905562000147565b3390565b8051620000d6816200012d565b92915050565b60008060408385031215620000f057600080fd5b6000620000fe8585620000c9565b92505060206200011185828601620000c9565b9150509250929050565b60006001600160a01b038216620000d6565b62000138816200011b565b81146200014457600080fd5b50565b6118ce80620001576000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638f32d59b1161005b5780638f32d59b146100db578063908c94b4146100f0578063f2fde38b14610103578063f97d79a81461011657610088565b8063159446bf1461008d5780636f8a6372146100a2578063715018a6146100b55780638da5cb5b146100bd575b600080fd5b6100a061009b3660046111db565b610129565b005b6100a06100b036600461119f565b6108ae565b6100a0610977565b6100c5610a24565b6040516100d291906116c2565b60405180910390f35b6100e3610a40565b6040516100d2919061172b565b6100a06100fe3660046111db565b610a7e565b6100a061011136600461119f565b610baa565b6100a061012436600461119f565b610bf4565b610131610a40565b610170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b60405180910390fd5b60005b818110156108a857600083838381811061018957fe5b905060200201602061019e919081019061119f565b90508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb828373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101f691906116c2565b60206040518083038186803b15801561020e57600080fd5b505afa158015610222573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610246919081019061124f565b6040518363ffffffff1660e01b81526004016102639291906116eb565b602060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102b59190810190611231565b506040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690639dc29fac9061030b9030906000906004016116d0565b6040805180830381600087803b15801561032457600080fd5b505af1158015610338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061035c919081019061126d565b505060008173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103de91908101906111bd565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561042857600080fd5b505afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061046091908101906111bd565b6002546040517f8fae3be100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906104bc9086906004016116c2565b60206040518083038186803b1580156104d457600080fd5b505afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061050c919081019061124f565b6002546040517f8fae3be100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906105689086906004016116c2565b60206040518083038186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b8919081019061124f565b60408051600180825281830190925291925060609190816020015b6105db611085565b8152602001906001900390816105d357905050905060405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200160008152508160008151811061062957fe5b60209081029190910101526040805160028082526060828101909352816020015b61065261109c565b81526020019060019003908161064a57905050905061067084610c88565b8160008151811061067d57fe5b602002602001018190525061069183610c88565b8160018151811061069e57fe5b60209081029190910101526002546040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a67a6a45906107019085908590600401611706565b600060405180830381600087803b15801561071b57600080fd5b505af115801561072f573d6000803e3d6000fd5b505050506107e48b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161077091906116c2565b60206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107c0919081019061124f565b73ffffffffffffffffffffffffffffffffffffffff8916919063ffffffff610d5c16565b6108958b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161082191906116c2565b60206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610871919081019061124f565b73ffffffffffffffffffffffffffffffffffffffff8816919063ffffffff610d5c16565b5050600190950194506101739350505050565b50505050565b6108b6610a40565b6108ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6001546040517ff46901ed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063f46901ed906109429084906004016116c2565b600060405180830381600087803b15801561095c57600080fd5b505af1158015610970573d6000803e3d6000fd5b5050505050565b61097f610a40565b6109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff16610a62610e1e565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b610a86610a40565b610abc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b60005b818110156108a8576000838383818110610ad557fe5b9050602002016020610aea919081019061119f565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b2791906116c2565b60206040518083038186803b158015610b3f57600080fd5b505afa158015610b53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b77919081019061124f565b9050610ba073ffffffffffffffffffffffffffffffffffffffff8316878363ffffffff610d5c16565b5050600101610abf565b610bb2610a40565b610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b610bf181610e22565b50565b610bfc610a40565b610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6001546040517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a2e74af6906109429084906004016116c2565b610c9061109c565b604080516101008101825260018082526000602080840182905284516080810186529283529293840192820190815260200160018152602001600081525081526020018381526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020013073ffffffffffffffffffffffffffffffffffffffff1681526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020016040518060200160405280600081525081525090505b919050565b604051610e199084907fa9059cbb0000000000000000000000000000000000000000000000000000000090610d9790869086906024016116eb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610efc565b505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8116610e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611739565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610f1b8273ffffffffffffffffffffffffffffffffffffffff16611049565b610f51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611779565b600060608373ffffffffffffffffffffffffffffffffffffffff1683604051610f7a91906116b6565b6000604051808303816000865af19150503d8060008114610fb7576040519150601f19603f3d011682016040523d82523d6000602084013e610fbc565b606091505b509150915081610ff8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611749565b8051156108a857808060200190516110139190810190611231565b6108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611769565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061107d57508115155b949350505050565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201529081016110bc6110fb565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561112f81611865565b92915050565b805161112f81611865565b60008083601f84011261115257600080fd5b50813567ffffffffffffffff81111561116a57600080fd5b60208301915083602082028301111561118257600080fd5b9250929050565b805161112f81611879565b805161112f81611882565b6000602082840312156111b157600080fd5b600061107d8484611124565b6000602082840312156111cf57600080fd5b600061107d8484611135565b6000806000604084860312156111f057600080fd5b60006111fc8686611124565b935050602084013567ffffffffffffffff81111561121957600080fd5b61122586828701611140565b92509250509250925092565b60006020828403121561124357600080fd5b600061107d8484611189565b60006020828403121561126157600080fd5b600061107d8484611194565b6000806040838503121561128057600080fd5b600061128c8585611194565b925050602061129d85828601611194565b9150509250929050565b60006112b38383611598565b9392505050565b60006112c6838361168d565b505060400190565b6112d78161179c565b82525050565b60006112e88261178f565b6112f28185611793565b93508360208202850161130485611789565b8060005b8581101561133e578484038952815161132185826112a7565b945061132c83611789565b60209a909a0199925050600101611308565b5091979650505050505050565b60006113568261178f565b6113608185611793565b935061136b83611789565b8060005b8381101561139957815161138388826112ba565b975061138e83611789565b92505060010161136f565b509495945050505050565b6112d7816117a7565b60006113b88261178f565b6113c28185610d57565b93506113d28185602086016117fd565b9290920192915050565b60006113e78261178f565b6113f18185611793565b93506114018185602086016117fd565b61140a81611829565b9093019392505050565b6112d7816117dc565b6112d7816117e7565b6112d7816117f2565b600061143c602683611793565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b600061149b602083611793565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b60006114d4602083611793565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061150d602a83611793565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b600061156c601f83611793565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906115ad8582611414565b5060208301516115c060208601826116ad565b5060408301516115d36040860182611643565b5060608301516115e660c08601826116ad565b5060808301516115f960e08601826116ad565b5060a083015161160d6101008601826112ce565b5060c08301516116216101208601826116ad565b5060e083015184820361014086015261163a82826113dc565b95945050505050565b8051608083019061165484826113a4565b506020820151611667602085018261141d565b50604082015161167a604085018261141d565b5060608201516108a860608501826116ad565b8051604083019061169e84826112ce565b5060208201516108a860208501825b6112d7816117d9565b60006112b382846113ad565b6020810161112f82846112ce565b604081016116de82856112ce565b6112b36020830184611426565b604081016116f982856112ce565b6112b360208301846116ad565b60408082528101611717818561134b565b9050818103602083015261107d81846112dd565b6020810161112f82846113a4565b6020808252810161112f8161142f565b6020808252810161112f8161148e565b6020808252810161112f816114c7565b6020808252810161112f81611500565b6020808252810161112f8161155f565b60200190565b5190565b90815260200190565b600061112f826117c0565b151590565b80610d5781611851565b80610d578161185b565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b600061112f826117ac565b600061112f826117b6565b600061112f826117d9565b60005b83811015611818578181015183820152602001611800565b838111156108a85750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b60098110610bf157fe5b60028110610bf157fe5b61186e8161179c565b8114610bf157600080fd5b61186e816117a7565b61186e816117d956fea365627a7a7231582037010290da5fda9d91ce56284bb123d0dccd1948a6cf80f7791c2024ab88a93e6c6578706572696d656e74616cf564736f6c63430005100040",
186
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638f32d59b1161005b5780638f32d59b146100db578063908c94b4146100f0578063f2fde38b14610103578063f97d79a81461011657610088565b8063159446bf1461008d5780636f8a6372146100a2578063715018a6146100b55780638da5cb5b146100bd575b600080fd5b6100a061009b3660046111db565b610129565b005b6100a06100b036600461119f565b6108ae565b6100a0610977565b6100c5610a24565b6040516100d291906116c2565b60405180910390f35b6100e3610a40565b6040516100d2919061172b565b6100a06100fe3660046111db565b610a7e565b6100a061011136600461119f565b610baa565b6100a061012436600461119f565b610bf4565b610131610a40565b610170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b60405180910390fd5b60005b818110156108a857600083838381811061018957fe5b905060200201602061019e919081019061119f565b90508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb828373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101f691906116c2565b60206040518083038186803b15801561020e57600080fd5b505afa158015610222573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610246919081019061124f565b6040518363ffffffff1660e01b81526004016102639291906116eb565b602060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102b59190810190611231565b506040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690639dc29fac9061030b9030906000906004016116d0565b6040805180830381600087803b15801561032457600080fd5b505af1158015610338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061035c919081019061126d565b505060008173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103de91908101906111bd565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561042857600080fd5b505afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061046091908101906111bd565b6002546040517f8fae3be100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906104bc9086906004016116c2565b60206040518083038186803b1580156104d457600080fd5b505afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061050c919081019061124f565b6002546040517f8fae3be100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906105689086906004016116c2565b60206040518083038186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b8919081019061124f565b60408051600180825281830190925291925060609190816020015b6105db611085565b8152602001906001900390816105d357905050905060405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200160008152508160008151811061062957fe5b60209081029190910101526040805160028082526060828101909352816020015b61065261109c565b81526020019060019003908161064a57905050905061067084610c88565b8160008151811061067d57fe5b602002602001018190525061069183610c88565b8160018151811061069e57fe5b60209081029190910101526002546040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a67a6a45906107019085908590600401611706565b600060405180830381600087803b15801561071b57600080fd5b505af115801561072f573d6000803e3d6000fd5b505050506107e48b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161077091906116c2565b60206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107c0919081019061124f565b73ffffffffffffffffffffffffffffffffffffffff8916919063ffffffff610d5c16565b6108958b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161082191906116c2565b60206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610871919081019061124f565b73ffffffffffffffffffffffffffffffffffffffff8816919063ffffffff610d5c16565b5050600190950194506101739350505050565b50505050565b6108b6610a40565b6108ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6001546040517ff46901ed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063f46901ed906109429084906004016116c2565b600060405180830381600087803b15801561095c57600080fd5b505af1158015610970573d6000803e3d6000fd5b5050505050565b61097f610a40565b6109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff16610a62610e1e565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b610a86610a40565b610abc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b60005b818110156108a8576000838383818110610ad557fe5b9050602002016020610aea919081019061119f565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b2791906116c2565b60206040518083038186803b158015610b3f57600080fd5b505afa158015610b53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b77919081019061124f565b9050610ba073ffffffffffffffffffffffffffffffffffffffff8316878363ffffffff610d5c16565b5050600101610abf565b610bb2610a40565b610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b610bf181610e22565b50565b610bfc610a40565b610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6001546040517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a2e74af6906109429084906004016116c2565b610c9061109c565b604080516101008101825260018082526000602080840182905284516080810186529283529293840192820190815260200160018152602001600081525081526020018381526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020013073ffffffffffffffffffffffffffffffffffffffff1681526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020016040518060200160405280600081525081525090505b919050565b604051610e199084907fa9059cbb0000000000000000000000000000000000000000000000000000000090610d9790869086906024016116eb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610efc565b505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8116610e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611739565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610f1b8273ffffffffffffffffffffffffffffffffffffffff16611049565b610f51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611779565b600060608373ffffffffffffffffffffffffffffffffffffffff1683604051610f7a91906116b6565b6000604051808303816000865af19150503d8060008114610fb7576040519150601f19603f3d011682016040523d82523d6000602084013e610fbc565b606091505b509150915081610ff8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611749565b8051156108a857808060200190516110139190810190611231565b6108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611769565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061107d57508115155b949350505050565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201529081016110bc6110fb565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561112f81611865565b92915050565b805161112f81611865565b60008083601f84011261115257600080fd5b50813567ffffffffffffffff81111561116a57600080fd5b60208301915083602082028301111561118257600080fd5b9250929050565b805161112f81611879565b805161112f81611882565b6000602082840312156111b157600080fd5b600061107d8484611124565b6000602082840312156111cf57600080fd5b600061107d8484611135565b6000806000604084860312156111f057600080fd5b60006111fc8686611124565b935050602084013567ffffffffffffffff81111561121957600080fd5b61122586828701611140565b92509250509250925092565b60006020828403121561124357600080fd5b600061107d8484611189565b60006020828403121561126157600080fd5b600061107d8484611194565b6000806040838503121561128057600080fd5b600061128c8585611194565b925050602061129d85828601611194565b9150509250929050565b60006112b38383611598565b9392505050565b60006112c6838361168d565b505060400190565b6112d78161179c565b82525050565b60006112e88261178f565b6112f28185611793565b93508360208202850161130485611789565b8060005b8581101561133e578484038952815161132185826112a7565b945061132c83611789565b60209a909a0199925050600101611308565b5091979650505050505050565b60006113568261178f565b6113608185611793565b935061136b83611789565b8060005b8381101561139957815161138388826112ba565b975061138e83611789565b92505060010161136f565b509495945050505050565b6112d7816117a7565b60006113b88261178f565b6113c28185610d57565b93506113d28185602086016117fd565b9290920192915050565b60006113e78261178f565b6113f18185611793565b93506114018185602086016117fd565b61140a81611829565b9093019392505050565b6112d7816117dc565b6112d7816117e7565b6112d7816117f2565b600061143c602683611793565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b600061149b602083611793565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b60006114d4602083611793565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061150d602a83611793565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b600061156c601f83611793565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906115ad8582611414565b5060208301516115c060208601826116ad565b5060408301516115d36040860182611643565b5060608301516115e660c08601826116ad565b5060808301516115f960e08601826116ad565b5060a083015161160d6101008601826112ce565b5060c08301516116216101208601826116ad565b5060e083015184820361014086015261163a82826113dc565b95945050505050565b8051608083019061165484826113a4565b506020820151611667602085018261141d565b50604082015161167a604085018261141d565b5060608201516108a860608501826116ad565b8051604083019061169e84826112ce565b5060208201516108a860208501825b6112d7816117d9565b60006112b382846113ad565b6020810161112f82846112ce565b604081016116de82856112ce565b6112b36020830184611426565b604081016116f982856112ce565b6112b360208301846116ad565b60408082528101611717818561134b565b9050818103602083015261107d81846112dd565b6020810161112f82846113a4565b6020808252810161112f8161142f565b6020808252810161112f8161148e565b6020808252810161112f816114c7565b6020808252810161112f81611500565b6020808252810161112f8161155f565b60200190565b5190565b90815260200190565b600061112f826117c0565b151590565b80610d5781611851565b80610d578161185b565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b600061112f826117ac565b600061112f826117b6565b600061112f826117d9565b60005b83811015611818578181015183820152602001611800565b838111156108a85750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b60098110610bf157fe5b60028110610bf157fe5b61186e8161179c565b8114610bf157600080fd5b61186e816117a7565b61186e816117d956fea365627a7a7231582037010290da5fda9d91ce56284bb123d0dccd1948a6cf80f7791c2024ab88a93e6c6578706572696d656e74616cf564736f6c63430005100040",
184
+ "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_uniswapFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_dolomiteMargin\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeTo\",\"type\":\"address\"}],\"name\":\"uniswapSetFeeTo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeToSetter\",\"type\":\"address\"}],\"name\":\"uniswapSetFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"lpTokens\",\"type\":\"address[]\"}],\"name\":\"unwrapAllFeesByLpTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"withdrawAllFeesByTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/amm/SimpleFeeOwner.sol\":\"SimpleFeeOwner\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/amm/SimpleFeeOwner.sol\":{\"keccak256\":\"0x7829bd369aed0bfa4a0bf6dc783e3fbef9ae1f6da281f9ff78ad5465831b742c\",\"urls\":[\"bzz-raw://84c295bfa1a9aa678a1c0e8dee7c0dfaacd29931b3a5514491c397265b2faa44\",\"dweb:/ipfs/QmdVZNziU5tmf9K3tBrp9tahJ1F7E8M3zSeT6D9ESNAXiV\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol\":{\"keccak256\":\"0xf5fd97ee3591ff30a3576d6d58847b5f6e156639578bed3827313a2c70823b78\",\"urls\":[\"bzz-raw://f9da41065f9b3b559bfc588cea01480f1c64ee7b1f1a86e54868f464fdfe2160\",\"dweb:/ipfs/QmWeBi2zSdPCENVV4fvCQ49HgnwLGxd3WS9sGMC4vR5NrB\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol\":{\"keccak256\":\"0xe2272c233467a78460e681419f0acdc765de0ad5357d3b768665f289941ccd47\",\"urls\":[\"bzz-raw://114f1c797f4e7e803b0764ae7107a2279c3da806450287c9e5600211faeeab57\",\"dweb:/ipfs/QmUoLx1rGgCdX5ScsUkp4NsSZLyVWdKsVKeXuPCtcrAvLn\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x1e73364879c267fdd2bfd871e62ee58ee3d65fbef3b71e3cc104fbff499eca6c\",\"urls\":[\"bzz-raw://e3b1327980a5949afd52cff4713f47ee4fdee9a8b376ceaa3402f5c9696b8c1b\",\"dweb:/ipfs/QmbhQzVEdaraPJizT5DTtk6CDzH3guHNipHW5T23uTtFkX\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x73e75454568c5dfc3bdcf7dbf2ddce6ab8d3d317618bc1f1957f7667e15d3799\",\"urls\":[\"bzz-raw://7b1c8a9a79c8ffdbb0fa633f713ae3dfeac93b31d2b1639614ac32d473fb8250\",\"dweb:/ipfs/QmfARP93W2mgeVwD9Lkd3yVmbCLF2Mos7o8HJ1x6WYQmxZ\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xf930fbde3ab43ec8f079dbad062453b502542f53b7eec670c8e86c7a2e47dd9a\",\"urls\":[\"bzz-raw://e1c402fc55471e8372be478e99f91c28373f096e31f0ef1d5072dfdb81541c29\",\"dweb:/ipfs/QmTc8WSfFCbxNQqNpq1vptUVFxteKQ8HWEhyXREyPZ2neu\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24\",\"urls\":[\"bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e\",\"dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x6f2c9955d65c522b80f4b8792f076512d2df947d2112cbc4d98a4781ed42ede2\",\"urls\":[\"bzz-raw://7d8ec81683520c06baeef3f7e06cd82bd6fd5fa611f26857f475f6c829540aff\",\"dweb:/ipfs/QmTDkFzKnrpiV1UKnSoiZAHPuguWzokrr4pFbSPvyaSo56\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]}},\"version\":1}",
185
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162001a2538038062001a258339810160408190526200003491620000dc565b6000620000496001600160e01b03620000c516565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905562000147565b3390565b8051620000d6816200012d565b92915050565b60008060408385031215620000f057600080fd5b6000620000fe8585620000c9565b92505060206200011185828601620000c9565b9150509250929050565b60006001600160a01b038216620000d6565b62000138816200011b565b81146200014457600080fd5b50565b6118ce80620001576000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638f32d59b1161005b5780638f32d59b146100db578063908c94b4146100f0578063f2fde38b14610103578063f97d79a81461011657610088565b8063159446bf1461008d5780636f8a6372146100a2578063715018a6146100b55780638da5cb5b146100bd575b600080fd5b6100a061009b3660046111db565b610129565b005b6100a06100b036600461119f565b6108ae565b6100a0610977565b6100c5610a24565b6040516100d291906116c2565b60405180910390f35b6100e3610a40565b6040516100d2919061172b565b6100a06100fe3660046111db565b610a7e565b6100a061011136600461119f565b610baa565b6100a061012436600461119f565b610bf4565b610131610a40565b610170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b60405180910390fd5b60005b818110156108a857600083838381811061018957fe5b905060200201602061019e919081019061119f565b90508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb828373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101f691906116c2565b60206040518083038186803b15801561020e57600080fd5b505afa158015610222573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610246919081019061124f565b6040518363ffffffff1660e01b81526004016102639291906116eb565b602060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102b59190810190611231565b506040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690639dc29fac9061030b9030906000906004016116d0565b6040805180830381600087803b15801561032457600080fd5b505af1158015610338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061035c919081019061126d565b505060008173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103de91908101906111bd565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561042857600080fd5b505afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061046091908101906111bd565b6002546040517f8fae3be100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906104bc9086906004016116c2565b60206040518083038186803b1580156104d457600080fd5b505afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061050c919081019061124f565b6002546040517f8fae3be100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906105689086906004016116c2565b60206040518083038186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b8919081019061124f565b60408051600180825281830190925291925060609190816020015b6105db611085565b8152602001906001900390816105d357905050905060405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200160008152508160008151811061062957fe5b60209081029190910101526040805160028082526060828101909352816020015b61065261109c565b81526020019060019003908161064a57905050905061067084610c88565b8160008151811061067d57fe5b602002602001018190525061069183610c88565b8160018151811061069e57fe5b60209081029190910101526002546040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a67a6a45906107019085908590600401611706565b600060405180830381600087803b15801561071b57600080fd5b505af115801561072f573d6000803e3d6000fd5b505050506107e48b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161077091906116c2565b60206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107c0919081019061124f565b73ffffffffffffffffffffffffffffffffffffffff8916919063ffffffff610d5c16565b6108958b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161082191906116c2565b60206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610871919081019061124f565b73ffffffffffffffffffffffffffffffffffffffff8816919063ffffffff610d5c16565b5050600190950194506101739350505050565b50505050565b6108b6610a40565b6108ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6001546040517ff46901ed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063f46901ed906109429084906004016116c2565b600060405180830381600087803b15801561095c57600080fd5b505af1158015610970573d6000803e3d6000fd5b5050505050565b61097f610a40565b6109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff16610a62610e1e565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b610a86610a40565b610abc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b60005b818110156108a8576000838383818110610ad557fe5b9050602002016020610aea919081019061119f565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b2791906116c2565b60206040518083038186803b158015610b3f57600080fd5b505afa158015610b53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b77919081019061124f565b9050610ba073ffffffffffffffffffffffffffffffffffffffff8316878363ffffffff610d5c16565b5050600101610abf565b610bb2610a40565b610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b610bf181610e22565b50565b610bfc610a40565b610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6001546040517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a2e74af6906109429084906004016116c2565b610c9061109c565b604080516101008101825260018082526000602080840182905284516080810186529283529293840192820190815260200160018152602001600081525081526020018381526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020013073ffffffffffffffffffffffffffffffffffffffff1681526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020016040518060200160405280600081525081525090505b919050565b604051610e199084907fa9059cbb0000000000000000000000000000000000000000000000000000000090610d9790869086906024016116eb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610efc565b505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8116610e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611739565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610f1b8273ffffffffffffffffffffffffffffffffffffffff16611049565b610f51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611779565b600060608373ffffffffffffffffffffffffffffffffffffffff1683604051610f7a91906116b6565b6000604051808303816000865af19150503d8060008114610fb7576040519150601f19603f3d011682016040523d82523d6000602084013e610fbc565b606091505b509150915081610ff8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611749565b8051156108a857808060200190516110139190810190611231565b6108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611769565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061107d57508115155b949350505050565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201529081016110bc6110fb565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561112f81611865565b92915050565b805161112f81611865565b60008083601f84011261115257600080fd5b50813567ffffffffffffffff81111561116a57600080fd5b60208301915083602082028301111561118257600080fd5b9250929050565b805161112f81611879565b805161112f81611882565b6000602082840312156111b157600080fd5b600061107d8484611124565b6000602082840312156111cf57600080fd5b600061107d8484611135565b6000806000604084860312156111f057600080fd5b60006111fc8686611124565b935050602084013567ffffffffffffffff81111561121957600080fd5b61122586828701611140565b92509250509250925092565b60006020828403121561124357600080fd5b600061107d8484611189565b60006020828403121561126157600080fd5b600061107d8484611194565b6000806040838503121561128057600080fd5b600061128c8585611194565b925050602061129d85828601611194565b9150509250929050565b60006112b38383611598565b9392505050565b60006112c6838361168d565b505060400190565b6112d78161179c565b82525050565b60006112e88261178f565b6112f28185611793565b93508360208202850161130485611789565b8060005b8581101561133e578484038952815161132185826112a7565b945061132c83611789565b60209a909a0199925050600101611308565b5091979650505050505050565b60006113568261178f565b6113608185611793565b935061136b83611789565b8060005b8381101561139957815161138388826112ba565b975061138e83611789565b92505060010161136f565b509495945050505050565b6112d7816117a7565b60006113b88261178f565b6113c28185610d57565b93506113d28185602086016117fd565b9290920192915050565b60006113e78261178f565b6113f18185611793565b93506114018185602086016117fd565b61140a81611829565b9093019392505050565b6112d7816117dc565b6112d7816117e7565b6112d7816117f2565b600061143c602683611793565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b600061149b602083611793565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b60006114d4602083611793565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061150d602a83611793565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b600061156c601f83611793565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906115ad8582611414565b5060208301516115c060208601826116ad565b5060408301516115d36040860182611643565b5060608301516115e660c08601826116ad565b5060808301516115f960e08601826116ad565b5060a083015161160d6101008601826112ce565b5060c08301516116216101208601826116ad565b5060e083015184820361014086015261163a82826113dc565b95945050505050565b8051608083019061165484826113a4565b506020820151611667602085018261141d565b50604082015161167a604085018261141d565b5060608201516108a860608501826116ad565b8051604083019061169e84826112ce565b5060208201516108a860208501825b6112d7816117d9565b60006112b382846113ad565b6020810161112f82846112ce565b604081016116de82856112ce565b6112b36020830184611426565b604081016116f982856112ce565b6112b360208301846116ad565b60408082528101611717818561134b565b9050818103602083015261107d81846112dd565b6020810161112f82846113a4565b6020808252810161112f8161142f565b6020808252810161112f8161148e565b6020808252810161112f816114c7565b6020808252810161112f81611500565b6020808252810161112f8161155f565b60200190565b5190565b90815260200190565b600061112f826117c0565b151590565b80610d5781611851565b80610d578161185b565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b600061112f826117ac565b600061112f826117b6565b600061112f826117d9565b60005b83811015611818578181015183820152602001611800565b838111156108a85750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b60098110610bf157fe5b60028110610bf157fe5b61186e8161179c565b8114610bf157600080fd5b61186e816117a7565b61186e816117d956fea365627a7a7231582092e2e6255a6919c6b3464a9cd30ea1ad73ca05e9c6113ba92c34a310d95696496c6578706572696d656e74616cf564736f6c63430005100040",
186
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638f32d59b1161005b5780638f32d59b146100db578063908c94b4146100f0578063f2fde38b14610103578063f97d79a81461011657610088565b8063159446bf1461008d5780636f8a6372146100a2578063715018a6146100b55780638da5cb5b146100bd575b600080fd5b6100a061009b3660046111db565b610129565b005b6100a06100b036600461119f565b6108ae565b6100a0610977565b6100c5610a24565b6040516100d291906116c2565b60405180910390f35b6100e3610a40565b6040516100d2919061172b565b6100a06100fe3660046111db565b610a7e565b6100a061011136600461119f565b610baa565b6100a061012436600461119f565b610bf4565b610131610a40565b610170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b60405180910390fd5b60005b818110156108a857600083838381811061018957fe5b905060200201602061019e919081019061119f565b90508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb828373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101f691906116c2565b60206040518083038186803b15801561020e57600080fd5b505afa158015610222573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610246919081019061124f565b6040518363ffffffff1660e01b81526004016102639291906116eb565b602060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102b59190810190611231565b506040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690639dc29fac9061030b9030906000906004016116d0565b6040805180830381600087803b15801561032457600080fd5b505af1158015610338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061035c919081019061126d565b505060008173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103a657600080fd5b505afa1580156103ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103de91908101906111bd565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561042857600080fd5b505afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061046091908101906111bd565b6002546040517f8fae3be100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906104bc9086906004016116c2565b60206040518083038186803b1580156104d457600080fd5b505afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061050c919081019061124f565b6002546040517f8fae3be100000000000000000000000000000000000000000000000000000000815291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906105689086906004016116c2565b60206040518083038186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b8919081019061124f565b60408051600180825281830190925291925060609190816020015b6105db611085565b8152602001906001900390816105d357905050905060405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200160008152508160008151811061062957fe5b60209081029190910101526040805160028082526060828101909352816020015b61065261109c565b81526020019060019003908161064a57905050905061067084610c88565b8160008151811061067d57fe5b602002602001018190525061069183610c88565b8160018151811061069e57fe5b60209081029190910101526002546040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a67a6a45906107019085908590600401611706565b600060405180830381600087803b15801561071b57600080fd5b505af115801561072f573d6000803e3d6000fd5b505050506107e48b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161077091906116c2565b60206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107c0919081019061124f565b73ffffffffffffffffffffffffffffffffffffffff8916919063ffffffff610d5c16565b6108958b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161082191906116c2565b60206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610871919081019061124f565b73ffffffffffffffffffffffffffffffffffffffff8816919063ffffffff610d5c16565b5050600190950194506101739350505050565b50505050565b6108b6610a40565b6108ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6001546040517ff46901ed00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063f46901ed906109429084906004016116c2565b600060405180830381600087803b15801561095c57600080fd5b505af1158015610970573d6000803e3d6000fd5b5050505050565b61097f610a40565b6109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff16610a62610e1e565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b610a86610a40565b610abc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b60005b818110156108a8576000838383818110610ad557fe5b9050602002016020610aea919081019061119f565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b2791906116c2565b60206040518083038186803b158015610b3f57600080fd5b505afa158015610b53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b77919081019061124f565b9050610ba073ffffffffffffffffffffffffffffffffffffffff8316878363ffffffff610d5c16565b5050600101610abf565b610bb2610a40565b610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b610bf181610e22565b50565b610bfc610a40565b610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611759565b6001546040517fa2e74af600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a2e74af6906109429084906004016116c2565b610c9061109c565b604080516101008101825260018082526000602080840182905284516080810186529283529293840192820190815260200160018152602001600081525081526020018381526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020013073ffffffffffffffffffffffffffffffffffffffff1681526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020016040518060200160405280600081525081525090505b919050565b604051610e199084907fa9059cbb0000000000000000000000000000000000000000000000000000000090610d9790869086906024016116eb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610efc565b505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8116610e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611739565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610f1b8273ffffffffffffffffffffffffffffffffffffffff16611049565b610f51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611779565b600060608373ffffffffffffffffffffffffffffffffffffffff1683604051610f7a91906116b6565b6000604051808303816000865af19150503d8060008114610fb7576040519150601f19603f3d011682016040523d82523d6000602084013e610fbc565b606091505b509150915081610ff8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611749565b8051156108a857808060200190516110139190810190611231565b6108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016790611769565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061107d57508115155b949350505050565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201529081016110bc6110fb565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561112f81611865565b92915050565b805161112f81611865565b60008083601f84011261115257600080fd5b50813567ffffffffffffffff81111561116a57600080fd5b60208301915083602082028301111561118257600080fd5b9250929050565b805161112f81611879565b805161112f81611882565b6000602082840312156111b157600080fd5b600061107d8484611124565b6000602082840312156111cf57600080fd5b600061107d8484611135565b6000806000604084860312156111f057600080fd5b60006111fc8686611124565b935050602084013567ffffffffffffffff81111561121957600080fd5b61122586828701611140565b92509250509250925092565b60006020828403121561124357600080fd5b600061107d8484611189565b60006020828403121561126157600080fd5b600061107d8484611194565b6000806040838503121561128057600080fd5b600061128c8585611194565b925050602061129d85828601611194565b9150509250929050565b60006112b38383611598565b9392505050565b60006112c6838361168d565b505060400190565b6112d78161179c565b82525050565b60006112e88261178f565b6112f28185611793565b93508360208202850161130485611789565b8060005b8581101561133e578484038952815161132185826112a7565b945061132c83611789565b60209a909a0199925050600101611308565b5091979650505050505050565b60006113568261178f565b6113608185611793565b935061136b83611789565b8060005b8381101561139957815161138388826112ba565b975061138e83611789565b92505060010161136f565b509495945050505050565b6112d7816117a7565b60006113b88261178f565b6113c28185610d57565b93506113d28185602086016117fd565b9290920192915050565b60006113e78261178f565b6113f18185611793565b93506114018185602086016117fd565b61140a81611829565b9093019392505050565b6112d7816117dc565b6112d7816117e7565b6112d7816117f2565b600061143c602683611793565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b600061149b602083611793565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b60006114d4602083611793565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061150d602a83611793565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b600061156c601f83611793565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906115ad8582611414565b5060208301516115c060208601826116ad565b5060408301516115d36040860182611643565b5060608301516115e660c08601826116ad565b5060808301516115f960e08601826116ad565b5060a083015161160d6101008601826112ce565b5060c08301516116216101208601826116ad565b5060e083015184820361014086015261163a82826113dc565b95945050505050565b8051608083019061165484826113a4565b506020820151611667602085018261141d565b50604082015161167a604085018261141d565b5060608201516108a860608501826116ad565b8051604083019061169e84826112ce565b5060208201516108a860208501825b6112d7816117d9565b60006112b382846113ad565b6020810161112f82846112ce565b604081016116de82856112ce565b6112b36020830184611426565b604081016116f982856112ce565b6112b360208301846116ad565b60408082528101611717818561134b565b9050818103602083015261107d81846112dd565b6020810161112f82846113a4565b6020808252810161112f8161142f565b6020808252810161112f8161148e565b6020808252810161112f816114c7565b6020808252810161112f81611500565b6020808252810161112f8161155f565b60200190565b5190565b90815260200190565b600061112f826117c0565b151590565b80610d5781611851565b80610d578161185b565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b600061112f826117ac565b600061112f826117b6565b600061112f826117d9565b60005b83811015611818578181015183820152602001611800565b838111156108a85750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b60098110610bf157fe5b60028110610bf157fe5b61186e8161179c565b8114610bf157600080fd5b61186e816117a7565b61186e816117d956fea365627a7a7231582092e2e6255a6919c6b3464a9cd30ea1ad73ca05e9c6113ba92c34a310d95696496c6578706572696d656e74616cf564736f6c63430005100040",
187
187
  "sourceMap": "411:2943:4:-;;;643:220;8:9:-1;5:2;;;30:1;27;20:12;5:2;643:220:4;;;;;;;;;;;;;;;;;;;;;698:17:125;718:12;-1:-1:-1;;;;;718:10:125;:12;:::i;:::-;740:6;:18;;-1:-1:-1;;;;;;740:18:125;-1:-1:-1;;;;;740:18:125;;;;;;;773:43;;740:18;;-1:-1:-1;740:18:125;773:43;;740:6;;773:43;-1:-1:-1;744:14:4;:53;;-1:-1:-1;;;;;744:53:4;;;-1:-1:-1;;;;;;744:53:4;;;;;;;807:14;:49;;;;;;;;;;;411:2943;;788:96:122;867:10;788:96;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:399;;;278:2;266:9;257:7;253:23;249:32;246:2;;;294:1;291;284:12;246:2;329:1;346:64;402:7;382:9;346:64;;;336:74;;308:108;447:2;465:64;521:7;512:6;501:9;497:22;465:64;;;455:74;;426:109;240:305;;;;;;552:91;;-1:-1;;;;;712:54;;614:24;695:76;778:117;847:24;865:5;847:24;;;840:5;837:35;827:2;;886:1;883;876:12;827:2;821:74;;;411:2943:4;;;;;;",
188
188
  "deployedSourceMap": "411:2943:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;411:2943:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:1240;;;;;;;;;:::i;:::-;;869:128;;;;;;;;;:::i;1684:137:125:-;;;:::i;899:77::-;;;:::i;:::-;;;;;;;;;;;;;;;;1250:92;;;:::i;:::-;;;;;;;;1161:360:4;;;;;;;;;:::i;1970:107:125:-;;;;;;;;;:::i;1003:152:4:-;;;;;;;;;:::i;1527:1240::-;1103:9:125;:7;:9::i;:::-;1095:54;;;;;;;;;;;;;;;;;;;;;;1672:6:4;1667:1094;1684:19;;;1667:1094;;;1724:24;1768:8;;1777:1;1768:11;;;;;;;;;;;;;;;;;;;;;;1724:56;;1794:7;:16;;;1819:7;1829;:17;;;1855:4;1829:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:32:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1829:32:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1829:32:4;;;;;;;;;1794:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1794:68:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1794:68:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1794:68:4;;;;;;;;;-1:-1:-1;1876:30:4;;;;;:12;;;;;;:30;;1897:4;;1904:1;;1876:30;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1876:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1876:30:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1876:30:4;;;;;;;;;;;1921:14;1938:7;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:16:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1938:16:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1938:16:4;;;;;;;;;1921:33;;1968:14;1985:7;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1985:16:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1985:16:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1985:16:4;;;;;;;;;2033:14;;:48;;;;;1968:33;;-1:-1:-1;2016:14:4;;2033;;;;;:40;;:48;;2074:6;;2033:48;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2033:48:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2033:48:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2033:48:4;;;;;;;;;2112:14;;:48;;;;;2016:65;;-1:-1:-1;2095:14:4;;2112;;;;;:40;;:48;;2153:6;;2112:48;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:48:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2112:48:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2112:48:4;;;;;;;;;2208:21;;;2227:1;2208:21;;;;;;;;;2095:65;;-1:-1:-1;2175:30:4;;2208:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2175:54;;2257:30;;;;;;;;2278:4;2257:30;;;;;;2285:1;2257:30;;;2243:8;2252:1;2243:11;;;;;;;;;;;;;;;;;:44;2340:27;;;2365:1;2340:27;;;2302:35;2340:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2302:65;;2394:43;2427:9;2394:32;:43::i;:::-;2381:7;2389:1;2381:10;;;;;;;;;;;;;:56;;;;2464:43;2497:9;2464:32;:43::i;:::-;2451:7;2459:1;2451:10;;;;;;;;;;;;;;;;;:56;2522:14;;:41;;;;;:14;;;;;:22;;:41;;2545:8;;2555:7;;2522:41;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2522:41:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2522:41:4;;;;2578:79;2606:9;2624:6;2617:24;;;2650:4;2617:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2617:39:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2617:39:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2617:39:4;;;;;;;;;2578:27;;;;:79;;:27;:79;:::i;:::-;2671;2699:9;2717:6;2710:24;;;2743:4;2710:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:39:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2710:39:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2710:39:4;;;;;;;;;2671:27;;;;:79;;:27;:79;:::i;:::-;-1:-1:-1;;1705:3:4;;;;;-1:-1:-1;1667:1094:4;;-1:-1:-1;;;;1667:1094:4;;;1527:1240;;;:::o;869:128::-;1103:9:125;:7;:9::i;:::-;1095:54;;;;;;;;;;;;;;960:14:4;;:30;;;;;:14;;;;;:23;;:30;;984:5;;960:30;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;960:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;960:30:4;;;;869:128;:::o;1684:137:125:-;1103:9;:7;:9::i;:::-;1095:54;;;;;;;;;;;;;;1782:1;1766:6;;1745:40;;;1766:6;;;;1745:40;;1782:1;;1745:40;1812:1;1795:19;;;;;;1684:137::o;899:77::-;937:7;963:6;;;899:77;:::o;1250:92::-;1290:4;1329:6;;;;1313:12;:10;:12::i;:::-;:22;;;1306:29;;1250:92;:::o;1161:360:4:-;1103:9:125;:7;:9::i;:::-;1095:54;;;;;;;;;;;;;;1304:6:4;1299:216;1316:17;;;1299:216;;;1354:13;1370:6;;1377:1;1370:9;;;;;;;;;;;;;;;;;;;;;;1354:25;;1393:11;1414:5;1407:23;;;1439:4;1407:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1407:38:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1407:38:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1407:38:4;;;;;;;;;1393:52;-1:-1:-1;1459:45:4;:26;;;1486:9;1393:52;1459:45;:26;:45;:::i;:::-;-1:-1:-1;;1335:3:4;;1299:216;;1970:107:125;1103:9;:7;:9::i;:::-;1095:54;;;;;;;;;;;;;;2042:28;2061:8;2042:18;:28::i;:::-;1970:107;:::o;1003:152:4:-;1103:9:125;:7;:9::i;:::-;1095:54;;;;;;;;;;;;;;1106:14:4;;:42;;;;;:14;;;;;:29;;:42;;1136:11;;1106:42;;;;2773:578;2867:25;;:::i;:::-;2911:433;;;;;;;;2953:27;2911:433;;;-1:-1:-1;2911:433:4;;;;;;;3074:84;;;;;;;;;;2911:433;;;;;3074:84;;;;;;;3127:27;3074:84;;;;3156:1;3074:84;;;2911:433;;;;3186:8;2911:433;;;;3229:3;2911:433;;;;3266:4;2911:433;;;;;;3303:3;2911:433;;;;3324:9;;;;;;;;;;;;2911:433;;;2904:440;;2773:578;;;;:::o;662:174:127:-;770:58;;744:85;;763:5;;793:23;;770:58;;818:2;;822:5;;770:58;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;770:58:127;;;49:4:-1;25:18;;61:17;;770:58:127;182:15:-1;770:58:127;;;;179:29:-1;;;;160:49;;;744:18:127;:85::i;:::-;662:174;;;:::o;788:96:122:-;867:10;788:96;:::o;2178:225:125:-;2251:22;;;2243:73;;;;;;;;;;;;;;2352:6;;;2331:38;;;;;;;2352:6;;;2331:38;;;2379:6;:17;;;;;;;;;;;;;;;2178:225::o;2666:1095:127:-;3261:27;3269:5;3261:25;;;:27::i;:::-;3253:71;;;;;;;;;;;;;;3395:12;3409:23;3444:5;3436:19;;3456:4;3436:25;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3394:67:127;;;;3479:7;3471:52;;;;;;;;;;;;;;3538:17;;:21;3534:221;;3678:10;3667:30;;;;;;;;;;;;;;3659:85;;;;;;;;;;;;;686:610:128;746:4;1207:20;;1052:66;1246:23;;;;;;:42;;-1:-1:-1;1273:15:128;;;1246:42;1238:51;686:610;-1:-1:-1;;;;686:610:128:o;411:2943:4:-;;;;;;;;;;-1:-1:-1;411:2943:4;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;411:2943:4;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;411:2943:4;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:134;220:13;;238:33;220:13;238:33;;301:352;;;431:3;424:4;416:6;412:17;408:27;398:2;;449:1;446;439:12;398:2;-1:-1;469:20;;509:18;498:30;;495:2;;;541:1;538;531:12;495:2;575:4;567:6;563:17;551:29;;626:3;618:4;610:6;606:17;596:8;592:32;589:41;586:2;;;643:1;640;633:12;586:2;391:262;;;;;;661:128;736:13;;754:30;736:13;754:30;;796:134;874:13;;892:33;874:13;892:33;;937:241;;1041:2;1029:9;1020:7;1016:23;1012:32;1009:2;;;1057:1;1054;1047:12;1009:2;1092:1;1109:53;1154:7;1134:9;1109:53;;1185:263;;1300:2;1288:9;1279:7;1275:23;1271:32;1268:2;;;1316:1;1313;1306:12;1268:2;1351:1;1368:64;1424:7;1404:9;1368:64;;1455:522;;;;1611:2;1599:9;1590:7;1586:23;1582:32;1579:2;;;1627:1;1624;1617:12;1579:2;1662:1;1679:53;1724:7;1704:9;1679:53;;;1669:63;;1641:97;1797:2;1786:9;1782:18;1769:32;1821:18;1813:6;1810:30;1807:2;;;1853:1;1850;1843:12;1807:2;1881:80;1953:7;1944:6;1933:9;1929:22;1881:80;;;1871:90;;;;1748:219;1573:404;;;;;;1984:257;;2096:2;2084:9;2075:7;2071:23;2067:32;2064:2;;;2112:1;2109;2102:12;2064:2;2147:1;2164:61;2217:7;2197:9;2164:61;;2248:263;;2363:2;2351:9;2342:7;2338:23;2334:32;2331:2;;;2379:1;2376;2369:12;2331:2;2414:1;2431:64;2487:7;2467:9;2431:64;;2518:399;;;2650:2;2638:9;2629:7;2625:23;2621:32;2618:2;;;2666:1;2663;2656:12;2618:2;2701:1;2718:64;2774:7;2754:9;2718:64;;;2708:74;;2680:108;2819:2;2837:64;2893:7;2884:6;2873:9;2869:22;2837:64;;;2827:74;;2798:109;2612:305;;;;;;2925:257;;3076:100;3172:3;3164:6;3076:100;;;3062:114;3055:127;-1:-1;;;3055:127;3191:253;;3316:88;3400:3;3392:6;3316:88;;;-1:-1;;3433:4;3424:14;;3309:135;3452:103;3525:24;3543:5;3525:24;;;3520:3;3513:37;3507:48;;;3749:1048;;3944:79;4017:5;3944:79;;;4036:111;4140:6;4135:3;4036:111;;;4029:118;;4170:3;4212:4;4204:6;4200:17;4195:3;4191:27;4239:81;4314:5;4239:81;;;4340:7;4368:1;4353:405;4378:6;4375:1;4372:13;4353:405;;;4440:9;4434:4;4430:20;4425:3;4418:33;4485:6;4479:13;4507:114;4616:4;4601:13;4507:114;;;4499:122;;4638:85;4716:6;4638:85;;;4746:4;4737:14;;;;;4628:95;-1:-1;;4400:1;4393:9;4353:405;;;-1:-1;4771:4;;3923:874;-1:-1;;;;;;;3923:874;4860:842;;5043:73;5110:5;5043:73;;;5129:105;5227:6;5222:3;5129:105;;;5122:112;;5255:75;5324:5;5255:75;;;5350:7;5378:1;5363:317;5388:6;5385:1;5382:13;5363:317;;;5455:6;5449:13;5476:101;5573:3;5558:13;5476:101;;;5469:108;;5594:79;5666:6;5594:79;;;5584:89;-1:-1;;5410:1;5403:9;5363:317;;;-1:-1;5693:3;;5022:680;-1:-1;;;;;5022:680;5710:94;5777:21;5792:5;5777:21;;5922:356;;6050:38;6082:5;6050:38;;;6100:88;6181:6;6176:3;6100:88;;;6093:95;;6193:52;6238:6;6233:3;6226:4;6219:5;6215:16;6193:52;;;6257:16;;;;;6030:248;-1:-1;;6030:248;6285:315;;6381:34;6409:5;6381:34;;;6427:60;6480:6;6475:3;6427:60;;;6420:67;;6492:52;6537:6;6532:3;6525:4;6518:5;6514:16;6492:52;;;6565:29;6587:6;6565:29;;;6556:39;;;;6361:239;-1:-1;;;6361:239;6607:144;6694:51;6739:5;6694:51;;6758:158;6852:58;6904:5;6852:58;;7082:142;7173:45;7212:5;7173:45;;7232:375;;7392:67;7456:2;7451:3;7392:67;;;7492:34;7472:55;;7561:8;7556:2;7547:12;;7540:30;7598:2;7589:12;;7378:229;-1:-1;;7378:229;7616:332;;7776:67;7840:2;7835:3;7776:67;;;7876:34;7856:55;;7939:2;7930:12;;7762:186;-1:-1;;7762:186;7957:332;;8117:67;8181:2;8176:3;8117:67;;;8217:34;8197:55;;8280:2;8271:12;;8103:186;-1:-1;;8103:186;8298:379;;8458:67;8522:2;8517:3;8458:67;;;8558:34;8538:55;;8627:12;8622:2;8613:12;;8606:34;8668:2;8659:12;;8444:233;-1:-1;;8444:233;8686:331;;8846:67;8910:2;8905:3;8846:67;;;8946:33;8926:54;;9008:2;8999:12;;8832:185;-1:-1;;8832:185;9086:1616;9305:23;;9086:1616;;9231:6;9222:16;;;9334:77;9226:3;9305:23;9334:77;;;9253:164;9495:4;9488:5;9484:16;9478:23;9507:63;9564:4;9559:3;9555:14;9541:12;9507:63;;;9427:149;9651:4;9644:5;9640:16;9634:23;9663:119;9776:4;9771:3;9767:14;9753:12;9663:119;;;9586:202;9872:4;9865:5;9861:16;9855:23;9884:63;9941:4;9936:3;9932:14;9918:12;9884:63;;;9798:155;10039:4;10032:5;10028:16;10022:23;10051:63;10108:4;10103:3;10099:14;10085:12;10051:63;;;9963:157;10201:4;10194:5;10190:16;10184:23;10213:65;10270:6;10265:3;10261:16;10247:12;10213:65;;;10130:154;10367:4;10360:5;10356:16;10350:23;10379:65;10436:6;10431:3;10427:16;10413:12;10379:65;;;10294:156;10523:4;10516:5;10512:16;10506:23;10577:3;10571:4;10567:14;10558:6;10553:3;10549:16;10542:40;10597:67;10659:4;10645:12;10597:67;;;10589:75;9204:1498;-1:-1;;;;;9204:1498;10768:821;10973:23;;10907:4;10898:14;;;11002:57;10902:3;10973:23;11002:57;;;10927:138;11146:4;11139:5;11135:16;11129:23;11158:84;11236:4;11231:3;11227:14;11213:12;11158:84;;;11075:173;11320:4;11313:5;11309:16;11303:23;11332:81;11407:4;11402:3;11398:14;11384:12;11332:81;;;11258:161;11493:4;11486:5;11482:16;11476:23;11505:63;11562:4;11557:3;11553:14;11539:12;11505:63;;11645:461;11837:23;;11770:4;11761:14;;;11866:63;11765:3;11837:23;11866:63;;;11790:145;12010:4;12003:5;11999:16;11993:23;12022:63;12079:4;12074:3;12070:14;12056:12;12113:103;12186:24;12204:5;12186:24;;12343:262;;12487:93;12576:3;12567:6;12487:93;;12612:213;12730:2;12715:18;;12744:71;12719:9;12788:6;12744:71;;12832:340;12986:2;12971:18;;13000:71;12975:9;13044:6;13000:71;;;13082:80;13158:2;13147:9;13143:18;13134:6;13082:80;;13179:324;13325:2;13310:18;;13339:71;13314:9;13383:6;13339:71;;;13421:72;13489:2;13478:9;13474:18;13465:6;13421:72;;13510:796;13844:2;13858:47;;;13829:18;;13919:146;13829:18;14051:6;13919:146;;;13911:154;;14113:9;14107:4;14103:20;14098:2;14087:9;14083:18;14076:48;14138:158;14291:4;14282:6;14138:158;;14313:201;14425:2;14410:18;;14439:65;14414:9;14477:6;14439:65;;14521:407;14712:2;14726:47;;;14697:18;;14787:131;14697:18;14787:131;;14935:407;15126:2;15140:47;;;15111:18;;15201:131;15111:18;15201:131;;15349:407;15540:2;15554:47;;;15525:18;;15615:131;15525:18;15615:131;;15763:407;15954:2;15968:47;;;15939:18;;16029:131;15939:18;16029:131;;16177:407;16368:2;16382:47;;;16353:18;;16443:131;16353:18;16443:131;;16591:176;16740:4;16731:14;;16688:79;16951:162;17079:12;;17050:63;17810:203;17953:19;;;18002:4;17993:14;;17946:67;18713:91;;18775:24;18793:5;18775:24;;18811:85;18877:13;18870:21;;18853:43;18903:138;18981:5;18987:49;18981:5;18987:49;;19048:152;19133:5;19139:56;19133:5;19139:56;;19360:121;19433:42;19422:54;;19405:76;19488:72;19550:5;19533:27;19567:138;;19660:40;19694:5;19660:40;;19712:152;;19812:47;19853:5;19812:47;;20024:116;;20111:24;20129:5;20111:24;;20148:268;20213:1;20220:101;20234:6;20231:1;20228:13;20220:101;;;20301:11;;;20295:18;20282:11;;;20275:39;20256:2;20249:10;20220:101;;;20336:6;20333:1;20330:13;20327:2;;;-1:-1;;20401:1;20383:16;;20376:27;20197:219;20424:97;20512:2;20492:14;20508:7;20488:28;;20472:49;20529:107;20614:1;20607:5;20604:12;20594:2;;20620:9;20643:114;20735:1;20728:5;20725:12;20715:2;;20741:9;20882:117;20951:24;20969:5;20951:24;;;20944:5;20941:35;20931:2;;20990:1;20987;20980:12;21006:111;21072:21;21087:5;21072:21;;21124:117;21193:24;21211:5;21193:24;",
189
189
  "source": "pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts/ownership/Ownable.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\n\nimport \"../../protocol/interfaces/IDolomiteMargin.sol\";\nimport \"../../protocol/lib/Account.sol\";\nimport \"../../protocol/lib/Actions.sol\";\n\nimport \"../interfaces/IDolomiteAmmFactory.sol\";\nimport \"../interfaces/IDolomiteAmmPair.sol\";\n\n\ncontract SimpleFeeOwner is Ownable {\n using SafeERC20 for IERC20;\n\n event OwnershipChanged(address indexed newOwner, address indexed oldOwner);\n\n IDolomiteAmmFactory uniswapFactory;\n IDolomiteMargin dolomiteMargin;\n\n constructor(\n address _uniswapFactory,\n address _dolomiteMargin\n ) public {\n uniswapFactory = IDolomiteAmmFactory(_uniswapFactory);\n dolomiteMargin = IDolomiteMargin(_dolomiteMargin);\n }\n\n function uniswapSetFeeTo(\n address feeTo\n )\n external\n onlyOwner {\n uniswapFactory.setFeeTo(feeTo);\n }\n\n function uniswapSetFeeToSetter(\n address feeToSetter\n )\n external\n onlyOwner {\n uniswapFactory.setFeeToSetter(feeToSetter);\n }\n\n function withdrawAllFeesByTokens(\n address recipient,\n address[] calldata tokens\n )\n external\n onlyOwner {\n for (uint i = 0; i < tokens.length; i++) {\n address token = tokens[i];\n uint amount = IERC20(token).balanceOf(address(this));\n IERC20(token).safeTransfer(recipient, amount);\n }\n }\n\n function unwrapAllFeesByLpTokens(\n address recipient,\n address[] calldata lpTokens\n )\n external\n onlyOwner {\n for (uint i = 0; i < lpTokens.length; i++) {\n IDolomiteAmmPair lpToken = IDolomiteAmmPair(lpTokens[i]);\n lpToken.transfer(address(lpToken), lpToken.balanceOf(address(this)));\n lpToken.burn(address(this), 0);\n\n address token0 = lpToken.token0();\n address token1 = lpToken.token1();\n\n uint marketId0 = dolomiteMargin.getMarketIdByTokenAddress(token0);\n uint marketId1 = dolomiteMargin.getMarketIdByTokenAddress(token1);\n\n Account.Info[] memory accounts = new Account.Info[](1);\n accounts[0] = Account.Info(address(this), 0);\n\n Actions.ActionArgs[] memory actions = new Actions.ActionArgs[](2);\n actions[0] = _encodeWithdrawAllToThisContract(marketId0);\n actions[1] = _encodeWithdrawAllToThisContract(marketId1);\n\n dolomiteMargin.operate(accounts, actions);\n\n IERC20(token0).safeTransfer(recipient, IERC20(token0).balanceOf(address(this)));\n IERC20(token1).safeTransfer(recipient, IERC20(token1).balanceOf(address(this)));\n }\n }\n\n function _encodeWithdrawAllToThisContract(\n uint marketId\n ) internal view returns (Actions.ActionArgs memory) {\n return Actions.ActionArgs({\n actionType : Actions.ActionType.Withdraw,\n accountId : 0,\n /* solium-disable-next-line arg-overflow */\n amount : Types.AssetAmount(true, Types.AssetDenomination.Wei, Types.AssetReference.Target, 0),\n primaryMarketId : marketId,\n secondaryMarketId : uint(- 1),\n otherAddress : address(this),\n otherAccountId : uint(- 1),\n data : bytes(\"\")\n });\n }\n\n}\n",
190
- "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/amm/SimpleFeeOwner.sol",
190
+ "sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/amm/SimpleFeeOwner.sol",
191
191
  "ast": {
192
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/amm/SimpleFeeOwner.sol",
192
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/amm/SimpleFeeOwner.sol",
193
193
  "exportedSymbols": {
194
194
  "SimpleFeeOwner": [
195
195
  2745
@@ -241,7 +241,7 @@
241
241
  "unitAlias": ""
242
242
  },
243
243
  {
244
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol",
244
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
245
245
  "file": "../../protocol/interfaces/IDolomiteMargin.sol",
246
246
  "id": 2418,
247
247
  "nodeType": "ImportDirective",
@@ -252,7 +252,7 @@
252
252
  "unitAlias": ""
253
253
  },
254
254
  {
255
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol",
255
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
256
256
  "file": "../../protocol/lib/Account.sol",
257
257
  "id": 2419,
258
258
  "nodeType": "ImportDirective",
@@ -263,7 +263,7 @@
263
263
  "unitAlias": ""
264
264
  },
265
265
  {
266
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol",
266
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
267
267
  "file": "../../protocol/lib/Actions.sol",
268
268
  "id": 2420,
269
269
  "nodeType": "ImportDirective",
@@ -274,7 +274,7 @@
274
274
  "unitAlias": ""
275
275
  },
276
276
  {
277
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmFactory.sol",
277
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol",
278
278
  "file": "../interfaces/IDolomiteAmmFactory.sol",
279
279
  "id": 2421,
280
280
  "nodeType": "ImportDirective",
@@ -285,7 +285,7 @@
285
285
  "unitAlias": ""
286
286
  },
287
287
  {
288
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmPair.sol",
288
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol",
289
289
  "file": "../interfaces/IDolomiteAmmPair.sol",
290
290
  "id": 2422,
291
291
  "nodeType": "ImportDirective",
@@ -4764,7 +4764,7 @@
4764
4764
  "src": "0:3355:4"
4765
4765
  },
4766
4766
  "legacyAST": {
4767
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/amm/SimpleFeeOwner.sol",
4767
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/amm/SimpleFeeOwner.sol",
4768
4768
  "exportedSymbols": {
4769
4769
  "SimpleFeeOwner": [
4770
4770
  2745
@@ -4816,7 +4816,7 @@
4816
4816
  "unitAlias": ""
4817
4817
  },
4818
4818
  {
4819
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol",
4819
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
4820
4820
  "file": "../../protocol/interfaces/IDolomiteMargin.sol",
4821
4821
  "id": 2418,
4822
4822
  "nodeType": "ImportDirective",
@@ -4827,7 +4827,7 @@
4827
4827
  "unitAlias": ""
4828
4828
  },
4829
4829
  {
4830
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol",
4830
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
4831
4831
  "file": "../../protocol/lib/Account.sol",
4832
4832
  "id": 2419,
4833
4833
  "nodeType": "ImportDirective",
@@ -4838,7 +4838,7 @@
4838
4838
  "unitAlias": ""
4839
4839
  },
4840
4840
  {
4841
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol",
4841
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
4842
4842
  "file": "../../protocol/lib/Actions.sol",
4843
4843
  "id": 2420,
4844
4844
  "nodeType": "ImportDirective",
@@ -4849,7 +4849,7 @@
4849
4849
  "unitAlias": ""
4850
4850
  },
4851
4851
  {
4852
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmFactory.sol",
4852
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol",
4853
4853
  "file": "../interfaces/IDolomiteAmmFactory.sol",
4854
4854
  "id": 2421,
4855
4855
  "nodeType": "ImportDirective",
@@ -4860,7 +4860,7 @@
4860
4860
  "unitAlias": ""
4861
4861
  },
4862
4862
  {
4863
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmPair.sol",
4863
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol",
4864
4864
  "file": "../interfaces/IDolomiteAmmPair.sol",
4865
4865
  "id": 2422,
4866
4866
  "nodeType": "ImportDirective",
@@ -9386,56 +9386,11 @@
9386
9386
  },
9387
9387
  "links": {},
9388
9388
  "address": "0x7231ECd1355a60251eE56Bf81f987969fc9bAe29",
9389
- "transactionHash": "0x8cc10ae982ec46c6f514727978ca5eb3fabfc2de5e73b5513716c29f557840f1"
9390
- },
9391
- "80001": {
9392
- "events": {
9393
- "0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b": {
9394
- "anonymous": false,
9395
- "inputs": [
9396
- {
9397
- "indexed": true,
9398
- "internalType": "address",
9399
- "name": "newOwner",
9400
- "type": "address"
9401
- },
9402
- {
9403
- "indexed": true,
9404
- "internalType": "address",
9405
- "name": "oldOwner",
9406
- "type": "address"
9407
- }
9408
- ],
9409
- "name": "OwnershipChanged",
9410
- "type": "event"
9411
- },
9412
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
9413
- "anonymous": false,
9414
- "inputs": [
9415
- {
9416
- "indexed": true,
9417
- "internalType": "address",
9418
- "name": "previousOwner",
9419
- "type": "address"
9420
- },
9421
- {
9422
- "indexed": true,
9423
- "internalType": "address",
9424
- "name": "newOwner",
9425
- "type": "address"
9426
- }
9427
- ],
9428
- "name": "OwnershipTransferred",
9429
- "type": "event"
9430
- }
9431
- },
9432
- "links": {},
9433
- "address": "0x6BfB8Cd5Cdbfa58818626a8f25708aE76Fc50f3e",
9434
- "transactionHash": "0x67178eb1b2cf0bb882b93cc04c83bc863be00bee2d3464a913df31cacd151b69"
9389
+ "transactionHash": "0x42782f763149c776ae83158ea43632502382de1ef05b5065f6edb74db5033ea8"
9435
9390
  }
9436
9391
  },
9437
9392
  "schemaVersion": "3.0.23",
9438
- "updatedAt": "2022-02-04T01:55:00.726Z",
9393
+ "updatedAt": "2022-02-07T07:18:44.800Z",
9439
9394
  "devdoc": {
9440
9395
  "methods": {
9441
9396
  "isOwner()": {
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "contractName": "State",
3
3
  "abi": [],
4
- "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"dYdX * Base-level contract that holds the state of DolomiteMargin\",\"methods\":{},\"title\":\"State\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/State.sol\":\"State\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/State.sol\":{\"keccak256\":\"0x4fe464f16c7f490dbe7f43e9672ddf1296852a4a652303a47a91bc7a3c72419b\",\"urls\":[\"bzz-raw://725237be55e03e728e268407c47704af1c93b1fddf277b5e6447d864b9f0bbfb\",\"dweb:/ipfs/QmNZfmH9XMXGdd21DMv2aNU4X152uDVUrpns64kZn1ryVn\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/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/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x73e75454568c5dfc3bdcf7dbf2ddce6ab8d3d317618bc1f1957f7667e15d3799\",\"urls\":[\"bzz-raw://7b1c8a9a79c8ffdbb0fa633f713ae3dfeac93b31d2b1639614ac32d473fb8250\",\"dweb:/ipfs/QmfARP93W2mgeVwD9Lkd3yVmbCLF2Mos7o8HJ1x6WYQmxZ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xf930fbde3ab43ec8f079dbad062453b502542f53b7eec670c8e86c7a2e47dd9a\",\"urls\":[\"bzz-raw://e1c402fc55471e8372be478e99f91c28373f096e31f0ef1d5072dfdb81541c29\",\"dweb:/ipfs/QmTc8WSfFCbxNQqNpq1vptUVFxteKQ8HWEhyXREyPZ2neu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@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}",
5
- "bytecode": "0x6080604052348015600f57600080fd5b50604c80601d6000396000f3fe6080604052600080fdfea365627a7a72315820f31b125a6b6c209da0bbe0191125291f198e9c776e6ed886ea5aa1ae703e9b2d6c6578706572696d656e74616cf564736f6c63430005100040",
6
- "deployedBytecode": "0x6080604052600080fdfea365627a7a72315820f31b125a6b6c209da0bbe0191125291f198e9c776e6ed886ea5aa1ae703e9b2d6c6578706572696d656e74616cf564736f6c63430005100040",
4
+ "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"dYdX * Base-level contract that holds the state of DolomiteMargin\",\"methods\":{},\"title\":\"State\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/State.sol\":\"State\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/State.sol\":{\"keccak256\":\"0x4fe464f16c7f490dbe7f43e9672ddf1296852a4a652303a47a91bc7a3c72419b\",\"urls\":[\"bzz-raw://725237be55e03e728e268407c47704af1c93b1fddf277b5e6447d864b9f0bbfb\",\"dweb:/ipfs/QmNZfmH9XMXGdd21DMv2aNU4X152uDVUrpns64kZn1ryVn\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x73e75454568c5dfc3bdcf7dbf2ddce6ab8d3d317618bc1f1957f7667e15d3799\",\"urls\":[\"bzz-raw://7b1c8a9a79c8ffdbb0fa633f713ae3dfeac93b31d2b1639614ac32d473fb8250\",\"dweb:/ipfs/QmfARP93W2mgeVwD9Lkd3yVmbCLF2Mos7o8HJ1x6WYQmxZ\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xf930fbde3ab43ec8f079dbad062453b502542f53b7eec670c8e86c7a2e47dd9a\",\"urls\":[\"bzz-raw://e1c402fc55471e8372be478e99f91c28373f096e31f0ef1d5072dfdb81541c29\",\"dweb:/ipfs/QmTc8WSfFCbxNQqNpq1vptUVFxteKQ8HWEhyXREyPZ2neu\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@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}",
5
+ "bytecode": "0x6080604052348015600f57600080fd5b50604c80601d6000396000f3fe6080604052600080fdfea365627a7a723158209857ec61256e3a8a58e312abbc0c22a00883006d69087bcd1fff1de23360b7d46c6578706572696d656e74616cf564736f6c63430005100040",
6
+ "deployedBytecode": "0x6080604052600080fdfea365627a7a723158209857ec61256e3a8a58e312abbc0c22a00883006d69087bcd1fff1de23360b7d46c6578706572696d656e74616cf564736f6c63430005100040",
7
7
  "sourceMap": "814:54:52:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;814:54:52;;;;;;;",
8
8
  "deployedSourceMap": "814:54:52:-;;;;;",
9
9
  "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 { Storage } from \"./lib/Storage.sol\";\n\n\n/**\n * @title State\n * @author dYdX\n *\n * Base-level contract that holds the state of DolomiteMargin\n */\ncontract State\n{\n Storage.State internal g_state;\n}\n",
10
- "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/State.sol",
10
+ "sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/State.sol",
11
11
  "ast": {
12
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/State.sol",
12
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/State.sol",
13
13
  "exportedSymbols": {
14
14
  "State": [
15
15
  23892
@@ -39,7 +39,7 @@
39
39
  "src": "627:33:52"
40
40
  },
41
41
  {
42
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol",
42
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol",
43
43
  "file": "./lib/Storage.sol",
44
44
  "id": 23889,
45
45
  "nodeType": "ImportDirective",
@@ -103,7 +103,7 @@
103
103
  "src": "603:266:52"
104
104
  },
105
105
  "legacyAST": {
106
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/State.sol",
106
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/State.sol",
107
107
  "exportedSymbols": {
108
108
  "State": [
109
109
  23892
@@ -133,7 +133,7 @@
133
133
  "src": "627:33:52"
134
134
  },
135
135
  {
136
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol",
136
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol",
137
137
  "file": "./lib/Storage.sol",
138
138
  "id": 23889,
139
139
  "nodeType": "ImportDirective",
@@ -202,7 +202,7 @@
202
202
  },
203
203
  "networks": {},
204
204
  "schemaVersion": "3.0.23",
205
- "updatedAt": "2022-02-04T01:55:01.089Z",
205
+ "updatedAt": "2022-02-07T07:18:45.191Z",
206
206
  "devdoc": {
207
207
  "author": "dYdX * Base-level contract that holds the state of DolomiteMargin",
208
208
  "methods": {},