@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,1466 @@
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
+ BigNumberish,
13
+ ContractDeployTransaction,
14
+ ContractRunner,
15
+ } from "ethers";
16
+ import type { NonPayableOverrides } from "../../../../../common";
17
+ import type {
18
+ PrivateERC20CappedMock,
19
+ PrivateERC20CappedMockInterface,
20
+ } from "../../../../../contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock";
21
+
22
+ const _abi = [
23
+ {
24
+ inputs: [
25
+ {
26
+ internalType: "uint256",
27
+ name: "cap_",
28
+ type: "uint256",
29
+ },
30
+ ],
31
+ stateMutability: "nonpayable",
32
+ type: "constructor",
33
+ },
34
+ {
35
+ inputs: [
36
+ {
37
+ internalType: "address",
38
+ name: "approver",
39
+ type: "address",
40
+ },
41
+ ],
42
+ name: "ERC20InvalidApprover",
43
+ type: "error",
44
+ },
45
+ {
46
+ inputs: [],
47
+ name: "ERC20InvalidMetadata",
48
+ type: "error",
49
+ },
50
+ {
51
+ inputs: [
52
+ {
53
+ internalType: "address",
54
+ name: "receiver",
55
+ type: "address",
56
+ },
57
+ ],
58
+ name: "ERC20InvalidReceiver",
59
+ type: "error",
60
+ },
61
+ {
62
+ inputs: [
63
+ {
64
+ internalType: "address",
65
+ name: "sender",
66
+ type: "address",
67
+ },
68
+ ],
69
+ name: "ERC20InvalidSender",
70
+ type: "error",
71
+ },
72
+ {
73
+ inputs: [
74
+ {
75
+ internalType: "address",
76
+ name: "spender",
77
+ type: "address",
78
+ },
79
+ ],
80
+ name: "ERC20InvalidSpender",
81
+ type: "error",
82
+ },
83
+ {
84
+ inputs: [
85
+ {
86
+ internalType: "address",
87
+ name: "account",
88
+ type: "address",
89
+ },
90
+ ],
91
+ name: "ERC20SelfTransferNotAllowed",
92
+ type: "error",
93
+ },
94
+ {
95
+ inputs: [],
96
+ name: "ERC20UnsafeApprove",
97
+ type: "error",
98
+ },
99
+ {
100
+ inputs: [],
101
+ name: "PublicAmountsDisabled",
102
+ type: "error",
103
+ },
104
+ {
105
+ inputs: [
106
+ {
107
+ internalType: "address",
108
+ name: "to",
109
+ type: "address",
110
+ },
111
+ ],
112
+ name: "TransferAndCallRequiresContract",
113
+ type: "error",
114
+ },
115
+ {
116
+ anonymous: false,
117
+ inputs: [
118
+ {
119
+ indexed: true,
120
+ internalType: "address",
121
+ name: "account",
122
+ type: "address",
123
+ },
124
+ {
125
+ indexed: true,
126
+ internalType: "address",
127
+ name: "newAddress",
128
+ type: "address",
129
+ },
130
+ ],
131
+ name: "AccountEncryptionAddressSet",
132
+ type: "event",
133
+ },
134
+ {
135
+ anonymous: false,
136
+ inputs: [
137
+ {
138
+ indexed: true,
139
+ internalType: "address",
140
+ name: "owner",
141
+ type: "address",
142
+ },
143
+ {
144
+ indexed: true,
145
+ internalType: "address",
146
+ name: "spender",
147
+ type: "address",
148
+ },
149
+ {
150
+ indexed: false,
151
+ internalType: "bool",
152
+ name: "isSpender",
153
+ type: "bool",
154
+ },
155
+ ],
156
+ name: "AllowanceReencrypted",
157
+ type: "event",
158
+ },
159
+ {
160
+ anonymous: false,
161
+ inputs: [
162
+ {
163
+ indexed: true,
164
+ internalType: "address",
165
+ name: "owner",
166
+ type: "address",
167
+ },
168
+ {
169
+ indexed: true,
170
+ internalType: "address",
171
+ name: "spender",
172
+ type: "address",
173
+ },
174
+ {
175
+ components: [
176
+ {
177
+ internalType: "ctUint128",
178
+ name: "ciphertextHigh",
179
+ type: "uint256",
180
+ },
181
+ {
182
+ internalType: "ctUint128",
183
+ name: "ciphertextLow",
184
+ type: "uint256",
185
+ },
186
+ ],
187
+ indexed: false,
188
+ internalType: "struct ctUint256",
189
+ name: "ownerValue",
190
+ type: "tuple",
191
+ },
192
+ {
193
+ components: [
194
+ {
195
+ internalType: "ctUint128",
196
+ name: "ciphertextHigh",
197
+ type: "uint256",
198
+ },
199
+ {
200
+ internalType: "ctUint128",
201
+ name: "ciphertextLow",
202
+ type: "uint256",
203
+ },
204
+ ],
205
+ indexed: false,
206
+ internalType: "struct ctUint256",
207
+ name: "spenderValue",
208
+ type: "tuple",
209
+ },
210
+ ],
211
+ name: "Approval",
212
+ type: "event",
213
+ },
214
+ {
215
+ anonymous: false,
216
+ inputs: [
217
+ {
218
+ indexed: false,
219
+ internalType: "bool",
220
+ name: "enabled",
221
+ type: "bool",
222
+ },
223
+ ],
224
+ name: "PublicAmountsEnabledSet",
225
+ type: "event",
226
+ },
227
+ {
228
+ anonymous: false,
229
+ inputs: [
230
+ {
231
+ indexed: true,
232
+ internalType: "bytes32",
233
+ name: "role",
234
+ type: "bytes32",
235
+ },
236
+ {
237
+ indexed: true,
238
+ internalType: "bytes32",
239
+ name: "previousAdminRole",
240
+ type: "bytes32",
241
+ },
242
+ {
243
+ indexed: true,
244
+ internalType: "bytes32",
245
+ name: "newAdminRole",
246
+ type: "bytes32",
247
+ },
248
+ ],
249
+ name: "RoleAdminChanged",
250
+ type: "event",
251
+ },
252
+ {
253
+ anonymous: false,
254
+ inputs: [
255
+ {
256
+ indexed: true,
257
+ internalType: "bytes32",
258
+ name: "role",
259
+ type: "bytes32",
260
+ },
261
+ {
262
+ indexed: true,
263
+ internalType: "address",
264
+ name: "account",
265
+ type: "address",
266
+ },
267
+ {
268
+ indexed: true,
269
+ internalType: "address",
270
+ name: "sender",
271
+ type: "address",
272
+ },
273
+ ],
274
+ name: "RoleGranted",
275
+ type: "event",
276
+ },
277
+ {
278
+ anonymous: false,
279
+ inputs: [
280
+ {
281
+ indexed: true,
282
+ internalType: "bytes32",
283
+ name: "role",
284
+ type: "bytes32",
285
+ },
286
+ {
287
+ indexed: true,
288
+ internalType: "address",
289
+ name: "account",
290
+ type: "address",
291
+ },
292
+ {
293
+ indexed: true,
294
+ internalType: "address",
295
+ name: "sender",
296
+ type: "address",
297
+ },
298
+ ],
299
+ name: "RoleRevoked",
300
+ type: "event",
301
+ },
302
+ {
303
+ anonymous: false,
304
+ inputs: [
305
+ {
306
+ indexed: true,
307
+ internalType: "address",
308
+ name: "from",
309
+ type: "address",
310
+ },
311
+ {
312
+ indexed: true,
313
+ internalType: "address",
314
+ name: "to",
315
+ type: "address",
316
+ },
317
+ {
318
+ components: [
319
+ {
320
+ internalType: "ctUint128",
321
+ name: "ciphertextHigh",
322
+ type: "uint256",
323
+ },
324
+ {
325
+ internalType: "ctUint128",
326
+ name: "ciphertextLow",
327
+ type: "uint256",
328
+ },
329
+ ],
330
+ indexed: false,
331
+ internalType: "struct ctUint256",
332
+ name: "senderValue",
333
+ type: "tuple",
334
+ },
335
+ {
336
+ components: [
337
+ {
338
+ internalType: "ctUint128",
339
+ name: "ciphertextHigh",
340
+ type: "uint256",
341
+ },
342
+ {
343
+ internalType: "ctUint128",
344
+ name: "ciphertextLow",
345
+ type: "uint256",
346
+ },
347
+ ],
348
+ indexed: false,
349
+ internalType: "struct ctUint256",
350
+ name: "receiverValue",
351
+ type: "tuple",
352
+ },
353
+ ],
354
+ name: "Transfer",
355
+ type: "event",
356
+ },
357
+ {
358
+ inputs: [],
359
+ name: "DEFAULT_ADMIN_ROLE",
360
+ outputs: [
361
+ {
362
+ internalType: "bytes32",
363
+ name: "",
364
+ type: "bytes32",
365
+ },
366
+ ],
367
+ stateMutability: "view",
368
+ type: "function",
369
+ },
370
+ {
371
+ inputs: [],
372
+ name: "MINTER_ROLE",
373
+ outputs: [
374
+ {
375
+ internalType: "bytes32",
376
+ name: "",
377
+ type: "bytes32",
378
+ },
379
+ ],
380
+ stateMutability: "view",
381
+ type: "function",
382
+ },
383
+ {
384
+ inputs: [
385
+ {
386
+ internalType: "address",
387
+ name: "account",
388
+ type: "address",
389
+ },
390
+ ],
391
+ name: "accountEncryptionAddress",
392
+ outputs: [
393
+ {
394
+ internalType: "address",
395
+ name: "",
396
+ type: "address",
397
+ },
398
+ ],
399
+ stateMutability: "view",
400
+ type: "function",
401
+ },
402
+ {
403
+ inputs: [
404
+ {
405
+ internalType: "address",
406
+ name: "account",
407
+ type: "address",
408
+ },
409
+ {
410
+ internalType: "bool",
411
+ name: "isSpender",
412
+ type: "bool",
413
+ },
414
+ ],
415
+ name: "allowance",
416
+ outputs: [
417
+ {
418
+ internalType: "gtUint256",
419
+ name: "",
420
+ type: "uint256",
421
+ },
422
+ ],
423
+ stateMutability: "nonpayable",
424
+ type: "function",
425
+ },
426
+ {
427
+ inputs: [
428
+ {
429
+ internalType: "address",
430
+ name: "owner",
431
+ type: "address",
432
+ },
433
+ {
434
+ internalType: "address",
435
+ name: "spender",
436
+ type: "address",
437
+ },
438
+ ],
439
+ name: "allowance",
440
+ outputs: [
441
+ {
442
+ components: [
443
+ {
444
+ components: [
445
+ {
446
+ internalType: "ctUint128",
447
+ name: "ciphertextHigh",
448
+ type: "uint256",
449
+ },
450
+ {
451
+ internalType: "ctUint128",
452
+ name: "ciphertextLow",
453
+ type: "uint256",
454
+ },
455
+ ],
456
+ internalType: "struct ctUint256",
457
+ name: "ciphertext",
458
+ type: "tuple",
459
+ },
460
+ {
461
+ components: [
462
+ {
463
+ internalType: "ctUint128",
464
+ name: "ciphertextHigh",
465
+ type: "uint256",
466
+ },
467
+ {
468
+ internalType: "ctUint128",
469
+ name: "ciphertextLow",
470
+ type: "uint256",
471
+ },
472
+ ],
473
+ internalType: "struct ctUint256",
474
+ name: "ownerCiphertext",
475
+ type: "tuple",
476
+ },
477
+ {
478
+ components: [
479
+ {
480
+ internalType: "ctUint128",
481
+ name: "ciphertextHigh",
482
+ type: "uint256",
483
+ },
484
+ {
485
+ internalType: "ctUint128",
486
+ name: "ciphertextLow",
487
+ type: "uint256",
488
+ },
489
+ ],
490
+ internalType: "struct ctUint256",
491
+ name: "spenderCiphertext",
492
+ type: "tuple",
493
+ },
494
+ ],
495
+ internalType: "struct IPrivateERC20.Allowance",
496
+ name: "",
497
+ type: "tuple",
498
+ },
499
+ ],
500
+ stateMutability: "view",
501
+ type: "function",
502
+ },
503
+ {
504
+ inputs: [
505
+ {
506
+ internalType: "address",
507
+ name: "spender",
508
+ type: "address",
509
+ },
510
+ {
511
+ internalType: "uint256",
512
+ name: "value",
513
+ type: "uint256",
514
+ },
515
+ ],
516
+ name: "approve",
517
+ outputs: [],
518
+ stateMutability: "nonpayable",
519
+ type: "function",
520
+ },
521
+ {
522
+ inputs: [
523
+ {
524
+ internalType: "address",
525
+ name: "spender",
526
+ type: "address",
527
+ },
528
+ {
529
+ components: [
530
+ {
531
+ components: [
532
+ {
533
+ internalType: "ctUint128",
534
+ name: "ciphertextHigh",
535
+ type: "uint256",
536
+ },
537
+ {
538
+ internalType: "ctUint128",
539
+ name: "ciphertextLow",
540
+ type: "uint256",
541
+ },
542
+ ],
543
+ internalType: "struct ctUint256",
544
+ name: "ciphertext",
545
+ type: "tuple",
546
+ },
547
+ {
548
+ internalType: "bytes",
549
+ name: "signature",
550
+ type: "bytes",
551
+ },
552
+ ],
553
+ internalType: "struct itUint256",
554
+ name: "value",
555
+ type: "tuple",
556
+ },
557
+ ],
558
+ name: "approve",
559
+ outputs: [],
560
+ stateMutability: "nonpayable",
561
+ type: "function",
562
+ },
563
+ {
564
+ inputs: [
565
+ {
566
+ internalType: "address",
567
+ name: "spender",
568
+ type: "address",
569
+ },
570
+ {
571
+ internalType: "gtUint256",
572
+ name: "value",
573
+ type: "uint256",
574
+ },
575
+ ],
576
+ name: "approveGT",
577
+ outputs: [],
578
+ stateMutability: "nonpayable",
579
+ type: "function",
580
+ },
581
+ {
582
+ inputs: [
583
+ {
584
+ internalType: "address",
585
+ name: "account",
586
+ type: "address",
587
+ },
588
+ ],
589
+ name: "balanceOf",
590
+ outputs: [
591
+ {
592
+ components: [
593
+ {
594
+ internalType: "ctUint128",
595
+ name: "ciphertextHigh",
596
+ type: "uint256",
597
+ },
598
+ {
599
+ internalType: "ctUint128",
600
+ name: "ciphertextLow",
601
+ type: "uint256",
602
+ },
603
+ ],
604
+ internalType: "struct ctUint256",
605
+ name: "",
606
+ type: "tuple",
607
+ },
608
+ ],
609
+ stateMutability: "view",
610
+ type: "function",
611
+ },
612
+ {
613
+ inputs: [],
614
+ name: "balanceOf",
615
+ outputs: [
616
+ {
617
+ internalType: "gtUint256",
618
+ name: "",
619
+ type: "uint256",
620
+ },
621
+ ],
622
+ stateMutability: "nonpayable",
623
+ type: "function",
624
+ },
625
+ {
626
+ inputs: [
627
+ {
628
+ internalType: "uint256",
629
+ name: "amount",
630
+ type: "uint256",
631
+ },
632
+ ],
633
+ name: "burn",
634
+ outputs: [],
635
+ stateMutability: "nonpayable",
636
+ type: "function",
637
+ },
638
+ {
639
+ inputs: [
640
+ {
641
+ components: [
642
+ {
643
+ components: [
644
+ {
645
+ internalType: "ctUint128",
646
+ name: "ciphertextHigh",
647
+ type: "uint256",
648
+ },
649
+ {
650
+ internalType: "ctUint128",
651
+ name: "ciphertextLow",
652
+ type: "uint256",
653
+ },
654
+ ],
655
+ internalType: "struct ctUint256",
656
+ name: "ciphertext",
657
+ type: "tuple",
658
+ },
659
+ {
660
+ internalType: "bytes",
661
+ name: "signature",
662
+ type: "bytes",
663
+ },
664
+ ],
665
+ internalType: "struct itUint256",
666
+ name: "amount",
667
+ type: "tuple",
668
+ },
669
+ ],
670
+ name: "burn",
671
+ outputs: [],
672
+ stateMutability: "nonpayable",
673
+ type: "function",
674
+ },
675
+ {
676
+ inputs: [
677
+ {
678
+ internalType: "gtUint256",
679
+ name: "gtAmount",
680
+ type: "uint256",
681
+ },
682
+ ],
683
+ name: "burnGt",
684
+ outputs: [],
685
+ stateMutability: "nonpayable",
686
+ type: "function",
687
+ },
688
+ {
689
+ inputs: [],
690
+ name: "decimals",
691
+ outputs: [
692
+ {
693
+ internalType: "uint8",
694
+ name: "",
695
+ type: "uint8",
696
+ },
697
+ ],
698
+ stateMutability: "pure",
699
+ type: "function",
700
+ },
701
+ {
702
+ inputs: [
703
+ {
704
+ internalType: "address",
705
+ name: "spender",
706
+ type: "address",
707
+ },
708
+ {
709
+ internalType: "uint256",
710
+ name: "subtractedValue",
711
+ type: "uint256",
712
+ },
713
+ ],
714
+ name: "decreaseAllowance",
715
+ outputs: [],
716
+ stateMutability: "nonpayable",
717
+ type: "function",
718
+ },
719
+ {
720
+ inputs: [
721
+ {
722
+ internalType: "address",
723
+ name: "spender",
724
+ type: "address",
725
+ },
726
+ {
727
+ components: [
728
+ {
729
+ components: [
730
+ {
731
+ internalType: "ctUint128",
732
+ name: "ciphertextHigh",
733
+ type: "uint256",
734
+ },
735
+ {
736
+ internalType: "ctUint128",
737
+ name: "ciphertextLow",
738
+ type: "uint256",
739
+ },
740
+ ],
741
+ internalType: "struct ctUint256",
742
+ name: "ciphertext",
743
+ type: "tuple",
744
+ },
745
+ {
746
+ internalType: "bytes",
747
+ name: "signature",
748
+ type: "bytes",
749
+ },
750
+ ],
751
+ internalType: "struct itUint256",
752
+ name: "subtractedValue",
753
+ type: "tuple",
754
+ },
755
+ ],
756
+ name: "decreaseAllowance",
757
+ outputs: [],
758
+ stateMutability: "nonpayable",
759
+ type: "function",
760
+ },
761
+ {
762
+ inputs: [
763
+ {
764
+ internalType: "address",
765
+ name: "spender",
766
+ type: "address",
767
+ },
768
+ {
769
+ internalType: "gtUint256",
770
+ name: "subtractedValue",
771
+ type: "uint256",
772
+ },
773
+ ],
774
+ name: "decreaseAllowanceGT",
775
+ outputs: [],
776
+ stateMutability: "nonpayable",
777
+ type: "function",
778
+ },
779
+ {
780
+ inputs: [
781
+ {
782
+ internalType: "bytes32",
783
+ name: "role",
784
+ type: "bytes32",
785
+ },
786
+ ],
787
+ name: "getRoleAdmin",
788
+ outputs: [
789
+ {
790
+ internalType: "bytes32",
791
+ name: "",
792
+ type: "bytes32",
793
+ },
794
+ ],
795
+ stateMutability: "view",
796
+ type: "function",
797
+ },
798
+ {
799
+ inputs: [
800
+ {
801
+ internalType: "bytes32",
802
+ name: "role",
803
+ type: "bytes32",
804
+ },
805
+ {
806
+ internalType: "address",
807
+ name: "account",
808
+ type: "address",
809
+ },
810
+ ],
811
+ name: "grantRole",
812
+ outputs: [],
813
+ stateMutability: "nonpayable",
814
+ type: "function",
815
+ },
816
+ {
817
+ inputs: [
818
+ {
819
+ internalType: "bytes32",
820
+ name: "role",
821
+ type: "bytes32",
822
+ },
823
+ {
824
+ internalType: "address",
825
+ name: "account",
826
+ type: "address",
827
+ },
828
+ ],
829
+ name: "hasRole",
830
+ outputs: [
831
+ {
832
+ internalType: "bool",
833
+ name: "",
834
+ type: "bool",
835
+ },
836
+ ],
837
+ stateMutability: "view",
838
+ type: "function",
839
+ },
840
+ {
841
+ inputs: [
842
+ {
843
+ internalType: "address",
844
+ name: "spender",
845
+ type: "address",
846
+ },
847
+ {
848
+ internalType: "uint256",
849
+ name: "addedValue",
850
+ type: "uint256",
851
+ },
852
+ ],
853
+ name: "increaseAllowance",
854
+ outputs: [],
855
+ stateMutability: "nonpayable",
856
+ type: "function",
857
+ },
858
+ {
859
+ inputs: [
860
+ {
861
+ internalType: "address",
862
+ name: "spender",
863
+ type: "address",
864
+ },
865
+ {
866
+ components: [
867
+ {
868
+ components: [
869
+ {
870
+ internalType: "ctUint128",
871
+ name: "ciphertextHigh",
872
+ type: "uint256",
873
+ },
874
+ {
875
+ internalType: "ctUint128",
876
+ name: "ciphertextLow",
877
+ type: "uint256",
878
+ },
879
+ ],
880
+ internalType: "struct ctUint256",
881
+ name: "ciphertext",
882
+ type: "tuple",
883
+ },
884
+ {
885
+ internalType: "bytes",
886
+ name: "signature",
887
+ type: "bytes",
888
+ },
889
+ ],
890
+ internalType: "struct itUint256",
891
+ name: "addedValue",
892
+ type: "tuple",
893
+ },
894
+ ],
895
+ name: "increaseAllowance",
896
+ outputs: [],
897
+ stateMutability: "nonpayable",
898
+ type: "function",
899
+ },
900
+ {
901
+ inputs: [
902
+ {
903
+ internalType: "address",
904
+ name: "spender",
905
+ type: "address",
906
+ },
907
+ {
908
+ internalType: "gtUint256",
909
+ name: "addedValue",
910
+ type: "uint256",
911
+ },
912
+ ],
913
+ name: "increaseAllowanceGT",
914
+ outputs: [],
915
+ stateMutability: "nonpayable",
916
+ type: "function",
917
+ },
918
+ {
919
+ inputs: [
920
+ {
921
+ internalType: "address",
922
+ name: "to",
923
+ type: "address",
924
+ },
925
+ {
926
+ internalType: "uint256",
927
+ name: "amount",
928
+ type: "uint256",
929
+ },
930
+ ],
931
+ name: "mint",
932
+ outputs: [],
933
+ stateMutability: "nonpayable",
934
+ type: "function",
935
+ },
936
+ {
937
+ inputs: [
938
+ {
939
+ internalType: "address",
940
+ name: "to",
941
+ type: "address",
942
+ },
943
+ {
944
+ components: [
945
+ {
946
+ components: [
947
+ {
948
+ internalType: "ctUint128",
949
+ name: "ciphertextHigh",
950
+ type: "uint256",
951
+ },
952
+ {
953
+ internalType: "ctUint128",
954
+ name: "ciphertextLow",
955
+ type: "uint256",
956
+ },
957
+ ],
958
+ internalType: "struct ctUint256",
959
+ name: "ciphertext",
960
+ type: "tuple",
961
+ },
962
+ {
963
+ internalType: "bytes",
964
+ name: "signature",
965
+ type: "bytes",
966
+ },
967
+ ],
968
+ internalType: "struct itUint256",
969
+ name: "amount",
970
+ type: "tuple",
971
+ },
972
+ ],
973
+ name: "mint",
974
+ outputs: [],
975
+ stateMutability: "nonpayable",
976
+ type: "function",
977
+ },
978
+ {
979
+ inputs: [
980
+ {
981
+ internalType: "address",
982
+ name: "to",
983
+ type: "address",
984
+ },
985
+ {
986
+ internalType: "gtUint256",
987
+ name: "gtAmount",
988
+ type: "uint256",
989
+ },
990
+ ],
991
+ name: "mintGt",
992
+ outputs: [],
993
+ stateMutability: "nonpayable",
994
+ type: "function",
995
+ },
996
+ {
997
+ inputs: [],
998
+ name: "name",
999
+ outputs: [
1000
+ {
1001
+ internalType: "string",
1002
+ name: "",
1003
+ type: "string",
1004
+ },
1005
+ ],
1006
+ stateMutability: "view",
1007
+ type: "function",
1008
+ },
1009
+ {
1010
+ inputs: [],
1011
+ name: "publicAmountsEnabled",
1012
+ outputs: [
1013
+ {
1014
+ internalType: "bool",
1015
+ name: "",
1016
+ type: "bool",
1017
+ },
1018
+ ],
1019
+ stateMutability: "view",
1020
+ type: "function",
1021
+ },
1022
+ {
1023
+ inputs: [
1024
+ {
1025
+ internalType: "address",
1026
+ name: "account",
1027
+ type: "address",
1028
+ },
1029
+ {
1030
+ internalType: "bool",
1031
+ name: "isSpender",
1032
+ type: "bool",
1033
+ },
1034
+ ],
1035
+ name: "reencryptAllowance",
1036
+ outputs: [],
1037
+ stateMutability: "nonpayable",
1038
+ type: "function",
1039
+ },
1040
+ {
1041
+ inputs: [
1042
+ {
1043
+ internalType: "bytes32",
1044
+ name: "role",
1045
+ type: "bytes32",
1046
+ },
1047
+ {
1048
+ internalType: "address",
1049
+ name: "account",
1050
+ type: "address",
1051
+ },
1052
+ ],
1053
+ name: "renounceRole",
1054
+ outputs: [],
1055
+ stateMutability: "nonpayable",
1056
+ type: "function",
1057
+ },
1058
+ {
1059
+ inputs: [
1060
+ {
1061
+ internalType: "bytes32",
1062
+ name: "role",
1063
+ type: "bytes32",
1064
+ },
1065
+ {
1066
+ internalType: "address",
1067
+ name: "account",
1068
+ type: "address",
1069
+ },
1070
+ ],
1071
+ name: "revokeRole",
1072
+ outputs: [],
1073
+ stateMutability: "nonpayable",
1074
+ type: "function",
1075
+ },
1076
+ {
1077
+ inputs: [
1078
+ {
1079
+ internalType: "address",
1080
+ name: "offBoardAddress",
1081
+ type: "address",
1082
+ },
1083
+ ],
1084
+ name: "setAccountEncryptionAddress",
1085
+ outputs: [
1086
+ {
1087
+ internalType: "bool",
1088
+ name: "",
1089
+ type: "bool",
1090
+ },
1091
+ ],
1092
+ stateMutability: "nonpayable",
1093
+ type: "function",
1094
+ },
1095
+ {
1096
+ inputs: [
1097
+ {
1098
+ internalType: "bool",
1099
+ name: "enabled",
1100
+ type: "bool",
1101
+ },
1102
+ ],
1103
+ name: "setPublicAmountsEnabled",
1104
+ outputs: [],
1105
+ stateMutability: "nonpayable",
1106
+ type: "function",
1107
+ },
1108
+ {
1109
+ inputs: [],
1110
+ name: "supplyCap",
1111
+ outputs: [
1112
+ {
1113
+ internalType: "uint256",
1114
+ name: "",
1115
+ type: "uint256",
1116
+ },
1117
+ ],
1118
+ stateMutability: "view",
1119
+ type: "function",
1120
+ },
1121
+ {
1122
+ inputs: [
1123
+ {
1124
+ internalType: "bytes4",
1125
+ name: "interfaceId",
1126
+ type: "bytes4",
1127
+ },
1128
+ ],
1129
+ name: "supportsInterface",
1130
+ outputs: [
1131
+ {
1132
+ internalType: "bool",
1133
+ name: "",
1134
+ type: "bool",
1135
+ },
1136
+ ],
1137
+ stateMutability: "view",
1138
+ type: "function",
1139
+ },
1140
+ {
1141
+ inputs: [],
1142
+ name: "symbol",
1143
+ outputs: [
1144
+ {
1145
+ internalType: "string",
1146
+ name: "",
1147
+ type: "string",
1148
+ },
1149
+ ],
1150
+ stateMutability: "view",
1151
+ type: "function",
1152
+ },
1153
+ {
1154
+ inputs: [],
1155
+ name: "totalSupply",
1156
+ outputs: [
1157
+ {
1158
+ internalType: "uint256",
1159
+ name: "",
1160
+ type: "uint256",
1161
+ },
1162
+ ],
1163
+ stateMutability: "view",
1164
+ type: "function",
1165
+ },
1166
+ {
1167
+ inputs: [
1168
+ {
1169
+ internalType: "address",
1170
+ name: "to",
1171
+ type: "address",
1172
+ },
1173
+ {
1174
+ components: [
1175
+ {
1176
+ components: [
1177
+ {
1178
+ internalType: "ctUint128",
1179
+ name: "ciphertextHigh",
1180
+ type: "uint256",
1181
+ },
1182
+ {
1183
+ internalType: "ctUint128",
1184
+ name: "ciphertextLow",
1185
+ type: "uint256",
1186
+ },
1187
+ ],
1188
+ internalType: "struct ctUint256",
1189
+ name: "ciphertext",
1190
+ type: "tuple",
1191
+ },
1192
+ {
1193
+ internalType: "bytes",
1194
+ name: "signature",
1195
+ type: "bytes",
1196
+ },
1197
+ ],
1198
+ internalType: "struct itUint256",
1199
+ name: "value",
1200
+ type: "tuple",
1201
+ },
1202
+ ],
1203
+ name: "transfer",
1204
+ outputs: [],
1205
+ stateMutability: "nonpayable",
1206
+ type: "function",
1207
+ },
1208
+ {
1209
+ inputs: [
1210
+ {
1211
+ internalType: "address",
1212
+ name: "to",
1213
+ type: "address",
1214
+ },
1215
+ {
1216
+ internalType: "uint256",
1217
+ name: "value",
1218
+ type: "uint256",
1219
+ },
1220
+ ],
1221
+ name: "transfer",
1222
+ outputs: [],
1223
+ stateMutability: "nonpayable",
1224
+ type: "function",
1225
+ },
1226
+ {
1227
+ inputs: [
1228
+ {
1229
+ internalType: "address",
1230
+ name: "to",
1231
+ type: "address",
1232
+ },
1233
+ {
1234
+ components: [
1235
+ {
1236
+ components: [
1237
+ {
1238
+ internalType: "ctUint128",
1239
+ name: "ciphertextHigh",
1240
+ type: "uint256",
1241
+ },
1242
+ {
1243
+ internalType: "ctUint128",
1244
+ name: "ciphertextLow",
1245
+ type: "uint256",
1246
+ },
1247
+ ],
1248
+ internalType: "struct ctUint256",
1249
+ name: "ciphertext",
1250
+ type: "tuple",
1251
+ },
1252
+ {
1253
+ internalType: "bytes",
1254
+ name: "signature",
1255
+ type: "bytes",
1256
+ },
1257
+ ],
1258
+ internalType: "struct itUint256",
1259
+ name: "amount",
1260
+ type: "tuple",
1261
+ },
1262
+ {
1263
+ internalType: "bytes",
1264
+ name: "data",
1265
+ type: "bytes",
1266
+ },
1267
+ ],
1268
+ name: "transferAndCall",
1269
+ outputs: [],
1270
+ stateMutability: "nonpayable",
1271
+ type: "function",
1272
+ },
1273
+ {
1274
+ inputs: [
1275
+ {
1276
+ internalType: "address",
1277
+ name: "to",
1278
+ type: "address",
1279
+ },
1280
+ {
1281
+ internalType: "uint256",
1282
+ name: "amount",
1283
+ type: "uint256",
1284
+ },
1285
+ {
1286
+ internalType: "bytes",
1287
+ name: "data",
1288
+ type: "bytes",
1289
+ },
1290
+ ],
1291
+ name: "transferAndCall",
1292
+ outputs: [],
1293
+ stateMutability: "nonpayable",
1294
+ type: "function",
1295
+ },
1296
+ {
1297
+ inputs: [
1298
+ {
1299
+ internalType: "address",
1300
+ name: "from",
1301
+ type: "address",
1302
+ },
1303
+ {
1304
+ internalType: "address",
1305
+ name: "to",
1306
+ type: "address",
1307
+ },
1308
+ {
1309
+ internalType: "uint256",
1310
+ name: "value",
1311
+ type: "uint256",
1312
+ },
1313
+ ],
1314
+ name: "transferFrom",
1315
+ outputs: [],
1316
+ stateMutability: "nonpayable",
1317
+ type: "function",
1318
+ },
1319
+ {
1320
+ inputs: [
1321
+ {
1322
+ internalType: "address",
1323
+ name: "from",
1324
+ type: "address",
1325
+ },
1326
+ {
1327
+ internalType: "address",
1328
+ name: "to",
1329
+ type: "address",
1330
+ },
1331
+ {
1332
+ components: [
1333
+ {
1334
+ components: [
1335
+ {
1336
+ internalType: "ctUint128",
1337
+ name: "ciphertextHigh",
1338
+ type: "uint256",
1339
+ },
1340
+ {
1341
+ internalType: "ctUint128",
1342
+ name: "ciphertextLow",
1343
+ type: "uint256",
1344
+ },
1345
+ ],
1346
+ internalType: "struct ctUint256",
1347
+ name: "ciphertext",
1348
+ type: "tuple",
1349
+ },
1350
+ {
1351
+ internalType: "bytes",
1352
+ name: "signature",
1353
+ type: "bytes",
1354
+ },
1355
+ ],
1356
+ internalType: "struct itUint256",
1357
+ name: "value",
1358
+ type: "tuple",
1359
+ },
1360
+ ],
1361
+ name: "transferFrom",
1362
+ outputs: [],
1363
+ stateMutability: "nonpayable",
1364
+ type: "function",
1365
+ },
1366
+ {
1367
+ inputs: [
1368
+ {
1369
+ internalType: "address",
1370
+ name: "from",
1371
+ type: "address",
1372
+ },
1373
+ {
1374
+ internalType: "address",
1375
+ name: "to",
1376
+ type: "address",
1377
+ },
1378
+ {
1379
+ internalType: "gtUint256",
1380
+ name: "value",
1381
+ type: "uint256",
1382
+ },
1383
+ ],
1384
+ name: "transferFromGT",
1385
+ outputs: [],
1386
+ stateMutability: "nonpayable",
1387
+ type: "function",
1388
+ },
1389
+ {
1390
+ inputs: [
1391
+ {
1392
+ internalType: "address",
1393
+ name: "to",
1394
+ type: "address",
1395
+ },
1396
+ {
1397
+ internalType: "gtUint256",
1398
+ name: "value",
1399
+ type: "uint256",
1400
+ },
1401
+ ],
1402
+ name: "transferGT",
1403
+ outputs: [],
1404
+ stateMutability: "nonpayable",
1405
+ type: "function",
1406
+ },
1407
+ ] as const;
1408
+
1409
+ const _bytecode =
1410
+ "0x60a034620003f157620043ba90813803601f1991601f91838382011682019460018060401b039183871083881117620002f65780849260409889528339602093849181010312620003f157519362000056620003f6565b93601685527f5072697661746545524332304361707065644d6f636b00000000000000000000848601526200008a620003f6565b6005815264050454341560dc1b85820152600195868055805115620003e057815115620003e057805190858211620002f657600854908882811c92168015620003d5575b88831014620002d55781858493116200037e575b50879085831160011462000318576000926200030c575b5050600019600383901b1c191690871b176008555b8051938411620002f657600954928684811c94168015620002eb575b86851014620002d55783838695116200027a575b508592841160011462000213575060009262000207575b5050600019600383901b1c191690831b176009555b60008052600081528360002033600052815260ff84600020541615620001b8575b5060ff19600254161760025560805251613fa39081620004178239608051818181610c500152612df30152f35b600080526000815283600020903360005252826000208160ff19825416179055333360007f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4386200018b565b01519050388062000155565b869492919216916009600052856000209260005b8782821062000263575050841162000249575b505050811b016009556200016a565b015160001960f88460031b161c191690553880806200023a565b838501518655899790950194938401930162000227565b90919293506009600052856000208480870160051c820192888810620002cb575b9187968a92969594930160051c01915b828110620002bb5750506200013e565b60008155879650899101620002ab565b925081926200029b565b634e487b7160e01b600052602260045260246000fd5b93607f16936200012a565b634e487b7160e01b600052604160045260246000fd5b015190503880620000f9565b90868a9416916008600052896000209260005b8b8282106200036757505084116200034d575b505050811b016008556200010e565b015160001960f88460031b161c191690553880806200033e565b8385015186558d979095019493840193016200032b565b9091506008600052876000208580850160051c8201928a8610620003cb575b918b91869594930160051c01915b828110620003bb575050620000e2565b600081558594508b9101620003ab565b925081926200039d565b91607f1691620000ce565b8851631251828960e31b8152600490fd5b600080fd5b60408051919082016001600160401b03811183821017620002f65760405256fe6040608081526004908136101561001557600080fd5b600091823560e01c80620a77ed14611d5857806301ffc9a714611c82578063043d208514611c1b5780630564c4cf14611b9857806306fdde0314611acb578063095ea7b3146119b057806318160ddd14610a4257806323b872dd146118ca578063248a9ca3146118a157806326a9b3f11461173a5780632f2ff15d14611668578063313ce5671461164c57806336568abe146115855780633826c5801461145957806338e071bc1461140d57806339509351146113b45780633c96e77c146112f05780634000aea01461115657806340c10f19146110f557806342966c68146110c15780634faa7ebf1461109d5780635d484ff814610f6057806368c7a25d14610f0c57806370a0823114610e85578063722713f714610e5e5780638269bcc314610d6857806383ae57f414610d2057806384813e9314610ccd5780638e532c4414610c735780638f770ad014610c3857806391d1485414610be757806395d89b4114610a9257806396b2db3814610a5d578063a217fddf14610a42578063a457c2d7146109e9578063a9059cbb14610963578063b485441d14610914578063b935980914610899578063c183b7fc14610837578063d1846836146104ff578063d5391393146104c0578063d547741f14610483578063dd62ed3e14610308578063e4f75ce71461028a5763fb2205ca1461020f57600080fd5b346102865761021d36611e6c565b919092610228611ebf565b6102306125b1565b73ffffffffffffffffffffffffffffffffffffffff84161561027057846102698561026361025e3688612620565b6139b4565b90612d1e565b6001805580f35b9084602492519163ec442f0560e01b8352820152fd5b8280fd5b50346102865761029936611e6c565b9190926102a46125b1565b73ffffffffffffffffffffffffffffffffffffffff8416156102d95784610269856102d261025e3688612620565b903361332b565b908460249251917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b509034610286578060031936011261028657610322611d7e565b9061032b611da6565b81519261033784612298565b825193610343856122e3565b86855260209487868201528152835161035b816122e3565b87815287868201528582015283805191610374836122e3565b8883528887840152015273ffffffffffffffffffffffffffffffffffffffff809116918215610454571690811561042557858492849260c0985260058452828220908252835220916103ef8151956103cb87612298565b6103d48561279e565b87526103e26002860161279e565b948488019586520161279e565b928186019384528282519651805188520151838701525190815190860152015160608401525180516080840152015160a0820152f35b602485878551917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b602486888651917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b5090346102865780600319360112610286576104bd91356104b860016104a7611da6565b93838752866020528620015461215d565b61235c565b80f35b5050346104fb57816003193601126104fb57602090517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68152f35b5080fd5b509190346104fb57602090816003193601126102865783359081151580920361083357838052838352808420338552835260ff818520541615610595577fd42670144ecdb96470ba224c43350a54c3f4a1890e72b2a470a689962b9f3c4f9394507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541660ff83161760025551908152a180f35b849150836105a23361243c565b90808351906105b0826122ff565b6042825286820192606036853782511561080757603084538251906001918210156107db5790607860218501536041915b818311610713575050506106b8576048610671938593610680936106b497519687937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008c86015261063c8c8251928391603789019101611dc9565b8401917f206973206d697373696e6720726f6c6520000000000000000000000000000000603784015251809386840190611dc9565b0103602881018552018361231b565b519384937f08c379a00000000000000000000000000000000000000000000000000000000085528401526024830190611dec565b0390fd5b60648587808751927f08c379a000000000000000000000000000000000000000000000000000000000845283015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f811660108110156107af577f3031323334353637383961626364656600000000000000000000000000000000901a61075085876123fc565b53881c928015610783577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191906105e1565b60248260118b7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60248360328c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b806032897f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b806032887f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b8380fd5b5034610286578160031936011261028657610850611d7e565b916108596125b1565b73ffffffffffffffffffffffffffffffffffffffff831615610883578361026960243585336128a7565b9083602492519163ec442f0560e01b8352820152fd5b50346102865781600319360112610286576108b2611d7e565b916108bb6125b1565b73ffffffffffffffffffffffffffffffffffffffff8316156108e55783610269602435853361345c565b908360249251917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b50346102865761092336611e6c565b91909261092e6125b1565b73ffffffffffffffffffffffffffffffffffffffff8416156102d957846102698561095c61025e3688612620565b903361345c565b503461028657816003193601126102865761097c611d7e565b916109856125b1565b73ffffffffffffffffffffffffffffffffffffffff8316156108835760ff60025416156109c35783610269846109bc602435613cac565b90336128a7565b517fa25be20b000000000000000000000000000000000000000000000000000000008152fd5b5034610286578160031936011261028657610a02611d7e565b91610a0b6125b1565b73ffffffffffffffffffffffffffffffffffffffff8316156108e55760ff60025416156109c357836102698461095c602435613cac565b5050346104fb57816003193601126104fb5751908152602090f35b5050346104fb57806003193601126104fb57602090610a8b610a7d611d7e565b610a85611e2f565b906127bc565b9051908152f35b509134610be45780600319360112610be4578151918160095492600184811c91818616958615610bda575b6020968785108114610bae578899509688969785829a529182600014610b69575050600114610b0d575b505050610b099291610afa91038561231b565b51928284938452830190611dec565b0390f35b9190869350600983527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b828410610b515750505082010181610afa610b09610ae7565b8054848a018601528895508794909301928101610b38565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b86019093019350849250610afa9150610b099050610ae7565b60248360228c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f1692610abd565b80fd5b50346102865781600319360112610286578160209360ff92610c07611da6565b9035825281865273ffffffffffffffffffffffffffffffffffffffff83832091168252855220541690519015158152f35b5050346104fb57816003193601126104fb57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461028657610c8236611e6c565b919092610c8d6125b1565b73ffffffffffffffffffffffffffffffffffffffff8416156102d9578461026985610cbb61025e3688612620565b90610cc78282336131e0565b33613592565b5034610286578160031936011261028657610ce6611d7e565b91610cef611ebf565b610cf76125b1565b73ffffffffffffffffffffffffffffffffffffffff831615610883578361026960243585612d1e565b503461028657610d2f36611e6c565b919092610d3a6125b1565b73ffffffffffffffffffffffffffffffffffffffff8416156102705784610269856109bc61025e3688612620565b508290346104fb576020928360031936011261028657610d86611d7e565b91610d8f6125b1565b73ffffffffffffffffffffffffffffffffffffffff8316928315610e4857610dcf90338652828752610dca610dc585882061279e565b613734565b613b5a565b9033855260038652828520847fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905585526003858386209280516002850155015191015551917f60662088d92b75bf198cd91648eaec81fc2278e7a02f3cf02643637be4728c24339180a36001805560018152f35b5083602492519163ec442f0560e01b8352820152fd5b5034610286578260031936011261028657610dc582602094610a8b9333825286522061279e565b508290346104fb5760206003193601126104fb5773ffffffffffffffffffffffffffffffffffffffff610eb6611d7e565b8360208651610ec4816122e3565b8281520152168015610ef6578252602052819020610ee49060020161279e565b60208251918051835201516020820152f35b5090602492519163ec442f0560e01b8352820152fd5b8382346104fb57600319906020823601126102865780359167ffffffffffffffff83116108335760609083360301126102865761025e610f5a9161026993610f526125b1565b369101612620565b33612f85565b508290346104fb576003199060608236011261028657610f7e611d7e565b610f86611da6565b916044359367ffffffffffffffff851161109957606090853603011261109557610fae6125b1565b73ffffffffffffffffffffffffffffffffffffffff938483169485156110665784161561105057610dc56102699697610ff361025e61104b9561100b95369101612620565b9689526005602052808920338a52602052882061279e565b61104261101782613f01565b61103861103d61103861103261102d8b88613e21565b613949565b8461386b565b6138b5565b612842565b90853385613719565b6128a7565b6024828789519163ec442f0560e01b8352820152fd5b602483888a51917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b8480fd5b8580fd5b5050346104fb57816003193601126104fb5760209060ff6002541690519015158152f35b509034610286576020600319360112610286576110dc6125b1565b60ff60025416156109c35750610f5a6102699135613cac565b503461028657816003193601126102865761110e611d7e565b91611117611ebf565b61111f6125b1565b73ffffffffffffffffffffffffffffffffffffffff8316156108835760ff60025416156109c3578361026984610263602435613cac565b503461028657606060031936011261028657611170611d7e565b6024359060443567ffffffffffffffff8111611099576111939036908501611e3e565b92909361119e6125b1565b73ffffffffffffffffffffffffffffffffffffffff83169283156112da57803b156112ab5760ff60025416156112835782916111e289926109bc6020989796613cac565b61122c8851978896879586947fbed25542000000000000000000000000000000000000000000000000000000008652339086015260248501526060604485015260648401916126fa565b03925af19081156112775761026992508391611249575b50612739565b61126a915060203d8111611270575b611262818361231b565b8101906126e2565b38611243565b503d611258565b505051903d90823e3d90fd5b5085517fa25be20b000000000000000000000000000000000000000000000000000000008152fd5b602482858951917f7ca756dc000000000000000000000000000000000000000000000000000000008352820152fd5b6024828989519163ec442f0560e01b8352820152fd5b508290346104fb5760606003193601126104fb5761130c611d7e565b611314611da6565b90604435926113216125b1565b73ffffffffffffffffffffffffffffffffffffffff908183169182156113855784161561136f575061100b610dc5869761104b9361026998526005602052808920338a52602052882061279e565b6024908688519163ec442f0560e01b8352820152fd5b602482888a51917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b50346102865781600319360112610286576113cd611d7e565b916113d66125b1565b73ffffffffffffffffffffffffffffffffffffffff8316156108e55760ff60025416156109c35783610269846102d2602435613cac565b5034610286578160031936011261028657611426611d7e565b9161142f6125b1565b73ffffffffffffffffffffffffffffffffffffffff8316156108e55783610269602435853361332b565b50346102865760031960608136011261083357611474611d7e565b916024359167ffffffffffffffff9081841161158157606090843603011261109957604435908111611099576114ad9036908301611e3e565b9190936114b86125b1565b73ffffffffffffffffffffffffffffffffffffffff811693841561156b57813b1561153c57602094926114fb61122c9795936109bc61025e8c9536908601612620565b8751968795869485937f2ac65e4e00000000000000000000000000000000000000000000000000000000855233908501528a602485015260448401916126fa565b602483868951917f7ca756dc000000000000000000000000000000000000000000000000000000008352820152fd5b6024838989519163ec442f0560e01b8352820152fd5b8680fd5b508290346104fb57826003193601126104fb576115a0611da6565b903373ffffffffffffffffffffffffffffffffffffffff8316036115c957906104bd913561235c565b60849060208551917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152fd5b5050346104fb57816003193601126104fb576020905160068152f35b50346102865781600319360112610286573590611683611da6565b908284528360205261169a6001828620015461215d565b8284528360205273ffffffffffffffffffffffffffffffffffffffff81852092169182855260205260ff8185205416156116d2578380f35b82845283602052808420828552602052832060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8480a43880808380f35b508290346104fb57826003193601126104fb57611755611d7e565b9261175e611e2f565b916117676125b1565b73ffffffffffffffffffffffffffffffffffffffff9182861691821561188c5761179033612bcc565b9084821615611876578697866000146118125792859392600560208097946117f3857fb4f3d65fffdf9e90f369eef21114568cc4ebe6bc1853767f497f0c6efbfd0e169b989d3398815285855281812089825285522094610dca610dc58761279e565b9081519085015501519101555b51951515865216941692a36001805580f35b9650509260209281927fb4f3d65fffdf9e90f369eef21114568cc4ebe6bc1853767f497f0c6efbfd0e1695339892898b5260058752828b20908b528652600386611865848d2093610dca610dc58661279e565b805160028501550151910155611800565b6024908784519163ec442f0560e01b8352820152fd5b85602492519163ec442f0560e01b8352820152fd5b503461028657602060031936011261028657816020936001923581528085522001549051908152f35b508290346104fb5760606003193601126104fb576118e6611d7e565b6118ee611da6565b906118f76125b1565b60ff60025416156119885773ffffffffffffffffffffffffffffffffffffffff9283821693841561195957831615611943575061104b61100b610dc56102699697610ff3604435613cac565b6024908587519163ec442f0560e01b8352820152fd5b602482878951917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b8285517fa25be20b000000000000000000000000000000000000000000000000000000008152fd5b5090346102865780600319360112610286576119ca611d7e565b91602435916119d76125b1565b73ffffffffffffffffffffffffffffffffffffffff84168015611a9c5760ff6002541615611a755783611a1a575b8561026986611a1387613cac565b9033613592565b3386526005602052818620908652602052611a44611038611a3f610dc584892061279e565b613e8a565b15611a4f5780611a05565b517f288ade40000000000000000000000000000000000000000000000000000000008152fd5b50517fa25be20b000000000000000000000000000000000000000000000000000000008152fd5b602483878451917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b509134610be45780600319360112610be4578151918160085492600184811c91818616958615611b8e575b6020968785108114610bae578899509688969785829a529182600014610b69575050600114611b3257505050610b099291610afa91038561231b565b9190869350600883527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b828410611b765750505082010181610afa610b09610ae7565b8054848a018601528895508794909301928101611b5d565b92607f1692611af6565b508290346104fb57826003193601126104fb57611bb3611d7e565b60243591611bbf6125b1565b73ffffffffffffffffffffffffffffffffffffffff821615611bec57509081610cc78261026994336131e0565b602490848651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b508234610be4576020600319360112610be45773ffffffffffffffffffffffffffffffffffffffff9182611c4d611d7e565b16908115611c6c57602085858186868152600385522054169051908152f35b6024908386519163ec442f0560e01b8352820152fd5b50346102865760206003193601126102865735907fffffffff00000000000000000000000000000000000000000000000000000000821680920361028657602092507f479eaff4000000000000000000000000000000000000000000000000000000008214918215611cf8575b50519015158152f35b9091507f7965db0b000000000000000000000000000000000000000000000000000000008114908115611d2e575b509038611cef565b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501438611d26565b8382346104fb5760206003193601126104fb5761026990611d776125b1565b3533612f85565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203611da157565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff82168203611da157565b60005b838110611ddc5750506000910152565b8181015183820152602001611dcc565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093611e2881518092818752878088019101611dc9565b0116010190565b602435908115158203611da157565b9181601f84011215611da15782359167ffffffffffffffff8311611da15760208381860195010111611da157565b90600319604081840112611da15760043573ffffffffffffffffffffffffffffffffffffffff81168103611da157926024359167ffffffffffffffff8311611da15782606092030112611da15760040190565b3360009081527f0781d7cac9c378efa22a7481e4d4d29704a680ddf504b3bc50b517700ee11e6c602090815260408083205490927f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a69160ff1615611f235750505050565b611f2c3361243c565b91845190611f39826122ff565b6042825284820192606036853782511561213057603084538251906001918210156121305790607860218501536041915b818311612065575050506120095760486106b4938693611fd393611fc498519889937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a86015261063c815180928c603789019101611dc9565b0103602881018752018561231b565b519283927f08c379a000000000000000000000000000000000000000000000000000000000845260048401526024830190611dec565b6064848651907f08c379a000000000000000000000000000000000000000000000000000000000825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015612103577f3031323334353637383961626364656600000000000000000000000000000000901a6120a285876123fc565b5360041c9280156120d6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019190611f6a565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526032600452fd5b600090808252602090828252604092838120338252835260ff8482205416156121865750505050565b61218f3361243c565b9184519061219c826122ff565b6042825284820192606036853782511561213057603084538251906001918210156121305790607860218501536041915b818311612227575050506120095760486106b4938693611fd393611fc498519889937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a86015261063c815180928c603789019101611dc9565b909192600f81166010811015612103577f3031323334353637383961626364656600000000000000000000000000000000901a61226485876123fc565b5360041c9280156120d6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191906121cd565b6060810190811067ffffffffffffffff8211176122b457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176122b457604052565b6080810190811067ffffffffffffffff8211176122b457604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176122b457604052565b906000918083528260205273ffffffffffffffffffffffffffffffffffffffff6040842092169182845260205260ff60408420541661239a57505050565b8083528260205260408320828452602052604083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b90815181101561240d570160200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6040519061244982612298565b602a825260208201604036823782511561240d5760309053815160019081101561240d57607860218401536029905b8082116124e65750506124885790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015612583577f3031323334353637383961626364656600000000000000000000000000000000901a61252284866123fc565b5360041c918015612555577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190612478565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6002600154146125c2576002600155565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b91908281039260608412611da15760405161263a816122e3565b6040819512611da15760405191612650836122e3565b8035835260209283820135848201528252604081013567ffffffffffffffff91828211611da1570184601f82011215611da15780359182116122b457604051946126c1857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116018761231b565b828652848383010111611da157816000928580930183880137850101520152565b90816020910312611da157518015158103611da15790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b1561274057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f43616c6c6261636b206661696c656400000000000000000000000000000000006044820152fd5b906040516127ab816122e3565b602060018294805484520154910152565b73ffffffffffffffffffffffffffffffffffffffff1690811561282a5715612805576000526005602052604060002033600052602052612802610dc5604060002061279e565b90565b336000526005602052604060002090600052602052612802610dc5604060002061279e565b602460405163ec442f0560e01b815260006004820152fd5b1561284957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b929173ffffffffffffffffffffffffffffffffffffffff908185168015612b9b5782841690811561282a57818114612b6a578296600095828752602096600488526040966128f9610dc589842061279e565b9a86835260048a5261290f610dc58a852061279e565b978860448b519e8f907f56c72d280000000000000000000000000000000000000000000000000000000082527f060606000000000000000000000000000000000000000000000000000000000060048301526024820152015260648d015260608c6084818660645af1978815612b605783908490859a612b20575b6129b69b9c9d9e5061299b8b6138b5565b9283612af7575b505050612a1c575b505050505050506138b5565b156129bf575050565b6064925051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601460248201527f45524332303a20757064617465206661696c65640000000000000000000000006044820152fd5b612a587f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a395848d8d51612a4e816122e3565b8281520152612bcc565b80831615612ada57612a6d612a7c9183613b5a565b945b848d8d51612a4e816122e3565b91821615612abf57612a8e9250613b5a565b905b87518151815260209182015182820152825160408201529101516060820152608090a3388080808080806129aa565b5050875190612acd826122e3565b8082528982015290612a90565b50612a7c8a51612ae9816122e3565b848152848d82015294612a6f565b612b1892945090612b0b612b11928a612c1d565b84613db8565b9286612c1d565b3880806129a2565b9950505060608c3d8211612b58575b81612b3c6060938361231b565b81010312610286578b518a8d01519c8a01519b9c8d9c9961298a565b3d9150612b2f565b89513d85823e3d90fd5b602490604051907fa26ce2e10000000000000000000000000000000000000000000000000000000082526004820152fd5b60246040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152fd5b73ffffffffffffffffffffffffffffffffffffffff8082168015612c1557600052600360205260406000205416908115612c04575090565b8091503b612c0f5790565b50600090565b505050600090565b90600390612c2a83612bcc565b73ffffffffffffffffffffffffffffffffffffffff9190828116612c9f5750612c5290613a95565b921660009281845260046020526001602060408620928051845501519101556040805193612c7f856122e3565b808552602085019281845281526004602052209251600284015551910155565b916040805195612cae876122e3565b815192612cba846122e3565b600091828552612cf860209786858a809901528b52868b01978651612cde816122e3565b86815286898201528952612cf181613a95565b8c52613b5a565b865216815260048352209451805186550151600185015551805160028501550151910155565b91909173ffffffffffffffffffffffffffffffffffffffff90818116801561282a57612d7190600081815260209460048652604094612d6a89612d65610dc589872061279e565b613d1c565b9590613949565b98612d9f612d9882612d658a51612d87816122e3565b60065481526007548d820152613734565b9190613949565b8851907f145fca2c0000000000000000000000000000000000000000000000000000000082527f060602000000000000000000000000000000000000000000000000000000000060048301528260248301527f000000000000000000000000000000000000000000000000000000000000000060448301528a826064818a825af1918215612f7b578792612f4a575b508a9b9c612e456129b69b9c9493612e4b9361380b565b9061380b565b97612e55896138b5565b9283612f26575b505050612e6e575b50505050506138b5565b7f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a392848a8a51612e9d816122e3565b8281520152612ec6895193612eb1856122e3565b868552868c860152868c8c51612a4e816122e3565b90811615612f0b57612ed791613b5a565b905b8751815181526020918201518282015282516040820152910151606082015280608081015b0390a33880808080612e64565b50508651612f18816122e3565b838152838982015290612ed9565b612f32612f4293613a95565b8051600655015160075584612c1d565b38808b612e5c565b9091508a81813d8311612f74575b612f62818361231b565b810103126115815751906129b6612e2e565b503d612f58565b8a513d89823e3d90fd5b919073ffffffffffffffffffffffffffffffffffffffff90818416908115612b9b57809160009080825260209460048652604094612fc7610dc587862061279e565b98612fd0613c3a565b9587519a7f56c72d28000000000000000000000000000000000000000000000000000000008c527f060606000000000000000000000000000000000000000000000000000000000060048d015260248c01528660448c015260648b015260608a6084818860645af19586156131d6578590868798613195575b6129b6999a9b9c5061305a896138b5565b9283613141575b5050506130725750505050506138b5565b61308390858a8a51612a4e816122e3565b91821615613106577f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a3916130b691613b5a565b838888516130c3816122e3565b82815201528651906130d4826122e3565b848252888201859052875181518152602091820151828201528251604082015291015160608201528060808101612efe565b50507f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a38551613134816122e3565b83815283888201526130b6565b6131569395506131519085612c1d565b613db8565b918961318361317e856131518d5161316d816122e3565b600654815260075486820152613734565b613a95565b80516006550151600755388080613061565b5096505060608a3d82116131ce575b816131b16060938361231b565b81010312611095578951888b01519a880151999a8b9a9790613049565b3d91506131a4565b87513d87823e3d90fd5b9190613254916131ee613c3a565b6040517f7c12a1eb0000000000000000000000000000000000000000000000000000000081527f06060000000000000000000000000000000000000000000000000000000000006004820152602481019290925260448201529160209083906064820190565b03928181600095818760645af180156133205784906132f1575b61327891506138b5565b6132eb57604061103893611a3f93610dc5936132ba9773ffffffffffffffffffffffffffffffffffffffff80911684526005825284842092168352522061279e565b156132c157565b60046040517f288ade40000000000000000000000000000000000000000000000000000000008152fd5b50505050565b508181813d8311613319575b613307818361231b565b8101031261083357613278905161326e565b503d6132fd565b6040513d86823e3d90fd5b919073ffffffffffffffffffffffffffffffffffffffff80841690811561342b5782169081156133fa576110389361338c92613385926000526005602052604060002090600052602052612d65610dc5604060002061279e565b9390613949565b1561339c5761339a92613592565b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332303a20616c6c6f77616e6365206f766572666c6f77000000000000006044820152fd5b60246040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b9092919273ffffffffffffffffffffffffffffffffffffffff9182811692831561342b5782169283156133fa57613519936000918252600560205260409687918284209084526020526134b3610dc583852061279e565b825196879283927fce8c713d000000000000000000000000000000000000000000000000000000008452600484016040909392919360608101947f0606000000000000000000000000000000000000000000000000000000000000825260208201520152565b03818460645af19384156135865761339a95968295613549575b505061103d61103861354492613949565b613592565b6110389550613544925061103d918161357692903d1061357f575b61356e818361231b565b810190613a7f565b95909250613533565b503d613564565b508551903d90823e3d90fd5b9173ffffffffffffffffffffffffffffffffffffffff80841692831561342b578181169485156133fa57836136df9160056135f66135f07f836b0bdb95065391d1c4c568d3e48559e54d5969d06d7ea87f85869e1ef69dc898613a95565b92612bcc565b9560009361363060409586519961360c8b6122e3565b818b5260209a8b01829052808516156136ff5761362a915083613b5a565b97612bcc565b90600092838a8851613641816122e3565b82815201528216156136e4576136579250613b5a565b955b83519261366584612298565b835280830186815281858501918983528b600052848252866000208d6000528252818760002096518051885501516001870155518051600287015501516003850155518051600485015501519101555192839283909291602060609181608085019680518652015182850152805160408501520151910152565b0390a3565b50508351906136f2826122e3565b8082528782015295613659565b5086519061370c826122e3565b8082528a82015297612bcc565b929091936132eb5761339a9361372e91613db8565b91613592565b805115806137ff575b6137f65760208151910151604051917f2d5831350000000000000000000000000000000000000000000000000000000083527f06000000000000000000000000000000000000000000000000000000000000006004840152602483015260448201526020816064816000825af19081156137ea576000916137bc575090565b906020823d82116137e2575b816137d56020938361231b565b81010312610be457505190565b3d91506137c8565b6040513d6000823e3d90fd5b50612802613c3a565b5060208101511561373d565b6040517ffe9c73d1000000000000000000000000000000000000000000000000000000008152600060048201526024810191909152604481019190915260208180606481015b0381600060645af19081156137ea576000916137bc575090565b6040517ffb7da35f00000000000000000000000000000000000000000000000000000000815260006004820152602481019190915260448101919091526020818060648101613851565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af191821561393d578092613909575b5050151590565b9091506020823d8211613935575b816139246020938361231b565b81010312610be45750513880613902565b3d9150613917565b604051903d90823e3d90fd5b6040517f1d79e49a00000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af191821561393d57809261399a57505090565b9091506020823d82116137e257816137d56020938361231b565b80519081519160209182808093015191015193613a3660405195869384937f0135e4660000000000000000000000000000000000000000000000000000000085527f0600000000000000000000000000000000000000000000000000000000000000600486015260248501526044840152608060648401526084830190611dec565b0381600060645af19081156137ea57600091613a53575b50905090565b82813d8311613a78575b613a67818361231b565b81010312610be45750518038613a4d565b503d613a5d565b9190826040910312611da1576020825192015190565b60209060408051613aa5816122e3565b600093818580935201528051917f1f4491de0000000000000000000000000000000000000000000000000000000083527f06000000000000000000000000000000000000000000000000000000000000006004840152602483015280826044818660645af1918215613b50578392613b2e575b505191613b24836122e3565b8252602082015290565b90809350613b4892503d841161357f5761356e818361231b565b909138613b18565b81513d85823e3d90fd5b60408051602093613c1a938392613b70816122e3565b600096818880935201527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083519260601b16602083015260148252613bb4826122e3565b825194859283927fe5c833130000000000000000000000000000000000000000000000000000000084527f060000000000000000000000000000000000000000000000000000000000000060048501526024840152606060448401526064830190611dec565b03818660645af1918215613b50578392613b2e57505191613b24836122e3565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f060000000000000000000000000000000000000000000000000000000000000060048201526000908160248201526020816044818560645af191821561393d57809261399a57505090565b604051907fd9b60b600000000000000000000000000000000000000000000000000000000082527f060000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af19081156137ea576000916137bc575090565b604080517ff581fa200000000000000000000000000000000000000000000000000000000081527f06060000000000000000000000000000000000000000000000000000000000006004820152602481019290925260448201929092529190826064816000825af19182156137ea576000908193613d9957509190565b9050613db491925060403d811161357f5761356e818361231b565b9091565b6040517f371d1bf20000000000000000000000000000000000000000000000000000000081527f06060000000000000000000000000000000000000000000000000000000000006004820152602481019190915260448101919091526020818060648101613851565b6040517fdd1486930000000000000000000000000000000000000000000000000000000081527f06060000000000000000000000000000000000000000000000000000000000006004820152602481019190915260448101919091526020818060648101613851565b604051907f7c12a1eb0000000000000000000000000000000000000000000000000000000082527f06060200000000000000000000000000000000000000000000000000000000006004830152602482015260009081604482015260208160648185825af191821561393d57809261399a57505090565b604051907f7c12a1eb0000000000000000000000000000000000000000000000000000000082527f0606020000000000000000000000000000000000000000000000000000000000600483015260248201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60448201526020816064816000825af19081156137ea576000916137bc57509056fea164736f6c6343000813000a";
1411
+
1412
+ type PrivateERC20CappedMockConstructorParams =
1413
+ | [signer?: Signer]
1414
+ | ConstructorParameters<typeof ContractFactory>;
1415
+
1416
+ const isSuperArgs = (
1417
+ xs: PrivateERC20CappedMockConstructorParams
1418
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1419
+
1420
+ export class PrivateERC20CappedMock__factory extends ContractFactory {
1421
+ constructor(...args: PrivateERC20CappedMockConstructorParams) {
1422
+ if (isSuperArgs(args)) {
1423
+ super(...args);
1424
+ } else {
1425
+ super(_abi, _bytecode, args[0]);
1426
+ }
1427
+ }
1428
+
1429
+ override getDeployTransaction(
1430
+ cap_: BigNumberish,
1431
+ overrides?: NonPayableOverrides & { from?: string }
1432
+ ): Promise<ContractDeployTransaction> {
1433
+ return super.getDeployTransaction(cap_, overrides || {});
1434
+ }
1435
+ override deploy(
1436
+ cap_: BigNumberish,
1437
+ overrides?: NonPayableOverrides & { from?: string }
1438
+ ) {
1439
+ return super.deploy(cap_, overrides || {}) as Promise<
1440
+ PrivateERC20CappedMock & {
1441
+ deploymentTransaction(): ContractTransactionResponse;
1442
+ }
1443
+ >;
1444
+ }
1445
+ override connect(
1446
+ runner: ContractRunner | null
1447
+ ): PrivateERC20CappedMock__factory {
1448
+ return super.connect(runner) as PrivateERC20CappedMock__factory;
1449
+ }
1450
+
1451
+ static readonly bytecode = _bytecode;
1452
+ static readonly abi = _abi;
1453
+ static createInterface(): PrivateERC20CappedMockInterface {
1454
+ return new Interface(_abi) as PrivateERC20CappedMockInterface;
1455
+ }
1456
+ static connect(
1457
+ address: string,
1458
+ runner?: ContractRunner | null
1459
+ ): PrivateERC20CappedMock {
1460
+ return new Contract(
1461
+ address,
1462
+ _abi,
1463
+ runner
1464
+ ) as unknown as PrivateERC20CappedMock;
1465
+ }
1466
+ }