@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
@@ -175,15 +175,15 @@
175
175
  "type": "function"
176
176
  }
177
177
  ],
178
- "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dolomiteMargin\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isCallerTrusted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isTrusted\",\"type\":\"bool\"}],\"name\":\"setIsCallerTrusted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"transferMultiple\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"markets\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"transferMultipleWithMarkets\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Dolomite * Contract for sending internal balances within Dolomite to other users/margin accounts easily\",\"methods\":{},\"title\":\"TransferProxy\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/TransferProxy.sol\":\"TransferProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xfc9ce2f5a274ec66668c133f09fe213bc1a6a739f9147f4357a3493094de8deb\",\"urls\":[\"bzz-raw://e45442587f111fa0d85dd85a4e07993f5fecd1afce4f457ed21441f8b0abb937\",\"dweb:/ipfs/QmaNq3j3PUwb8Wrx2gEmFFsVa2GByDEkDCPGdwo2qvMeKh\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/ITransferProxy.sol\":{\"keccak256\":\"0x2462d5f68186bb53e33ff9bef2a4c5a815ea09e2c0f32d2eb736b50513e30244\",\"urls\":[\"bzz-raw://43c2590e5e8cb01361fc0ac3d8d8b44b86d434d8a35d80c60b9ad3f0c54dbc2b\",\"dweb:/ipfs/QmYdptf2jFNba3aFRhcGPNdZ14QD9ZLM9tRbEWB2GFmMsa\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/TransferProxy.sol\":{\"keccak256\":\"0x3311e2ae1c89e2a616a918b2c0869919d3af75ed99265ccff9e4debeba036b2c\",\"urls\":[\"bzz-raw://d3c0ec557ddeec9e03c6c85060b925bec29c1f5f6fade2ce137f28d4b140ce23\",\"dweb:/ipfs/QmSoqHLc5fvdDmcqX6h2wRx4cmLovn4s1MdQRMp6d7ioNA\"]},\"/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/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\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}",
179
- "bytecode": "0x60806040523480156200001157600080fd5b50604051620016653803806200166583398101604081905262000034916200007b565b6000805460ff60a01b196001600160a01b039093166001600160a01b03199091161791909116600160a01b179055620000d0565b80516200007581620000b6565b92915050565b6000602082840312156200008e57600080fd5b60006200009c848462000068565b949350505050565b60006001600160a01b03821662000075565b620000c181620000a4565b8114620000cd57600080fd5b50565b61158580620000e06000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80639afd5388116100505780639afd5388146100ca578063d9e2b3a9146100dd578063f89fb725146100f057610072565b806315c14a4a1461007757806361bf17b41461009557806387ff090a146100b5575b600080fd5b61007f610103565b60405161008c91906113e2565b60405180910390f35b6100a86100a3366004610e8c565b61011f565b60405161008c91906113d4565b6100c86100c3366004610f9d565b610134565b005b6100c86100d8366004610eb2565b6102cf565b6100c86100eb366004610f28565b610414565b6100c86100fe366004610f9d565b610616565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60016020526000908152604090205460ff1681565b60005474010000000000000000000000000000000000000000900460ff16610191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546102169060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b61028688888888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525061094792505050565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b6000546040517f052f72d70000000000000000000000000000000000000000000000000000000081526103be9173ffffffffffffffffffffffffffffffffffffffff169063052f72d7906103279033906004016113a1565b60206040518083038186803b15801561033f57600080fd5b505afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103779190810190610eec565b7f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005474010000000000000000000000000000000000000000900460ff16610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546104ed9060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b6040805160018082528183019092526060916020808301908038833950506000546040517f8fae3be100000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff1691638fae3be19150610563908790600401611393565b60206040518083038186803b15801561057b57600080fd5b505afa15801561058f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b39190810190610f0a565b816000815181106105c057fe5b602090810291909101015260408051600180825281830190925260609181602001602082028038833901905050905083816000815181106105fd57fe5b6020026020010181815250506102868888888585610947565b60005474010000000000000000000000000000000000000000900460ff1661066a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546106ef9060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b60005460408051868152602080880282010190915273ffffffffffffffffffffffffffffffffffffffff90911690606090868015610737578160200160208202803883390190505b50905060005b815181101561080e578273ffffffffffffffffffffffffffffffffffffffff16638fae3be189898481811061076e57fe5b90506020020160206107839190810190610e8c565b6040518263ffffffff1660e01b815260040161079f9190611393565b60206040518083038186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ef9190810190610f0a565b8282815181106107fb57fe5b602090810291909101015260010161073d565b5061084f8a8a8a8489898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061094792505050565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050505050505050565b82610942576108a882610c91565b7f3a200000000000000000000000000000000000000000000000000000000000006108d283610c91565b6040516020016108e49392919061136b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610188916004016113f0565b505050565b61099681518351147f5472616e7366657250726f7879000000000000000000000000000000000000007f696e76616c696420706172616d73206c656e677468000000000000000000000061089a565b6040805160028082526060828101909352816020015b6109b4610d67565b8152602001906001900390816109ac57905050905060405180604001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018781525081600081518110610a0157fe5b602002602001018190525060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581525081600181518110610a4457fe5b602002602001018190525060608351604051908082528060200260200182016040528015610a8c57816020015b610a79610d7e565b815260200190600190039081610a715790505b50905060005b8451811015610bfd57610aa3610ddd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858381518110610ad057fe5b60200260200101511415610b0b5760408051608081019091526001815260208101600081526020016001815260200160008152509050610b46565b604080516080810190915260008082526020820190815260200160008152602001868481518110610b3857fe5b602002602001015181525090505b604080516101008101909152806002815260200160008152602001828152602001878481518110610b7357fe5b602002602001015181526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016001815260200160405180602001604052806000815250815250838381518110610be957fe5b602090810291909101015250600101610a92565b506000546040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a67a6a4590610c5690859085906004016113af565b600060405180830381600087803b158015610c7057600080fd5b505af1158015610c84573d6000803e3d6000fd5b5050505050505050505050565b60608082604051602001610ca59190611356565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b8015610d4e5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110610d1157fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610d495760010181529050610d62565b610cd8565b505060408051600081526020810190915290505b919050565b604080518082019091526000808252602082015290565b604080516101008101825260008082526020820152908101610d9e610ddd565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b8035610e118161151c565b92915050565b60008083601f840112610e2957600080fd5b50813567ffffffffffffffff811115610e4157600080fd5b602083019150836020820283011115610e5957600080fd5b9250929050565b8035610e1181611530565b8051610e1181611530565b8035610e1181611539565b8051610e1181611539565b600060208284031215610e9e57600080fd5b6000610eaa8484610e06565b949350505050565b60008060408385031215610ec557600080fd5b6000610ed18585610e06565b9250506020610ee285828601610e60565b9150509250929050565b600060208284031215610efe57600080fd5b6000610eaa8484610e6b565b600060208284031215610f1c57600080fd5b6000610eaa8484610e81565b600080600080600060a08688031215610f4057600080fd5b6000610f4c8888610e76565b9550506020610f5d88828901610e06565b9450506040610f6e88828901610e76565b9350506060610f7f88828901610e06565b9250506080610f9088828901610e76565b9150509295509295909350565b600080600080600080600060a0888a031215610fb857600080fd5b6000610fc48a8a610e76565b9750506020610fd58a828b01610e06565b9650506040610fe68a828b01610e76565b955050606088013567ffffffffffffffff81111561100357600080fd5b61100f8a828b01610e17565b9450945050608088013567ffffffffffffffff81111561102e57600080fd5b61103a8a828b01610e17565b925092505092959891949750929550565b60006110578383611232565b9392505050565b600061106a838361132d565b505060400190565b61107b81611489565b82525050565b61107b81611424565b600061109582611417565b61109f818561141b565b9350836020820285016110b185611411565b8060005b858110156110eb57848403895281516110ce858261104b565b94506110d983611411565b60209a909a01999250506001016110b5565b5091979650505050505050565b600061110382611417565b61110d818561141b565b935061111883611411565b8060005b83811015611146578151611130888261105e565b975061113b83611411565b92505060010161111c565b509495945050505050565b61107b8161142f565b61107b61116682611434565b611459565b61107b61116682611459565b600061118282611417565b61118c8185610d62565b935061119c8185602086016114b1565b9290920192915050565b60006111b182611417565b6111bb818561141b565b93506111cb8185602086016114b1565b6111d4816114dd565b9093019392505050565b61107b81611490565b61107b8161149b565b61107b816114a6565b6000611206601f8361141b565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b805160009061016084019061124785826111e7565b50602083015161125a602086018261134d565b50604083015161126d60408601826112dd565b50606083015161128060c086018261134d565b50608083015161129360e086018261134d565b5060a08301516112a7610100860182611081565b5060c08301516112bb61012086018261134d565b5060e08301518482036101408601526112d482826111a6565b95945050505050565b805160808301906112ee8482611151565b50602082015161130160208501826111f0565b50604082015161131460408501826111f0565b506060820151611327606085018261134d565b50505050565b8051604083019061133e8482611081565b50602082015161132760208501825b61107b81611459565b6000611362828461116b565b50602001919050565b60006113778286611177565b9150611383828561115a565b6002820191506112d48284611177565b60208101610e118284611081565b60208101610e118284611072565b604080825281016113c081856110f8565b90508181036020830152610eaa818461108a565b60208101610e118284611151565b60208101610e1182846111de565b6020808252810161105781846111a6565b60208082528101610e11816111f9565b60200190565b5190565b90815260200190565b6000610e1182611470565b151590565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610d6281611505565b80610d6281611512565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000610e11825b6000610e1182611424565b6000610e118261145c565b6000610e1182611466565b60005b838110156114cc5781810151838201526020016114b4565b838111156113275750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6009811061150f57fe5b50565b6002811061150f57fe5b61152581611424565b811461150f57600080fd5b6115258161142f565b6115258161145956fea365627a7a72315820647659f30a6062776df2aa6a46dbcc224fdbed883e5c87033ec8146ae432b7896c6578706572696d656e74616cf564736f6c63430005100040",
180
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c80639afd5388116100505780639afd5388146100ca578063d9e2b3a9146100dd578063f89fb725146100f057610072565b806315c14a4a1461007757806361bf17b41461009557806387ff090a146100b5575b600080fd5b61007f610103565b60405161008c91906113e2565b60405180910390f35b6100a86100a3366004610e8c565b61011f565b60405161008c91906113d4565b6100c86100c3366004610f9d565b610134565b005b6100c86100d8366004610eb2565b6102cf565b6100c86100eb366004610f28565b610414565b6100c86100fe366004610f9d565b610616565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60016020526000908152604090205460ff1681565b60005474010000000000000000000000000000000000000000900460ff16610191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546102169060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b61028688888888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525061094792505050565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b6000546040517f052f72d70000000000000000000000000000000000000000000000000000000081526103be9173ffffffffffffffffffffffffffffffffffffffff169063052f72d7906103279033906004016113a1565b60206040518083038186803b15801561033f57600080fd5b505afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103779190810190610eec565b7f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005474010000000000000000000000000000000000000000900460ff16610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546104ed9060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b6040805160018082528183019092526060916020808301908038833950506000546040517f8fae3be100000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff1691638fae3be19150610563908790600401611393565b60206040518083038186803b15801561057b57600080fd5b505afa15801561058f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b39190810190610f0a565b816000815181106105c057fe5b602090810291909101015260408051600180825281830190925260609181602001602082028038833901905050905083816000815181106105fd57fe5b6020026020010181815250506102868888888585610947565b60005474010000000000000000000000000000000000000000900460ff1661066a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546106ef9060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b60005460408051868152602080880282010190915273ffffffffffffffffffffffffffffffffffffffff90911690606090868015610737578160200160208202803883390190505b50905060005b815181101561080e578273ffffffffffffffffffffffffffffffffffffffff16638fae3be189898481811061076e57fe5b90506020020160206107839190810190610e8c565b6040518263ffffffff1660e01b815260040161079f9190611393565b60206040518083038186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ef9190810190610f0a565b8282815181106107fb57fe5b602090810291909101015260010161073d565b5061084f8a8a8a8489898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061094792505050565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050505050505050565b82610942576108a882610c91565b7f3a200000000000000000000000000000000000000000000000000000000000006108d283610c91565b6040516020016108e49392919061136b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610188916004016113f0565b505050565b61099681518351147f5472616e7366657250726f7879000000000000000000000000000000000000007f696e76616c696420706172616d73206c656e677468000000000000000000000061089a565b6040805160028082526060828101909352816020015b6109b4610d67565b8152602001906001900390816109ac57905050905060405180604001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018781525081600081518110610a0157fe5b602002602001018190525060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581525081600181518110610a4457fe5b602002602001018190525060608351604051908082528060200260200182016040528015610a8c57816020015b610a79610d7e565b815260200190600190039081610a715790505b50905060005b8451811015610bfd57610aa3610ddd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858381518110610ad057fe5b60200260200101511415610b0b5760408051608081019091526001815260208101600081526020016001815260200160008152509050610b46565b604080516080810190915260008082526020820190815260200160008152602001868481518110610b3857fe5b602002602001015181525090505b604080516101008101909152806002815260200160008152602001828152602001878481518110610b7357fe5b602002602001015181526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016001815260200160405180602001604052806000815250815250838381518110610be957fe5b602090810291909101015250600101610a92565b506000546040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a67a6a4590610c5690859085906004016113af565b600060405180830381600087803b158015610c7057600080fd5b505af1158015610c84573d6000803e3d6000fd5b5050505050505050505050565b60608082604051602001610ca59190611356565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b8015610d4e5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110610d1157fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610d495760010181529050610d62565b610cd8565b505060408051600081526020810190915290505b919050565b604080518082019091526000808252602082015290565b604080516101008101825260008082526020820152908101610d9e610ddd565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b8035610e118161151c565b92915050565b60008083601f840112610e2957600080fd5b50813567ffffffffffffffff811115610e4157600080fd5b602083019150836020820283011115610e5957600080fd5b9250929050565b8035610e1181611530565b8051610e1181611530565b8035610e1181611539565b8051610e1181611539565b600060208284031215610e9e57600080fd5b6000610eaa8484610e06565b949350505050565b60008060408385031215610ec557600080fd5b6000610ed18585610e06565b9250506020610ee285828601610e60565b9150509250929050565b600060208284031215610efe57600080fd5b6000610eaa8484610e6b565b600060208284031215610f1c57600080fd5b6000610eaa8484610e81565b600080600080600060a08688031215610f4057600080fd5b6000610f4c8888610e76565b9550506020610f5d88828901610e06565b9450506040610f6e88828901610e76565b9350506060610f7f88828901610e06565b9250506080610f9088828901610e76565b9150509295509295909350565b600080600080600080600060a0888a031215610fb857600080fd5b6000610fc48a8a610e76565b9750506020610fd58a828b01610e06565b9650506040610fe68a828b01610e76565b955050606088013567ffffffffffffffff81111561100357600080fd5b61100f8a828b01610e17565b9450945050608088013567ffffffffffffffff81111561102e57600080fd5b61103a8a828b01610e17565b925092505092959891949750929550565b60006110578383611232565b9392505050565b600061106a838361132d565b505060400190565b61107b81611489565b82525050565b61107b81611424565b600061109582611417565b61109f818561141b565b9350836020820285016110b185611411565b8060005b858110156110eb57848403895281516110ce858261104b565b94506110d983611411565b60209a909a01999250506001016110b5565b5091979650505050505050565b600061110382611417565b61110d818561141b565b935061111883611411565b8060005b83811015611146578151611130888261105e565b975061113b83611411565b92505060010161111c565b509495945050505050565b61107b8161142f565b61107b61116682611434565b611459565b61107b61116682611459565b600061118282611417565b61118c8185610d62565b935061119c8185602086016114b1565b9290920192915050565b60006111b182611417565b6111bb818561141b565b93506111cb8185602086016114b1565b6111d4816114dd565b9093019392505050565b61107b81611490565b61107b8161149b565b61107b816114a6565b6000611206601f8361141b565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b805160009061016084019061124785826111e7565b50602083015161125a602086018261134d565b50604083015161126d60408601826112dd565b50606083015161128060c086018261134d565b50608083015161129360e086018261134d565b5060a08301516112a7610100860182611081565b5060c08301516112bb61012086018261134d565b5060e08301518482036101408601526112d482826111a6565b95945050505050565b805160808301906112ee8482611151565b50602082015161130160208501826111f0565b50604082015161131460408501826111f0565b506060820151611327606085018261134d565b50505050565b8051604083019061133e8482611081565b50602082015161132760208501825b61107b81611459565b6000611362828461116b565b50602001919050565b60006113778286611177565b9150611383828561115a565b6002820191506112d48284611177565b60208101610e118284611081565b60208101610e118284611072565b604080825281016113c081856110f8565b90508181036020830152610eaa818461108a565b60208101610e118284611151565b60208101610e1182846111de565b6020808252810161105781846111a6565b60208082528101610e11816111f9565b60200190565b5190565b90815260200190565b6000610e1182611470565b151590565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610d6281611505565b80610d6281611512565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000610e11825b6000610e1182611424565b6000610e118261145c565b6000610e1182611466565b60005b838110156114cc5781810151838201526020016114b4565b838111156113275750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6009811061150f57fe5b50565b6002811061150f57fe5b61152581611424565b811461150f57600080fd5b6115258161142f565b6115258161145956fea365627a7a72315820647659f30a6062776df2aa6a46dbcc224fdbed883e5c87033ec8146ae432b7896c6578706572696d656e74616cf564736f6c63430005100040",
178
+ "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dolomiteMargin\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isCallerTrusted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isTrusted\",\"type\":\"bool\"}],\"name\":\"setIsCallerTrusted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"transferMultiple\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toAccountIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"markets\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"transferMultipleWithMarkets\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Dolomite * Contract for sending internal balances within Dolomite to other users/margin accounts easily\",\"methods\":{},\"title\":\"TransferProxy\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/TransferProxy.sol\":\"TransferProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xfc9ce2f5a274ec66668c133f09fe213bc1a6a739f9147f4357a3493094de8deb\",\"urls\":[\"bzz-raw://e45442587f111fa0d85dd85a4e07993f5fecd1afce4f457ed21441f8b0abb937\",\"dweb:/ipfs/QmaNq3j3PUwb8Wrx2gEmFFsVa2GByDEkDCPGdwo2qvMeKh\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/ITransferProxy.sol\":{\"keccak256\":\"0x2462d5f68186bb53e33ff9bef2a4c5a815ea09e2c0f32d2eb736b50513e30244\",\"urls\":[\"bzz-raw://43c2590e5e8cb01361fc0ac3d8d8b44b86d434d8a35d80c60b9ad3f0c54dbc2b\",\"dweb:/ipfs/QmYdptf2jFNba3aFRhcGPNdZ14QD9ZLM9tRbEWB2GFmMsa\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/TransferProxy.sol\":{\"keccak256\":\"0x3311e2ae1c89e2a616a918b2c0869919d3af75ed99265ccff9e4debeba036b2c\",\"urls\":[\"bzz-raw://d3c0ec557ddeec9e03c6c85060b925bec29c1f5f6fade2ce137f28d4b140ce23\",\"dweb:/ipfs/QmSoqHLc5fvdDmcqX6h2wRx4cmLovn4s1MdQRMp6d7ioNA\"]},\"/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/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\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}",
179
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620016653803806200166583398101604081905262000034916200007b565b6000805460ff60a01b196001600160a01b039093166001600160a01b03199091161791909116600160a01b179055620000d0565b80516200007581620000b6565b92915050565b6000602082840312156200008e57600080fd5b60006200009c848462000068565b949350505050565b60006001600160a01b03821662000075565b620000c181620000a4565b8114620000cd57600080fd5b50565b61158580620000e06000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80639afd5388116100505780639afd5388146100ca578063d9e2b3a9146100dd578063f89fb725146100f057610072565b806315c14a4a1461007757806361bf17b41461009557806387ff090a146100b5575b600080fd5b61007f610103565b60405161008c91906113e2565b60405180910390f35b6100a86100a3366004610e8c565b61011f565b60405161008c91906113d4565b6100c86100c3366004610f9d565b610134565b005b6100c86100d8366004610eb2565b6102cf565b6100c86100eb366004610f28565b610414565b6100c86100fe366004610f9d565b610616565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60016020526000908152604090205460ff1681565b60005474010000000000000000000000000000000000000000900460ff16610191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546102169060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b61028688888888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525061094792505050565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b6000546040517f052f72d70000000000000000000000000000000000000000000000000000000081526103be9173ffffffffffffffffffffffffffffffffffffffff169063052f72d7906103279033906004016113a1565b60206040518083038186803b15801561033f57600080fd5b505afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103779190810190610eec565b7f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005474010000000000000000000000000000000000000000900460ff16610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546104ed9060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b6040805160018082528183019092526060916020808301908038833950506000546040517f8fae3be100000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff1691638fae3be19150610563908790600401611393565b60206040518083038186803b15801561057b57600080fd5b505afa15801561058f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b39190810190610f0a565b816000815181106105c057fe5b602090810291909101015260408051600180825281830190925260609181602001602082028038833901905050905083816000815181106105fd57fe5b6020026020010181815250506102868888888585610947565b60005474010000000000000000000000000000000000000000900460ff1661066a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546106ef9060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b60005460408051868152602080880282010190915273ffffffffffffffffffffffffffffffffffffffff90911690606090868015610737578160200160208202803883390190505b50905060005b815181101561080e578273ffffffffffffffffffffffffffffffffffffffff16638fae3be189898481811061076e57fe5b90506020020160206107839190810190610e8c565b6040518263ffffffff1660e01b815260040161079f9190611393565b60206040518083038186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ef9190810190610f0a565b8282815181106107fb57fe5b602090810291909101015260010161073d565b5061084f8a8a8a8489898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061094792505050565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050505050505050565b82610942576108a882610c91565b7f3a200000000000000000000000000000000000000000000000000000000000006108d283610c91565b6040516020016108e49392919061136b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610188916004016113f0565b505050565b61099681518351147f5472616e7366657250726f7879000000000000000000000000000000000000007f696e76616c696420706172616d73206c656e677468000000000000000000000061089a565b6040805160028082526060828101909352816020015b6109b4610d67565b8152602001906001900390816109ac57905050905060405180604001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018781525081600081518110610a0157fe5b602002602001018190525060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581525081600181518110610a4457fe5b602002602001018190525060608351604051908082528060200260200182016040528015610a8c57816020015b610a79610d7e565b815260200190600190039081610a715790505b50905060005b8451811015610bfd57610aa3610ddd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858381518110610ad057fe5b60200260200101511415610b0b5760408051608081019091526001815260208101600081526020016001815260200160008152509050610b46565b604080516080810190915260008082526020820190815260200160008152602001868481518110610b3857fe5b602002602001015181525090505b604080516101008101909152806002815260200160008152602001828152602001878481518110610b7357fe5b602002602001015181526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016001815260200160405180602001604052806000815250815250838381518110610be957fe5b602090810291909101015250600101610a92565b506000546040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a67a6a4590610c5690859085906004016113af565b600060405180830381600087803b158015610c7057600080fd5b505af1158015610c84573d6000803e3d6000fd5b5050505050505050505050565b60608082604051602001610ca59190611356565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b8015610d4e5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110610d1157fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610d495760010181529050610d62565b610cd8565b505060408051600081526020810190915290505b919050565b604080518082019091526000808252602082015290565b604080516101008101825260008082526020820152908101610d9e610ddd565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b8035610e118161151c565b92915050565b60008083601f840112610e2957600080fd5b50813567ffffffffffffffff811115610e4157600080fd5b602083019150836020820283011115610e5957600080fd5b9250929050565b8035610e1181611530565b8051610e1181611530565b8035610e1181611539565b8051610e1181611539565b600060208284031215610e9e57600080fd5b6000610eaa8484610e06565b949350505050565b60008060408385031215610ec557600080fd5b6000610ed18585610e06565b9250506020610ee285828601610e60565b9150509250929050565b600060208284031215610efe57600080fd5b6000610eaa8484610e6b565b600060208284031215610f1c57600080fd5b6000610eaa8484610e81565b600080600080600060a08688031215610f4057600080fd5b6000610f4c8888610e76565b9550506020610f5d88828901610e06565b9450506040610f6e88828901610e76565b9350506060610f7f88828901610e06565b9250506080610f9088828901610e76565b9150509295509295909350565b600080600080600080600060a0888a031215610fb857600080fd5b6000610fc48a8a610e76565b9750506020610fd58a828b01610e06565b9650506040610fe68a828b01610e76565b955050606088013567ffffffffffffffff81111561100357600080fd5b61100f8a828b01610e17565b9450945050608088013567ffffffffffffffff81111561102e57600080fd5b61103a8a828b01610e17565b925092505092959891949750929550565b60006110578383611232565b9392505050565b600061106a838361132d565b505060400190565b61107b81611489565b82525050565b61107b81611424565b600061109582611417565b61109f818561141b565b9350836020820285016110b185611411565b8060005b858110156110eb57848403895281516110ce858261104b565b94506110d983611411565b60209a909a01999250506001016110b5565b5091979650505050505050565b600061110382611417565b61110d818561141b565b935061111883611411565b8060005b83811015611146578151611130888261105e565b975061113b83611411565b92505060010161111c565b509495945050505050565b61107b8161142f565b61107b61116682611434565b611459565b61107b61116682611459565b600061118282611417565b61118c8185610d62565b935061119c8185602086016114b1565b9290920192915050565b60006111b182611417565b6111bb818561141b565b93506111cb8185602086016114b1565b6111d4816114dd565b9093019392505050565b61107b81611490565b61107b8161149b565b61107b816114a6565b6000611206601f8361141b565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b805160009061016084019061124785826111e7565b50602083015161125a602086018261134d565b50604083015161126d60408601826112dd565b50606083015161128060c086018261134d565b50608083015161129360e086018261134d565b5060a08301516112a7610100860182611081565b5060c08301516112bb61012086018261134d565b5060e08301518482036101408601526112d482826111a6565b95945050505050565b805160808301906112ee8482611151565b50602082015161130160208501826111f0565b50604082015161131460408501826111f0565b506060820151611327606085018261134d565b50505050565b8051604083019061133e8482611081565b50602082015161132760208501825b61107b81611459565b6000611362828461116b565b50602001919050565b60006113778286611177565b9150611383828561115a565b6002820191506112d48284611177565b60208101610e118284611081565b60208101610e118284611072565b604080825281016113c081856110f8565b90508181036020830152610eaa818461108a565b60208101610e118284611151565b60208101610e1182846111de565b6020808252810161105781846111a6565b60208082528101610e11816111f9565b60200190565b5190565b90815260200190565b6000610e1182611470565b151590565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610d6281611505565b80610d6281611512565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000610e11825b6000610e1182611424565b6000610e118261145c565b6000610e1182611466565b60005b838110156114cc5781810151838201526020016114b4565b838111156113275750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6009811061150f57fe5b50565b6002811061150f57fe5b61152581611424565b811461150f57600080fd5b6115258161142f565b6115258161145956fea365627a7a72315820c3294d7fda6d1e4a339a3db60d0a1ae55a8b5ffc0a4e6342b622014abf4efacb6c6578706572696d656e74616cf564736f6c63430005100040",
180
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c80639afd5388116100505780639afd5388146100ca578063d9e2b3a9146100dd578063f89fb725146100f057610072565b806315c14a4a1461007757806361bf17b41461009557806387ff090a146100b5575b600080fd5b61007f610103565b60405161008c91906113e2565b60405180910390f35b6100a86100a3366004610e8c565b61011f565b60405161008c91906113d4565b6100c86100c3366004610f9d565b610134565b005b6100c86100d8366004610eb2565b6102cf565b6100c86100eb366004610f28565b610414565b6100c86100fe366004610f9d565b610616565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60016020526000908152604090205460ff1681565b60005474010000000000000000000000000000000000000000900460ff16610191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546102169060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b61028688888888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525061094792505050565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b6000546040517f052f72d70000000000000000000000000000000000000000000000000000000081526103be9173ffffffffffffffffffffffffffffffffffffffff169063052f72d7906103279033906004016113a1565b60206040518083038186803b15801561033f57600080fd5b505afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103779190810190610eec565b7f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005474010000000000000000000000000000000000000000900460ff16610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546104ed9060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b6040805160018082528183019092526060916020808301908038833950506000546040517f8fae3be100000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff1691638fae3be19150610563908790600401611393565b60206040518083038186803b15801561057b57600080fd5b505afa15801561058f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b39190810190610f0a565b816000815181106105c057fe5b602090810291909101015260408051600180825281830190925260609181602001602082028038833901905050905083816000815181106105fd57fe5b6020026020010181815250506102868888888585610947565b60005474010000000000000000000000000000000000000000900460ff1661066a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018890611401565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681553380825260016020526040909120546106ef9060ff167f5472616e7366657250726f7879000000000000000000000000000000000000007f756e617574686f72697a6564000000000000000000000000000000000000000061089a565b60005460408051868152602080880282010190915273ffffffffffffffffffffffffffffffffffffffff90911690606090868015610737578160200160208202803883390190505b50905060005b815181101561080e578273ffffffffffffffffffffffffffffffffffffffff16638fae3be189898481811061076e57fe5b90506020020160206107839190810190610e8c565b6040518263ffffffff1660e01b815260040161079f9190611393565b60206040518083038186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ef9190810190610f0a565b8282815181106107fb57fe5b602090810291909101015260010161073d565b5061084f8a8a8a8489898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061094792505050565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050505050505050565b82610942576108a882610c91565b7f3a200000000000000000000000000000000000000000000000000000000000006108d283610c91565b6040516020016108e49392919061136b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610188916004016113f0565b505050565b61099681518351147f5472616e7366657250726f7879000000000000000000000000000000000000007f696e76616c696420706172616d73206c656e677468000000000000000000000061089a565b6040805160028082526060828101909352816020015b6109b4610d67565b8152602001906001900390816109ac57905050905060405180604001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018781525081600081518110610a0157fe5b602002602001018190525060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581525081600181518110610a4457fe5b602002602001018190525060608351604051908082528060200260200182016040528015610a8c57816020015b610a79610d7e565b815260200190600190039081610a715790505b50905060005b8451811015610bfd57610aa3610ddd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858381518110610ad057fe5b60200260200101511415610b0b5760408051608081019091526001815260208101600081526020016001815260200160008152509050610b46565b604080516080810190915260008082526020820190815260200160008152602001868481518110610b3857fe5b602002602001015181525090505b604080516101008101909152806002815260200160008152602001828152602001878481518110610b7357fe5b602002602001015181526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016001815260200160405180602001604052806000815250815250838381518110610be957fe5b602090810291909101015250600101610a92565b506000546040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a67a6a4590610c5690859085906004016113af565b600060405180830381600087803b158015610c7057600080fd5b505af1158015610c84573d6000803e3d6000fd5b5050505050505050505050565b60608082604051602001610ca59190611356565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b8015610d4e5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110610d1157fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610d495760010181529050610d62565b610cd8565b505060408051600081526020810190915290505b919050565b604080518082019091526000808252602082015290565b604080516101008101825260008082526020820152908101610d9e610ddd565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b8035610e118161151c565b92915050565b60008083601f840112610e2957600080fd5b50813567ffffffffffffffff811115610e4157600080fd5b602083019150836020820283011115610e5957600080fd5b9250929050565b8035610e1181611530565b8051610e1181611530565b8035610e1181611539565b8051610e1181611539565b600060208284031215610e9e57600080fd5b6000610eaa8484610e06565b949350505050565b60008060408385031215610ec557600080fd5b6000610ed18585610e06565b9250506020610ee285828601610e60565b9150509250929050565b600060208284031215610efe57600080fd5b6000610eaa8484610e6b565b600060208284031215610f1c57600080fd5b6000610eaa8484610e81565b600080600080600060a08688031215610f4057600080fd5b6000610f4c8888610e76565b9550506020610f5d88828901610e06565b9450506040610f6e88828901610e76565b9350506060610f7f88828901610e06565b9250506080610f9088828901610e76565b9150509295509295909350565b600080600080600080600060a0888a031215610fb857600080fd5b6000610fc48a8a610e76565b9750506020610fd58a828b01610e06565b9650506040610fe68a828b01610e76565b955050606088013567ffffffffffffffff81111561100357600080fd5b61100f8a828b01610e17565b9450945050608088013567ffffffffffffffff81111561102e57600080fd5b61103a8a828b01610e17565b925092505092959891949750929550565b60006110578383611232565b9392505050565b600061106a838361132d565b505060400190565b61107b81611489565b82525050565b61107b81611424565b600061109582611417565b61109f818561141b565b9350836020820285016110b185611411565b8060005b858110156110eb57848403895281516110ce858261104b565b94506110d983611411565b60209a909a01999250506001016110b5565b5091979650505050505050565b600061110382611417565b61110d818561141b565b935061111883611411565b8060005b83811015611146578151611130888261105e565b975061113b83611411565b92505060010161111c565b509495945050505050565b61107b8161142f565b61107b61116682611434565b611459565b61107b61116682611459565b600061118282611417565b61118c8185610d62565b935061119c8185602086016114b1565b9290920192915050565b60006111b182611417565b6111bb818561141b565b93506111cb8185602086016114b1565b6111d4816114dd565b9093019392505050565b61107b81611490565b61107b8161149b565b61107b816114a6565b6000611206601f8361141b565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b805160009061016084019061124785826111e7565b50602083015161125a602086018261134d565b50604083015161126d60408601826112dd565b50606083015161128060c086018261134d565b50608083015161129360e086018261134d565b5060a08301516112a7610100860182611081565b5060c08301516112bb61012086018261134d565b5060e08301518482036101408601526112d482826111a6565b95945050505050565b805160808301906112ee8482611151565b50602082015161130160208501826111f0565b50604082015161131460408501826111f0565b506060820151611327606085018261134d565b50505050565b8051604083019061133e8482611081565b50602082015161132760208501825b61107b81611459565b6000611362828461116b565b50602001919050565b60006113778286611177565b9150611383828561115a565b6002820191506112d48284611177565b60208101610e118284611081565b60208101610e118284611072565b604080825281016113c081856110f8565b90508181036020830152610eaa818461108a565b60208101610e118284611151565b60208101610e1182846111de565b6020808252810161105781846111a6565b60208082528101610e11816111f9565b60200190565b5190565b90815260200190565b6000610e1182611470565b151590565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610d6281611505565b80610d6281611512565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000610e11825b6000610e1182611424565b6000610e118261145c565b6000610e1182611466565b60005b838110156114cc5781810151838201526020016114b4565b838111156113275750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6009811061150f57fe5b50565b6002811061150f57fe5b61152581611424565b811461150f57600080fd5b6115258161142f565b6115258161145956fea365627a7a72315820c3294d7fda6d1e4a339a3db60d0a1ae55a8b5ffc0a4e6342b622014abf4efacb6c6578706572696d656e74616cf564736f6c63430005100040",
181
181
  "sourceMap": "1352:4361:34:-;;;1898:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;1898:107:34;;;;;;;;;;;;;;;;;;;;;1293:15:6;:49;;-1:-1:-1;;;;;;;;;1293:49:6;;;-1:-1:-1;;;;;;1293:49:6;;;;1421:18:129;;;;-1:-1:-1;;;1421:18:129;;;1352:4361:34;;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:263;;261:2;249:9;240:7;236:23;232:32;229:2;;;277:1;274;267:12;229:2;312:1;329:64;385:7;365:9;329:64;;;319:74;223:186;-1:-1;;;;223:186;416:91;;-1:-1;;;;;576:54;;478:24;559:76;642:117;711:24;729:5;711:24;;;704:5;701:35;691:2;;750:1;747;740:12;691:2;685:74;;;1352:4361:34;;;;;;",
182
182
  "deployedSourceMap": "1352:4361:34:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1352:4361:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1122:38:6;;;:::i;:::-;;;;;;;;;;;;;;;;1577:47:34;;;;;;;;;:::i;:::-;;;;;;;;3594:424;;;;;;;;;:::i;:::-;;2064:260;;;;;;;;;:::i;2330:579::-;;;;;;;;;:::i;2915:673::-;;;;;;;;;:::i;1122:38:6:-;;;;;;:::o;1577:47:34:-;;;;;;;;;;;;;;;:::o;3594:424::-;1934:11:129;;;;;;;1926:55;;;;;;;;;;;;;;;;;;;;;;2070:5;2056:19;;;;;;3842:10:34;1749:23;;;2056:19:129;1749:23:34;;;;;;;1723:105;;2056:19:129;1749:23:34;1786:4;1723:105;:12;:105::i;:::-;3868:143;3899:16;3929:2;3945:14;3973:7;;3868:143;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;;3868:143:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3994:7:34;;-1:-1:-1;3994:7:34;;;;3868:143;;;3994:7;;3868:143;3994:7;3868:143;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;3868:17:34;;-1:-1:-1;;;3868:143:34:i;:::-;-1:-1:-1;;2230:11:129;:18;;;;;;;;-1:-1:-1;;;;;;3594:424:34:o;2064:260::-;2169:15;;:47;;;;;2143:129;;2169:15;;;:35;;:47;;2205:10;;2169:47;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2169:47:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2169:47:34;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2169:47:34;;;;;;;;;2230:4;2143:129;:12;:129::i;:::-;2282:23;;;;;;;;;:15;:23;;;;;:35;;;;;;;;;;;;;2064:260::o;2330:579::-;1934:11:129;;;;;;;1926:55;;;;;;;;;;;;;;2070:5;2056:19;;;;;;2537:10:34;1749:23;;;2056:19:129;1749:23:34;;;;;;;1723:105;;2056:19:129;1749:23:34;1786:4;1723:105;:12;:105::i;:::-;2587:13;;;2598:1;2587:13;;;;;;;;;2563:21;;2587:13;;;;;;105:10:-1;2587:13:34;88:34:-1;-1:-1;;2623:15:34;;:48;;;;;2563:37;;-1:-1:-1;2623:15:34;;;:41;;-1:-1:-1;2623:48:34;;2665:5;;2623:48;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2623:48:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2623:48:34;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2623:48:34;;;;;;;;;2610:7;2618:1;2610:10;;;;;;;;;;;;;;;;;:61;2706:13;;;2717:1;2706:13;;;;;;;;;2682:21;;2706:13;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;2706:13:34;2682:37;;2742:6;2729:7;2737:1;2729:10;;;;;;;;;;;;;:19;;;;;2759:143;2790:16;2820:2;2836:14;2864:7;2885;2759:17;:143::i;2915:673::-;1934:11:129;;;;;;;1926:55;;;;;;;;;;;;;;2070:5;2056:19;;;;;;3154:10:34;1749:23;;;2056:19:129;1749:23:34;;;;;;;1723:105;;2056:19:129;1749:23:34;1786:4;1723:105;:12;:105::i;:::-;3180:30;3213:15;3262:25;;;;;;;;;;;;;;;;3213:15;;;;;3238:21;;3273:6;3262:25;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;3262:25:34;-1:-1:-1;3238:49:34;-1:-1:-1;3302:6:34;3297:131;3318:7;:14;3314:1;:18;3297:131;;;3366:14;:40;;;3407:6;;3414:1;3407:9;;;;;;;;;;;;;;;;;;;;;;3366:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3366:51:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3366:51:34;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3366:51:34;;;;;;;;;3353:7;3361:1;3353:10;;;;;;;;;;;;;;;;;:64;3334:3;;3297:131;;;;3438:143;3469:16;3499:2;3515:14;3543:7;3564;;3438:143;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3438:17:34;;-1:-1:-1;;;3438:143:34:i;:::-;-1:-1:-1;;2230:11:129;:18;;;;;;;;-1:-1:-1;;;;;;;;2915:673:34:o;1294:426:77:-;1428:4;1423:291;;1542:24;1561:4;1542:18;:24::i;:::-;1592:5;1623:26;1642:6;1623:18;:26::i;:::-;1500:171;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;1500:171:77;;;;1448:255;;;;;;;;;1423:291;1294:426;;;:::o;4024:1687:34:-;4230:123;4274:7;:14;4256:7;:14;:32;4302:4;4230:123;:12;:123::i;:::-;4397:21;;;4416:1;4397:21;;;4364:30;4397:21;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4364:54;;4442:42;;;;;;;;4455:10;4442:42;;;;;;4467:16;4442:42;;;4428:8;4437:1;4428:11;;;;;;;;;;;;;:56;;;;4508:32;;;;;;;;4521:2;4508:32;;;;;;4525:14;4508:32;;;4494:8;4503:1;4494:11;;;;;;;;;;;;;:46;;;;4551:35;4614:7;:14;4589:40;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;4551:78:34;-1:-1:-1;4644:6:34;4639:1013;4660:7;:14;4656:1;:18;4639:1013;;;4695:36;;:::i;:::-;4768:3;4749:7;4757:1;4749:10;;;;;;;;;;;;;;:23;4745:502;;;4806:182;;;;;;;;;4845:4;4806:182;;;;;-1:-1:-1;4806:182:34;;;;4920:27;4806:182;;;;4969:1;4806:182;;;4792:196;;4745:502;;;5041:191;;;;;;;;;-1:-1:-1;5041:191:34;;;;;;;;;;;5156:26;5041:191;;;;5204:7;5212:1;5204:10;;;;;;;;;;;;;;5041:191;;;5027:205;;4745:502;5274:367;;;;;;;;;;5324:27;5274:367;;;;5381:1;5274:367;;;;5409:11;5274:367;;;;5456:7;5464:1;5456:10;;;;;;;;;;;;;;5274:367;;;;5509:3;5274:367;;;;5554:1;5274:367;;;;;;5591:1;5274:367;;;;5617:9;;;;;;;;;;;;5274:367;;;5261:7;5269:1;5261:10;;;;;;;;;;;;;;;;;:380;-1:-1:-1;4676:3:34;;4639:1013;;;-1:-1:-1;5662:15:34;;:42;;;;;:15;;;;;:23;;:42;;5686:8;;5696:7;;5662:42;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5662:42:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5662:42:34;;;;4024:1687;;;;;;;:::o;6359:966:77:-;6462:12;6537:19;6576:5;6559:23;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;6559:23:77;;;;-1:-1:-1;49:4;6688:571:77;6709:5;;6688:571;;6960:9;;6862:3;;;;;6960:6;;6862:3;;6960:9;;;;;;;;;;;;:14;6956:293;;7015:1;7011:5;7141:22;;7148:6;-1:-1:-1;7221:13:77;;6956:293;6688:571;;;-1:-1:-1;;7306:12:77;;;7316:1;7306:12;;;;;;;;;-1:-1:-1;6359:966:77;;;;:::o;1352:4361:34:-;;;;;;;;;;-1:-1:-1;1352:4361:34;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1352:4361:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1352:4361:34;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;160:352;;;290:3;283:4;275:6;271:17;267:27;257:2;;308:1;305;298:12;257:2;-1:-1;328:20;;368:18;357:30;;354:2;;;400:1;397;390:12;354:2;434:4;426:6;422:17;410:29;;485:3;477:4;469:6;465:17;455:8;451:32;448:41;445:2;;;502:1;499;492:12;445:2;250:262;;;;;;898:124;962:20;;987:30;962:20;987:30;;1029:128;1104:13;;1122:30;1104:13;1122:30;;1164:130;1231:20;;1256:33;1231:20;1256:33;;1301:134;1379:13;;1397:33;1379:13;1397:33;;1442:241;;1546:2;1534:9;1525:7;1521:23;1517:32;1514:2;;;1562:1;1559;1552:12;1514:2;1597:1;1614:53;1659:7;1639:9;1614:53;;;1604:63;1508:175;-1:-1;;;;1508:175;1690:360;;;1808:2;1796:9;1787:7;1783:23;1779:32;1776:2;;;1824:1;1821;1814:12;1776:2;1859:1;1876:53;1921:7;1901:9;1876:53;;;1866:63;;1838:97;1966:2;1984:50;2026:7;2017:6;2006:9;2002:22;1984:50;;;1974:60;;1945:95;1770:280;;;;;;2057:257;;2169:2;2157:9;2148:7;2144:23;2140:32;2137:2;;;2185:1;2182;2175:12;2137:2;2220:1;2237:61;2290:7;2270:9;2237:61;;2321:263;;2436:2;2424:9;2415:7;2411:23;2407:32;2404:2;;;2452:1;2449;2442:12;2404:2;2487:1;2504:64;2560:7;2540:9;2504:64;;2591:743;;;;;;2763:3;2751:9;2742:7;2738:23;2734:33;2731:2;;;2780:1;2777;2770:12;2731:2;2815:1;2832:53;2877:7;2857:9;2832:53;;;2822:63;;2794:97;2922:2;2940:53;2985:7;2976:6;2965:9;2961:22;2940:53;;;2930:63;;2901:98;3030:2;3048:53;3093:7;3084:6;3073:9;3069:22;3048:53;;;3038:63;;3009:98;3138:2;3156:53;3201:7;3192:6;3181:9;3177:22;3156:53;;;3146:63;;3117:98;3246:3;3265:53;3310:7;3301:6;3290:9;3286:22;3265:53;;;3255:63;;3225:99;2725:609;;;;;;;;;3341:1055;;;;;;;;3583:3;3571:9;3562:7;3558:23;3554:33;3551:2;;;3600:1;3597;3590:12;3551:2;3635:1;3652:53;3697:7;3677:9;3652:53;;;3642:63;;3614:97;3742:2;3760:53;3805:7;3796:6;3785:9;3781:22;3760:53;;;3750:63;;3721:98;3850:2;3868:53;3913:7;3904:6;3893:9;3889:22;3868:53;;;3858:63;;3829:98;3986:2;3975:9;3971:18;3958:32;4010:18;4002:6;3999:30;3996:2;;;4042:1;4039;4032:12;3996:2;4070:80;4142:7;4133:6;4122:9;4118:22;4070:80;;;4060:90;;;;3937:219;4215:3;4204:9;4200:19;4187:33;4240:18;4232:6;4229:30;4226:2;;;4272:1;4269;4262:12;4226:2;4300:80;4372:7;4363:6;4352:9;4348:22;4300:80;;;4290:90;;;;4166:220;3545:851;;;;;;;;;;;5466:257;;5617:100;5713:3;5705:6;5617:100;;;5603:114;5596:127;-1:-1;;;5596:127;5732:253;;5857:88;5941:3;5933:6;5857:88;;;-1:-1;;5974:4;5965:14;;5850:135;5993:142;6084:45;6123:5;6084:45;;;6079:3;6072:58;6066:69;;;6142:103;6215:24;6233:5;6215:24;;6439:1048;;6634:79;6707:5;6634:79;;;6726:111;6830:6;6825:3;6726:111;;;6719:118;;6860:3;6902:4;6894:6;6890:17;6885:3;6881:27;6929:81;7004:5;6929:81;;;7030:7;7058:1;7043:405;7068:6;7065:1;7062:13;7043:405;;;7130:9;7124:4;7120:20;7115:3;7108:33;7175:6;7169:13;7197:114;7306:4;7291:13;7197:114;;;7189:122;;7328:85;7406:6;7328:85;;;7436:4;7427:14;;;;;7318:95;-1:-1;;7090:1;7083:9;7043:405;;;-1:-1;7461:4;;6613:874;-1:-1;;;;;;;6613:874;7550:842;;7733:73;7800:5;7733:73;;;7819:105;7917:6;7912:3;7819:105;;;7812:112;;7945:75;8014:5;7945:75;;;8040:7;8068:1;8053:317;8078:6;8075:1;8072:13;8053:317;;;8145:6;8139:13;8166:101;8263:3;8248:13;8166:101;;;8159:108;;8284:79;8356:6;8284:79;;;8274:89;-1:-1;;8100:1;8093:9;8053:317;;;-1:-1;8383:3;;7712:680;-1:-1;;;;;7712:680;8400:94;8467:21;8482:5;8467:21;;8612:148;8711:43;8730:23;8747:5;8730:23;;;8711:43;;8767:152;8868:45;8888:24;8906:5;8888:24;;8926:356;;9054:38;9086:5;9054:38;;;9104:88;9185:6;9180:3;9104:88;;;9097:95;;9197:52;9242:6;9237:3;9230:4;9223:5;9219:16;9197:52;;;9261:16;;;;;9034:248;-1:-1;;9034:248;9289:315;;9385:34;9413:5;9385:34;;;9431:60;9484:6;9479:3;9431:60;;;9424:67;;9496:52;9541:6;9536:3;9529:4;9522:5;9518:16;9496:52;;;9569:29;9591:6;9569:29;;;9560:39;;;;9365:239;-1:-1;;;9365:239;9611:176;9719:62;9775:5;9719:62;;9794:144;9881:51;9926:5;9881:51;;9945:158;10039:58;10091:5;10039:58;;10624:331;;10784:67;10848:2;10843:3;10784:67;;;10884:33;10864:54;;10946:2;10937:12;;10770:185;-1:-1;;10770:185;11024:1616;11243:23;;11024:1616;;11169:6;11160:16;;;11272:77;11164:3;11243:23;11272:77;;;11191:164;11433:4;11426:5;11422:16;11416:23;11445:63;11502:4;11497:3;11493:14;11479:12;11445:63;;;11365:149;11589:4;11582:5;11578:16;11572:23;11601:119;11714:4;11709:3;11705:14;11691:12;11601:119;;;11524:202;11810:4;11803:5;11799:16;11793:23;11822:63;11879:4;11874:3;11870:14;11856:12;11822:63;;;11736:155;11977:4;11970:5;11966:16;11960:23;11989:63;12046:4;12041:3;12037:14;12023:12;11989:63;;;11901:157;12139:4;12132:5;12128:16;12122:23;12151:65;12208:6;12203:3;12199:16;12185:12;12151:65;;;12068:154;12305:4;12298:5;12294:16;12288:23;12317:65;12374:6;12369:3;12365:16;12351:12;12317:65;;;12232:156;12461:4;12454:5;12450:16;12444:23;12515:3;12509:4;12505:14;12496:6;12491:3;12487:16;12480:40;12535:67;12597:4;12583:12;12535:67;;;12527:75;11142:1498;-1:-1;;;;;11142:1498;12706:821;12911:23;;12845:4;12836:14;;;12940:57;12840:3;12911:23;12940:57;;;12865:138;13084:4;13077:5;13073:16;13067:23;13096:84;13174:4;13169:3;13165:14;13151:12;13096:84;;;13013:173;13258:4;13251:5;13247:16;13241:23;13270:81;13345:4;13340:3;13336:14;13322:12;13270:81;;;13196:161;13431:4;13424:5;13420:16;13414:23;13443:63;13500:4;13495:3;13491:14;13477:12;13443:63;;;13367:145;12818:709;;;;13583:461;13775:23;;13708:4;13699:14;;;13804:63;13703:3;13775:23;13804:63;;;13728:145;13948:4;13941:5;13937:16;13931:23;13960:63;14017:4;14012:3;14008:14;13994:12;14051:103;14124:24;14142:5;14124:24;;14161:244;;14280:75;14351:3;14342:6;14280:75;;;-1:-1;14377:2;14368:12;;14268:137;-1:-1;14268:137;14412:553;;14628:93;14717:3;14708:6;14628:93;;;14621:100;;14732:73;14801:3;14792:6;14732:73;;;14827:1;14822:3;14818:11;14811:18;;14847:93;14936:3;14927:6;14847:93;;14972:213;15090:2;15075:18;;15104:71;15079:9;15148:6;15104:71;;15192:229;15318:2;15303:18;;15332:79;15307:9;15384:6;15332:79;;15428:796;15762:2;15776:47;;;15747:18;;15837:146;15747:18;15969:6;15837:146;;;15829:154;;16031:9;16025:4;16021:20;16016:2;16005:9;16001:18;15994:48;16056:158;16209:4;16200:6;16056:158;;16231:201;16343:2;16328:18;;16357:65;16332:9;16395:6;16357:65;;16439:263;16582:2;16567:18;;16596:96;16571:9;16665:6;16596:96;;16709:301;16847:2;16861:47;;;16832:18;;16922:78;16832:18;16986:6;16922:78;;17017:407;17208:2;17222:47;;;17193:18;;17283:131;17193:18;17283:131;;17431:176;17580:4;17571:14;;17528:79;17791:162;17919:12;;17890:63;18779:203;18922:19;;;18971:4;18962:14;;18915:67;19682:91;;19744:24;19762:5;19744:24;;19780:85;19846:13;19839:21;;19822:43;19872:144;19944:66;19933:78;;19916:100;20023:72;20085:5;20068:27;20102:138;20180:5;20186:49;20180:5;20186:49;;20247:152;20332:5;20338:56;20332:5;20338:56;;20559:121;20632:42;20621:54;;20604:76;20766:129;;20853:37;20884:5;20902:171;;21006:62;21062:5;21006:62;;21220:138;;21313:40;21347:5;21313:40;;21365:152;;21465:47;21506:5;21465:47;;21921:268;21986:1;21993:101;22007:6;22004:1;22001:13;21993:101;;;22074:11;;;22068:18;22055:11;;;22048:39;22029:2;22022:10;21993:101;;;22109:6;22106:1;22103:13;22100:2;;;-1:-1;;22174:1;22156:16;;22149:27;21970:219;22358:97;22446:2;22426:14;22442:7;22422:28;;22406:49;22463:107;22548:1;22541:5;22538:12;22528:2;;22554:9;22528:2;22522:48;;22577:114;22669:1;22662:5;22659:12;22649:2;;22675:9;22816:117;22885:24;22903:5;22885:24;;;22878:5;22875:35;22865:2;;22924:1;22921;22914:12;22940:111;23006:21;23021:5;23006:21;;23058:117;23127:24;23145:5;23127:24;",
183
183
  "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 { ReentrancyGuard } from \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\nimport { IDolomiteMargin } from \"../../protocol/interfaces/IDolomiteMargin.sol\";\n\nimport { Account } from \"../../protocol/lib/Account.sol\";\nimport { Actions } from \"../../protocol/lib/Actions.sol\";\nimport { Types } from \"../../protocol/lib/Types.sol\";\nimport { Require } from \"../../protocol/lib/Require.sol\";\n\nimport { OnlyDolomiteMargin } from \"../helpers/OnlyDolomiteMargin.sol\";\n\nimport { ITransferProxy } from \"../interfaces/ITransferProxy.sol\";\n\n\n/**\n * @title TransferProxy\n * @author Dolomite\n *\n * Contract for sending internal balances within Dolomite to other users/margin accounts easily\n */\ncontract TransferProxy is ITransferProxy, OnlyDolomiteMargin, ReentrancyGuard {\n\n // ============ Constants ============\n\n bytes32 constant FILE = \"TransferProxy\";\n\n // ============ State Variables ============\n\n mapping(address => bool) public isCallerTrusted;\n\n // ============ Modifiers ============\n\n modifier isAuthorized(address sender) {\n Require.that(\n isCallerTrusted[sender],\n FILE,\n \"unauthorized\"\n );\n _;\n }\n\n // ============ Constructor ============\n\n constructor (\n address dolomiteMargin\n )\n public\n OnlyDolomiteMargin(dolomiteMargin)\n {}\n\n // ============ External Functions ============\n\n function setIsCallerTrusted(address caller, bool isTrusted) external {\n Require.that(\n DOLOMITE_MARGIN.getIsGlobalOperator(msg.sender),\n FILE,\n \"unauthorized\"\n );\n isCallerTrusted[caller] = isTrusted;\n }\n\n function transfer(\n uint fromAccountIndex,\n address to,\n uint toAccountIndex,\n address token,\n uint amount\n )\n external\n nonReentrant\n isAuthorized(msg.sender)\n {\n uint[] memory markets = new uint[](1);\n markets[0] = DOLOMITE_MARGIN.getMarketIdByTokenAddress(token);\n\n uint[] memory amounts = new uint[](1);\n amounts[0] = amount;\n\n _transferMultiple(\n fromAccountIndex,\n to,\n toAccountIndex,\n markets,\n amounts\n );\n }\n\n function transferMultiple(\n uint fromAccountIndex,\n address to,\n uint toAccountIndex,\n address[] calldata tokens,\n uint[] calldata amounts\n )\n external\n nonReentrant\n isAuthorized(msg.sender)\n {\n IDolomiteMargin dolomiteMargin = DOLOMITE_MARGIN;\n uint[] memory markets = new uint[](tokens.length);\n for (uint i = 0; i < markets.length; i++) {\n markets[i] = dolomiteMargin.getMarketIdByTokenAddress(tokens[i]);\n }\n\n _transferMultiple(\n fromAccountIndex,\n to,\n toAccountIndex,\n markets,\n amounts\n );\n }\n\n function transferMultipleWithMarkets(\n uint fromAccountIndex,\n address to,\n uint toAccountIndex,\n uint[] calldata markets,\n uint[] calldata amounts\n )\n external\n nonReentrant\n isAuthorized(msg.sender)\n {\n _transferMultiple(\n fromAccountIndex,\n to,\n toAccountIndex,\n markets,\n amounts\n );\n }\n\n function _transferMultiple(\n uint fromAccountIndex,\n address to,\n uint toAccountIndex,\n uint[] memory markets,\n uint[] memory amounts\n )\n internal\n {\n Require.that(\n markets.length == amounts.length,\n FILE,\n \"invalid params length\"\n );\n\n Account.Info[] memory accounts = new Account.Info[](2);\n accounts[0] = Account.Info(msg.sender, fromAccountIndex);\n accounts[1] = Account.Info(to, toAccountIndex);\n\n Actions.ActionArgs[] memory actions = new Actions.ActionArgs[](markets.length);\n for (uint i = 0; i < markets.length; i++) {\n Types.AssetAmount memory assetAmount;\n if (amounts[i] == uint(- 1)) {\n assetAmount = Types.AssetAmount(\n true,\n Types.AssetDenomination.Wei,\n Types.AssetReference.Target,\n 0\n );\n } else {\n assetAmount = Types.AssetAmount(\n false,\n Types.AssetDenomination.Wei,\n Types.AssetReference.Delta,\n amounts[i]\n );\n }\n\n actions[i] = Actions.ActionArgs({\n actionType : Actions.ActionType.Transfer,\n accountId : 0,\n amount : assetAmount,\n primaryMarketId : markets[i],\n secondaryMarketId : uint(- 1),\n otherAddress : address(0),\n otherAccountId : 1,\n data : bytes(\"\")\n });\n }\n\n DOLOMITE_MARGIN.operate(accounts, actions);\n }\n}\n",
184
- "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/TransferProxy.sol",
184
+ "sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/TransferProxy.sol",
185
185
  "ast": {
186
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/TransferProxy.sol",
186
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/TransferProxy.sol",
187
187
  "exportedSymbols": {
188
188
  "TransferProxy": [
189
189
  16642
@@ -229,7 +229,7 @@
229
229
  "unitAlias": ""
230
230
  },
231
231
  {
232
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol",
232
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
233
233
  "file": "../../protocol/interfaces/IDolomiteMargin.sol",
234
234
  "id": 16238,
235
235
  "nodeType": "ImportDirective",
@@ -245,7 +245,7 @@
245
245
  "unitAlias": ""
246
246
  },
247
247
  {
248
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol",
248
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
249
249
  "file": "../../protocol/lib/Account.sol",
250
250
  "id": 16240,
251
251
  "nodeType": "ImportDirective",
@@ -261,7 +261,7 @@
261
261
  "unitAlias": ""
262
262
  },
263
263
  {
264
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol",
264
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
265
265
  "file": "../../protocol/lib/Actions.sol",
266
266
  "id": 16242,
267
267
  "nodeType": "ImportDirective",
@@ -277,7 +277,7 @@
277
277
  "unitAlias": ""
278
278
  },
279
279
  {
280
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol",
280
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
281
281
  "file": "../../protocol/lib/Types.sol",
282
282
  "id": 16244,
283
283
  "nodeType": "ImportDirective",
@@ -293,7 +293,7 @@
293
293
  "unitAlias": ""
294
294
  },
295
295
  {
296
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol",
296
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
297
297
  "file": "../../protocol/lib/Require.sol",
298
298
  "id": 16246,
299
299
  "nodeType": "ImportDirective",
@@ -309,7 +309,7 @@
309
309
  "unitAlias": ""
310
310
  },
311
311
  {
312
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol",
312
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol",
313
313
  "file": "../helpers/OnlyDolomiteMargin.sol",
314
314
  "id": 16248,
315
315
  "nodeType": "ImportDirective",
@@ -325,7 +325,7 @@
325
325
  "unitAlias": ""
326
326
  },
327
327
  {
328
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/ITransferProxy.sol",
328
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/ITransferProxy.sol",
329
329
  "file": "../interfaces/ITransferProxy.sol",
330
330
  "id": 16250,
331
331
  "nodeType": "ImportDirective",
@@ -5489,7 +5489,7 @@
5489
5489
  "src": "603:5111:34"
5490
5490
  },
5491
5491
  "legacyAST": {
5492
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/TransferProxy.sol",
5492
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/TransferProxy.sol",
5493
5493
  "exportedSymbols": {
5494
5494
  "TransferProxy": [
5495
5495
  16642
@@ -5535,7 +5535,7 @@
5535
5535
  "unitAlias": ""
5536
5536
  },
5537
5537
  {
5538
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol",
5538
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
5539
5539
  "file": "../../protocol/interfaces/IDolomiteMargin.sol",
5540
5540
  "id": 16238,
5541
5541
  "nodeType": "ImportDirective",
@@ -5551,7 +5551,7 @@
5551
5551
  "unitAlias": ""
5552
5552
  },
5553
5553
  {
5554
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol",
5554
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
5555
5555
  "file": "../../protocol/lib/Account.sol",
5556
5556
  "id": 16240,
5557
5557
  "nodeType": "ImportDirective",
@@ -5567,7 +5567,7 @@
5567
5567
  "unitAlias": ""
5568
5568
  },
5569
5569
  {
5570
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol",
5570
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
5571
5571
  "file": "../../protocol/lib/Actions.sol",
5572
5572
  "id": 16242,
5573
5573
  "nodeType": "ImportDirective",
@@ -5583,7 +5583,7 @@
5583
5583
  "unitAlias": ""
5584
5584
  },
5585
5585
  {
5586
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol",
5586
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
5587
5587
  "file": "../../protocol/lib/Types.sol",
5588
5588
  "id": 16244,
5589
5589
  "nodeType": "ImportDirective",
@@ -5599,7 +5599,7 @@
5599
5599
  "unitAlias": ""
5600
5600
  },
5601
5601
  {
5602
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol",
5602
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
5603
5603
  "file": "../../protocol/lib/Require.sol",
5604
5604
  "id": 16246,
5605
5605
  "nodeType": "ImportDirective",
@@ -5615,7 +5615,7 @@
5615
5615
  "unitAlias": ""
5616
5616
  },
5617
5617
  {
5618
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol",
5618
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol",
5619
5619
  "file": "../helpers/OnlyDolomiteMargin.sol",
5620
5620
  "id": 16248,
5621
5621
  "nodeType": "ImportDirective",
@@ -5631,7 +5631,7 @@
5631
5631
  "unitAlias": ""
5632
5632
  },
5633
5633
  {
5634
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/ITransferProxy.sol",
5634
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/ITransferProxy.sol",
5635
5635
  "file": "../interfaces/ITransferProxy.sol",
5636
5636
  "id": 16250,
5637
5637
  "nodeType": "ImportDirective",
@@ -10803,17 +10803,11 @@
10803
10803
  "events": {},
10804
10804
  "links": {},
10805
10805
  "address": "0x22d5C8BdD4346b390014a07109a8F830094d4abf",
10806
- "transactionHash": "0x4795f650994854be9de9e783ff91fa68146bca6c339ba9367796999aa4fb088a"
10807
- },
10808
- "80001": {
10809
- "events": {},
10810
- "links": {},
10811
- "address": "0xd7E0F3191E727E8821BB9DBBeb2575D9b8fF590D",
10812
- "transactionHash": "0x4c83c8607a3359f3a25d5f2c5d006408dc26ad10e76ec2fe3946307257a811a7"
10806
+ "transactionHash": "0x87c33a64c375e7fbf1db91fa7dece5e4e70fe398bf1d9265cf89386d90c02eee"
10813
10807
  }
10814
10808
  },
10815
10809
  "schemaVersion": "3.0.23",
10816
- "updatedAt": "2022-02-04T01:55:00.980Z",
10810
+ "updatedAt": "2022-02-07T07:18:45.060Z",
10817
10811
  "devdoc": {
10818
10812
  "author": "Dolomite * Contract for sending internal balances within Dolomite to other users/margin accounts easily",
10819
10813
  "methods": {},
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "contractName": "TypedSignature",
3
3
  "abi": [],
4
- "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"dYdX * Library to unparse typed signatures\",\"methods\":{},\"title\":\"TypedSignature\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/TypedSignature.sol\":\"TypedSignature\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/TypedSignature.sol\":{\"keccak256\":\"0x4b4eb5fd2869d6c410948f78163773442c11bc82e393307e41359bbdb21577bf\",\"urls\":[\"bzz-raw://9c9c3abae44173086bc08f5479fbc67151d5905f60e1032ec6f9e40f841f3365\",\"dweb:/ipfs/QmbsQRX3gmcpimjFEW5ULJVavHQtViyg7NSQ2Q8Qcu6F6V\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]}},\"version\":1}",
5
- "bytecode": "0x60636023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea365627a7a72315820234929fbbc7d37c5c4ec088d86b6d9bfd31fba20bd1d30f0f6279562ce47b5e06c6578706572696d656e74616cf564736f6c63430005100040",
6
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea365627a7a72315820234929fbbc7d37c5c4ec088d86b6d9bfd31fba20bd1d30f0f6279562ce47b5e06c6578706572696d656e74616cf564736f6c63430005100040",
4
+ "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"dYdX * Library to unparse typed signatures\",\"methods\":{},\"title\":\"TypedSignature\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol\":\"TypedSignature\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol\":{\"keccak256\":\"0x4b4eb5fd2869d6c410948f78163773442c11bc82e393307e41359bbdb21577bf\",\"urls\":[\"bzz-raw://9c9c3abae44173086bc08f5479fbc67151d5905f60e1032ec6f9e40f841f3365\",\"dweb:/ipfs/QmbsQRX3gmcpimjFEW5ULJVavHQtViyg7NSQ2Q8Qcu6F6V\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]}},\"version\":1}",
5
+ "bytecode": "0x60636023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea365627a7a72315820d5cd6d95677b7fe582139c805a4243e306c8b1e9625111cbf848c9b606193e676c6578706572696d656e74616cf564736f6c63430005100040",
6
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea365627a7a72315820d5cd6d95677b7fe582139c805a4243e306c8b1e9625111cbf848c9b606193e676c6578706572696d656e74616cf564736f6c63430005100040",
7
7
  "sourceMap": "813:2931:20:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
8
8
  "deployedSourceMap": "813:2931:20:-;;;;;;;;",
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 { Require } from \"../../protocol/lib/Require.sol\";\n\n\n/**\n * @title TypedSignature\n * @author dYdX\n *\n * Library to unparse typed signatures\n */\nlibrary TypedSignature {\n\n // ============ Constants ============\n\n bytes32 constant private FILE = \"TypedSignature\";\n\n // prepended message with the length of the signed hash in decimal\n bytes constant private PREPEND_DEC = \"\\x19Ethereum Signed Message:\\n32\";\n\n // prepended message with the length of the signed hash in hexadecimal\n bytes constant private PREPEND_HEX = \"\\x19Ethereum Signed Message:\\n\\x20\";\n\n // Number of bytes in a typed signature\n uint256 constant private NUM_SIGNATURE_BYTES = 66;\n\n // ============ Enums ============\n\n // Different RPC providers may implement signing methods differently, so we allow different\n // signature types depending on the string prepended to a hash before it was signed.\n enum SignatureType {\n NoPrepend, // No string was prepended.\n Decimal, // PREPEND_DEC was prepended.\n Hexadecimal, // PREPEND_HEX was prepended.\n Invalid // Not a valid type. Used for bound-checking.\n }\n\n // ============ Functions ============\n\n /**\n * Gives the address of the signer of a hash. Also allows for the commonly prepended string of\n * '\\x19Ethereum Signed Message:\\n' + message.length\n *\n * @param hash Hash that was signed (does not include prepended message)\n * @param signatureWithType Type and ECDSA signature with structure: {32:r}{32:s}{1:v}{1:type}\n * @return address of the signer of the hash\n */\n function recover(\n bytes32 hash,\n bytes memory signatureWithType\n )\n internal\n pure\n returns (address)\n {\n Require.that(\n signatureWithType.length == NUM_SIGNATURE_BYTES,\n FILE,\n \"Invalid signature length\"\n );\n\n bytes32 r;\n bytes32 s;\n uint8 v;\n uint8 rawSigType;\n\n /* solium-disable-next-line security/no-inline-assembly */\n assembly {\n r := mload(add(signatureWithType, 0x20))\n s := mload(add(signatureWithType, 0x40))\n let lastSlot := mload(add(signatureWithType, 0x60))\n v := byte(0, lastSlot)\n rawSigType := byte(1, lastSlot)\n }\n\n Require.that(\n rawSigType < uint8(SignatureType.Invalid),\n FILE,\n \"Invalid signature type\"\n );\n\n SignatureType sigType = SignatureType(rawSigType);\n\n bytes32 signedHash;\n if (sigType == SignatureType.NoPrepend) {\n signedHash = hash;\n } else if (sigType == SignatureType.Decimal) {\n signedHash = keccak256(abi.encodePacked(PREPEND_DEC, hash));\n } else {\n assert(sigType == SignatureType.Hexadecimal);\n signedHash = keccak256(abi.encodePacked(PREPEND_HEX, hash));\n }\n\n return ecrecover(\n signedHash,\n v,\n r,\n s\n );\n }\n}\n",
10
- "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/TypedSignature.sol",
10
+ "sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol",
11
11
  "ast": {
12
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/TypedSignature.sol",
12
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol",
13
13
  "exportedSymbols": {
14
14
  "TypedSignature": [
15
15
  6223
@@ -39,7 +39,7 @@
39
39
  "src": "627:33:20"
40
40
  },
41
41
  {
42
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol",
42
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
43
43
  "file": "../../protocol/lib/Require.sol",
44
44
  "id": 6098,
45
45
  "nodeType": "ImportDirective",
@@ -1798,7 +1798,7 @@
1798
1798
  "src": "603:3142:20"
1799
1799
  },
1800
1800
  "legacyAST": {
1801
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/TypedSignature.sol",
1801
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol",
1802
1802
  "exportedSymbols": {
1803
1803
  "TypedSignature": [
1804
1804
  6223
@@ -1828,7 +1828,7 @@
1828
1828
  "src": "627:33:20"
1829
1829
  },
1830
1830
  {
1831
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol",
1831
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
1832
1832
  "file": "../../protocol/lib/Require.sol",
1833
1833
  "id": 6098,
1834
1834
  "nodeType": "ImportDirective",
@@ -3592,7 +3592,7 @@
3592
3592
  },
3593
3593
  "networks": {},
3594
3594
  "schemaVersion": "3.0.23",
3595
- "updatedAt": "2022-02-04T01:55:00.780Z",
3595
+ "updatedAt": "2022-02-07T07:18:44.856Z",
3596
3596
  "devdoc": {
3597
3597
  "author": "dYdX * Library to unparse typed signatures",
3598
3598
  "methods": {},
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "contractName": "Types",
3
3
  "abi": [],
4
- "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"dYdX * Library for interacting with the basic structs used in DolomiteMargin\",\"methods\":{},\"title\":\"Types\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":\"Types\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/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/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/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\"]}},\"version\":1}",
5
- "bytecode": "0x60636023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea365627a7a72315820f01a801b7a938ca12bfb612f3d1d3cdb2c3e328fe01bc62dbf9db6718fcb3b9d6c6578706572696d656e74616cf564736f6c63430005100040",
6
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea365627a7a72315820f01a801b7a938ca12bfb612f3d1d3cdb2c3e328fe01bc62dbf9db6718fcb3b9d6c6578706572696d656e74616cf564736f6c63430005100040",
4
+ "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"dYdX * Library for interacting with the basic structs used in DolomiteMargin\",\"methods\":{},\"title\":\"Types\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol\":\"Types\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/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/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/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\"]}},\"version\":1}",
5
+ "bytecode": "0x60636023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea365627a7a72315820f46d2898840dfc3519bbd81661f2b34de4268769ff203bb5d404168a7f7529e26c6578706572696d656e74616cf564736f6c63430005100040",
6
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea365627a7a72315820f46d2898840dfc3519bbd81661f2b34de4268769ff203bb5d404168a7f7529e26c6578706572696d656e74616cf564736f6c63430005100040",
7
7
  "sourceMap": "885:5436:82:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
8
8
  "deployedSourceMap": "885:5436:82:-;;;;;;;;",
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 { SafeMath } from \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport { Math } from \"./Math.sol\";\n\n\n/**\n * @title Types\n * @author dYdX\n *\n * Library for interacting with the basic structs used in DolomiteMargin\n */\nlibrary Types {\n using Math for uint256;\n\n // ============ Permission ============\n\n struct OperatorArg {\n address operator;\n bool trusted;\n }\n\n // ============ AssetAmount ============\n\n enum AssetDenomination {\n Wei, // the amount is denominated in wei\n Par // the amount is denominated in par\n }\n\n enum AssetReference {\n Delta, // the amount is given as a delta from the current value\n Target // the amount is given as an exact number to end up at\n }\n\n struct AssetAmount {\n bool sign; // true if positive\n AssetDenomination denomination;\n AssetReference ref;\n uint256 value;\n }\n\n // ============ Par (Principal Amount) ============\n\n // Total borrow and supply values for a market\n struct TotalPar {\n uint128 borrow;\n uint128 supply;\n }\n\n // Individual principal amount for an account\n struct Par {\n bool sign; // true if positive\n uint128 value;\n }\n\n function zeroPar()\n internal\n pure\n returns (Par memory)\n {\n return Par({\n sign: false,\n value: 0\n });\n }\n\n function sub(\n Par memory a,\n Par memory b\n )\n internal\n pure\n returns (Par memory)\n {\n return add(a, negative(b));\n }\n\n function add(\n Par memory a,\n Par memory b\n )\n internal\n pure\n returns (Par memory)\n {\n Par memory result;\n if (a.sign == b.sign) {\n result.sign = a.sign;\n result.value = SafeMath.add(a.value, b.value).to128();\n } else {\n if (a.value >= b.value) {\n result.sign = a.sign;\n result.value = SafeMath.sub(a.value, b.value).to128();\n } else {\n result.sign = b.sign;\n result.value = SafeMath.sub(b.value, a.value).to128();\n }\n }\n return result;\n }\n\n function equals(\n Par memory a,\n Par memory b\n )\n internal\n pure\n returns (bool)\n {\n if (a.value == b.value) {\n if (a.value == 0) {\n return true;\n }\n return a.sign == b.sign;\n }\n return false;\n }\n\n function negative(\n Par memory a\n )\n internal\n pure\n returns (Par memory)\n {\n return Par({\n sign: !a.sign,\n value: a.value\n });\n }\n\n function isNegative(\n Par memory a\n )\n internal\n pure\n returns (bool)\n {\n return !a.sign && a.value > 0;\n }\n\n function isPositive(\n Par memory a\n )\n internal\n pure\n returns (bool)\n {\n return a.sign && a.value > 0;\n }\n\n function isZero(\n Par memory a\n )\n internal\n pure\n returns (bool)\n {\n return a.value == 0;\n }\n\n function isLessThanZero(\n Par memory a\n )\n internal\n pure\n returns (bool)\n {\n return a.value > 0 && !a.sign;\n }\n\n function isGreaterThanOrEqualToZero(\n Par memory a\n )\n internal\n pure\n returns (bool)\n {\n return isZero(a) || a.sign;\n }\n\n // ============ Wei (Token Amount) ============\n\n // Individual token amount for an account\n struct Wei {\n bool sign; // true if positive\n uint256 value;\n }\n\n function zeroWei()\n internal\n pure\n returns (Wei memory)\n {\n return Wei({\n sign: false,\n value: 0\n });\n }\n\n function sub(\n Wei memory a,\n Wei memory b\n )\n internal\n pure\n returns (Wei memory)\n {\n return add(a, negative(b));\n }\n\n function add(\n Wei memory a,\n Wei memory b\n )\n internal\n pure\n returns (Wei memory)\n {\n Wei memory result;\n if (a.sign == b.sign) {\n result.sign = a.sign;\n result.value = SafeMath.add(a.value, b.value);\n } else {\n if (a.value >= b.value) {\n result.sign = a.sign;\n result.value = SafeMath.sub(a.value, b.value);\n } else {\n result.sign = b.sign;\n result.value = SafeMath.sub(b.value, a.value);\n }\n }\n return result;\n }\n\n function equals(\n Wei memory a,\n Wei memory b\n )\n internal\n pure\n returns (bool)\n {\n if (a.value == b.value) {\n if (a.value == 0) {\n return true;\n }\n return a.sign == b.sign;\n }\n return false;\n }\n\n function negative(\n Wei memory a\n )\n internal\n pure\n returns (Wei memory)\n {\n return Wei({\n sign: !a.sign,\n value: a.value\n });\n }\n\n function isNegative(\n Wei memory a\n )\n internal\n pure\n returns (bool)\n {\n return !a.sign && a.value > 0;\n }\n\n function isPositive(\n Wei memory a\n )\n internal\n pure\n returns (bool)\n {\n return a.sign && a.value > 0;\n }\n\n function isZero(\n Wei memory a\n )\n internal\n pure\n returns (bool)\n {\n return a.value == 0;\n }\n}\n",
10
- "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol",
10
+ "sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
11
11
  "ast": {
12
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol",
12
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
13
13
  "exportedSymbols": {
14
14
  "Types": [
15
15
  34024
@@ -55,7 +55,7 @@
55
55
  "unitAlias": ""
56
56
  },
57
57
  {
58
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Math.sol",
58
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol",
59
59
  "file": "./Math.sol",
60
60
  "id": 33525,
61
61
  "nodeType": "ImportDirective",
@@ -6447,7 +6447,7 @@
6447
6447
  "src": "603:5719:82"
6448
6448
  },
6449
6449
  "legacyAST": {
6450
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol",
6450
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
6451
6451
  "exportedSymbols": {
6452
6452
  "Types": [
6453
6453
  34024
@@ -6493,7 +6493,7 @@
6493
6493
  "unitAlias": ""
6494
6494
  },
6495
6495
  {
6496
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Math.sol",
6496
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol",
6497
6497
  "file": "./Math.sol",
6498
6498
  "id": 33525,
6499
6499
  "nodeType": "ImportDirective",
@@ -12890,7 +12890,7 @@
12890
12890
  },
12891
12891
  "networks": {},
12892
12892
  "schemaVersion": "3.0.23",
12893
- "updatedAt": "2022-02-04T01:55:01.222Z",
12893
+ "updatedAt": "2022-02-07T07:18:45.370Z",
12894
12894
  "devdoc": {
12895
12895
  "author": "dYdX * Library for interacting with the basic structs used in DolomiteMargin",
12896
12896
  "methods": {},
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "contractName": "UQ112x112",
3
3
  "abi": [],
4
- "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/UQ112x112.sol\":\"UQ112x112\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/UQ112x112.sol\":{\"keccak256\":\"0x444a4eb83efb08b77e44c0ab3ea063903312e3dbde92ebdafeb137abba9c9cdd\",\"urls\":[\"bzz-raw://85323f3d86597716ad0491f8f719d0759292c818719116d038adc14ca72aac9e\",\"dweb:/ipfs/QmcYayCsypWmEh8vJwV5kzV6BbPY6fH2ZAz78DPiKD4iUm\"]}},\"version\":1}",
5
- "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820fb54ee12510347ba4c2d5b63d8ac7af24af13e89cb7a5ac0f629837762a1576064736f6c63430005100032",
6
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820fb54ee12510347ba4c2d5b63d8ac7af24af13e89cb7a5ac0f629837762a1576064736f6c63430005100032",
4
+ "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/UQ112x112.sol\":\"UQ112x112\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/UQ112x112.sol\":{\"keccak256\":\"0x444a4eb83efb08b77e44c0ab3ea063903312e3dbde92ebdafeb137abba9c9cdd\",\"urls\":[\"bzz-raw://85323f3d86597716ad0491f8f719d0759292c818719116d038adc14ca72aac9e\",\"dweb:/ipfs/QmcYayCsypWmEh8vJwV5kzV6BbPY6fH2ZAz78DPiKD4iUm\"]}},\"version\":1}",
5
+ "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820834c1c174e6262fd2d8ae5a92c187ff84d8e7c22276e16067b2f58971ff26f8b64736f6c63430005100032",
6
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820834c1c174e6262fd2d8ae5a92c187ff84d8e7c22276e16067b2f58971ff26f8b64736f6c63430005100032",
7
7
  "sourceMap": "184:404:21:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
8
8
  "deployedSourceMap": "184:404:21:-;;;;;;;;",
9
9
  "source": "pragma solidity ^0.5.16;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2 ** 112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n // never overflows\n z = uint224(y) * Q112;\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n",
10
- "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/UQ112x112.sol",
10
+ "sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/UQ112x112.sol",
11
11
  "ast": {
12
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/UQ112x112.sol",
12
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/UQ112x112.sol",
13
13
  "exportedSymbols": {
14
14
  "UQ112x112": [
15
15
  6265
@@ -562,7 +562,7 @@
562
562
  "src": "0:589:21"
563
563
  },
564
564
  "legacyAST": {
565
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/UQ112x112.sol",
565
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/UQ112x112.sol",
566
566
  "exportedSymbols": {
567
567
  "UQ112x112": [
568
568
  6265
@@ -1120,7 +1120,7 @@
1120
1120
  },
1121
1121
  "networks": {},
1122
1122
  "schemaVersion": "3.0.23",
1123
- "updatedAt": "2022-02-04T01:55:00.781Z",
1123
+ "updatedAt": "2022-02-07T07:18:44.858Z",
1124
1124
  "devdoc": {
1125
1125
  "methods": {}
1126
1126
  },