@coti-io/coti-contracts 1.2.0 → 1.3.0

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 (267) hide show
  1. package/.github/workflows/npm-publish.yml +1 -1
  2. package/contracts/messaging/PrivateMessaging.sol +456 -0
  3. package/contracts/mocks/messaging/PrivateMessagingHarness.sol +54 -0
  4. package/contracts/mocks/oracle/CotiPriceConsumerMock.sol +31 -0
  5. package/contracts/mocks/token/ERC20DecimalsMock.sol +21 -0
  6. package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +8 -3
  7. package/contracts/node/SoulboundNodeNFT.sol +22 -22
  8. package/contracts/oracle/CotiPriceConsumer.sol +103 -0
  9. package/contracts/oracle/ICotiPriceConsumer.sol +15 -0
  10. package/contracts/oracle/IStdReference.sol +26 -0
  11. package/contracts/privacyBridge/PrivacyBridge.sol +373 -91
  12. package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +209 -161
  13. package/contracts/privacyBridge/PrivacyBridgeERC20.sol +241 -159
  14. package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +7 -1
  15. package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +7 -1
  16. package/contracts/privacyBridge/PrivacyBridgeWADA.sol +7 -1
  17. package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +7 -1
  18. package/contracts/privacyBridge/PrivacyBridgeWETH.sol +7 -1
  19. package/contracts/privacyBridge/PrivacyBridgegCoti.sol +7 -1
  20. package/hardhat.config.ts +5 -2
  21. package/package.json +2 -2
  22. package/scripts/add-bridge-operators.cjs +87 -0
  23. package/scripts/deploy-coti-price-consumer-mainnet.cjs +49 -0
  24. package/scripts/deployCotiNodeRewards.ts +51 -0
  25. package/scripts/redeploy-private-and-bridges.cjs +201 -0
  26. package/scripts/set-bridge-limits-mainnet.cjs +177 -0
  27. package/scripts/verify-mainnet-private-bridges.cjs +289 -0
  28. package/sonar-project.properties +11 -0
  29. package/test/messaging/PrivateMessaging.test.ts +158 -0
  30. package/test/privacyBridge/UnifiedPrivacyBridges.test.cjs +1663 -0
  31. package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +162 -239
  32. package/typechain-types/@openzeppelin/contracts/access/AccessControl.ts +324 -0
  33. package/typechain-types/@openzeppelin/contracts/access/AccessControlEnumerable.ts +361 -0
  34. package/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts +292 -0
  35. package/typechain-types/@openzeppelin/contracts/access/IAccessControlEnumerable.ts +329 -0
  36. package/typechain-types/@openzeppelin/contracts/access/index.ts +4 -0
  37. package/typechain-types/@openzeppelin/contracts/index.ts +2 -0
  38. package/typechain-types/@openzeppelin/contracts/security/Pausable.ts +150 -0
  39. package/typechain-types/@openzeppelin/contracts/security/index.ts +4 -0
  40. package/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts +330 -0
  41. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +286 -0
  42. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +1 -0
  43. package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +1 -0
  44. package/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.ts +420 -0
  45. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.ts +420 -0
  46. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  47. package/typechain-types/@openzeppelin/contracts/token/ERC721/index.ts +3 -0
  48. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.ts +735 -0
  49. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.ts +734 -0
  50. package/typechain-types/contracts/disperse/coinByRatio/index.ts +2 -0
  51. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable.ts +95 -0
  52. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser.ts +22 -0
  53. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
  54. package/typechain-types/contracts/index.ts +8 -0
  55. package/typechain-types/contracts/messaging/PrivateMessaging.ts +871 -0
  56. package/typechain-types/contracts/messaging/index.ts +4 -0
  57. package/typechain-types/contracts/mocks/index.ts +4 -0
  58. package/typechain-types/contracts/mocks/messaging/PrivateMessagingHarness.ts +951 -0
  59. package/typechain-types/contracts/mocks/messaging/index.ts +4 -0
  60. package/typechain-types/contracts/mocks/oracle/CotiPriceConsumerMock.ts +163 -0
  61. package/typechain-types/contracts/mocks/oracle/index.ts +4 -0
  62. package/typechain-types/contracts/mocks/token/ERC20DecimalsMock.ts +349 -0
  63. package/typechain-types/contracts/mocks/token/ERC20Mock.ts +368 -0
  64. package/typechain-types/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.ts +108 -0
  65. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.ts +1892 -0
  66. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.ts +1296 -0
  67. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.ts +1270 -0
  68. package/typechain-types/contracts/mocks/{utils/mpc/Bitwise128BitTestsContract.ts → token/PrivateERC20/PrivateERC20GtCallerMock.ts} +47 -67
  69. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +757 -25
  70. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted.ts +102 -0
  71. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock.ts +154 -0
  72. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
  73. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.ts +155 -0
  74. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.ts +107 -0
  75. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.ts +100 -0
  76. package/typechain-types/contracts/mocks/token/PrivateERC20/index.ts +10 -0
  77. package/typechain-types/contracts/mocks/token/index.ts +2 -0
  78. package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.ts +6 -6
  79. package/typechain-types/contracts/node/CotiNodeRewards.ts +566 -0
  80. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/IERC5192.ts +123 -0
  81. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT.ts +975 -0
  82. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
  83. package/typechain-types/contracts/node/index.ts +6 -0
  84. package/typechain-types/contracts/oracle/CotiPriceConsumer.ts +256 -0
  85. package/typechain-types/contracts/oracle/ICotiPriceConsumer.ts +119 -0
  86. package/typechain-types/contracts/oracle/IStdReference.ts +136 -0
  87. package/typechain-types/contracts/oracle/index.ts +6 -0
  88. package/typechain-types/contracts/privacyBridge/PrivacyBridge.ts +1628 -0
  89. package/typechain-types/contracts/privacyBridge/PrivacyBridgeCotiNative.ts +1870 -0
  90. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals.ts +84 -0
  91. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20.ts +1892 -0
  92. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
  93. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDCe.ts +1892 -0
  94. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDT.ts +1892 -0
  95. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWADA.ts +1892 -0
  96. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWBTC.ts +1892 -0
  97. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWETH.ts +1892 -0
  98. package/typechain-types/contracts/privacyBridge/PrivacyBridgegCoti.ts +1892 -0
  99. package/typechain-types/contracts/privacyBridge/index.ts +13 -0
  100. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +439 -19
  101. package/typechain-types/contracts/token/PrivateERC20/ITokenReceiver.ts +100 -0
  102. package/typechain-types/contracts/token/PrivateERC20/ITokenReceiverEncrypted.ts +99 -0
  103. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +763 -15
  104. package/typechain-types/contracts/token/PrivateERC20/index.ts +4 -0
  105. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.ts +1270 -0
  106. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTI.ts +1270 -0
  107. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.ts +1270 -0
  108. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.ts +1270 -0
  109. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.ts +1270 -0
  110. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.ts +1270 -0
  111. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.ts +1270 -0
  112. package/typechain-types/contracts/token/PrivateERC20/tokens/index.ts +10 -0
  113. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControlEnumerable__factory.ts +276 -0
  114. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControl__factory.ts +229 -0
  115. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControlEnumerable__factory.ts +244 -0
  116. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +197 -0
  117. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +4 -0
  118. package/typechain-types/factories/@openzeppelin/contracts/index.ts +1 -0
  119. package/typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts +61 -0
  120. package/typechain-types/factories/@openzeppelin/contracts/security/index.ts +4 -0
  121. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +356 -0
  122. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +247 -0
  123. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +1 -0
  124. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +1 -0
  125. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.ts +416 -0
  126. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata__factory.ts +355 -0
  127. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  128. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/index.ts +2 -0
  129. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1__factory.ts +791 -0
  130. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow__factory.ts +711 -0
  131. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +1 -1
  132. package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +2 -0
  133. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable__factory.ts +35 -0
  134. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +19 -1
  135. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
  136. package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +1 -1
  137. package/typechain-types/factories/contracts/index.ts +4 -0
  138. package/typechain-types/factories/contracts/messaging/PrivateMessaging__factory.ts +1035 -0
  139. package/typechain-types/factories/contracts/messaging/index.ts +4 -0
  140. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  141. package/typechain-types/factories/contracts/mocks/index.ts +2 -0
  142. package/typechain-types/factories/contracts/mocks/messaging/PrivateMessagingHarness__factory.ts +1161 -0
  143. package/typechain-types/factories/contracts/mocks/messaging/index.ts +4 -0
  144. package/typechain-types/factories/contracts/mocks/oracle/CotiPriceConsumerMock__factory.ts +159 -0
  145. package/typechain-types/factories/contracts/mocks/oracle/index.ts +4 -0
  146. package/typechain-types/factories/contracts/mocks/token/ERC20DecimalsMock__factory.ts +394 -0
  147. package/typechain-types/factories/contracts/mocks/token/ERC20Mock__factory.ts +392 -0
  148. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock__factory.ts +125 -0
  149. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock__factory.ts +1797 -0
  150. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock__factory.ts +1514 -0
  151. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock__factory.ts +1466 -0
  152. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock__factory.ts +165 -0
  153. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +771 -55
  154. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted__factory.ts +54 -0
  155. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock__factory.ts +159 -0
  156. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
  157. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock__factory.ts +164 -0
  158. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock__factory.ts +130 -0
  159. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock__factory.ts +102 -0
  160. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/index.ts +9 -0
  161. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
  162. package/typechain-types/factories/contracts/mocks/token/index.ts +2 -0
  163. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +1 -1
  164. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +1 -1
  165. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  166. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +1 -1
  167. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +1 -1
  168. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  169. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +1 -1
  170. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +1 -1
  171. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
  172. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +1 -1
  173. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  174. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +1 -1
  175. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  176. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +1 -1
  177. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +1 -1
  178. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  179. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +1 -1
  180. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +1 -1
  181. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  182. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  183. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +1 -1
  184. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1 -1
  185. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +1 -1
  186. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +1 -1
  187. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  188. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +1 -1
  189. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +1 -1
  190. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +1 -1
  191. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +1 -1
  192. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +1 -1
  193. package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +1 -1
  194. package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +1 -1
  195. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +1 -1
  196. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +1 -1
  197. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  198. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  199. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +1 -1
  200. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +1 -1
  201. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  202. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  203. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +1 -1
  204. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +1 -1
  205. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  206. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  207. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  208. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  209. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  210. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  211. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +1 -1
  212. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +1 -1
  213. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +1 -1
  214. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +4 -22
  215. package/typechain-types/factories/contracts/node/CotiNodeRewards__factory.ts +549 -0
  216. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/IERC5192__factory.ts +54 -0
  217. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT__factory.ts +947 -0
  218. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
  219. package/typechain-types/factories/contracts/node/index.ts +5 -0
  220. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +1 -1
  221. package/typechain-types/factories/contracts/oracle/CotiPriceConsumer__factory.ts +295 -0
  222. package/typechain-types/factories/contracts/oracle/ICotiPriceConsumer__factory.ts +73 -0
  223. package/typechain-types/factories/contracts/oracle/IStdReference__factory.ts +107 -0
  224. package/typechain-types/factories/contracts/oracle/index.ts +6 -0
  225. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeCotiNative__factory.ts +1676 -0
  226. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals__factory.ts +38 -0
  227. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20__factory.ts +1678 -0
  228. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
  229. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDCe__factory.ts +1782 -0
  230. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDT__factory.ts +1782 -0
  231. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWADA__factory.ts +1782 -0
  232. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWBTC__factory.ts +1782 -0
  233. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWETH__factory.ts +1782 -0
  234. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridge__factory.ts +1367 -0
  235. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgegCoti__factory.ts +1782 -0
  236. package/typechain-types/factories/contracts/privacyBridge/index.ts +12 -0
  237. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +481 -35
  238. package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiverEncrypted__factory.ts +53 -0
  239. package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiver__factory.ts +54 -0
  240. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +793 -59
  241. package/typechain-types/factories/contracts/token/PrivateERC20/index.ts +3 -0
  242. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC__factory.ts +1445 -0
  243. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken__factory.ts +1451 -0
  244. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTI__factory.ts +1442 -0
  245. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateTetherUSD__factory.ts +1445 -0
  246. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedADA__factory.ts +1445 -0
  247. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC__factory.ts +1445 -0
  248. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedEther__factory.ts +1451 -0
  249. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/index.ts +10 -0
  250. package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
  251. package/typechain-types/hardhat.d.ts +953 -17
  252. package/typechain-types/index.ts +104 -0
  253. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.ts +0 -341
  254. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +0 -347
  255. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +0 -186
  256. package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +0 -260
  257. package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +0 -260
  258. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +0 -302
  259. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +0 -322
  260. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +0 -349
  261. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +0 -364
  262. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +0 -182
  263. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +0 -182
  264. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +0 -255
  265. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +0 -255
  266. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +0 -332
  267. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +0 -380
@@ -0,0 +1,1782 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type {
11
+ Signer,
12
+ AddressLike,
13
+ ContractDeployTransaction,
14
+ ContractRunner,
15
+ } from "ethers";
16
+ import type { NonPayableOverrides } from "../../../common";
17
+ import type {
18
+ PrivacyBridgeUSDCe,
19
+ PrivacyBridgeUSDCeInterface,
20
+ } from "../../../contracts/privacyBridge/PrivacyBridgeUSDCe";
21
+
22
+ const _abi = [
23
+ {
24
+ inputs: [
25
+ {
26
+ internalType: "address",
27
+ name: "_usdc",
28
+ type: "address",
29
+ },
30
+ {
31
+ internalType: "address",
32
+ name: "_privateUsdc",
33
+ type: "address",
34
+ },
35
+ {
36
+ internalType: "address",
37
+ name: "_feeRecipient",
38
+ type: "address",
39
+ },
40
+ {
41
+ internalType: "address",
42
+ name: "_rescueRecipient",
43
+ type: "address",
44
+ },
45
+ {
46
+ internalType: "address",
47
+ name: "_priceOracle",
48
+ type: "address",
49
+ },
50
+ ],
51
+ stateMutability: "nonpayable",
52
+ type: "constructor",
53
+ },
54
+ {
55
+ inputs: [
56
+ {
57
+ internalType: "address",
58
+ name: "account",
59
+ type: "address",
60
+ },
61
+ ],
62
+ name: "AddressBlacklisted",
63
+ type: "error",
64
+ },
65
+ {
66
+ inputs: [],
67
+ name: "AmountTooLarge",
68
+ type: "error",
69
+ },
70
+ {
71
+ inputs: [],
72
+ name: "AmountTooSmall",
73
+ type: "error",
74
+ },
75
+ {
76
+ inputs: [],
77
+ name: "AmountZero",
78
+ type: "error",
79
+ },
80
+ {
81
+ inputs: [],
82
+ name: "BridgePaused",
83
+ type: "error",
84
+ },
85
+ {
86
+ inputs: [],
87
+ name: "CannotRescueBridgeToken",
88
+ type: "error",
89
+ },
90
+ {
91
+ inputs: [],
92
+ name: "DecimalsMismatch",
93
+ type: "error",
94
+ },
95
+ {
96
+ inputs: [],
97
+ name: "DepositBelowMinimum",
98
+ type: "error",
99
+ },
100
+ {
101
+ inputs: [],
102
+ name: "DepositDisabled",
103
+ type: "error",
104
+ },
105
+ {
106
+ inputs: [],
107
+ name: "DepositExceedsMaximum",
108
+ type: "error",
109
+ },
110
+ {
111
+ inputs: [],
112
+ name: "EthTransferFailed",
113
+ type: "error",
114
+ },
115
+ {
116
+ inputs: [],
117
+ name: "FeeRecipientNotSet",
118
+ type: "error",
119
+ },
120
+ {
121
+ inputs: [],
122
+ name: "InsufficientAccumulatedFees",
123
+ type: "error",
124
+ },
125
+ {
126
+ inputs: [],
127
+ name: "InsufficientBridgeLiquidity",
128
+ type: "error",
129
+ },
130
+ {
131
+ inputs: [],
132
+ name: "InsufficientCotiFee",
133
+ type: "error",
134
+ },
135
+ {
136
+ inputs: [],
137
+ name: "InsufficientEthBalance",
138
+ type: "error",
139
+ },
140
+ {
141
+ inputs: [],
142
+ name: "InvalidAddress",
143
+ type: "error",
144
+ },
145
+ {
146
+ inputs: [],
147
+ name: "InvalidFee",
148
+ type: "error",
149
+ },
150
+ {
151
+ inputs: [],
152
+ name: "InvalidFeeConfiguration",
153
+ type: "error",
154
+ },
155
+ {
156
+ inputs: [],
157
+ name: "InvalidLimitConfiguration",
158
+ type: "error",
159
+ },
160
+ {
161
+ inputs: [],
162
+ name: "InvalidOraclePrice",
163
+ type: "error",
164
+ },
165
+ {
166
+ inputs: [],
167
+ name: "InvalidPrivateTokenAddress",
168
+ type: "error",
169
+ },
170
+ {
171
+ inputs: [],
172
+ name: "InvalidScalingFactor",
173
+ type: "error",
174
+ },
175
+ {
176
+ inputs: [],
177
+ name: "InvalidTokenAddress",
178
+ type: "error",
179
+ },
180
+ {
181
+ inputs: [],
182
+ name: "InvalidTokenSender",
183
+ type: "error",
184
+ },
185
+ {
186
+ inputs: [],
187
+ name: "NativeFeeRequiredForTransferAndCallWithdraw",
188
+ type: "error",
189
+ },
190
+ {
191
+ inputs: [
192
+ {
193
+ internalType: "uint256",
194
+ name: "lastUpdated",
195
+ type: "uint256",
196
+ },
197
+ ],
198
+ name: "OracleLastUpdatedInFuture",
199
+ type: "error",
200
+ },
201
+ {
202
+ inputs: [],
203
+ name: "OracleMaxAgeZeroDisallowed",
204
+ type: "error",
205
+ },
206
+ {
207
+ inputs: [
208
+ {
209
+ internalType: "uint256",
210
+ name: "oracleLastUpdated",
211
+ type: "uint256",
212
+ },
213
+ {
214
+ internalType: "uint256",
215
+ name: "blockTimestamp",
216
+ type: "uint256",
217
+ },
218
+ {
219
+ internalType: "uint256",
220
+ name: "maxOracleAge",
221
+ type: "uint256",
222
+ },
223
+ ],
224
+ name: "OraclePriceStale",
225
+ type: "error",
226
+ },
227
+ {
228
+ inputs: [
229
+ {
230
+ internalType: "uint256",
231
+ name: "expected",
232
+ type: "uint256",
233
+ },
234
+ {
235
+ internalType: "uint256",
236
+ name: "actual",
237
+ type: "uint256",
238
+ },
239
+ ],
240
+ name: "OracleTimestampMismatch",
241
+ type: "error",
242
+ },
243
+ {
244
+ inputs: [],
245
+ name: "PriceOracleNotSet",
246
+ type: "error",
247
+ },
248
+ {
249
+ inputs: [],
250
+ name: "TokenTransferFailed",
251
+ type: "error",
252
+ },
253
+ {
254
+ inputs: [
255
+ {
256
+ internalType: "uint256",
257
+ name: "expected",
258
+ type: "uint256",
259
+ },
260
+ {
261
+ internalType: "uint256",
262
+ name: "received",
263
+ type: "uint256",
264
+ },
265
+ ],
266
+ name: "UnexpectedTransferBalance",
267
+ type: "error",
268
+ },
269
+ {
270
+ inputs: [],
271
+ name: "WithdrawBelowMinimum",
272
+ type: "error",
273
+ },
274
+ {
275
+ inputs: [],
276
+ name: "WithdrawExceedsMaximum",
277
+ type: "error",
278
+ },
279
+ {
280
+ anonymous: false,
281
+ inputs: [
282
+ {
283
+ indexed: true,
284
+ internalType: "address",
285
+ name: "account",
286
+ type: "address",
287
+ },
288
+ {
289
+ indexed: true,
290
+ internalType: "address",
291
+ name: "by",
292
+ type: "address",
293
+ },
294
+ ],
295
+ name: "Blacklisted",
296
+ type: "event",
297
+ },
298
+ {
299
+ anonymous: false,
300
+ inputs: [
301
+ {
302
+ indexed: true,
303
+ internalType: "address",
304
+ name: "feeRecipient",
305
+ type: "address",
306
+ },
307
+ {
308
+ indexed: false,
309
+ internalType: "uint256",
310
+ name: "amount",
311
+ type: "uint256",
312
+ },
313
+ ],
314
+ name: "CotiFeesWithdrawn",
315
+ type: "event",
316
+ },
317
+ {
318
+ anonymous: false,
319
+ inputs: [
320
+ {
321
+ indexed: true,
322
+ internalType: "address",
323
+ name: "user",
324
+ type: "address",
325
+ },
326
+ {
327
+ indexed: false,
328
+ internalType: "uint256",
329
+ name: "grossAmount",
330
+ type: "uint256",
331
+ },
332
+ {
333
+ indexed: false,
334
+ internalType: "uint256",
335
+ name: "netAmount",
336
+ type: "uint256",
337
+ },
338
+ ],
339
+ name: "Deposit",
340
+ type: "event",
341
+ },
342
+ {
343
+ anonymous: false,
344
+ inputs: [
345
+ {
346
+ indexed: false,
347
+ internalType: "bool",
348
+ name: "enabled",
349
+ type: "bool",
350
+ },
351
+ {
352
+ indexed: true,
353
+ internalType: "address",
354
+ name: "by",
355
+ type: "address",
356
+ },
357
+ ],
358
+ name: "DepositEnabledUpdated",
359
+ type: "event",
360
+ },
361
+ {
362
+ anonymous: false,
363
+ inputs: [
364
+ {
365
+ indexed: false,
366
+ internalType: "string",
367
+ name: "feeType",
368
+ type: "string",
369
+ },
370
+ {
371
+ indexed: false,
372
+ internalType: "uint256",
373
+ name: "fixedFee",
374
+ type: "uint256",
375
+ },
376
+ {
377
+ indexed: false,
378
+ internalType: "uint256",
379
+ name: "percentageBps",
380
+ type: "uint256",
381
+ },
382
+ {
383
+ indexed: false,
384
+ internalType: "uint256",
385
+ name: "maxFee",
386
+ type: "uint256",
387
+ },
388
+ ],
389
+ name: "DynamicFeeUpdated",
390
+ type: "event",
391
+ },
392
+ {
393
+ anonymous: false,
394
+ inputs: [
395
+ {
396
+ indexed: true,
397
+ internalType: "address",
398
+ name: "token",
399
+ type: "address",
400
+ },
401
+ {
402
+ indexed: true,
403
+ internalType: "address",
404
+ name: "to",
405
+ type: "address",
406
+ },
407
+ {
408
+ indexed: false,
409
+ internalType: "uint256",
410
+ name: "amount",
411
+ type: "uint256",
412
+ },
413
+ ],
414
+ name: "ERC20Rescued",
415
+ type: "event",
416
+ },
417
+ {
418
+ anonymous: false,
419
+ inputs: [
420
+ {
421
+ indexed: true,
422
+ internalType: "address",
423
+ name: "to",
424
+ type: "address",
425
+ },
426
+ {
427
+ indexed: false,
428
+ internalType: "uint256",
429
+ name: "amount",
430
+ type: "uint256",
431
+ },
432
+ ],
433
+ name: "FeesWithdrawn",
434
+ type: "event",
435
+ },
436
+ {
437
+ anonymous: false,
438
+ inputs: [
439
+ {
440
+ indexed: false,
441
+ internalType: "uint256",
442
+ name: "minDeposit",
443
+ type: "uint256",
444
+ },
445
+ {
446
+ indexed: false,
447
+ internalType: "uint256",
448
+ name: "maxDeposit",
449
+ type: "uint256",
450
+ },
451
+ {
452
+ indexed: false,
453
+ internalType: "uint256",
454
+ name: "minWithdraw",
455
+ type: "uint256",
456
+ },
457
+ {
458
+ indexed: false,
459
+ internalType: "uint256",
460
+ name: "maxWithdraw",
461
+ type: "uint256",
462
+ },
463
+ ],
464
+ name: "LimitsUpdated",
465
+ type: "event",
466
+ },
467
+ {
468
+ anonymous: false,
469
+ inputs: [
470
+ {
471
+ indexed: false,
472
+ internalType: "uint256",
473
+ name: "maxOracleAge",
474
+ type: "uint256",
475
+ },
476
+ {
477
+ indexed: true,
478
+ internalType: "address",
479
+ name: "by",
480
+ type: "address",
481
+ },
482
+ ],
483
+ name: "MaxOracleAgeUpdated",
484
+ type: "event",
485
+ },
486
+ {
487
+ anonymous: false,
488
+ inputs: [
489
+ {
490
+ indexed: true,
491
+ internalType: "address",
492
+ name: "user",
493
+ type: "address",
494
+ },
495
+ {
496
+ indexed: false,
497
+ internalType: "uint256",
498
+ name: "amount",
499
+ type: "uint256",
500
+ },
501
+ ],
502
+ name: "NativeRefundExcessPushFailed",
503
+ type: "event",
504
+ },
505
+ {
506
+ anonymous: false,
507
+ inputs: [
508
+ {
509
+ indexed: true,
510
+ internalType: "address",
511
+ name: "account",
512
+ type: "address",
513
+ },
514
+ {
515
+ indexed: true,
516
+ internalType: "address",
517
+ name: "by",
518
+ type: "address",
519
+ },
520
+ ],
521
+ name: "OperatorAdded",
522
+ type: "event",
523
+ },
524
+ {
525
+ anonymous: false,
526
+ inputs: [
527
+ {
528
+ indexed: true,
529
+ internalType: "address",
530
+ name: "account",
531
+ type: "address",
532
+ },
533
+ {
534
+ indexed: true,
535
+ internalType: "address",
536
+ name: "by",
537
+ type: "address",
538
+ },
539
+ ],
540
+ name: "OperatorRemoved",
541
+ type: "event",
542
+ },
543
+ {
544
+ anonymous: false,
545
+ inputs: [
546
+ {
547
+ indexed: true,
548
+ internalType: "address",
549
+ name: "previousOwner",
550
+ type: "address",
551
+ },
552
+ {
553
+ indexed: true,
554
+ internalType: "address",
555
+ name: "newOwner",
556
+ type: "address",
557
+ },
558
+ ],
559
+ name: "OwnershipTransferred",
560
+ type: "event",
561
+ },
562
+ {
563
+ anonymous: false,
564
+ inputs: [
565
+ {
566
+ indexed: false,
567
+ internalType: "address",
568
+ name: "account",
569
+ type: "address",
570
+ },
571
+ ],
572
+ name: "Paused",
573
+ type: "event",
574
+ },
575
+ {
576
+ anonymous: false,
577
+ inputs: [
578
+ {
579
+ indexed: true,
580
+ internalType: "address",
581
+ name: "oldOracle",
582
+ type: "address",
583
+ },
584
+ {
585
+ indexed: true,
586
+ internalType: "address",
587
+ name: "newOracle",
588
+ type: "address",
589
+ },
590
+ ],
591
+ name: "PriceOracleUpdated",
592
+ type: "event",
593
+ },
594
+ {
595
+ anonymous: false,
596
+ inputs: [
597
+ {
598
+ indexed: true,
599
+ internalType: "address",
600
+ name: "user",
601
+ type: "address",
602
+ },
603
+ {
604
+ indexed: false,
605
+ internalType: "uint256",
606
+ name: "amount",
607
+ type: "uint256",
608
+ },
609
+ ],
610
+ name: "RefundableNativeExcessClaimed",
611
+ type: "event",
612
+ },
613
+ {
614
+ anonymous: false,
615
+ inputs: [
616
+ {
617
+ indexed: true,
618
+ internalType: "bytes32",
619
+ name: "role",
620
+ type: "bytes32",
621
+ },
622
+ {
623
+ indexed: true,
624
+ internalType: "bytes32",
625
+ name: "previousAdminRole",
626
+ type: "bytes32",
627
+ },
628
+ {
629
+ indexed: true,
630
+ internalType: "bytes32",
631
+ name: "newAdminRole",
632
+ type: "bytes32",
633
+ },
634
+ ],
635
+ name: "RoleAdminChanged",
636
+ type: "event",
637
+ },
638
+ {
639
+ anonymous: false,
640
+ inputs: [
641
+ {
642
+ indexed: true,
643
+ internalType: "bytes32",
644
+ name: "role",
645
+ type: "bytes32",
646
+ },
647
+ {
648
+ indexed: true,
649
+ internalType: "address",
650
+ name: "account",
651
+ type: "address",
652
+ },
653
+ {
654
+ indexed: true,
655
+ internalType: "address",
656
+ name: "sender",
657
+ type: "address",
658
+ },
659
+ ],
660
+ name: "RoleGranted",
661
+ type: "event",
662
+ },
663
+ {
664
+ anonymous: false,
665
+ inputs: [
666
+ {
667
+ indexed: true,
668
+ internalType: "bytes32",
669
+ name: "role",
670
+ type: "bytes32",
671
+ },
672
+ {
673
+ indexed: true,
674
+ internalType: "address",
675
+ name: "account",
676
+ type: "address",
677
+ },
678
+ {
679
+ indexed: true,
680
+ internalType: "address",
681
+ name: "sender",
682
+ type: "address",
683
+ },
684
+ ],
685
+ name: "RoleRevoked",
686
+ type: "event",
687
+ },
688
+ {
689
+ anonymous: false,
690
+ inputs: [
691
+ {
692
+ indexed: true,
693
+ internalType: "address",
694
+ name: "account",
695
+ type: "address",
696
+ },
697
+ {
698
+ indexed: true,
699
+ internalType: "address",
700
+ name: "by",
701
+ type: "address",
702
+ },
703
+ ],
704
+ name: "UnBlacklisted",
705
+ type: "event",
706
+ },
707
+ {
708
+ anonymous: false,
709
+ inputs: [
710
+ {
711
+ indexed: false,
712
+ internalType: "address",
713
+ name: "account",
714
+ type: "address",
715
+ },
716
+ ],
717
+ name: "Unpaused",
718
+ type: "event",
719
+ },
720
+ {
721
+ anonymous: false,
722
+ inputs: [
723
+ {
724
+ indexed: true,
725
+ internalType: "address",
726
+ name: "user",
727
+ type: "address",
728
+ },
729
+ {
730
+ indexed: false,
731
+ internalType: "uint256",
732
+ name: "grossAmount",
733
+ type: "uint256",
734
+ },
735
+ {
736
+ indexed: false,
737
+ internalType: "uint256",
738
+ name: "netAmount",
739
+ type: "uint256",
740
+ },
741
+ ],
742
+ name: "Withdraw",
743
+ type: "event",
744
+ },
745
+ {
746
+ inputs: [],
747
+ name: "DEFAULT_ADMIN_ROLE",
748
+ outputs: [
749
+ {
750
+ internalType: "bytes32",
751
+ name: "",
752
+ type: "bytes32",
753
+ },
754
+ ],
755
+ stateMutability: "view",
756
+ type: "function",
757
+ },
758
+ {
759
+ inputs: [],
760
+ name: "DEFAULT_MAX_ORACLE_AGE",
761
+ outputs: [
762
+ {
763
+ internalType: "uint256",
764
+ name: "",
765
+ type: "uint256",
766
+ },
767
+ ],
768
+ stateMutability: "view",
769
+ type: "function",
770
+ },
771
+ {
772
+ inputs: [],
773
+ name: "FEE_DIVISOR",
774
+ outputs: [
775
+ {
776
+ internalType: "uint256",
777
+ name: "",
778
+ type: "uint256",
779
+ },
780
+ ],
781
+ stateMutability: "view",
782
+ type: "function",
783
+ },
784
+ {
785
+ inputs: [],
786
+ name: "MAX_FEE_UNITS",
787
+ outputs: [
788
+ {
789
+ internalType: "uint256",
790
+ name: "",
791
+ type: "uint256",
792
+ },
793
+ ],
794
+ stateMutability: "view",
795
+ type: "function",
796
+ },
797
+ {
798
+ inputs: [],
799
+ name: "OPERATOR_ROLE",
800
+ outputs: [
801
+ {
802
+ internalType: "bytes32",
803
+ name: "",
804
+ type: "bytes32",
805
+ },
806
+ ],
807
+ stateMutability: "view",
808
+ type: "function",
809
+ },
810
+ {
811
+ inputs: [],
812
+ name: "accumulatedCotiFees",
813
+ outputs: [
814
+ {
815
+ internalType: "uint256",
816
+ name: "",
817
+ type: "uint256",
818
+ },
819
+ ],
820
+ stateMutability: "view",
821
+ type: "function",
822
+ },
823
+ {
824
+ inputs: [
825
+ {
826
+ internalType: "address",
827
+ name: "account",
828
+ type: "address",
829
+ },
830
+ ],
831
+ name: "addOperator",
832
+ outputs: [],
833
+ stateMutability: "nonpayable",
834
+ type: "function",
835
+ },
836
+ {
837
+ inputs: [
838
+ {
839
+ internalType: "address",
840
+ name: "account",
841
+ type: "address",
842
+ },
843
+ ],
844
+ name: "addToBlacklist",
845
+ outputs: [],
846
+ stateMutability: "nonpayable",
847
+ type: "function",
848
+ },
849
+ {
850
+ inputs: [
851
+ {
852
+ internalType: "address",
853
+ name: "",
854
+ type: "address",
855
+ },
856
+ ],
857
+ name: "blacklisted",
858
+ outputs: [
859
+ {
860
+ internalType: "bool",
861
+ name: "",
862
+ type: "bool",
863
+ },
864
+ ],
865
+ stateMutability: "view",
866
+ type: "function",
867
+ },
868
+ {
869
+ inputs: [],
870
+ name: "claimRefundableNativeExcess",
871
+ outputs: [],
872
+ stateMutability: "nonpayable",
873
+ type: "function",
874
+ },
875
+ {
876
+ inputs: [
877
+ {
878
+ internalType: "uint256",
879
+ name: "tokenAmount",
880
+ type: "uint256",
881
+ },
882
+ {
883
+ internalType: "uint256",
884
+ name: "fixedFee",
885
+ type: "uint256",
886
+ },
887
+ {
888
+ internalType: "uint256",
889
+ name: "percentageBps",
890
+ type: "uint256",
891
+ },
892
+ {
893
+ internalType: "uint256",
894
+ name: "maxFee",
895
+ type: "uint256",
896
+ },
897
+ {
898
+ internalType: "string",
899
+ name: "_tokenSymbol",
900
+ type: "string",
901
+ },
902
+ {
903
+ internalType: "uint8",
904
+ name: "_tokenDecimals",
905
+ type: "uint8",
906
+ },
907
+ ],
908
+ name: "computeErc20Fee",
909
+ outputs: [
910
+ {
911
+ internalType: "uint256",
912
+ name: "",
913
+ type: "uint256",
914
+ },
915
+ ],
916
+ stateMutability: "view",
917
+ type: "function",
918
+ },
919
+ {
920
+ inputs: [
921
+ {
922
+ internalType: "uint256",
923
+ name: "amount",
924
+ type: "uint256",
925
+ },
926
+ {
927
+ internalType: "uint256",
928
+ name: "cotiOracleTimestamp",
929
+ type: "uint256",
930
+ },
931
+ {
932
+ internalType: "uint256",
933
+ name: "tokenOracleTimestamp",
934
+ type: "uint256",
935
+ },
936
+ ],
937
+ name: "deposit",
938
+ outputs: [],
939
+ stateMutability: "payable",
940
+ type: "function",
941
+ },
942
+ {
943
+ inputs: [],
944
+ name: "depositFixedFee",
945
+ outputs: [
946
+ {
947
+ internalType: "uint256",
948
+ name: "",
949
+ type: "uint256",
950
+ },
951
+ ],
952
+ stateMutability: "view",
953
+ type: "function",
954
+ },
955
+ {
956
+ inputs: [],
957
+ name: "depositMaxFee",
958
+ outputs: [
959
+ {
960
+ internalType: "uint256",
961
+ name: "",
962
+ type: "uint256",
963
+ },
964
+ ],
965
+ stateMutability: "view",
966
+ type: "function",
967
+ },
968
+ {
969
+ inputs: [],
970
+ name: "depositPercentageBps",
971
+ outputs: [
972
+ {
973
+ internalType: "uint256",
974
+ name: "",
975
+ type: "uint256",
976
+ },
977
+ ],
978
+ stateMutability: "view",
979
+ type: "function",
980
+ },
981
+ {
982
+ inputs: [
983
+ {
984
+ internalType: "uint256",
985
+ name: "tokenAmount",
986
+ type: "uint256",
987
+ },
988
+ ],
989
+ name: "estimateDepositFee",
990
+ outputs: [
991
+ {
992
+ internalType: "uint256",
993
+ name: "fee",
994
+ type: "uint256",
995
+ },
996
+ {
997
+ internalType: "uint256",
998
+ name: "cotiLastUpdated",
999
+ type: "uint256",
1000
+ },
1001
+ {
1002
+ internalType: "uint256",
1003
+ name: "tokenLastUpdated",
1004
+ type: "uint256",
1005
+ },
1006
+ {
1007
+ internalType: "uint256",
1008
+ name: "blockTimestamp",
1009
+ type: "uint256",
1010
+ },
1011
+ ],
1012
+ stateMutability: "view",
1013
+ type: "function",
1014
+ },
1015
+ {
1016
+ inputs: [
1017
+ {
1018
+ internalType: "uint256",
1019
+ name: "tokenAmount",
1020
+ type: "uint256",
1021
+ },
1022
+ ],
1023
+ name: "estimateWithdrawFee",
1024
+ outputs: [
1025
+ {
1026
+ internalType: "uint256",
1027
+ name: "fee",
1028
+ type: "uint256",
1029
+ },
1030
+ {
1031
+ internalType: "uint256",
1032
+ name: "cotiLastUpdated",
1033
+ type: "uint256",
1034
+ },
1035
+ {
1036
+ internalType: "uint256",
1037
+ name: "tokenLastUpdated",
1038
+ type: "uint256",
1039
+ },
1040
+ {
1041
+ internalType: "uint256",
1042
+ name: "blockTimestamp",
1043
+ type: "uint256",
1044
+ },
1045
+ ],
1046
+ stateMutability: "view",
1047
+ type: "function",
1048
+ },
1049
+ {
1050
+ inputs: [],
1051
+ name: "feeRecipient",
1052
+ outputs: [
1053
+ {
1054
+ internalType: "address",
1055
+ name: "",
1056
+ type: "address",
1057
+ },
1058
+ ],
1059
+ stateMutability: "view",
1060
+ type: "function",
1061
+ },
1062
+ {
1063
+ inputs: [
1064
+ {
1065
+ internalType: "bytes32",
1066
+ name: "role",
1067
+ type: "bytes32",
1068
+ },
1069
+ ],
1070
+ name: "getRoleAdmin",
1071
+ outputs: [
1072
+ {
1073
+ internalType: "bytes32",
1074
+ name: "",
1075
+ type: "bytes32",
1076
+ },
1077
+ ],
1078
+ stateMutability: "view",
1079
+ type: "function",
1080
+ },
1081
+ {
1082
+ inputs: [
1083
+ {
1084
+ internalType: "bytes32",
1085
+ name: "role",
1086
+ type: "bytes32",
1087
+ },
1088
+ {
1089
+ internalType: "uint256",
1090
+ name: "index",
1091
+ type: "uint256",
1092
+ },
1093
+ ],
1094
+ name: "getRoleMember",
1095
+ outputs: [
1096
+ {
1097
+ internalType: "address",
1098
+ name: "",
1099
+ type: "address",
1100
+ },
1101
+ ],
1102
+ stateMutability: "view",
1103
+ type: "function",
1104
+ },
1105
+ {
1106
+ inputs: [
1107
+ {
1108
+ internalType: "bytes32",
1109
+ name: "role",
1110
+ type: "bytes32",
1111
+ },
1112
+ ],
1113
+ name: "getRoleMemberCount",
1114
+ outputs: [
1115
+ {
1116
+ internalType: "uint256",
1117
+ name: "",
1118
+ type: "uint256",
1119
+ },
1120
+ ],
1121
+ stateMutability: "view",
1122
+ type: "function",
1123
+ },
1124
+ {
1125
+ inputs: [
1126
+ {
1127
+ internalType: "bytes32",
1128
+ name: "role",
1129
+ type: "bytes32",
1130
+ },
1131
+ {
1132
+ internalType: "address",
1133
+ name: "account",
1134
+ type: "address",
1135
+ },
1136
+ ],
1137
+ name: "grantRole",
1138
+ outputs: [],
1139
+ stateMutability: "nonpayable",
1140
+ type: "function",
1141
+ },
1142
+ {
1143
+ inputs: [
1144
+ {
1145
+ internalType: "bytes32",
1146
+ name: "role",
1147
+ type: "bytes32",
1148
+ },
1149
+ {
1150
+ internalType: "address",
1151
+ name: "account",
1152
+ type: "address",
1153
+ },
1154
+ ],
1155
+ name: "hasRole",
1156
+ outputs: [
1157
+ {
1158
+ internalType: "bool",
1159
+ name: "",
1160
+ type: "bool",
1161
+ },
1162
+ ],
1163
+ stateMutability: "view",
1164
+ type: "function",
1165
+ },
1166
+ {
1167
+ inputs: [],
1168
+ name: "isDepositEnabled",
1169
+ outputs: [
1170
+ {
1171
+ internalType: "bool",
1172
+ name: "",
1173
+ type: "bool",
1174
+ },
1175
+ ],
1176
+ stateMutability: "view",
1177
+ type: "function",
1178
+ },
1179
+ {
1180
+ inputs: [
1181
+ {
1182
+ internalType: "address",
1183
+ name: "account",
1184
+ type: "address",
1185
+ },
1186
+ ],
1187
+ name: "isOperator",
1188
+ outputs: [
1189
+ {
1190
+ internalType: "bool",
1191
+ name: "",
1192
+ type: "bool",
1193
+ },
1194
+ ],
1195
+ stateMutability: "view",
1196
+ type: "function",
1197
+ },
1198
+ {
1199
+ inputs: [],
1200
+ name: "maxDepositAmount",
1201
+ outputs: [
1202
+ {
1203
+ internalType: "uint256",
1204
+ name: "",
1205
+ type: "uint256",
1206
+ },
1207
+ ],
1208
+ stateMutability: "view",
1209
+ type: "function",
1210
+ },
1211
+ {
1212
+ inputs: [],
1213
+ name: "maxOracleAge",
1214
+ outputs: [
1215
+ {
1216
+ internalType: "uint256",
1217
+ name: "",
1218
+ type: "uint256",
1219
+ },
1220
+ ],
1221
+ stateMutability: "view",
1222
+ type: "function",
1223
+ },
1224
+ {
1225
+ inputs: [],
1226
+ name: "maxWithdrawAmount",
1227
+ outputs: [
1228
+ {
1229
+ internalType: "uint256",
1230
+ name: "",
1231
+ type: "uint256",
1232
+ },
1233
+ ],
1234
+ stateMutability: "view",
1235
+ type: "function",
1236
+ },
1237
+ {
1238
+ inputs: [],
1239
+ name: "minDepositAmount",
1240
+ outputs: [
1241
+ {
1242
+ internalType: "uint256",
1243
+ name: "",
1244
+ type: "uint256",
1245
+ },
1246
+ ],
1247
+ stateMutability: "view",
1248
+ type: "function",
1249
+ },
1250
+ {
1251
+ inputs: [],
1252
+ name: "minWithdrawAmount",
1253
+ outputs: [
1254
+ {
1255
+ internalType: "uint256",
1256
+ name: "",
1257
+ type: "uint256",
1258
+ },
1259
+ ],
1260
+ stateMutability: "view",
1261
+ type: "function",
1262
+ },
1263
+ {
1264
+ inputs: [],
1265
+ name: "owner",
1266
+ outputs: [
1267
+ {
1268
+ internalType: "address",
1269
+ name: "",
1270
+ type: "address",
1271
+ },
1272
+ ],
1273
+ stateMutability: "view",
1274
+ type: "function",
1275
+ },
1276
+ {
1277
+ inputs: [],
1278
+ name: "pause",
1279
+ outputs: [],
1280
+ stateMutability: "nonpayable",
1281
+ type: "function",
1282
+ },
1283
+ {
1284
+ inputs: [],
1285
+ name: "paused",
1286
+ outputs: [
1287
+ {
1288
+ internalType: "bool",
1289
+ name: "",
1290
+ type: "bool",
1291
+ },
1292
+ ],
1293
+ stateMutability: "view",
1294
+ type: "function",
1295
+ },
1296
+ {
1297
+ inputs: [],
1298
+ name: "priceOracle",
1299
+ outputs: [
1300
+ {
1301
+ internalType: "address",
1302
+ name: "",
1303
+ type: "address",
1304
+ },
1305
+ ],
1306
+ stateMutability: "view",
1307
+ type: "function",
1308
+ },
1309
+ {
1310
+ inputs: [],
1311
+ name: "privateToken",
1312
+ outputs: [
1313
+ {
1314
+ internalType: "contract IPrivateERC20",
1315
+ name: "",
1316
+ type: "address",
1317
+ },
1318
+ ],
1319
+ stateMutability: "view",
1320
+ type: "function",
1321
+ },
1322
+ {
1323
+ inputs: [
1324
+ {
1325
+ internalType: "address",
1326
+ name: "",
1327
+ type: "address",
1328
+ },
1329
+ ],
1330
+ name: "refundableNativeExcess",
1331
+ outputs: [
1332
+ {
1333
+ internalType: "uint256",
1334
+ name: "",
1335
+ type: "uint256",
1336
+ },
1337
+ ],
1338
+ stateMutability: "view",
1339
+ type: "function",
1340
+ },
1341
+ {
1342
+ inputs: [
1343
+ {
1344
+ internalType: "address",
1345
+ name: "account",
1346
+ type: "address",
1347
+ },
1348
+ ],
1349
+ name: "removeFromBlacklist",
1350
+ outputs: [],
1351
+ stateMutability: "nonpayable",
1352
+ type: "function",
1353
+ },
1354
+ {
1355
+ inputs: [
1356
+ {
1357
+ internalType: "address",
1358
+ name: "account",
1359
+ type: "address",
1360
+ },
1361
+ ],
1362
+ name: "removeOperator",
1363
+ outputs: [],
1364
+ stateMutability: "nonpayable",
1365
+ type: "function",
1366
+ },
1367
+ {
1368
+ inputs: [],
1369
+ name: "renounceOwnership",
1370
+ outputs: [],
1371
+ stateMutability: "nonpayable",
1372
+ type: "function",
1373
+ },
1374
+ {
1375
+ inputs: [
1376
+ {
1377
+ internalType: "bytes32",
1378
+ name: "role",
1379
+ type: "bytes32",
1380
+ },
1381
+ {
1382
+ internalType: "address",
1383
+ name: "account",
1384
+ type: "address",
1385
+ },
1386
+ ],
1387
+ name: "renounceRole",
1388
+ outputs: [],
1389
+ stateMutability: "nonpayable",
1390
+ type: "function",
1391
+ },
1392
+ {
1393
+ inputs: [
1394
+ {
1395
+ internalType: "address",
1396
+ name: "_token",
1397
+ type: "address",
1398
+ },
1399
+ {
1400
+ internalType: "uint256",
1401
+ name: "amount",
1402
+ type: "uint256",
1403
+ },
1404
+ ],
1405
+ name: "rescueERC20",
1406
+ outputs: [],
1407
+ stateMutability: "nonpayable",
1408
+ type: "function",
1409
+ },
1410
+ {
1411
+ inputs: [],
1412
+ name: "rescueRecipient",
1413
+ outputs: [
1414
+ {
1415
+ internalType: "address",
1416
+ name: "",
1417
+ type: "address",
1418
+ },
1419
+ ],
1420
+ stateMutability: "view",
1421
+ type: "function",
1422
+ },
1423
+ {
1424
+ inputs: [
1425
+ {
1426
+ internalType: "bytes32",
1427
+ name: "role",
1428
+ type: "bytes32",
1429
+ },
1430
+ {
1431
+ internalType: "address",
1432
+ name: "account",
1433
+ type: "address",
1434
+ },
1435
+ ],
1436
+ name: "revokeRole",
1437
+ outputs: [],
1438
+ stateMutability: "nonpayable",
1439
+ type: "function",
1440
+ },
1441
+ {
1442
+ inputs: [
1443
+ {
1444
+ internalType: "uint256",
1445
+ name: "_fixedFee",
1446
+ type: "uint256",
1447
+ },
1448
+ {
1449
+ internalType: "uint256",
1450
+ name: "_percentageBps",
1451
+ type: "uint256",
1452
+ },
1453
+ {
1454
+ internalType: "uint256",
1455
+ name: "_maxFee",
1456
+ type: "uint256",
1457
+ },
1458
+ ],
1459
+ name: "setDepositDynamicFee",
1460
+ outputs: [],
1461
+ stateMutability: "nonpayable",
1462
+ type: "function",
1463
+ },
1464
+ {
1465
+ inputs: [
1466
+ {
1467
+ internalType: "bool",
1468
+ name: "_enabled",
1469
+ type: "bool",
1470
+ },
1471
+ ],
1472
+ name: "setIsDepositEnabled",
1473
+ outputs: [],
1474
+ stateMutability: "nonpayable",
1475
+ type: "function",
1476
+ },
1477
+ {
1478
+ inputs: [
1479
+ {
1480
+ internalType: "uint256",
1481
+ name: "_minDeposit",
1482
+ type: "uint256",
1483
+ },
1484
+ {
1485
+ internalType: "uint256",
1486
+ name: "_maxDeposit",
1487
+ type: "uint256",
1488
+ },
1489
+ {
1490
+ internalType: "uint256",
1491
+ name: "_minWithdraw",
1492
+ type: "uint256",
1493
+ },
1494
+ {
1495
+ internalType: "uint256",
1496
+ name: "_maxWithdraw",
1497
+ type: "uint256",
1498
+ },
1499
+ ],
1500
+ name: "setLimits",
1501
+ outputs: [],
1502
+ stateMutability: "nonpayable",
1503
+ type: "function",
1504
+ },
1505
+ {
1506
+ inputs: [
1507
+ {
1508
+ internalType: "uint256",
1509
+ name: "_maxOracleAge",
1510
+ type: "uint256",
1511
+ },
1512
+ ],
1513
+ name: "setMaxOracleAge",
1514
+ outputs: [],
1515
+ stateMutability: "nonpayable",
1516
+ type: "function",
1517
+ },
1518
+ {
1519
+ inputs: [
1520
+ {
1521
+ internalType: "address",
1522
+ name: "_oracle",
1523
+ type: "address",
1524
+ },
1525
+ ],
1526
+ name: "setPriceOracle",
1527
+ outputs: [],
1528
+ stateMutability: "nonpayable",
1529
+ type: "function",
1530
+ },
1531
+ {
1532
+ inputs: [
1533
+ {
1534
+ internalType: "uint256",
1535
+ name: "_fixedFee",
1536
+ type: "uint256",
1537
+ },
1538
+ {
1539
+ internalType: "uint256",
1540
+ name: "_percentageBps",
1541
+ type: "uint256",
1542
+ },
1543
+ {
1544
+ internalType: "uint256",
1545
+ name: "_maxFee",
1546
+ type: "uint256",
1547
+ },
1548
+ ],
1549
+ name: "setWithdrawDynamicFee",
1550
+ outputs: [],
1551
+ stateMutability: "nonpayable",
1552
+ type: "function",
1553
+ },
1554
+ {
1555
+ inputs: [
1556
+ {
1557
+ internalType: "bytes4",
1558
+ name: "interfaceId",
1559
+ type: "bytes4",
1560
+ },
1561
+ ],
1562
+ name: "supportsInterface",
1563
+ outputs: [
1564
+ {
1565
+ internalType: "bool",
1566
+ name: "",
1567
+ type: "bool",
1568
+ },
1569
+ ],
1570
+ stateMutability: "view",
1571
+ type: "function",
1572
+ },
1573
+ {
1574
+ inputs: [],
1575
+ name: "token",
1576
+ outputs: [
1577
+ {
1578
+ internalType: "contract IERC20",
1579
+ name: "",
1580
+ type: "address",
1581
+ },
1582
+ ],
1583
+ stateMutability: "view",
1584
+ type: "function",
1585
+ },
1586
+ {
1587
+ inputs: [],
1588
+ name: "tokenSymbol",
1589
+ outputs: [
1590
+ {
1591
+ internalType: "string",
1592
+ name: "",
1593
+ type: "string",
1594
+ },
1595
+ ],
1596
+ stateMutability: "view",
1597
+ type: "function",
1598
+ },
1599
+ {
1600
+ inputs: [],
1601
+ name: "totalUserLiability",
1602
+ outputs: [
1603
+ {
1604
+ internalType: "uint256",
1605
+ name: "",
1606
+ type: "uint256",
1607
+ },
1608
+ ],
1609
+ stateMutability: "view",
1610
+ type: "function",
1611
+ },
1612
+ {
1613
+ inputs: [
1614
+ {
1615
+ internalType: "address",
1616
+ name: "newOwner",
1617
+ type: "address",
1618
+ },
1619
+ ],
1620
+ name: "transferOwnership",
1621
+ outputs: [],
1622
+ stateMutability: "nonpayable",
1623
+ type: "function",
1624
+ },
1625
+ {
1626
+ inputs: [],
1627
+ name: "unpause",
1628
+ outputs: [],
1629
+ stateMutability: "nonpayable",
1630
+ type: "function",
1631
+ },
1632
+ {
1633
+ inputs: [
1634
+ {
1635
+ internalType: "uint256",
1636
+ name: "amount",
1637
+ type: "uint256",
1638
+ },
1639
+ {
1640
+ internalType: "uint256",
1641
+ name: "cotiOracleTimestamp",
1642
+ type: "uint256",
1643
+ },
1644
+ {
1645
+ internalType: "uint256",
1646
+ name: "tokenOracleTimestamp",
1647
+ type: "uint256",
1648
+ },
1649
+ ],
1650
+ name: "withdraw",
1651
+ outputs: [],
1652
+ stateMutability: "payable",
1653
+ type: "function",
1654
+ },
1655
+ {
1656
+ inputs: [
1657
+ {
1658
+ internalType: "uint256",
1659
+ name: "amount",
1660
+ type: "uint256",
1661
+ },
1662
+ ],
1663
+ name: "withdrawCotiFees",
1664
+ outputs: [],
1665
+ stateMutability: "nonpayable",
1666
+ type: "function",
1667
+ },
1668
+ {
1669
+ inputs: [],
1670
+ name: "withdrawFixedFee",
1671
+ outputs: [
1672
+ {
1673
+ internalType: "uint256",
1674
+ name: "",
1675
+ type: "uint256",
1676
+ },
1677
+ ],
1678
+ stateMutability: "view",
1679
+ type: "function",
1680
+ },
1681
+ {
1682
+ inputs: [],
1683
+ name: "withdrawMaxFee",
1684
+ outputs: [
1685
+ {
1686
+ internalType: "uint256",
1687
+ name: "",
1688
+ type: "uint256",
1689
+ },
1690
+ ],
1691
+ stateMutability: "view",
1692
+ type: "function",
1693
+ },
1694
+ {
1695
+ inputs: [],
1696
+ name: "withdrawPercentageBps",
1697
+ outputs: [
1698
+ {
1699
+ internalType: "uint256",
1700
+ name: "",
1701
+ type: "uint256",
1702
+ },
1703
+ ],
1704
+ stateMutability: "view",
1705
+ type: "function",
1706
+ },
1707
+ ] as const;
1708
+
1709
+ const _bytecode =
1710
+ "0x60a08060405234620006495760a0816200417980380380916200002382856200064e565b8339810103126200064957620000398162000672565b90620000486020820162000672565b620000566040830162000672565b6200007260806200006a6060860162000672565b940162000672565b60408051956001600160401b0395909291870186811188821017620004ef57604090815260048852635553444360e01b60208901526001600081815581546001600160a81b0319811633600881811b610100600160a81b0316929092179094559351931c6001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600a805460ff19166001179055678ac7230489e80000600b556101f4600c5568a2a15d09519be00000600d556729a2241af62c0000600e5560fa600f55685150ae84a8cdf000006010556001600160a01b038516156200063a57506001600160a01b0381161562000628576001600160a01b038216156200062857600019600481905560055560016006819055600755601380546001600160a01b03199081166001600160a01b0396871617909155601480548216928616929092179091556011805482169290941691821790935561083460125560007f56b5f80d8cac1479698aa7d01605fd6111e90b15fc4d2b377417f46034876cbd8180a333600090815260008051602062004159833981519152602052604090205460ff1615620005e5575b6000805260036020526200025c337f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff620006a2565b503360009081527f6bc781d8c7f9885ebbb3cefbc18932c491038e2ae5c5b56447891e0bd98ea16360205260409020547f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff1615620005a3575b6000526003602052620002d0336040600020620006a2565b506001600160a01b031691821562000591576001600160a01b03169182156200057f5760405163313ce56760e01b808252602082600481865afa9182156200054d5760009262000559575b50604051908152602081600481885afa80156200054d5760ff9160009162000517575b501660ff821603620005055760805281601754161760175560185416176018558151908111620004ef57601954600181811c91168015620004e4575b6020821014620004ce57601f811162000464575b50602091601f8211600114620003fa57918192600092620003ee575b50508160011b916000199060031b1c1916176019555b604051613a099081620007308239608051818181610d76015281816115db01528181611d1d0152611f560152f35b015190503880620003aa565b601f19821692601960005260206000209160005b8581106200044b5750836001951062000431575b505050811b01601955620003c0565b015160001960f88460031b161c1916905538808062000422565b919260206001819286850151815501940192016200040e565b60196000527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695601f830160051c81019160208410620004c3575b601f0160051c01905b818110620004b657506200038e565b60008155600101620004a7565b90915081906200049e565b634e487b7160e01b600052602260045260246000fd5b90607f16906200037a565b634e487b7160e01b600052604160045260246000fd5b604051635a8dbaed60e01b8152600490fd5b6200053e915060203d60201162000545575b6200053581836200064e565b81019062000687565b386200033e565b503d62000529565b6040513d6000823e3d90fd5b6200057791925060203d60201162000545576200053581836200064e565b90386200031b565b6040516316a442c560e01b8152600490fd5b604051630f58058360e11b8152600490fd5b8060005260026020526040600020336000526020526040600020600160ff1982541617905533338260008051602062004139833981519152600080a4620002b8565b3360008181526000805160206200415983398151915260205260408120805460ff191660011790558190600080516020620041398339815191528180a462000227565b60405163e6c4247b60e01b8152600490fd5b63e6c4247b60e01b8152600490fd5b600080fd5b601f909101601f19168101906001600160401b03821190821017620004ef57604052565b51906001600160a01b03821682036200064957565b9081602091031262000649575160ff81168103620006495790565b919060018301600090828252806020526040822054156000146200072957845494680100000000000000008610156200071557600186018082558610156200070157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b5092505056fe6040608081526004908136101561001557600080fd5b600091823560e01c908162aeef8a14611ee357816301ffc9a714611e0c57816302ef36c714611ded5781630593816d14611d895781631413703314611d455781631823090d14611cf55781631df224c114611cc0578163248a9ca314611c9557816324a88d8c14611c765781632630c12f14611c415781632f2ff15d14611b6c57816336568abe14611abf5781633f4ba83a14611a6757816344337ea1146119e7578163457e1a49146119c857816346904840146119935781634a96e64a1461197457816351533f2e146118c6578163530e784f1461182e578163537df3b61461178a5781635656fc78146117665781635c975abb14611742578163645006ca1461172357816367b16967146117045781636d70f7ae1461168f578163715018a61461163157816376bddaaf146115b357816379cef02f146115945781637b61c320146115675781637c87a993146115485781638456cb59146114ee5781638cd4426d146113f85781638da5cb5b146113c05781638ed83271146113a25781639010d07c1461135357816391d14854146112ff5781639870d7fe146112885781639e93ad8e1461126a5781639f578e461461124b578163a075b7c71461118f578163a217fddf14611174578163a41fe49f14610d09578163ac8a584a14610c6c578163b0ebf46f14610bc1578163b67b62b914610b8c578163bcd0a5d214610a42578163ca15c87314610a1a578163d547741f146109dc578163d6501cbb146108e0578163dbac26e914610897578163e490dd701461087a578163f169b4721461085c578163f2fde38b14610584578163f516440c14610565578163f5b541a61461052a578163f74598b2146103ab578163f835c9d01461032957508063fa4f4a521461030b578063fc0c546a146102d75763fdb1f56a146102b657600080fd5b346102d357816003193601126102d357602090600d549051908152f35b5080fd5b50346102d357816003193601126102d35760209073ffffffffffffffffffffffffffffffffffffffff601754169051908152f35b50346102d357816003193601126102d3576020906009549051908152f35b919050346103a75760206003193601126103a757813591610348612efd565b8215610380575081601255519081527f6adc88f5461ba8cdd7d391cfe694a80b1ce722232a2a11690b4c11df049ae64560203392a280f35b90517fe7a59d50000000000000000000000000000000000000000000000000000000008152fd5b8280fd5b9050346103a75760206003193601126103a7578035906103c9612efd565b6103d1613036565b73ffffffffffffffffffffffffffffffffffffffff90816013541680156105025783156104da576008548085116104b25747851161048a578680868194610419828496612e00565b6008555af1610426613006565b501561046357507f6713db2cbc67f02bd2006245076c3e8a482a624218d1e3bc5313216d3347fb7a91602091601354169351908152a26001815580f35b83517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b8286517fb6d6e7d6000000000000000000000000000000000000000000000000000000008152fd5b8286517f80d4440f000000000000000000000000000000000000000000000000000000008152fd5b5083517fcbca5aa2000000000000000000000000000000000000000000000000000000008152fd5b5083517f6dd72d47000000000000000000000000000000000000000000000000000000008152fd5b5050346102d357816003193601126102d357602090517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5050346102d357816003193601126102d3576020906005549051908152f35b919050346103a75760209081600319360112610858576105a2612302565b926105ab612efd565b73ffffffffffffffffffffffffffffffffffffffff92838516938415610830577f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299283885260039384845285892054805b6107e057505087805283835284882054805b61071957886106c8896106c28a8a8a8a838b610628612efd565b60015474ffffffffffffffffffffffffffffffffffffffff008960081b167fffffffffffffffffffffff0000000000000000000000000000000000000000ff82161760015560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08a80a360008052600281528260002084600052815260ff836000205416156106cb575b6000805252600020612d76565b506129e1565b80f35b60008052600281528260002084600052815282600020600160ff19825416179055338460007f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a46106b5565b60001981018181116107cd57906107778461073f61077d948a8e8080528b8b5220612d5e565b905490891b1c166000805260028088528960002082600052885260ff8a6000205416610783575b506000805287875288600020612e0d565b50612c4b565b8061060e565b600080528752886000208160005287528860002060ff198154169055338160007ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8180a438610766565b60248a601185634e487b7160e01b835252fd5b600019810181811161081d579061081285610806610817948b8f8881528c8c5220612d5e565b9054908a1b1c16612ab2565b612c4b565b806105fc565b60248b601186634e487b7160e01b835252fd5b8284517fe6c4247b000000000000000000000000000000000000000000000000000000008152fd5b8380fd5b5050346102d357816003193601126102d35760209051620186a08152f35b5050346102d357816003193601126102d357602090516108348152f35b5050346102d35760206003193601126102d35760ff8160209373ffffffffffffffffffffffffffffffffffffffff6108cd612302565b1681526015855220541690519015158152f35b919050346103a7576108f1366122e8565b929091936108fe33612528565b83156109b5578385116109b557620186a0831161098e575091839160c0937f31f26ae97f0679c414281c4a96005dcd58f94f687f26c8cd694339591ec527e995600b5581600c5582600d5580519360808552600760808601527f6465706f7369740000000000000000000000000000000000000000000000000060a086015260208501528301526060820152a180f35b90517f58d620b3000000000000000000000000000000000000000000000000000000008152fd5b90517f6d24edae000000000000000000000000000000000000000000000000000000008152fd5b919050346103a757806003193601126103a7576106c89135610a156001610a01612325565b9383875260026020528620015433906128b7565b612b7c565b9050346103a75760206003193601126103a75760209282913581526003845220549051908152f35b919050346103a757826003193601126103a757610a5d613036565b338352601560205260ff8184205416610b5c57338352601660205280832054918215610b355733845260166020528382812055824710610b0e578380808086335af1610aa7613006565b5015610adf5750519081527f8f15f7693914bf0bc5306dcc835a56be260fe9007cca42d7b3e85f01820678b560203392a26001815580f35b338452601660205290517f6d963f88000000000000000000000000000000000000000000000000000000008152fd5b90517fb6d6e7d6000000000000000000000000000000000000000000000000000000008152fd5b90517fcbca5aa2000000000000000000000000000000000000000000000000000000008152fd5b6024925051907fdaf49ab90000000000000000000000000000000000000000000000000000000082523390820152fd5b5050346102d357816003193601126102d35760209073ffffffffffffffffffffffffffffffffffffffff601454169051908152f35b9050346103a75760c06003193601126103a75760843567ffffffffffffffff91828211610c685736602383011215610c685781810135928311610c68573660248484010111610c685760a4359260ff84168403610c6457906020958683806024610c2f610c5a999897612bea565b96610c3c8b51988961238e565b828852018387013784010152606435906044359060243590356130a6565b5050509051908152f35b8580fd5b8480fd5b9050346103a75760206003193601126103a757610c87612302565b90610c9133612773565b73ffffffffffffffffffffffffffffffffffffffff8216928315610ce3575050610cba90612ab2565b33907f17d7f044d47e4fae1701f86266d0a674db3f792671bd1b974ace77a09af1c8278380a380f35b517fe6c4247b000000000000000000000000000000000000000000000000000000008152fd5b919050610d15366122e8565b9390610d1f613036565b610d27612f65565b3386526020946015865260ff858820541661114557831561111d5760075484106110f55760055484116110cd5790610d6791610d616123cf565b916136f4565b610da5600e54600f54906010547f000000000000000000000000000000000000000000000000000000000000000092610d9e6123cf565b92876130a6565b5050509073ffffffffffffffffffffffffffffffffffffffff806017541690855187816024817f70a08231000000000000000000000000000000000000000000000000000000009687825230898301525afa9081156110c3579086918a91611092575b501061106a57610e1a85600954612e00565b600955878160185416803b156102d35787517f23b872dd00000000000000000000000000000000000000000000000000000000815233868201908152306020820152604081018990529091839183919082908490829060600103925af1801561104c57611056575b508160185416803b156102d35781809160248a51809481937f42966c680000000000000000000000000000000000000000000000000000000083528c8b8401525af1801561104c57611034575b505080601754169086519183835233858401528883602481845afa92831561102a5789929188918c95610ff2575b5090610f0a91339061399d565b60175416926024885180958193825233888301525afa8015610fe8578890610fb4575b610f379250612e00565b838103610f7f57505090610f6c7ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56893926138b5565b8151938185528401523392a26001815580f35b91509160449351927f3af0948e0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b508682813d8311610fe1575b610fca818361238e565b81010312610fdc57610f379151610f2d565b600080fd5b503d610fc0565b86513d8a823e3d90fd5b93849195508092503d8311611023575b61100c818361238e565b81010312610fdc57610f0a878a9351949091610efd565b503d611002565b88513d8c823e3d90fd5b61103d90612348565b611048578738610ecf565b8780fd5b88513d84823e3d90fd5b61105f90612348565b611048578738610e82565b8286517faae25839000000000000000000000000000000000000000000000000000000008152fd5b809250898092503d83116110bc575b6110ab818361238e565b81010312610fdc5785905138610e08565b503d6110a1565b87513d8b823e3d90fd5b8285517f9aae5367000000000000000000000000000000000000000000000000000000008152fd5b8285517f0fdbcf37000000000000000000000000000000000000000000000000000000008152fd5b8285517fcbca5aa2000000000000000000000000000000000000000000000000000000008152fd5b84517fdaf49ab90000000000000000000000000000000000000000000000000000000081523381850152602490fd5b5050346102d357816003193601126102d35751908152602090f35b8383346102d35760806003193601126102d357823560243591604435606435916111b7612efd565b84841161122357828211611223579061121d9291857fe3eb5d4eccdae2d96efa105f65c8db865f9fc72984f2b879a27448fed50d181597988660065555816007558260055551948594859094939260609260808301968352602083015260408201520152565b0390a180f35b8690517f401f33c6000000000000000000000000000000000000000000000000000000008152fd5b5050346102d357816003193601126102d357602090600c549051908152f35b5050346102d357816003193601126102d35760209051620f42408152f35b9050346103a75760206003193601126103a7576112a3612302565b906112ad33612773565b73ffffffffffffffffffffffffffffffffffffffff8216928315610ce35750506112d6906129e1565b33907f0780dc183feb0e4f9714cd802b3c0a21894b7ccb4172c992569d2acb5d45f91c8380a380f35b9050346103a757816003193601126103a75773ffffffffffffffffffffffffffffffffffffffff82602094611332612325565b9335815260028652209116600052825260ff81600020541690519015158152f35b9050346103a757816003193601126103a75761139360209373ffffffffffffffffffffffffffffffffffffffff9235815260038552836024359120612d5e565b90549060031b1c169051908152f35b9050346103a757826003193601126103a75760209250549051908152f35b5050346102d357816003193601126102d35760209073ffffffffffffffffffffffffffffffffffffffff60015460081c169051908152f35b9050346103a757816003193601126103a757611412612302565b906024359061141f612efd565b611427613036565b61142f612fb5565b81156114c75773ffffffffffffffffffffffffffffffffffffffff9081806018541694169384146114a05750818161148f7f8bbfbb5d7fcacf6fc74005cdede0635561638507f576c95f7f294c22141be2e594602094601454168761399d565b601454169451908152a36001815580f35b84517f366c7b22000000000000000000000000000000000000000000000000000000008152fd5b83517fcbca5aa2000000000000000000000000000000000000000000000000000000008152fd5b5050346102d357816003193601126102d35760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589161152c612efd565b611534612f65565b600160ff198154161760015551338152a180f35b5050346102d357816003193601126102d3576020906012549051908152f35b5050346102d357816003193601126102d357611590906115856123cf565b9051918291826124de565b0390f35b5050346102d357816003193601126102d357602090600e549051908152f35b82843461162e57602060031936011261162e575061160a61159092600e5490600f54601054907f0000000000000000000000000000000000000000000000000000000000000000936116036123cf565b93356130a6565b93519283526020830191909152604082015260608101919091529081906080820190565b80fd5b9050823461162e578060031936011261162e57506020606492611652612efd565b519162461bcd60e51b8352820152601a60248201527f72656e6f756e63654f776e6572736869702064697361626c65640000000000006044820152fd5b5050346102d35760206003193601126102d35760209173ffffffffffffffffffffffffffffffffffffffff826116c3612302565b927f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929815260028652209116600052825260ff81600020541690519015158152f35b5050346102d357816003193601126102d3576020906008549051908152f35b5050346102d357816003193601126102d3576020906006549051908152f35b5050346102d357816003193601126102d35760209060ff6001541690519015158152f35b5050346102d357816003193601126102d35760209060ff600a541690519015158152f35b919050346103a75760206003193601126103a75773ffffffffffffffffffffffffffffffffffffffff6117bb612302565b6117c3612efd565b1691821561180757508183526015602052822060ff19815416905533907fddefc0a59221feeeed94e0dfd671eaea15033e71db0fd1d9963a95a37dc90e768380a380f35b90517fe6c4247b000000000000000000000000000000000000000000000000000000008152fd5b9050346103a75760206003193601126103a757611849612302565b90611852612efd565b73ffffffffffffffffffffffffffffffffffffffff809216928315610ce3575050601154827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617601155167f56b5f80d8cac1479698aa7d01605fd6111e90b15fc4d2b377417f46034876cbd8380a380f35b919050346103a7576118d7366122e8565b929091936118e433612528565b83156109b5578385116109b557620186a0831161098e575091839160c0937f31f26ae97f0679c414281c4a96005dcd58f94f687f26c8cd694339591ec527e995600e5581600f558260105580519360808552600860808601527f776974686472617700000000000000000000000000000000000000000000000060a086015260208501528301526060820152a180f35b5050346102d357816003193601126102d3576020906010549051908152f35b5050346102d357816003193601126102d35760209073ffffffffffffffffffffffffffffffffffffffff601354169051908152f35b5050346102d357816003193601126102d3576020906007549051908152f35b919050346103a75760206003193601126103a75773ffffffffffffffffffffffffffffffffffffffff611a18612302565b611a20612efd565b16918215611807575081835260156020528220600160ff1982541617905533907fd36871fdf6981136f3ac0564927005901eda06f7a9dff1e8b2a1d7846b8ebb508380a380f35b5050346102d357816003193601126102d35760207f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa91611aa5612efd565b611aad612fb5565b60ff196001541660015551338152a180f35b839150346102d357826003193601126102d357611ada612325565b903373ffffffffffffffffffffffffffffffffffffffff831603611b0357906106c89135612b7c565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152fd5b919050346103a757806003193601126103a757611bef9135906003611b8f612325565b9280865260209060028252611bab6001858920015433906128b7565b806000526002825273ffffffffffffffffffffffffffffffffffffffff8460002095169485600052825260ff84600020541615611bf3575b60005252600020612d76565b5080f35b80600052600282528360002085600052825283600020600160ff198254161790553385827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4611be3565b5050346102d357816003193601126102d35760209073ffffffffffffffffffffffffffffffffffffffff601154169051908152f35b5050346102d357816003193601126102d357602090600f549051908152f35b9050346103a75760206003193601126103a75781602093600192358152600285522001549051908152f35b5050346102d357816003193601126102d35760209073ffffffffffffffffffffffffffffffffffffffff601854169051908152f35b82843461162e57602060031936011261162e575061160a61159092600b5490600c54600d54907f0000000000000000000000000000000000000000000000000000000000000000936116036123cf565b5050346102d35760206003193601126102d3578060209273ffffffffffffffffffffffffffffffffffffffff611d79612302565b1681526016845220549051908152f35b9050346103a75760206003193601126103a75735908115158092036103a757611db133612528565b60ff19600a541660ff831617600a55519081527fc274c9c09f7e9671b11a6795ddded70309e956077fea0c658625581bc87768fd60203392a280f35b5050346102d357816003193601126102d357602090600b549051908152f35b9050346103a75760206003193601126103a75735907fffffffff0000000000000000000000000000000000000000000000000000000082168092036103a757602092507f5a05180f000000000000000000000000000000000000000000000000000000008214918215611e83575b50519015158152f35b9091507f7965db0b000000000000000000000000000000000000000000000000000000008114908115611eb9575b509038611e7a565b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501438611eb1565b839150611eef366122e8565b94919290611efb613036565b611f03612f65565b3385526020956015875260ff84872054166122b95760ff600a54161561229157841561226957600654851061224157825485116122195790611f4791610d616123cf565b611f85600b54600c5490600d547f000000000000000000000000000000000000000000000000000000000000000092611f7e6123cf565b92886130a6565b5050509073ffffffffffffffffffffffffffffffffffffffff806017541684517f70a08231000000000000000000000000000000000000000000000000000000009182825230858301528982602481845afa9182156110c35789926121e4575b5086517f23b872dd000000000000000000000000000000000000000000000000000000008b8201523360248201523060448201526064810189905261205e9161205982608481015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810184528361238e565b61353b565b888360175416926024885180958193825230898301525afa8015610fe85788906121b3575b61208d9250612e00565b9285840361217e5761209e906138b5565b6120aa83600954612bc7565b6009556018541690813b15610c645783517f40c10f19000000000000000000000000000000000000000000000000000000008152339181019182526020820184905291869183919082908490829060400103925af1801561217457612141575b507f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1592939482519485528401523392a26001815580f35b9361216d7f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159495612348565b939261210a565b83513d87823e3d90fd5b60448385888851927f3af0948e0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b50908881813d83116121dd575b6121ca818361238e565b81010312611048579061208d9151612083565b503d6121c0565b9091508981813d8311612212575b6121fc818361238e565b8101031261220e57519061205e611fe5565b8880fd5b503d6121f2565b8284517fd630062d000000000000000000000000000000000000000000000000000000008152fd5b8284517fc24b1b61000000000000000000000000000000000000000000000000000000008152fd5b8284517fcbca5aa2000000000000000000000000000000000000000000000000000000008152fd5b8284517ffb291504000000000000000000000000000000000000000000000000000000008152fd5b83517fdaf49ab90000000000000000000000000000000000000000000000000000000081523381850152602490fd5b6003196060910112610fdc57600435906024359060443590565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610fdc57565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610fdc57565b67ffffffffffffffff811161235c57604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761235c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761235c57604052565b60405190600060195490600182811c908084169384156124b1575b602094858410811461249d578388528794939291811561247c575060011461241d575b505061241b9250038361238e565b565b9093915060196000527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695936000915b81831061246457505061241b9350820101388061240d565b8554888401850152948501948794509183019161244c565b905061241b95935060ff1991501682840152151560051b820101388061240d565b602485634e487b7160e01b81526022600452fd5b91607f16916123ea565b60005b8381106124ce5750506000910152565b81810151838201526020016124be565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6040936020845261252181518092816020880152602088880191016124bb565b0116010190565b73ffffffffffffffffffffffffffffffffffffffff1660008181527f6bc781d8c7f9885ebbb3cefbc18932c491038e2ae5c5b56447891e0bd98ea163602090815260408083205490939192917f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299160ff16156125a5575050505050565b6125ae90612c58565b8451916125ba83612372565b6042835284830193606036863783511561275f5760308553835160019081101561274b5790607860218601536041915b8083116126e5575050506126a3576126459385936126899361267a60489461269f995198857f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008b9788015282519283916037890191016124bb565b8401917f206973206d697373696e6720726f6c65200000000000000000000000000000006037840152518093868401906124bb565b0103602881018552018361238e565b5191829162461bcd60e51b8352600483016124de565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f8116601081101561273757907f3031323334353637383961626364656600000000000000000000000000000000612730921a6127268689612c24565b5360041c93612c4b565b91906125ea565b602484634e487b7160e01b81526032600452fd5b602482634e487b7160e01b81526032600452fd5b80634e487b7160e01b602492526032600452fd5b73ffffffffffffffffffffffffffffffffffffffff1660008181527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b602090815260408083205490939192919060ff16156127ce5750505050565b6127d790612c58565b835190826127e483612372565b6042835284830193606036863783511561275f5760308553835160019081101561274b5790607860218601536041915b80831161286f575050506126a3576126459385936126899361267a60489461269f995198857f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008b9788015282519283916037890191016124bb565b909192600f8116601081101561273757907f30313233343536373839616263646566000000000000000000000000000000006128b0921a6127268689612c24565b9190612814565b60008181526020916002835260409373ffffffffffffffffffffffffffffffffffffffff858420911690818452845260ff8584205416156128f9575050505050565b61290290612c58565b84519161290e83612372565b6042835284830193606036863783511561275f5760308553835160019081101561274b5790607860218601536041915b808311612999575050506126a3576126459385936126899361267a60489461269f995198857f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008b9788015282519283916037890191016124bb565b909192600f8116601081101561273757907f30313233343536373839616263646566000000000000000000000000000000006129da921a6127268689612c24565b919061293e565b73ffffffffffffffffffffffffffffffffffffffff1660008181527f6bc781d8c7f9885ebbb3cefbc18932c491038e2ae5c5b56447891e0bd98ea163602052604080822054612a649392907f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff1615612a67575b8152600360205220612d76565b50565b8082526002602052828220848352602052828220600160ff198254161790553384827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8580a4612a57565b73ffffffffffffffffffffffffffffffffffffffff1660008181527f6bc781d8c7f9885ebbb3cefbc18932c491038e2ae5c5b56447891e0bd98ea163602052604080822054612a649392907f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060ff16612b34575b8152600360205220612e0d565b808252600260205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4612b27565b906040612a6492600090808252600260205273ffffffffffffffffffffffffffffffffffffffff83832094169384835260205260ff8383205416612b34578152600360205220612e0d565b91908201809211612bd457565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff811161235c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b908151811015612c35570160200190565b634e487b7160e01b600052603260045260246000fd5b8015612bd4576000190190565b604051906060820182811067ffffffffffffffff82111761235c57604052602a8252602082016040368237825115612c3557603090538151600190811015612c3557607860218401536029905b808211612cf9575050612cb55790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f8116906010821015612d49577f3031323334353637383961626364656600000000000000000000000000000000612d43921a612d398587612c24565b5360041c92612c4b565b90612ca5565b60246000634e487b7160e01b81526032600452fd5b8054821015612c355760005260206000200190600090565b91906001830160009082825280602052604082205415600014612dfa5784549468010000000000000000861015612de65783612dd6612dbf886001604098999a01855584612d5e565b81939154906000199060031b92831b921b19161790565b9055549382526020522055600190565b602483634e487b7160e01b81526041600452fd5b50925050565b91908203918211612bd457565b90600182019060009281845282602052604084205490811515600014612ef65760001991828101818111612ee257825490848201918211612ece57808203612e99575b50505080548015612e8557820191612e688383612d5e565b909182549160031b1b191690555582526020526040812055600190565b602486634e487b7160e01b81526031600452fd5b612eb9612ea9612dbf9386612d5e565b90549060031b1c92839286612d5e565b90558652846020526040862055388080612e50565b602488634e487b7160e01b81526011600452fd5b602487634e487b7160e01b81526011600452fd5b5050505090565b73ffffffffffffffffffffffffffffffffffffffff60015460081c163303612f2157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60ff60015416612f7157565b606460405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152fd5b60ff6001541615612fc257565b606460405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152fd5b3d15613031573d9061301782612bea565b91613025604051938461238e565b82523d6000602084013e565b606090565b600260005414613047576002600055565b606460405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b90816060910312610fdc578051916040602083015192015190565b61310a9693929594956130b7613434565b73ffffffffffffffffffffffffffffffffffffffff6011541690604051907f6f62ebfb0000000000000000000000000000000000000000000000000000000098898352828060609c8d93600483016124de565b0381865afa98891561323a578a90600093849b613246575b506040519485918252818061316c6004820160609060208152600460208201527f434f54490000000000000000000000000000000000000000000000000000000060408201520190565b03915afa97881561323a57600093849b859a6131fd575b505060ff906131918461347e565b61319a8561347e565b6131a38b6134af565b6131ac8c6134af565b16604d8111612bd4576131d4946131cf936131ca92600a0a916133be565b61326c565b61331a565b90808211156131f657505b818111156131ef57505b93929190565b90506131e9565b90506131df565b613226939c508091929a5060ff9550903d10613233575b61321e818361238e565b81019061308b565b9a9193909a989038613183565b503d613214565b6040513d6000823e3d90fd5b909a50816132619294503d85116132335761321e818361238e565b509290929938613122565b906000198183098183029182808310920391808303921461330e57620f424090828211156132ca577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c26139940990828211900360fa1b910360061c170290565b606460405162461bcd60e51b815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f7700000000000000000000006044820152fd5b5050620f424091500490565b90670de0b6b3a764000090600019828409928281029283808610950394808603951461339a57848311156132ca578291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b5050809250156133a8570490565b634e487b7160e01b600052601260045260246000fd5b91600019828409928281029283808610950394808603951461339a57848311156132ca578291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b73ffffffffffffffffffffffffffffffffffffffff601154161561345457565b60046040517ff9b42874000000000000000000000000000000000000000000000000000000008152fd5b1561348557565b60046040517f1f8f95a0000000000000000000000000000000000000000000000000000000008152fd5b60125442821161350a57806134c48342612e00565b116134cd575050565b60649250604051917f938a000400000000000000000000000000000000000000000000000000000000835260048301524260248301526044820152fd5b602482604051907f9a30b3c30000000000000000000000000000000000000000000000000000000082526004820152fd5b73ffffffffffffffffffffffffffffffffffffffff1690604051604081019080821067ffffffffffffffff83111761235c576135bb916040526020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af16135b5613006565b91613664565b805191821591848315613640575b5050509050156135d65750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b9193818094500103126102d35782015190811515820361162e5750803880846135c9565b919290156136c55750815115613678575090565b3b156136815790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156136d85750805190602001fd5b61269f9060405191829162461bcd60e51b8352600483016124de565b9092916136ff613434565b73ffffffffffffffffffffffffffffffffffffffff601154169060409182517f6f62ebfb00000000000000000000000000000000000000000000000000000000908181526060958682806137886004820160609060208152600460208201527f434f54490000000000000000000000000000000000000000000000000000000060408201520190565b0381875afa9182156138aa57600092613888575b508082036138535750916137c893916137b587946134af565b85518095819482938352600483016124de565b03915afa92831561384857600093613826575b50508382036137f0575061241b9192506134af565b604493925051917f997c558e00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b61383d929350803d106132335761321e818361238e565b5090509038806137db565b82513d6000823e3d90fd5b6044918651917f997c558e00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b6138a0919250873d89116132335761321e818361238e565b509050903861379c565b86513d6000823e3d90fd5b80341061397357804710613949576138cf81600854612bc7565b6008558034116138dc5750565b6138e69034612e00565b60008080808085335af16138f8613006565b5015613902575050565b604090338152601660205220613919828254612bc7565b90556040519081527ff5f5797c3dbfc23a172664078aa40400f399faae3ab4b9490ff4cd31288caa0460203392a2565b60046040517fb6d6e7d6000000000000000000000000000000000000000000000000000000008152fd5b60046040517f83b5f08b000000000000000000000000000000000000000000000000000000008152fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff9092166024830152604482019290925261241b91612059826064810161202d56fea164736f6c6343000813000a2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b";
1711
+
1712
+ type PrivacyBridgeUSDCeConstructorParams =
1713
+ | [signer?: Signer]
1714
+ | ConstructorParameters<typeof ContractFactory>;
1715
+
1716
+ const isSuperArgs = (
1717
+ xs: PrivacyBridgeUSDCeConstructorParams
1718
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1719
+
1720
+ export class PrivacyBridgeUSDCe__factory extends ContractFactory {
1721
+ constructor(...args: PrivacyBridgeUSDCeConstructorParams) {
1722
+ if (isSuperArgs(args)) {
1723
+ super(...args);
1724
+ } else {
1725
+ super(_abi, _bytecode, args[0]);
1726
+ }
1727
+ }
1728
+
1729
+ override getDeployTransaction(
1730
+ _usdc: AddressLike,
1731
+ _privateUsdc: AddressLike,
1732
+ _feeRecipient: AddressLike,
1733
+ _rescueRecipient: AddressLike,
1734
+ _priceOracle: AddressLike,
1735
+ overrides?: NonPayableOverrides & { from?: string }
1736
+ ): Promise<ContractDeployTransaction> {
1737
+ return super.getDeployTransaction(
1738
+ _usdc,
1739
+ _privateUsdc,
1740
+ _feeRecipient,
1741
+ _rescueRecipient,
1742
+ _priceOracle,
1743
+ overrides || {}
1744
+ );
1745
+ }
1746
+ override deploy(
1747
+ _usdc: AddressLike,
1748
+ _privateUsdc: AddressLike,
1749
+ _feeRecipient: AddressLike,
1750
+ _rescueRecipient: AddressLike,
1751
+ _priceOracle: AddressLike,
1752
+ overrides?: NonPayableOverrides & { from?: string }
1753
+ ) {
1754
+ return super.deploy(
1755
+ _usdc,
1756
+ _privateUsdc,
1757
+ _feeRecipient,
1758
+ _rescueRecipient,
1759
+ _priceOracle,
1760
+ overrides || {}
1761
+ ) as Promise<
1762
+ PrivacyBridgeUSDCe & {
1763
+ deploymentTransaction(): ContractTransactionResponse;
1764
+ }
1765
+ >;
1766
+ }
1767
+ override connect(runner: ContractRunner | null): PrivacyBridgeUSDCe__factory {
1768
+ return super.connect(runner) as PrivacyBridgeUSDCe__factory;
1769
+ }
1770
+
1771
+ static readonly bytecode = _bytecode;
1772
+ static readonly abi = _abi;
1773
+ static createInterface(): PrivacyBridgeUSDCeInterface {
1774
+ return new Interface(_abi) as PrivacyBridgeUSDCeInterface;
1775
+ }
1776
+ static connect(
1777
+ address: string,
1778
+ runner?: ContractRunner | null
1779
+ ): PrivacyBridgeUSDCe {
1780
+ return new Contract(address, _abi, runner) as unknown as PrivacyBridgeUSDCe;
1781
+ }
1782
+ }