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