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