@coti-io/coti-contracts 1.2.0 → 1.3.1

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 (481) hide show
  1. package/.github/workflows/npm-publish.yml +1 -1
  2. package/contracts/access/DataPrivacyFramework/DataPrivacyFramework.sol +1 -1
  3. package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +1 -1
  4. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.sol +2 -4
  5. package/contracts/disperse/disperseToken/MintDisperser.sol +1 -3
  6. package/contracts/disperse/disperseToken/TokenDisperser.sol +1 -1
  7. package/contracts/messaging/PrivateMessaging.sol +456 -0
  8. package/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock.sol +1 -1
  9. package/contracts/mocks/messaging/PrivateMessagingHarness.sol +54 -0
  10. package/contracts/mocks/oracle/CotiPriceConsumerMock.sol +31 -0
  11. package/contracts/mocks/token/ERC20DecimalsMock.sol +21 -0
  12. package/contracts/mocks/token/ERC20Mock.sol +1 -1
  13. package/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.sol +1 -1
  14. package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +9 -4
  15. package/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.sol +1 -1
  16. package/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.sol +1 -1
  17. package/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.sol +1 -1
  18. package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +1 -1
  19. package/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol +1 -1
  20. package/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.sol +1 -1
  21. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.sol +1 -1
  22. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.sol +1 -1
  23. package/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock.sol +1 -1
  24. package/contracts/mocks/utils/mpc/Arithmetic128TestsContract.sol +1 -1
  25. package/contracts/mocks/utils/mpc/Arithmetic256TestsContract.sol +1 -1
  26. package/contracts/mocks/utils/mpc/ArithmeticAddTestsContract.sol +196 -0
  27. package/contracts/mocks/utils/mpc/ArithmeticMulTestsContract.sol +194 -0
  28. package/contracts/mocks/utils/mpc/ArithmeticSigned128TestsContract.sol +63 -0
  29. package/contracts/mocks/utils/mpc/ArithmeticSigned256TestsContract.sol +107 -0
  30. package/contracts/mocks/utils/mpc/ArithmeticSignedNarrowTestsContract.sol +123 -0
  31. package/contracts/mocks/utils/mpc/ArithmeticSubTestsContract.sol +196 -0
  32. package/contracts/mocks/utils/mpc/Bitwise128TestsContract.sol +1 -1
  33. package/contracts/mocks/utils/mpc/Bitwise256TestsContract.sol +1 -1
  34. package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +1 -1
  35. package/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.sol +1 -1
  36. package/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.sol +1 -1
  37. package/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol +1 -1
  38. package/contracts/mocks/utils/mpc/Comparison128TestsContract.sol +1 -1
  39. package/contracts/mocks/utils/mpc/Comparison1TestsContract.sol +1 -1
  40. package/contracts/mocks/utils/mpc/Comparison256TestsContract.sol +1 -1
  41. package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +1 -1
  42. package/contracts/mocks/utils/mpc/MinMax128TestsContract.sol +1 -1
  43. package/contracts/mocks/utils/mpc/MinMax256TestsContract.sol +1 -1
  44. package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +1 -1
  45. package/contracts/mocks/utils/mpc/MinimalImplementation.sol +1 -1
  46. package/contracts/mocks/utils/mpc/MinimalProxy.sol +1 -1
  47. package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +1 -1
  48. package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +1 -1
  49. package/contracts/mocks/utils/mpc/MpcOperations128TestContract.sol +1 -1
  50. package/contracts/mocks/utils/mpc/MpcOperationsTestContract.sol +4 -4
  51. package/contracts/mocks/utils/mpc/Mux128TestsContract.sol +1 -1
  52. package/contracts/mocks/utils/mpc/Mux256TestsContract.sol +1 -1
  53. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +1 -1
  54. package/contracts/mocks/utils/mpc/OnBoard128TestsContract.sol +1 -1
  55. package/contracts/mocks/utils/mpc/OnBoard256TestsContract.sol +1 -1
  56. package/contracts/mocks/utils/mpc/PrivacyImplementationV1.sol +1 -1
  57. package/contracts/mocks/utils/mpc/PrivacyImplementationV2.sol +1 -1
  58. package/contracts/mocks/utils/mpc/PrivacyProxy.sol +1 -1
  59. package/contracts/mocks/utils/mpc/Random128TestsContract.sol +1 -1
  60. package/contracts/mocks/utils/mpc/Random256TestsContract.sol +1 -1
  61. package/contracts/mocks/utils/mpc/Shift128TestsContract.sol +1 -1
  62. package/contracts/mocks/utils/mpc/Shift256TestsContract.sol +1 -1
  63. package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +1 -1
  64. package/contracts/mocks/utils/mpc/StringTestsContract.sol +1 -1
  65. package/contracts/mocks/utils/mpc/Transfer128TestsContract.sol +1 -1
  66. package/contracts/mocks/utils/mpc/Transfer256TestsContract.sol +1 -1
  67. package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +1 -1
  68. package/contracts/mocks/utils/mpc/TransferTestsContract.sol +1 -1
  69. package/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.sol +1 -1
  70. package/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.sol +1 -1
  71. package/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.sol +1 -1
  72. package/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.sol +1 -1
  73. package/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol +1 -1
  74. package/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.sol +1 -1
  75. package/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.sol +1 -1
  76. package/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol +1 -1
  77. package/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.sol +1 -1
  78. package/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.sol +2 -2
  79. package/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.sol +1 -1
  80. package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +1 -1
  81. package/contracts/node/CotiNodeRewards.sol +3 -3
  82. package/contracts/node/SoulboundNodeNFT.sol +23 -24
  83. package/contracts/onboard/AccountOnboard.sol +1 -1
  84. package/contracts/oracle/CotiPriceConsumer.sol +103 -0
  85. package/contracts/oracle/ICotiPriceConsumer.sol +15 -0
  86. package/contracts/oracle/IStdReference.sol +26 -0
  87. package/contracts/pod/IInbox.sol +231 -0
  88. package/contracts/pod/IInboxMiner.sol +53 -0
  89. package/contracts/pod/InboxUser.sol +29 -0
  90. package/contracts/pod/InboxUserCotiTestnet.sol +13 -0
  91. package/contracts/pod/PodNetworkConstants.sol +30 -0
  92. package/contracts/pod/examples/MpcAdder.sol +57 -0
  93. package/contracts/pod/examples/MpcAdderPausable.sol +25 -0
  94. package/contracts/pod/examples/MpcAdderPausable.sol.bak +25 -0
  95. package/contracts/pod/examples/it128/PodAdder128.sol +48 -0
  96. package/contracts/pod/examples/it256/PodAdder256.sol +48 -0
  97. package/contracts/pod/fee/IInboxFeeManager.sol +40 -0
  98. package/contracts/pod/manifest.json +52 -0
  99. package/contracts/pod/mpc/PodLib.sol +10 -0
  100. package/contracts/pod/mpc/PodLib128.sol +361 -0
  101. package/contracts/pod/mpc/PodLib256.sol +361 -0
  102. package/contracts/pod/mpc/PodLib64.sol +385 -0
  103. package/contracts/pod/mpc/PodLibBase.sol +72 -0
  104. package/contracts/pod/mpc/PodUser.sol +58 -0
  105. package/contracts/pod/mpc/PodUserFuji.sol +14 -0
  106. package/contracts/pod/mpc/PodUserSepolia.sol +13 -0
  107. package/contracts/pod/mpc/coti-side/IPodExecutorOps.sol +99 -0
  108. package/contracts/pod/mpccodec/MpcAbiCodec.sol +482 -0
  109. package/contracts/pod/privacy/IPodPriceOracle.sol +20 -0
  110. package/contracts/pod/privacy/IPrivacyPortal.sol +248 -0
  111. package/contracts/pod/privacy/IPrivacyPortalFactory.sol +88 -0
  112. package/contracts/pod/privacy/PortalFeeOracle.sol +51 -0
  113. package/contracts/pod/privacy/PrivacyPortal.sol +871 -0
  114. package/contracts/pod/privacy/PrivacyPortalFactory.sol +492 -0
  115. package/contracts/pod/privacy/PrivacyPortalFeeLib.sol +98 -0
  116. package/contracts/pod/privacy/mocks/CloneHelper.sol +14 -0
  117. package/contracts/pod/privacy/mocks/MockERC20.sol +26 -0
  118. package/contracts/pod/privacy/mocks/MockPodERC20ForPortal.sol +160 -0
  119. package/contracts/pod/privacy/mocks/MockPrivacyPortalFactory.sol +125 -0
  120. package/contracts/pod/privacy/mocks/MockWrappedNative.sol +24 -0
  121. package/contracts/pod/token/erc7984/Erc7984Constants.sol +9 -0
  122. package/contracts/pod/token/erc7984/Erc7984Pointers.sol +29 -0
  123. package/contracts/pod/token/erc7984/IERC7984.sol +69 -0
  124. package/contracts/pod/token/erc7984/IERC7984PortalWrapper.sol +31 -0
  125. package/contracts/pod/token/erc7984/PodErc7984Mixin.sol +125 -0
  126. package/contracts/pod/token/erc7984/README.md +60 -0
  127. package/contracts/pod/token/perc20/IPodERC20.sol +298 -0
  128. package/contracts/pod/token/perc20/PodERC20.sol +1021 -0
  129. package/contracts/pod/token/perc20/PodErc20Mintable.sol +88 -0
  130. package/contracts/pod/token/perc20/PodErc20MintableInitializable.sol +42 -0
  131. package/contracts/pod/token/perc20/cotiside/IPodErc20CotiSide.sol +88 -0
  132. package/contracts/pod/token/perc20/cotiside/PodErc20CotiMother.sol +529 -0
  133. package/contracts/pod/utils/IWrappedNative.sol +11 -0
  134. package/contracts/privacyBridge/PrivacyBridge.sol +376 -94
  135. package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +210 -162
  136. package/contracts/privacyBridge/PrivacyBridgeERC20.sol +242 -160
  137. package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +8 -2
  138. package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +8 -2
  139. package/contracts/privacyBridge/PrivacyBridgeWADA.sol +8 -2
  140. package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +8 -2
  141. package/contracts/privacyBridge/PrivacyBridgeWETH.sol +8 -2
  142. package/contracts/privacyBridge/PrivacyBridgegCoti.sol +8 -2
  143. package/contracts/token/PrivateERC20/IPrivateERC20.sol +1 -1
  144. package/contracts/token/PrivateERC20/ITokenReceiver.sol +1 -1
  145. package/contracts/token/PrivateERC20/ITokenReceiverEncrypted.sol +1 -1
  146. package/contracts/token/PrivateERC20/PrivateERC20.sol +5 -5
  147. package/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.sol +1 -1
  148. package/contracts/token/PrivateERC20/tokens/PrivateCOTI.sol +1 -1
  149. package/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.sol +1 -1
  150. package/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.sol +1 -1
  151. package/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.sol +1 -1
  152. package/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.sol +1 -1
  153. package/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.sol +1 -1
  154. package/contracts/token/PrivateERC721/IERC721Errors.sol +1 -1
  155. package/contracts/token/PrivateERC721/PrivateERC721.sol +1 -1
  156. package/contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage.sol +1 -1
  157. package/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.sol +1 -1
  158. package/contracts/token/points/CotiTokenPoints004.sol +43 -0
  159. package/contracts/utils/mpc/MpcCore.sol +610 -1
  160. package/contracts/utils/mpc/MpcInterface.sol +1 -1
  161. package/hardhat.config.ts +9 -15
  162. package/package.json +4 -4
  163. package/scripts/add-bridge-operators.cjs +87 -0
  164. package/scripts/deploy-coti-price-consumer-mainnet.cjs +49 -0
  165. package/scripts/deployCotiNodeRewards.ts +51 -0
  166. package/scripts/deployCotiTokenPoints004.ts +61 -0
  167. package/scripts/deployFixedRatioCoinDisperserUnlimitedWindow.ts +68 -0
  168. package/scripts/redeploy-private-and-bridges.cjs +201 -0
  169. package/scripts/set-bridge-limits-mainnet.cjs +177 -0
  170. package/scripts/verify-mainnet-private-bridges.cjs +289 -0
  171. package/scripts/verifyCotiTokenPoints004.ts +123 -0
  172. package/scripts/verifyFixedRatioCoinDisperserUnlimitedWindow.ts +112 -0
  173. package/sonar-project.properties +11 -0
  174. package/test/messaging/PrivateMessaging.test.ts +158 -0
  175. package/test/pod/privacy/PrivacyPortal.access.test.ts +756 -0
  176. package/test/pod/privacy/PrivacyPortal.recovery.test.ts +263 -0
  177. package/test/privacyBridge/UnifiedPrivacyBridges.test.cjs +1665 -0
  178. package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +162 -239
  179. package/test/utils/mpc/CheckedSignedArithmetic256.test.ts +163 -0
  180. package/test/utils/mpc/NegativeCases.test.ts +3 -3
  181. package/test/utils/mpc/Precompile.test.ts +6 -6
  182. package/typechain-types/@openzeppelin/contracts/access/AccessControl.ts +324 -0
  183. package/typechain-types/@openzeppelin/contracts/access/AccessControlEnumerable.ts +361 -0
  184. package/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts +292 -0
  185. package/typechain-types/@openzeppelin/contracts/access/IAccessControlEnumerable.ts +329 -0
  186. package/typechain-types/@openzeppelin/contracts/access/extensions/AccessControlEnumerable.ts +375 -0
  187. package/typechain-types/@openzeppelin/contracts/access/extensions/IAccessControlEnumerable.ts +329 -0
  188. package/typechain-types/@openzeppelin/contracts/access/extensions/index.ts +5 -0
  189. package/typechain-types/@openzeppelin/contracts/access/index.ts +6 -0
  190. package/typechain-types/@openzeppelin/contracts/index.ts +2 -0
  191. package/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts +412 -0
  192. package/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts +151 -0
  193. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +69 -0
  194. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +69 -0
  195. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +69 -0
  196. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  197. package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +4 -0
  198. package/typechain-types/@openzeppelin/contracts/security/Pausable.ts +150 -0
  199. package/typechain-types/@openzeppelin/contracts/security/index.ts +4 -0
  200. package/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts +286 -0
  201. package/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +6 -6
  202. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts +313 -0
  203. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.ts +356 -0
  204. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.ts +423 -0
  205. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +286 -0
  206. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  207. package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +3 -0
  208. package/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts +69 -0
  209. package/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts +4 -0
  210. package/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.ts +420 -0
  211. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.ts +420 -0
  212. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  213. package/typechain-types/@openzeppelin/contracts/token/ERC721/index.ts +3 -0
  214. package/typechain-types/@openzeppelin/contracts/utils/Nonces.ts +85 -0
  215. package/typechain-types/@openzeppelin/contracts/utils/Pausable.ts +150 -0
  216. package/typechain-types/@openzeppelin/contracts/utils/ReentrancyGuard.ts +69 -0
  217. package/typechain-types/@openzeppelin/contracts/utils/ShortStrings.ts +69 -0
  218. package/typechain-types/@openzeppelin/contracts/utils/Strings.ts +69 -0
  219. package/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts +69 -0
  220. package/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.ts +151 -0
  221. package/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
  222. package/typechain-types/@openzeppelin/contracts/utils/index.ts +9 -0
  223. package/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.ts +69 -0
  224. package/typechain-types/@openzeppelin/contracts/utils/math/index.ts +4 -0
  225. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.ts +735 -0
  226. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.ts +734 -0
  227. package/typechain-types/contracts/disperse/coinByRatio/index.ts +2 -0
  228. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable.ts +95 -0
  229. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser.ts +22 -0
  230. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
  231. package/typechain-types/contracts/index.ts +8 -0
  232. package/typechain-types/contracts/messaging/PrivateMessaging.ts +871 -0
  233. package/typechain-types/contracts/messaging/index.ts +4 -0
  234. package/typechain-types/contracts/mocks/index.ts +4 -0
  235. package/typechain-types/contracts/mocks/messaging/PrivateMessagingHarness.ts +951 -0
  236. package/typechain-types/contracts/mocks/messaging/index.ts +4 -0
  237. package/typechain-types/contracts/mocks/oracle/CotiPriceConsumerMock.ts +163 -0
  238. package/typechain-types/contracts/mocks/oracle/index.ts +4 -0
  239. package/typechain-types/contracts/mocks/token/ERC20DecimalsMock.ts +305 -0
  240. package/typechain-types/contracts/mocks/token/ERC20Mock.ts +324 -0
  241. package/typechain-types/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.ts +108 -0
  242. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.ts +1906 -0
  243. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.ts +1296 -0
  244. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.ts +1270 -0
  245. package/typechain-types/contracts/mocks/{utils/mpc/Bitwise128BitTestsContract.ts → token/PrivateERC20/PrivateERC20GtCallerMock.ts} +47 -67
  246. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +757 -25
  247. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted.ts +102 -0
  248. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock.ts +154 -0
  249. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
  250. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.ts +155 -0
  251. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.ts +107 -0
  252. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.ts +100 -0
  253. package/typechain-types/contracts/mocks/token/PrivateERC20/index.ts +10 -0
  254. package/typechain-types/contracts/mocks/token/index.ts +2 -0
  255. package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.ts +6 -6
  256. package/typechain-types/contracts/node/CotiNodeRewards.ts +566 -0
  257. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/IERC5192.ts +123 -0
  258. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT.ts +975 -0
  259. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
  260. package/typechain-types/contracts/node/index.ts +6 -0
  261. package/typechain-types/contracts/oracle/CotiPriceConsumer.ts +256 -0
  262. package/typechain-types/contracts/oracle/ICotiPriceConsumer.ts +119 -0
  263. package/typechain-types/contracts/oracle/IStdReference.ts +136 -0
  264. package/typechain-types/contracts/oracle/index.ts +6 -0
  265. package/typechain-types/contracts/privacyBridge/PrivacyBridge.ts +1642 -0
  266. package/typechain-types/contracts/privacyBridge/PrivacyBridgeCotiNative.ts +1884 -0
  267. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals.ts +84 -0
  268. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20.ts +1906 -0
  269. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
  270. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDCe.ts +1906 -0
  271. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDT.ts +1906 -0
  272. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWADA.ts +1906 -0
  273. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWBTC.ts +1906 -0
  274. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWETH.ts +1906 -0
  275. package/typechain-types/contracts/privacyBridge/PrivacyBridgegCoti.ts +1906 -0
  276. package/typechain-types/contracts/privacyBridge/index.ts +13 -0
  277. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +439 -19
  278. package/typechain-types/contracts/token/PrivateERC20/ITokenReceiver.ts +100 -0
  279. package/typechain-types/contracts/token/PrivateERC20/ITokenReceiverEncrypted.ts +99 -0
  280. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +763 -15
  281. package/typechain-types/contracts/token/PrivateERC20/index.ts +4 -0
  282. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.ts +1270 -0
  283. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTI.ts +1270 -0
  284. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.ts +1270 -0
  285. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.ts +1270 -0
  286. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.ts +1270 -0
  287. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.ts +1270 -0
  288. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.ts +1270 -0
  289. package/typechain-types/contracts/token/PrivateERC20/tokens/index.ts +10 -0
  290. package/typechain-types/contracts/token/index.ts +2 -0
  291. package/typechain-types/contracts/token/points/CotiTokenPoints004.sol/COTITokenPoints004.ts +826 -0
  292. package/typechain-types/contracts/token/points/CotiTokenPoints004.ts +826 -0
  293. package/typechain-types/contracts/token/points/index.ts +4 -0
  294. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControlEnumerable__factory.ts +276 -0
  295. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControl__factory.ts +250 -0
  296. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControlEnumerable__factory.ts +244 -0
  297. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +218 -0
  298. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +22 -0
  299. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/AccessControlEnumerable__factory.ts +316 -0
  300. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/IAccessControlEnumerable__factory.ts +265 -0
  301. package/typechain-types/factories/@openzeppelin/contracts/access/extensions/index.ts +5 -0
  302. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +5 -0
  303. package/typechain-types/factories/@openzeppelin/contracts/index.ts +1 -0
  304. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts +393 -0
  305. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.ts +71 -0
  306. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +127 -0
  307. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +111 -0
  308. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +128 -0
  309. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  310. package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +3 -0
  311. package/typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts +61 -0
  312. package/typechain-types/factories/@openzeppelin/contracts/security/index.ts +4 -0
  313. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +330 -0
  314. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +3 -3
  315. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts +364 -0
  316. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable__factory.ts +382 -0
  317. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit__factory.ts +540 -0
  318. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +247 -0
  319. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
  320. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +2 -0
  321. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts +96 -0
  322. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts +4 -0
  323. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.ts +455 -0
  324. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata__factory.ts +355 -0
  325. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  326. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/index.ts +2 -0
  327. package/typechain-types/factories/@openzeppelin/contracts/utils/Nonces__factory.ts +57 -0
  328. package/typechain-types/factories/@openzeppelin/contracts/utils/Pausable__factory.ts +71 -0
  329. package/typechain-types/factories/@openzeppelin/contracts/utils/ReentrancyGuard__factory.ts +30 -0
  330. package/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.ts +83 -0
  331. package/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts +90 -0
  332. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +91 -0
  333. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/EIP712__factory.ts +87 -0
  334. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
  335. package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +7 -0
  336. package/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +118 -0
  337. package/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts +4 -0
  338. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1__factory.ts +802 -0
  339. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow__factory.ts +749 -0
  340. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +12 -1
  341. package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +2 -0
  342. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable__factory.ts +35 -0
  343. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +41 -1
  344. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
  345. package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +12 -1
  346. package/typechain-types/factories/contracts/index.ts +4 -0
  347. package/typechain-types/factories/contracts/messaging/PrivateMessaging__factory.ts +1035 -0
  348. package/typechain-types/factories/contracts/messaging/index.ts +4 -0
  349. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  350. package/typechain-types/factories/contracts/mocks/index.ts +2 -0
  351. package/typechain-types/factories/contracts/mocks/messaging/PrivateMessagingHarness__factory.ts +1161 -0
  352. package/typechain-types/factories/contracts/mocks/messaging/index.ts +4 -0
  353. package/typechain-types/factories/contracts/mocks/oracle/CotiPriceConsumerMock__factory.ts +159 -0
  354. package/typechain-types/factories/contracts/mocks/oracle/index.ts +4 -0
  355. package/typechain-types/factories/contracts/mocks/token/ERC20DecimalsMock__factory.ts +432 -0
  356. package/typechain-types/factories/contracts/mocks/token/ERC20Mock__factory.ts +430 -0
  357. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock__factory.ts +125 -0
  358. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock__factory.ts +1885 -0
  359. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock__factory.ts +1540 -0
  360. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock__factory.ts +1492 -0
  361. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock__factory.ts +165 -0
  362. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +794 -52
  363. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted__factory.ts +54 -0
  364. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock__factory.ts +159 -0
  365. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
  366. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock__factory.ts +164 -0
  367. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock__factory.ts +130 -0
  368. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock__factory.ts +102 -0
  369. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/index.ts +9 -0
  370. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
  371. package/typechain-types/factories/contracts/mocks/token/index.ts +2 -0
  372. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +1 -1
  373. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +1 -1
  374. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  375. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +1 -1
  376. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +1 -1
  377. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  378. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +1 -1
  379. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +1 -1
  380. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
  381. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +1 -1
  382. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  383. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +1 -1
  384. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  385. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +1 -1
  386. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +1 -1
  387. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  388. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +1 -1
  389. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +1 -1
  390. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  391. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  392. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +1 -1
  393. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1 -1
  394. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +1 -1
  395. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +1 -1
  396. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  397. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +1 -1
  398. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +1 -1
  399. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +1 -1
  400. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +1 -1
  401. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +1 -1
  402. package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +1 -1
  403. package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +1 -1
  404. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +1 -1
  405. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +1 -1
  406. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  407. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  408. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +1 -1
  409. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +1 -1
  410. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  411. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  412. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +1 -1
  413. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +1 -1
  414. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  415. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  416. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  417. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  418. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  419. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  420. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +1 -1
  421. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +1 -1
  422. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +1 -1
  423. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +4 -22
  424. package/typechain-types/factories/contracts/node/CotiNodeRewards__factory.ts +576 -0
  425. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/IERC5192__factory.ts +54 -0
  426. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT__factory.ts +1072 -0
  427. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
  428. package/typechain-types/factories/contracts/node/index.ts +5 -0
  429. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +1 -1
  430. package/typechain-types/factories/contracts/oracle/CotiPriceConsumer__factory.ts +295 -0
  431. package/typechain-types/factories/contracts/oracle/ICotiPriceConsumer__factory.ts +73 -0
  432. package/typechain-types/factories/contracts/oracle/IStdReference__factory.ts +107 -0
  433. package/typechain-types/factories/contracts/oracle/index.ts +6 -0
  434. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeCotiNative__factory.ts +1753 -0
  435. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals__factory.ts +38 -0
  436. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20__factory.ts +1766 -0
  437. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
  438. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDCe__factory.ts +1870 -0
  439. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDT__factory.ts +1870 -0
  440. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWADA__factory.ts +1870 -0
  441. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWBTC__factory.ts +1870 -0
  442. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWETH__factory.ts +1870 -0
  443. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridge__factory.ts +1444 -0
  444. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgegCoti__factory.ts +1870 -0
  445. package/typechain-types/factories/contracts/privacyBridge/index.ts +12 -0
  446. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +481 -35
  447. package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiverEncrypted__factory.ts +53 -0
  448. package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiver__factory.ts +54 -0
  449. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +812 -52
  450. package/typechain-types/factories/contracts/token/PrivateERC20/index.ts +3 -0
  451. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC__factory.ts +1471 -0
  452. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken__factory.ts +1477 -0
  453. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTI__factory.ts +1468 -0
  454. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateTetherUSD__factory.ts +1471 -0
  455. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedADA__factory.ts +1471 -0
  456. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC__factory.ts +1471 -0
  457. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedEther__factory.ts +1477 -0
  458. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/index.ts +10 -0
  459. package/typechain-types/factories/contracts/token/index.ts +1 -0
  460. package/typechain-types/factories/contracts/token/points/CotiTokenPoints004.sol/COTITokenPoints004__factory.ts +992 -0
  461. package/typechain-types/factories/contracts/token/points/CotiTokenPoints004__factory.ts +992 -0
  462. package/typechain-types/factories/contracts/token/points/index.ts +4 -0
  463. package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
  464. package/typechain-types/hardhat.d.ts +1414 -118
  465. package/typechain-types/index.ts +138 -2
  466. package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +0 -408
  467. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.ts +0 -341
  468. package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +0 -347
  469. package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +0 -186
  470. package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +0 -260
  471. package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +0 -260
  472. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +0 -302
  473. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +0 -322
  474. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +0 -349
  475. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +0 -364
  476. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +0 -182
  477. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +0 -182
  478. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +0 -255
  479. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +0 -255
  480. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +0 -332
  481. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +0 -380
@@ -20,6 +20,27 @@ const _abi = [
20
20
  stateMutability: "nonpayable",
21
21
  type: "constructor",
22
22
  },
23
+ {
24
+ inputs: [],
25
+ name: "AccessControlBadConfirmation",
26
+ type: "error",
27
+ },
28
+ {
29
+ inputs: [
30
+ {
31
+ internalType: "address",
32
+ name: "account",
33
+ type: "address",
34
+ },
35
+ {
36
+ internalType: "bytes32",
37
+ name: "neededRole",
38
+ type: "bytes32",
39
+ },
40
+ ],
41
+ name: "AccessControlUnauthorizedAccount",
42
+ type: "error",
43
+ },
23
44
  {
24
45
  inputs: [
25
46
  {
@@ -31,6 +52,11 @@ const _abi = [
31
52
  name: "ERC20InvalidApprover",
32
53
  type: "error",
33
54
  },
55
+ {
56
+ inputs: [],
57
+ name: "ERC20InvalidMetadata",
58
+ type: "error",
59
+ },
34
60
  {
35
61
  inputs: [
36
62
  {
@@ -64,6 +90,87 @@ const _abi = [
64
90
  name: "ERC20InvalidSpender",
65
91
  type: "error",
66
92
  },
93
+ {
94
+ inputs: [
95
+ {
96
+ internalType: "address",
97
+ name: "account",
98
+ type: "address",
99
+ },
100
+ ],
101
+ name: "ERC20SelfTransferNotAllowed",
102
+ type: "error",
103
+ },
104
+ {
105
+ inputs: [],
106
+ name: "ERC20UnsafeApprove",
107
+ type: "error",
108
+ },
109
+ {
110
+ inputs: [],
111
+ name: "PublicAmountsDisabled",
112
+ type: "error",
113
+ },
114
+ {
115
+ inputs: [],
116
+ name: "ReentrancyGuardReentrantCall",
117
+ type: "error",
118
+ },
119
+ {
120
+ inputs: [
121
+ {
122
+ internalType: "address",
123
+ name: "to",
124
+ type: "address",
125
+ },
126
+ ],
127
+ name: "TransferAndCallRequiresContract",
128
+ type: "error",
129
+ },
130
+ {
131
+ anonymous: false,
132
+ inputs: [
133
+ {
134
+ indexed: true,
135
+ internalType: "address",
136
+ name: "account",
137
+ type: "address",
138
+ },
139
+ {
140
+ indexed: true,
141
+ internalType: "address",
142
+ name: "newAddress",
143
+ type: "address",
144
+ },
145
+ ],
146
+ name: "AccountEncryptionAddressSet",
147
+ type: "event",
148
+ },
149
+ {
150
+ anonymous: false,
151
+ inputs: [
152
+ {
153
+ indexed: true,
154
+ internalType: "address",
155
+ name: "owner",
156
+ type: "address",
157
+ },
158
+ {
159
+ indexed: true,
160
+ internalType: "address",
161
+ name: "spender",
162
+ type: "address",
163
+ },
164
+ {
165
+ indexed: false,
166
+ internalType: "bool",
167
+ name: "isSpender",
168
+ type: "bool",
169
+ },
170
+ ],
171
+ name: "AllowanceReencrypted",
172
+ type: "event",
173
+ },
67
174
  {
68
175
  anonymous: false,
69
176
  inputs: [
@@ -119,6 +226,94 @@ const _abi = [
119
226
  name: "Approval",
120
227
  type: "event",
121
228
  },
229
+ {
230
+ anonymous: false,
231
+ inputs: [
232
+ {
233
+ indexed: false,
234
+ internalType: "bool",
235
+ name: "enabled",
236
+ type: "bool",
237
+ },
238
+ ],
239
+ name: "PublicAmountsEnabledSet",
240
+ type: "event",
241
+ },
242
+ {
243
+ anonymous: false,
244
+ inputs: [
245
+ {
246
+ indexed: true,
247
+ internalType: "bytes32",
248
+ name: "role",
249
+ type: "bytes32",
250
+ },
251
+ {
252
+ indexed: true,
253
+ internalType: "bytes32",
254
+ name: "previousAdminRole",
255
+ type: "bytes32",
256
+ },
257
+ {
258
+ indexed: true,
259
+ internalType: "bytes32",
260
+ name: "newAdminRole",
261
+ type: "bytes32",
262
+ },
263
+ ],
264
+ name: "RoleAdminChanged",
265
+ type: "event",
266
+ },
267
+ {
268
+ anonymous: false,
269
+ inputs: [
270
+ {
271
+ indexed: true,
272
+ internalType: "bytes32",
273
+ name: "role",
274
+ type: "bytes32",
275
+ },
276
+ {
277
+ indexed: true,
278
+ internalType: "address",
279
+ name: "account",
280
+ type: "address",
281
+ },
282
+ {
283
+ indexed: true,
284
+ internalType: "address",
285
+ name: "sender",
286
+ type: "address",
287
+ },
288
+ ],
289
+ name: "RoleGranted",
290
+ type: "event",
291
+ },
292
+ {
293
+ anonymous: false,
294
+ inputs: [
295
+ {
296
+ indexed: true,
297
+ internalType: "bytes32",
298
+ name: "role",
299
+ type: "bytes32",
300
+ },
301
+ {
302
+ indexed: true,
303
+ internalType: "address",
304
+ name: "account",
305
+ type: "address",
306
+ },
307
+ {
308
+ indexed: true,
309
+ internalType: "address",
310
+ name: "sender",
311
+ type: "address",
312
+ },
313
+ ],
314
+ name: "RoleRevoked",
315
+ type: "event",
316
+ },
122
317
  {
123
318
  anonymous: false,
124
319
  inputs: [
@@ -174,6 +369,32 @@ const _abi = [
174
369
  name: "Transfer",
175
370
  type: "event",
176
371
  },
372
+ {
373
+ inputs: [],
374
+ name: "DEFAULT_ADMIN_ROLE",
375
+ outputs: [
376
+ {
377
+ internalType: "bytes32",
378
+ name: "",
379
+ type: "bytes32",
380
+ },
381
+ ],
382
+ stateMutability: "view",
383
+ type: "function",
384
+ },
385
+ {
386
+ inputs: [],
387
+ name: "MINTER_ROLE",
388
+ outputs: [
389
+ {
390
+ internalType: "bytes32",
391
+ name: "",
392
+ type: "bytes32",
393
+ },
394
+ ],
395
+ stateMutability: "view",
396
+ type: "function",
397
+ },
177
398
  {
178
399
  inputs: [
179
400
  {
@@ -302,19 +523,13 @@ const _abi = [
302
523
  type: "address",
303
524
  },
304
525
  {
305
- internalType: "gtUint256",
526
+ internalType: "uint256",
306
527
  name: "value",
307
528
  type: "uint256",
308
529
  },
309
530
  ],
310
531
  name: "approve",
311
- outputs: [
312
- {
313
- internalType: "bool",
314
- name: "",
315
- type: "bool",
316
- },
317
- ],
532
+ outputs: [],
318
533
  stateMutability: "nonpayable",
319
534
  type: "function",
320
535
  },
@@ -356,13 +571,25 @@ const _abi = [
356
571
  },
357
572
  ],
358
573
  name: "approve",
359
- outputs: [
574
+ outputs: [],
575
+ stateMutability: "nonpayable",
576
+ type: "function",
577
+ },
578
+ {
579
+ inputs: [
360
580
  {
361
- internalType: "bool",
362
- name: "",
363
- type: "bool",
581
+ internalType: "address",
582
+ name: "spender",
583
+ type: "address",
584
+ },
585
+ {
586
+ internalType: "gtUint256",
587
+ name: "value",
588
+ type: "uint256",
364
589
  },
365
590
  ],
591
+ name: "approveGT",
592
+ outputs: [],
366
593
  stateMutability: "nonpayable",
367
594
  type: "function",
368
595
  },
@@ -412,11 +639,6 @@ const _abi = [
412
639
  },
413
640
  {
414
641
  inputs: [
415
- {
416
- internalType: "address",
417
- name: "account",
418
- type: "address",
419
- },
420
642
  {
421
643
  internalType: "uint256",
422
644
  name: "amount",
@@ -429,16 +651,40 @@ const _abi = [
429
651
  type: "function",
430
652
  },
431
653
  {
432
- inputs: [],
433
- name: "decimals",
434
- outputs: [
654
+ inputs: [
435
655
  {
436
- internalType: "uint8",
437
- name: "",
438
- type: "uint8",
656
+ components: [
657
+ {
658
+ components: [
659
+ {
660
+ internalType: "ctUint128",
661
+ name: "ciphertextHigh",
662
+ type: "uint256",
663
+ },
664
+ {
665
+ internalType: "ctUint128",
666
+ name: "ciphertextLow",
667
+ type: "uint256",
668
+ },
669
+ ],
670
+ internalType: "struct ctUint256",
671
+ name: "ciphertext",
672
+ type: "tuple",
673
+ },
674
+ {
675
+ internalType: "bytes",
676
+ name: "signature",
677
+ type: "bytes",
678
+ },
679
+ ],
680
+ internalType: "struct itUint256",
681
+ name: "amount",
682
+ type: "tuple",
439
683
  },
440
684
  ],
441
- stateMutability: "view",
685
+ name: "burn",
686
+ outputs: [],
687
+ stateMutability: "nonpayable",
442
688
  type: "function",
443
689
  },
444
690
  {
@@ -454,13 +700,334 @@ const _abi = [
454
700
  type: "uint256",
455
701
  },
456
702
  ],
457
- name: "mint",
703
+ name: "burn",
458
704
  outputs: [],
459
705
  stateMutability: "nonpayable",
460
706
  type: "function",
461
707
  },
462
708
  {
463
- inputs: [],
709
+ inputs: [
710
+ {
711
+ internalType: "gtUint256",
712
+ name: "gtAmount",
713
+ type: "uint256",
714
+ },
715
+ ],
716
+ name: "burnGt",
717
+ outputs: [],
718
+ stateMutability: "nonpayable",
719
+ type: "function",
720
+ },
721
+ {
722
+ inputs: [],
723
+ name: "decimals",
724
+ outputs: [
725
+ {
726
+ internalType: "uint8",
727
+ name: "",
728
+ type: "uint8",
729
+ },
730
+ ],
731
+ stateMutability: "pure",
732
+ type: "function",
733
+ },
734
+ {
735
+ inputs: [
736
+ {
737
+ internalType: "address",
738
+ name: "spender",
739
+ type: "address",
740
+ },
741
+ {
742
+ internalType: "uint256",
743
+ name: "subtractedValue",
744
+ type: "uint256",
745
+ },
746
+ ],
747
+ name: "decreaseAllowance",
748
+ outputs: [],
749
+ stateMutability: "nonpayable",
750
+ type: "function",
751
+ },
752
+ {
753
+ inputs: [
754
+ {
755
+ internalType: "address",
756
+ name: "spender",
757
+ type: "address",
758
+ },
759
+ {
760
+ components: [
761
+ {
762
+ components: [
763
+ {
764
+ internalType: "ctUint128",
765
+ name: "ciphertextHigh",
766
+ type: "uint256",
767
+ },
768
+ {
769
+ internalType: "ctUint128",
770
+ name: "ciphertextLow",
771
+ type: "uint256",
772
+ },
773
+ ],
774
+ internalType: "struct ctUint256",
775
+ name: "ciphertext",
776
+ type: "tuple",
777
+ },
778
+ {
779
+ internalType: "bytes",
780
+ name: "signature",
781
+ type: "bytes",
782
+ },
783
+ ],
784
+ internalType: "struct itUint256",
785
+ name: "subtractedValue",
786
+ type: "tuple",
787
+ },
788
+ ],
789
+ name: "decreaseAllowance",
790
+ outputs: [],
791
+ stateMutability: "nonpayable",
792
+ type: "function",
793
+ },
794
+ {
795
+ inputs: [
796
+ {
797
+ internalType: "address",
798
+ name: "spender",
799
+ type: "address",
800
+ },
801
+ {
802
+ internalType: "gtUint256",
803
+ name: "subtractedValue",
804
+ type: "uint256",
805
+ },
806
+ ],
807
+ name: "decreaseAllowanceGT",
808
+ outputs: [],
809
+ stateMutability: "nonpayable",
810
+ type: "function",
811
+ },
812
+ {
813
+ inputs: [
814
+ {
815
+ internalType: "bytes32",
816
+ name: "role",
817
+ type: "bytes32",
818
+ },
819
+ ],
820
+ name: "getRoleAdmin",
821
+ outputs: [
822
+ {
823
+ internalType: "bytes32",
824
+ name: "",
825
+ type: "bytes32",
826
+ },
827
+ ],
828
+ stateMutability: "view",
829
+ type: "function",
830
+ },
831
+ {
832
+ inputs: [
833
+ {
834
+ internalType: "bytes32",
835
+ name: "role",
836
+ type: "bytes32",
837
+ },
838
+ {
839
+ internalType: "address",
840
+ name: "account",
841
+ type: "address",
842
+ },
843
+ ],
844
+ name: "grantRole",
845
+ outputs: [],
846
+ stateMutability: "nonpayable",
847
+ type: "function",
848
+ },
849
+ {
850
+ inputs: [
851
+ {
852
+ internalType: "bytes32",
853
+ name: "role",
854
+ type: "bytes32",
855
+ },
856
+ {
857
+ internalType: "address",
858
+ name: "account",
859
+ type: "address",
860
+ },
861
+ ],
862
+ name: "hasRole",
863
+ outputs: [
864
+ {
865
+ internalType: "bool",
866
+ name: "",
867
+ type: "bool",
868
+ },
869
+ ],
870
+ stateMutability: "view",
871
+ type: "function",
872
+ },
873
+ {
874
+ inputs: [
875
+ {
876
+ internalType: "address",
877
+ name: "spender",
878
+ type: "address",
879
+ },
880
+ {
881
+ internalType: "uint256",
882
+ name: "addedValue",
883
+ type: "uint256",
884
+ },
885
+ ],
886
+ name: "increaseAllowance",
887
+ outputs: [],
888
+ stateMutability: "nonpayable",
889
+ type: "function",
890
+ },
891
+ {
892
+ inputs: [
893
+ {
894
+ internalType: "address",
895
+ name: "spender",
896
+ type: "address",
897
+ },
898
+ {
899
+ components: [
900
+ {
901
+ components: [
902
+ {
903
+ internalType: "ctUint128",
904
+ name: "ciphertextHigh",
905
+ type: "uint256",
906
+ },
907
+ {
908
+ internalType: "ctUint128",
909
+ name: "ciphertextLow",
910
+ type: "uint256",
911
+ },
912
+ ],
913
+ internalType: "struct ctUint256",
914
+ name: "ciphertext",
915
+ type: "tuple",
916
+ },
917
+ {
918
+ internalType: "bytes",
919
+ name: "signature",
920
+ type: "bytes",
921
+ },
922
+ ],
923
+ internalType: "struct itUint256",
924
+ name: "addedValue",
925
+ type: "tuple",
926
+ },
927
+ ],
928
+ name: "increaseAllowance",
929
+ outputs: [],
930
+ stateMutability: "nonpayable",
931
+ type: "function",
932
+ },
933
+ {
934
+ inputs: [
935
+ {
936
+ internalType: "address",
937
+ name: "spender",
938
+ type: "address",
939
+ },
940
+ {
941
+ internalType: "gtUint256",
942
+ name: "addedValue",
943
+ type: "uint256",
944
+ },
945
+ ],
946
+ name: "increaseAllowanceGT",
947
+ outputs: [],
948
+ stateMutability: "nonpayable",
949
+ type: "function",
950
+ },
951
+ {
952
+ inputs: [
953
+ {
954
+ internalType: "address",
955
+ name: "account",
956
+ type: "address",
957
+ },
958
+ {
959
+ internalType: "uint256",
960
+ name: "amount",
961
+ type: "uint256",
962
+ },
963
+ ],
964
+ name: "mint",
965
+ outputs: [],
966
+ stateMutability: "nonpayable",
967
+ type: "function",
968
+ },
969
+ {
970
+ inputs: [
971
+ {
972
+ internalType: "address",
973
+ name: "to",
974
+ type: "address",
975
+ },
976
+ {
977
+ components: [
978
+ {
979
+ components: [
980
+ {
981
+ internalType: "ctUint128",
982
+ name: "ciphertextHigh",
983
+ type: "uint256",
984
+ },
985
+ {
986
+ internalType: "ctUint128",
987
+ name: "ciphertextLow",
988
+ type: "uint256",
989
+ },
990
+ ],
991
+ internalType: "struct ctUint256",
992
+ name: "ciphertext",
993
+ type: "tuple",
994
+ },
995
+ {
996
+ internalType: "bytes",
997
+ name: "signature",
998
+ type: "bytes",
999
+ },
1000
+ ],
1001
+ internalType: "struct itUint256",
1002
+ name: "amount",
1003
+ type: "tuple",
1004
+ },
1005
+ ],
1006
+ name: "mint",
1007
+ outputs: [],
1008
+ stateMutability: "nonpayable",
1009
+ type: "function",
1010
+ },
1011
+ {
1012
+ inputs: [
1013
+ {
1014
+ internalType: "address",
1015
+ name: "to",
1016
+ type: "address",
1017
+ },
1018
+ {
1019
+ internalType: "gtUint256",
1020
+ name: "gtAmount",
1021
+ type: "uint256",
1022
+ },
1023
+ ],
1024
+ name: "mintGt",
1025
+ outputs: [],
1026
+ stateMutability: "nonpayable",
1027
+ type: "function",
1028
+ },
1029
+ {
1030
+ inputs: [],
464
1031
  name: "name",
465
1032
  outputs: [
466
1033
  {
@@ -472,6 +1039,19 @@ const _abi = [
472
1039
  stateMutability: "view",
473
1040
  type: "function",
474
1041
  },
1042
+ {
1043
+ inputs: [],
1044
+ name: "publicAmountsEnabled",
1045
+ outputs: [
1046
+ {
1047
+ internalType: "bool",
1048
+ name: "",
1049
+ type: "bool",
1050
+ },
1051
+ ],
1052
+ stateMutability: "view",
1053
+ type: "function",
1054
+ },
475
1055
  {
476
1056
  inputs: [
477
1057
  {
@@ -486,13 +1066,43 @@ const _abi = [
486
1066
  },
487
1067
  ],
488
1068
  name: "reencryptAllowance",
489
- outputs: [
1069
+ outputs: [],
1070
+ stateMutability: "nonpayable",
1071
+ type: "function",
1072
+ },
1073
+ {
1074
+ inputs: [
490
1075
  {
491
- internalType: "bool",
492
- name: "",
493
- type: "bool",
1076
+ internalType: "bytes32",
1077
+ name: "role",
1078
+ type: "bytes32",
1079
+ },
1080
+ {
1081
+ internalType: "address",
1082
+ name: "callerConfirmation",
1083
+ type: "address",
1084
+ },
1085
+ ],
1086
+ name: "renounceRole",
1087
+ outputs: [],
1088
+ stateMutability: "nonpayable",
1089
+ type: "function",
1090
+ },
1091
+ {
1092
+ inputs: [
1093
+ {
1094
+ internalType: "bytes32",
1095
+ name: "role",
1096
+ type: "bytes32",
1097
+ },
1098
+ {
1099
+ internalType: "address",
1100
+ name: "account",
1101
+ type: "address",
494
1102
  },
495
1103
  ],
1104
+ name: "revokeRole",
1105
+ outputs: [],
496
1106
  stateMutability: "nonpayable",
497
1107
  type: "function",
498
1108
  },
@@ -515,6 +1125,51 @@ const _abi = [
515
1125
  stateMutability: "nonpayable",
516
1126
  type: "function",
517
1127
  },
1128
+ {
1129
+ inputs: [
1130
+ {
1131
+ internalType: "bool",
1132
+ name: "enabled",
1133
+ type: "bool",
1134
+ },
1135
+ ],
1136
+ name: "setPublicAmountsEnabled",
1137
+ outputs: [],
1138
+ stateMutability: "nonpayable",
1139
+ type: "function",
1140
+ },
1141
+ {
1142
+ inputs: [],
1143
+ name: "supplyCap",
1144
+ outputs: [
1145
+ {
1146
+ internalType: "uint256",
1147
+ name: "",
1148
+ type: "uint256",
1149
+ },
1150
+ ],
1151
+ stateMutability: "view",
1152
+ type: "function",
1153
+ },
1154
+ {
1155
+ inputs: [
1156
+ {
1157
+ internalType: "bytes4",
1158
+ name: "interfaceId",
1159
+ type: "bytes4",
1160
+ },
1161
+ ],
1162
+ name: "supportsInterface",
1163
+ outputs: [
1164
+ {
1165
+ internalType: "bool",
1166
+ name: "",
1167
+ type: "bool",
1168
+ },
1169
+ ],
1170
+ stateMutability: "view",
1171
+ type: "function",
1172
+ },
518
1173
  {
519
1174
  inputs: [],
520
1175
  name: "symbol",
@@ -579,13 +1234,25 @@ const _abi = [
579
1234
  },
580
1235
  ],
581
1236
  name: "transfer",
582
- outputs: [
1237
+ outputs: [],
1238
+ stateMutability: "nonpayable",
1239
+ type: "function",
1240
+ },
1241
+ {
1242
+ inputs: [
583
1243
  {
584
- internalType: "gtBool",
585
- name: "",
1244
+ internalType: "address",
1245
+ name: "to",
1246
+ type: "address",
1247
+ },
1248
+ {
1249
+ internalType: "uint256",
1250
+ name: "value",
586
1251
  type: "uint256",
587
1252
  },
588
1253
  ],
1254
+ name: "transfer",
1255
+ outputs: [],
589
1256
  stateMutability: "nonpayable",
590
1257
  type: "function",
591
1258
  },
@@ -597,19 +1264,65 @@ const _abi = [
597
1264
  type: "address",
598
1265
  },
599
1266
  {
600
- internalType: "gtUint256",
601
- name: "value",
602
- type: "uint256",
1267
+ components: [
1268
+ {
1269
+ components: [
1270
+ {
1271
+ internalType: "ctUint128",
1272
+ name: "ciphertextHigh",
1273
+ type: "uint256",
1274
+ },
1275
+ {
1276
+ internalType: "ctUint128",
1277
+ name: "ciphertextLow",
1278
+ type: "uint256",
1279
+ },
1280
+ ],
1281
+ internalType: "struct ctUint256",
1282
+ name: "ciphertext",
1283
+ type: "tuple",
1284
+ },
1285
+ {
1286
+ internalType: "bytes",
1287
+ name: "signature",
1288
+ type: "bytes",
1289
+ },
1290
+ ],
1291
+ internalType: "struct itUint256",
1292
+ name: "amount",
1293
+ type: "tuple",
1294
+ },
1295
+ {
1296
+ internalType: "bytes",
1297
+ name: "data",
1298
+ type: "bytes",
603
1299
  },
604
1300
  ],
605
- name: "transfer",
606
- outputs: [
1301
+ name: "transferAndCall",
1302
+ outputs: [],
1303
+ stateMutability: "nonpayable",
1304
+ type: "function",
1305
+ },
1306
+ {
1307
+ inputs: [
607
1308
  {
608
- internalType: "gtBool",
609
- name: "",
1309
+ internalType: "address",
1310
+ name: "to",
1311
+ type: "address",
1312
+ },
1313
+ {
1314
+ internalType: "uint256",
1315
+ name: "amount",
610
1316
  type: "uint256",
611
1317
  },
1318
+ {
1319
+ internalType: "bytes",
1320
+ name: "data",
1321
+ type: "bytes",
1322
+ },
612
1323
  ],
1324
+ name: "transferAndCall",
1325
+ outputs: [],
613
1326
  stateMutability: "nonpayable",
614
1327
  type: "function",
615
1328
  },
@@ -626,19 +1339,13 @@ const _abi = [
626
1339
  type: "address",
627
1340
  },
628
1341
  {
629
- internalType: "gtUint256",
1342
+ internalType: "uint256",
630
1343
  name: "value",
631
1344
  type: "uint256",
632
1345
  },
633
1346
  ],
634
1347
  name: "transferFrom",
635
- outputs: [
636
- {
637
- internalType: "gtBool",
638
- name: "",
639
- type: "uint256",
640
- },
641
- ],
1348
+ outputs: [],
642
1349
  stateMutability: "nonpayable",
643
1350
  type: "function",
644
1351
  },
@@ -685,20 +1392,55 @@ const _abi = [
685
1392
  },
686
1393
  ],
687
1394
  name: "transferFrom",
688
- outputs: [
1395
+ outputs: [],
1396
+ stateMutability: "nonpayable",
1397
+ type: "function",
1398
+ },
1399
+ {
1400
+ inputs: [
689
1401
  {
690
- internalType: "gtBool",
691
- name: "",
1402
+ internalType: "address",
1403
+ name: "from",
1404
+ type: "address",
1405
+ },
1406
+ {
1407
+ internalType: "address",
1408
+ name: "to",
1409
+ type: "address",
1410
+ },
1411
+ {
1412
+ internalType: "gtUint256",
1413
+ name: "value",
1414
+ type: "uint256",
1415
+ },
1416
+ ],
1417
+ name: "transferFromGT",
1418
+ outputs: [],
1419
+ stateMutability: "nonpayable",
1420
+ type: "function",
1421
+ },
1422
+ {
1423
+ inputs: [
1424
+ {
1425
+ internalType: "address",
1426
+ name: "to",
1427
+ type: "address",
1428
+ },
1429
+ {
1430
+ internalType: "gtUint256",
1431
+ name: "value",
692
1432
  type: "uint256",
693
1433
  },
694
1434
  ],
1435
+ name: "transferGT",
1436
+ outputs: [],
695
1437
  stateMutability: "nonpayable",
696
1438
  type: "function",
697
1439
  },
698
1440
  ] as const;
699
1441
 
700
1442
  const _bytecode =
701
- "0x60806040523480156200001157600080fd5b506040518060400160405280601081526020016f5072697661746545524332304d6f636b60801b81525060405180604001604052806005815260200164504532304d60d81b81525081600590816200006a919062000127565b50600662000079828262000127565b505050620001f3565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000ad57607f821691505b602082108103620000ce57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012257600081815260208120601f850160051c81016020861015620000fd5750805b601f850160051c820191505b818110156200011e5782815560010162000109565b5050505b505050565b81516001600160401b0381111562000143576200014362000082565b6200015b8162000154845462000098565b84620000d4565b602080601f8311600181146200019357600084156200017a5750858301515b600019600386901b1c1916600185901b1785556200011e565b600085815260208120601f198616915b82811015620001c457888601518255948401946001909101908401620001a3565b5085821015620001e35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611d5280620002036000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806370a08231116100cd57806395d89b41116100815780639dc29fac116100665780639dc29fac1461032d578063a9059cbb14610340578063dd62ed3e1461035357600080fd5b806395d89b411461031257806396b2db381461031a57600080fd5b80638269bcc3116100b25780638269bcc3146102d957806383ae57f4146102ec5780638e532c44146102ff57600080fd5b806370a082311461025f578063722713f7146102d157600080fd5b806323b872dd11610124578063313ce56711610109578063313ce5671461022857806340c10f19146102375780635d484ff81461024c57600080fd5b806323b872dd1461020257806326a9b3f11461021557600080fd5b8063043d20851461015657806306fdde03146101b9578063095ea7b3146101ce57806318160ddd146101f1575b600080fd5b61018f6101643660046117e2565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152602081905260409020541690565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101c16103a9565b6040516101b09190611861565b6101e16101dc366004611874565b61043b565b60405190151581526020016101b0565b60005b6040519081526020016101b0565b6101f461021036600461189e565b610455565b6101e16102233660046118da565b610479565b604051600681526020016101b0565b61024a610245366004611874565b610572565b005b6101f461025a36600461192e565b610589565b6102c461026d3660046117e2565b60408051808201909152600080825260208201525073ffffffffffffffffffffffffffffffffffffffff16600090815260016020908152604091829020825180840190935260028101548352600301549082015290565b6040516101b0919061198c565b6101f46105c0565b6101e16102e73660046117e2565b6105d0565b6101f46102fa3660046119a3565b610663565b6101e161030d3660046119a3565b610689565b6101c16106b1565b6101f46103283660046118da565b6106c0565b61024a61033b366004611874565b61076b565b6101f461034e366004611874565b61077d565b6103666103613660046119f1565b610793565b60408051825180518252602090810151818301528084015180518385015281015160608301529290910151805160808301529091015160a082015260c0016101b0565b6060600580546103b890611a24565b80601f01602080910402602001604051908101604052809291908181526020018280546103e490611a24565b80156104315780601f1061040657610100808354040283529160200191610431565b820191906000526020600020905b81548152906001019060200180831161041457829003601f168201915b5050505050905090565b60003361044981858561082e565b60019150505b92915050565b600033610463858285610a7b565b61046e858585610ba8565b9150505b9392505050565b60008061048533610c55565b905082156105005733600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff88168452825291829020825180840190935280548352600181015491830191909152906104ea906104e490610c8b565b83610cb7565b8051600283015560200151600390910155610449565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260026020908152604080832033845282529182902082518084019093528054835260018101549183019190915290610557906104e490610c8b565b80516004830155602001516005909101555060019392505050565b6105848261057f83610da1565b610e47565b505050565b6000338161059e61059985611b18565b610ea5565b90506105ab868383610a7b565b6105b6868683610ba8565b9695505050505050565b60006105cb33610f15565b905090565b6000806105dc33610f15565b33600090815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905590506106358184610cb7565b3360009081526001602081815260409092208351600282015592909101516003909201919091559392505050565b6000338161067361059985611b18565b9050610680828683610ba8565b95945050505050565b6000338161069961059985611b18565b90506106a682868361082e565b506001949350505050565b6060600680546103b890611a24565b6000811561071d5733600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452825291829020825180840190935280548352600101549082015261071690610c8b565b905061044f565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600260209081526040808320338452825291829020825180840190935280548352600101549082015261071690610c8b565b6105848261077883610da1565b610f5a565b60003361078b818585610ba8565b949350505050565b61079b611730565b5073ffffffffffffffffffffffffffffffffffffffff918216600090815260026020818152604080842094909516835292835290839020835160a08101855281546060820190815260018301546080830152815284518086018652928201548352600382015483850152808401929092528351808501855260048201548152600590910154928101929092529182015290565b73ffffffffffffffffffffffffffffffffffffffff8316610883576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166108d3576040517f94280d620000000000000000000000000000000000000000000000000000000081526000600482015260240161087a565b60006108de82610fb8565b905060006108eb85610c55565b905060006108f98483610cb7565b905061090485610c55565b915060006109128584610cb7565b9050604051806060016040528085815260200183815260200182815250600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000016000820151816000015560208201518160010155505060208201518160020160008201518160000155602082015181600101555050604082015181600401600082015181600001556020820151816001015550509050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f836b0bdb95065391d1c4c568d3e48559e54d5969d06d7ea87f85869e1ef69dc88484604051610a6a929190611bfd565b60405180910390a350505050505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602081815260408084208151808301909252805482529092015490820152610ac090610c8b565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260026020908152604080832093881683529281528282208351808501909452805484526001015490830152919250610b1490610c8b565b90506000610b4a82610b457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610da1565b61108c565b90506000610b58848661114b565b90506000610b66848761114b565b90506000610b90610b8085610b7b8686611160565b611160565b610b8a878a611174565b87611189565b9050610b9d89898361082e565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8416610bfa576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526000600482015260240161087a565b73ffffffffffffffffffffffffffffffffffffffff8316610c4a576040517fec442f050000000000000000000000000000000000000000000000000000000081526000600482015260240161087a565b61078b84848461124e565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152602081905260408120549091168061044f575090919050565b8051600090158015610c9f57506020820151155b15610cae5761044f6000610da1565b61044f8261141c565b6040805180820190915260008082526020820152600080606463e5c83313600660f81b8787604051602001610d17919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401610d4493929190611c52565b60408051808303816000875af1158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190611c93565b60408051808201909152918252602082015295945050505050565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f060000000000000000000000000000000000000000000000000000000000000060048201526024810182905260009060649063d9b60b60906044015b6020604051808303816000875af1158015610e23573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044f9190611cb7565b600073ffffffffffffffffffffffffffffffffffffffff8316610e99576040517fec442f050000000000000000000000000000000000000000000000000000000081526000600482015260240161087a565b6104726000848461124e565b80518051602091820151918301516040517f0135e466000000000000000000000000000000000000000000000000000000008152600093606493630135e46693610e04937f0600000000000000000000000000000000000000000000000000000000000000939190600401611cd0565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160208181526040808420815180830190925280548252909201549082015261047281610c8b565b600073ffffffffffffffffffffffffffffffffffffffff8316610fac576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526000600482015260240161087a565b6104728360008461124e565b60408051808201825260008082526020820181905291517f1f4491de0000000000000000000000000000000000000000000000000000000081527f06000000000000000000000000000000000000000000000000000000000000006004820152602481018490529091908190606490631f4491de9060440160408051808303816000875af115801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190611c93565b604080518082019091529182526020820152949350505050565b60006064637c12a1eb6110a16006808561148f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064015b6020604051808303816000875af1158015611127573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104729190611cb7565b6000606463dd1486936110a16006808561148f565b6000606463fb7da35f6110a183808061148f565b6000606463371d1bf26110a16006808561148f565b600060646320cc408d61119e6006808561148f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810187905260448101869052606481018590526084016020604051808303816000875af115801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b9190611cb7565b600080828161125d60016114ec565b905073ffffffffffffffffffffffffffffffffffffffff87166112e057604080518082019091526003548152600454602082015260009061129d90610c8b565b90506112a9818761154b565b90506112b481610fb8565b80516003556020015160045560006112cb88610f15565b90506112d7818861154b565b94505050611328565b60006112eb88610f15565b905060006112f888610f15565b9050600061130783838a611560565b909750945090506113188a8261161e565b6113228683611174565b94505050505b73ffffffffffffffffffffffffffffffffffffffff861661138f57604080518082019091526003548152600454602082015260009061136690610c8b565b90506113728184611174565b905061137d81610fb8565b80516003556020015160045550611399565b611399868461161e565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a36113f2858b610cb7565b6113fc868b610cb7565b60405161140a929190611bfd565b60405180910390a39695505050505050565b805160208201516040517f2d5831350000000000000000000000000000000000000000000000000000000081527f0600000000000000000000000000000000000000000000000000000000000000600482015260248101929092526044820152600090606490632d583135908201610e04565b60008160028111156114a3576114a3611c23565b60ff1660088460068111156114ba576114ba611c23565b61ffff16901b61ffff1660108660068111156114d8576114d8611c23565b62ffffff16901b171760e81b949350505050565b600080826114fb5760006114fe565b60015b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081526000600482015260ff9190911660248201819052915060649063d9b60b6090604401611108565b60006064638c5d01506110a16006808561148f565b6000808080808060646356c72d2861157b6006808086611688565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b9052606481018a90526084016060604051808303816000875af11580156115e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160c9190611d17565b919b909a509098509650505050505050565b600061162983610c55565b90506116358282611708565b73ffffffffffffffffffffffffffffffffffffffff909316600090815260016020818152604090922085518051825583015191810191909155938101518051600286015501516003909301929092555050565b600081600281111561169c5761169c611c23565b60ff1660088460068111156116b3576116b3611c23565b61ffff16901b61ffff1660108660068111156116d1576116d1611c23565b62ffffff16901b62ffffff1660188860068111156116f1576116f1611c23565b63ffffffff16901b17171760e01b95945050505050565b611710611797565b61171983610fb8565b81526117258383610cb7565b602082015292915050565b6040805160a08101909152600060608201818152608083019190915281908152602001611770604051806040016040528060008152602001600081525090565b8152602001611792604051806040016040528060008152602001600081525090565b905290565b6040805160808101825260009181018281526060820192909252908190611770565b803573ffffffffffffffffffffffffffffffffffffffff811681146117dd57600080fd5b919050565b6000602082840312156117f457600080fd5b610472826117b9565b6000815180845260005b8181101561182357602081850181015186830182015201611807565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061047260208301846117fd565b6000806040838503121561188757600080fd5b611890836117b9565b946020939093013593505050565b6000806000606084860312156118b357600080fd5b6118bc846117b9565b92506118ca602085016117b9565b9150604084013590509250925092565b600080604083850312156118ed57600080fd5b6118f6836117b9565b91506020830135801515811461190b57600080fd5b809150509250929050565b60006060828403121561192857600080fd5b50919050565b60008060006060848603121561194357600080fd5b61194c846117b9565b925061195a602085016117b9565b9150604084013567ffffffffffffffff81111561197657600080fd5b61198286828701611916565b9150509250925092565b81518152602080830151908201526040810161044f565b600080604083850312156119b657600080fd5b6119bf836117b9565b9150602083013567ffffffffffffffff8111156119db57600080fd5b6119e785828601611916565b9150509250929050565b60008060408385031215611a0457600080fd5b611a0d836117b9565b9150611a1b602084016117b9565b90509250929050565b600181811c90821680611a3857607f821691505b602082108103611928577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611ac357611ac3611a71565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611b1057611b10611a71565b604052919050565b60008136036060811215611b2b57600080fd5b611b33611aa0565b6040821215611b4157600080fd5b611b49611aa0565b84358152602080860135818301529082526040850135925067ffffffffffffffff80841115611b7757600080fd5b9285019236601f850112611b8a57600080fd5b833581811115611b9c57611b9c611a71565b611bcc837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611ac9565b91508082523683828701011115611be257600080fd5b80838601848401376000908201830152908201529392505050565b825181526020808401518183015282516040830152820151606082015260808101610472565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7fff000000000000000000000000000000000000000000000000000000000000008416815282602082015260606040820152600061068060608301846117fd565b60008060408385031215611ca657600080fd5b505080516020909101519092909150565b600060208284031215611cc957600080fd5b5051919050565b7fff00000000000000000000000000000000000000000000000000000000000000851681528360208201528260408201526080606082015260006105b660808301846117fd565b600080600060608486031215611d2c57600080fd5b835192506020840151915060408401519050925092509256fea164736f6c6343000813000a";
1443
+ "0x608034620003405760406001600160401b038282018181118482101762000241578252601083526020906f5072697661746545524332304d6f636b60801b8285015282519383850185811083821117620002415784526005855264504532304d60d81b838601526001928380558151156200032f578551156200032f5781518381116200024157600854928584811c9416801562000324575b8385101462000220578190601f94858111620002cd575b508390858311600114620002635760009262000257575b5050600019600383901b1c191690851b176008555b855192831162000241576009548481811c9116801562000236575b828210146200022057828111620001d4575b5080918311600114620001695750819293946000926200015d575b5050600019600383901b1c191690821b176009555b620001433362000345565b5060ff196002541617600255516137c59081620003d78239f35b01519050388062000123565b90601f19831695600960005282600020926000905b888210620001bc5750508385969710620001a2575b505050811b0160095562000138565b015160001960f88460031b161c1916905538808062000193565b8087859682949686015181550195019301906200017e565b6009600052816000208380860160051c82019284871062000216575b0160051c019085905b8281106200020957505062000108565b60008155018590620001f9565b92508192620001f0565b634e487b7160e01b600052602260045260246000fd5b90607f1690620000f6565b634e487b7160e01b600052604160045260246000fd5b015190503880620000c6565b90879350601f198316916008600052856000209260005b87828210620002b657505084116200029c575b505050811b01600855620000db565b015160001960f88460031b161c191690553880806200028d565b8385015186558b979095019493840193016200027a565b9091506008600052836000208580850160051c8201928686106200031a575b918991869594930160051c01915b8281106200030a575050620000af565b60008155859450899101620002fa565b92508192620002ec565b93607f169362000098565b8451631251828960e31b8152600490fd5b600080fd5b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff16620003d257818052816020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b509056fe6040608081526004908136101561001557600080fd5b600091823560e01c80620a77ed146119fc57806301ffc9a714611926578063043d2085146118bf5780630564c4cf1461183c57806306fdde031461176f578063095ea7b31461165457806318160ddd146107e657806323b872dd1461156e578063248a9ca31461154557806326a9b3f1146113de5780632f2ff15d146113b5578063313ce5671461139957806336568abe1461132c5780633826c5801461120057806338e071bc146111b4578063395093511461115b5780633c96e77c146110975780634000aea014610efd57806340c10f1914610ece57806342966c6814610e9a5780634faa7ebf14610e765780635d484ff814610d3957806368c7a25d14610ce557806370a0823114610c5e578063722713f714610c375780638269bcc314610b4157806383ae57f414610af957806384813e9314610aa65780638e532c4414610a4c5780638f770ad014610a1157806391d14854146109c057806395d89b411461086e57806396b2db38146108395780639dc29fac14610801578063a217fddf146107e6578063a457c2d71461078d578063a9059cbb14610707578063b485441d146106b8578063b93598091461063d578063c183b7fc146105db578063d18468361461050b578063d5391393146104cc578063d547741f1461048e578063dd62ed3e14610313578063e4f75ce7146102955763fb2205ca1461021a57600080fd5b346102915761022836611b08565b919092610233611b5b565b61023b611d5f565b73ffffffffffffffffffffffffffffffffffffffff84161561027b57846102748561026e6102693688611e42565b6131d6565b90612540565b6001805580f35b9084602492519163ec442f0560e01b8352820152fd5b8280fd5b5034610291576102a436611b08565b9190926102af611d5f565b73ffffffffffffffffffffffffffffffffffffffff8416156102e45784610274856102dd6102693688611e42565b9033612b4d565b908460249251917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b50903461029157806003193601126102915761032d611a22565b90610336611a4a565b81519261034284611d9a565b82519361034e85611de5565b86855260209487868201528152835161036681611de5565b8781528786820152858201528380519161037f83611de5565b8883528887840152015273ffffffffffffffffffffffffffffffffffffffff80911691821561045f571690811561043057858492849260c0985260058452828220908252835220916103fa8151956103d687611d9a565b6103df85611fc0565b87526103ed60028601611fc0565b9484880195865201611fc0565b928186019384528282519651805188520151838701525190815190860152015160608401525180516080840152015160a0820152f35b602485878551917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b602486888651917fe602df05000000000000000000000000000000000000000000000000000000008352820152fd5b5090346102915780600319360112610291576104c891356104c360016104b2611a4a565b938387528660205286200154611bee565b611cbe565b5080f35b505034610507578160031936011261050757602090517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68152f35b5080fd5b509034610291576020600319360112610291578135918215158093036105d7578380528360205281842033855260205260ff8285205416156105a257507fd42670144ecdb96470ba224c43350a54c3f4a1890e72b2a470a689962b9f3c4f916020917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541660ff83161760025551908152a180f35b8360449251917fe2517d3f00000000000000000000000000000000000000000000000000000000835233908301526024820152fd5b8380fd5b50346102915781600319360112610291576105f4611a22565b916105fd611d5f565b73ffffffffffffffffffffffffffffffffffffffff831615610627578361027460243585336120c9565b9083602492519163ec442f0560e01b8352820152fd5b5034610291578160031936011261029157610656611a22565b9161065f611d5f565b73ffffffffffffffffffffffffffffffffffffffff83161561068957836102746024358533612c7e565b908360249251917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b5034610291576106c736611b08565b9190926106d2611d5f565b73ffffffffffffffffffffffffffffffffffffffff8416156102e45784610274856107006102693688611e42565b9033612c7e565b5034610291578160031936011261029157610720611a22565b91610729611d5f565b73ffffffffffffffffffffffffffffffffffffffff8316156106275760ff60025416156107675783610274846107606024356134ce565b90336120c9565b517fa25be20b000000000000000000000000000000000000000000000000000000008152fd5b50346102915781600319360112610291576107a6611a22565b916107af611d5f565b73ffffffffffffffffffffffffffffffffffffffff8316156106895760ff60025416156107675783610274846107006024356134ce565b50503461050757816003193601126105075751908152602090f35b505034610507576003193601126108365761027461081d611a22565b610825611d5f565b6108306024356134ce565b906127a7565b80fd5b505034610507578060031936011261050757602090610867610859611a22565b610861611acb565b90611fde565b9051908152f35b5091346108365780600319360112610836578151918160095492600184811c918186169586156109b6575b602096878510811461098a578899509688969785829a5291826000146109455750506001146108e9575b5050506108e592916108d6910385611e01565b51928284938452830190611a6d565b0390f35b9190869350600983527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b82841061092d57505050820101816108d66108e56108c3565b8054848a018601528895508794909301928101610914565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168782015293151560051b860190930193508492506108d691506108e590506108c3565b60248360228c7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b92607f1692610899565b50346102915781600319360112610291578160209360ff926109e0611a4a565b9035825281865273ffffffffffffffffffffffffffffffffffffffff83832091168252855220541690519015158152f35b505034610507578160031936011261050757602090517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152f35b503461029157610a5b36611b08565b919092610a66611d5f565b73ffffffffffffffffffffffffffffffffffffffff8416156102e4578461027485610a946102693688611e42565b90610aa0828233612a02565b33612db4565b5034610291578160031936011261029157610abf611a22565b91610ac8611b5b565b610ad0611d5f565b73ffffffffffffffffffffffffffffffffffffffff831615610627578361027460243585612540565b503461029157610b0836611b08565b919092610b13611d5f565b73ffffffffffffffffffffffffffffffffffffffff84161561027b5784610274856107606102693688611e42565b50829034610507576020928360031936011261029157610b5f611a22565b91610b68611d5f565b73ffffffffffffffffffffffffffffffffffffffff8316928315610c2157610ba890338652828752610ba3610b9e858820611fc0565b612f56565b61337c565b9033855260038652828520847fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905585526003858386209280516002850155015191015551917f60662088d92b75bf198cd91648eaec81fc2278e7a02f3cf02643637be4728c24339180a36001805560018152f35b5083602492519163ec442f0560e01b8352820152fd5b5034610291578260031936011261029157610b9e8260209461086793338252865220611fc0565b508290346105075760206003193601126105075773ffffffffffffffffffffffffffffffffffffffff610c8f611a22565b8360208651610c9d81611de5565b8281520152168015610ccf578252602052819020610cbd90600201611fc0565b60208251918051835201516020820152f35b5090602492519163ec442f0560e01b8352820152fd5b83823461050757600319906020823601126102915780359167ffffffffffffffff83116105d757606090833603011261029157610269610d339161027493610d2b611d5f565b369101611e42565b336127a7565b50829034610507576003199060608236011261029157610d57611a22565b610d5f611a4a565b916044359367ffffffffffffffff8511610e72576060908536030112610e6e57610d87611d5f565b73ffffffffffffffffffffffffffffffffffffffff93848316948515610e3f57841615610e2957610b9e6102749697610dcc610269610e2495610de495369101611e42565b9689526005602052808920338a526020528820611fc0565b610e1b610df082613723565b610e11610e16610e11610e0b610e068b88613643565b61316b565b8461308d565b6130d7565b612064565b90853385612f3b565b6120c9565b6024828789519163ec442f0560e01b8352820152fd5b602483888a51917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b8480fd5b8580fd5b50503461050757816003193601126105075760209060ff6002541690519015158152f35b50903461029157602060031936011261029157610eb5611d5f565b60ff60025416156107675750610d3361027491356134ce565b5050346105075760031936011261083657610274610eea611a22565b610ef2611d5f565b61026e6024356134ce565b503461029157606060031936011261029157610f17611a22565b6024359060443567ffffffffffffffff8111610e7257610f3a9036908501611ada565b929093610f45611d5f565b73ffffffffffffffffffffffffffffffffffffffff831692831561108157803b156110525760ff600254161561102a578291610f89899261076060209897966134ce565b610fd38851978896879586947fbed2554200000000000000000000000000000000000000000000000000000000865233908601526024850152606060448501526064840191611f1c565b03925af190811561101e5761027492508391610ff0575b50611f5b565b611011915060203d8111611017575b6110098183611e01565b810190611f04565b38610fea565b503d610fff565b505051903d90823e3d90fd5b5085517fa25be20b000000000000000000000000000000000000000000000000000000008152fd5b602482858951917f7ca756dc000000000000000000000000000000000000000000000000000000008352820152fd5b6024828989519163ec442f0560e01b8352820152fd5b50829034610507576060600319360112610507576110b3611a22565b6110bb611a4a565b90604435926110c8611d5f565b73ffffffffffffffffffffffffffffffffffffffff9081831691821561112c578416156111165750610de4610b9e8697610e249361027498526005602052808920338a526020528820611fc0565b6024908688519163ec442f0560e01b8352820152fd5b602482888a51917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b5034610291578160031936011261029157611174611a22565b9161117d611d5f565b73ffffffffffffffffffffffffffffffffffffffff8316156106895760ff60025416156107675783610274846102dd6024356134ce565b50346102915781600319360112610291576111cd611a22565b916111d6611d5f565b73ffffffffffffffffffffffffffffffffffffffff83161561068957836102746024358533612b4d565b5034610291576003196060813601126105d75761121b611a22565b916024359167ffffffffffffffff90818411611328576060908436030112610e7257604435908111610e72576112549036908301611ada565b91909361125f611d5f565b73ffffffffffffffffffffffffffffffffffffffff811693841561131257813b156112e357602094926112a2610fd39795936107606102698c9536908601611e42565b8751968795869485937f2ac65e4e00000000000000000000000000000000000000000000000000000000855233908501528a60248501526044840191611f1c565b602483868951917f7ca756dc000000000000000000000000000000000000000000000000000000008352820152fd5b6024838989519163ec442f0560e01b8352820152fd5b8680fd5b50919034610507578060031936011261050757611347611a4a565b903373ffffffffffffffffffffffffffffffffffffffff83160361137157506104c8919235611cbe565b8390517f6697b232000000000000000000000000000000000000000000000000000000008152fd5b5050346105075781600319360112610507576020905160068152f35b5090346102915780600319360112610291576104c891356113d960016104b2611a4a565b611c14565b508290346105075782600319360112610507576113f9611a22565b92611402611acb565b9161140b611d5f565b73ffffffffffffffffffffffffffffffffffffffff9182861691821561153057611434336123ee565b908482161561151a578697866000146114b6579285939260056020809794611497857fb4f3d65fffdf9e90f369eef21114568cc4ebe6bc1853767f497f0c6efbfd0e169b989d3398815285855281812089825285522094610ba3610b9e87611fc0565b9081519085015501519101555b51951515865216941692a36001805580f35b9650509260209281927fb4f3d65fffdf9e90f369eef21114568cc4ebe6bc1853767f497f0c6efbfd0e1695339892898b5260058752828b20908b528652600386611509848d2093610ba3610b9e86611fc0565b8051600285015501519101556114a4565b6024908784519163ec442f0560e01b8352820152fd5b85602492519163ec442f0560e01b8352820152fd5b503461029157602060031936011261029157816020936001923581528085522001549051908152f35b508290346105075760606003193601126105075761158a611a22565b611592611a4a565b9061159b611d5f565b60ff600254161561162c5773ffffffffffffffffffffffffffffffffffffffff928382169384156115fd578316156115e75750610e24610de4610b9e6102749697610dcc6044356134ce565b6024908587519163ec442f0560e01b8352820152fd5b602482878951917f96c6fd1e000000000000000000000000000000000000000000000000000000008352820152fd5b8285517fa25be20b000000000000000000000000000000000000000000000000000000008152fd5b50903461029157806003193601126102915761166e611a22565b916024359161167b611d5f565b73ffffffffffffffffffffffffffffffffffffffff841680156117405760ff600254161561171957836116be575b85610274866116b7876134ce565b9033612db4565b33865260056020528186209086526020526116e8610e116116e3610b9e848920611fc0565b6136ac565b156116f357806116a9565b517f288ade40000000000000000000000000000000000000000000000000000000008152fd5b50517fa25be20b000000000000000000000000000000000000000000000000000000008152fd5b602483878451917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b5091346108365780600319360112610836578151918160085492600184811c91818616958615611832575b602096878510811461098a578899509688969785829a5291826000146109455750506001146117d6575050506108e592916108d6910385611e01565b9190869350600883527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b82841061181a57505050820101816108d66108e56108c3565b8054848a018601528895508794909301928101611801565b92607f169261179a565b50829034610507578260031936011261050757611857611a22565b60243591611863611d5f565b73ffffffffffffffffffffffffffffffffffffffff82161561189057509081610aa0826102749433612a02565b602490848651917f94280d62000000000000000000000000000000000000000000000000000000008352820152fd5b5082346108365760206003193601126108365773ffffffffffffffffffffffffffffffffffffffff91826118f1611a22565b1690811561191057602085858186868152600385522054169051908152f35b6024908386519163ec442f0560e01b8352820152fd5b50346102915760206003193601126102915735907fffffffff00000000000000000000000000000000000000000000000000000000821680920361029157602092507f479eaff400000000000000000000000000000000000000000000000000000000821491821561199c575b50519015158152f35b9091507f7965db0b0000000000000000000000000000000000000000000000000000000081149081156119d2575b509038611993565b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014386119ca565b8382346105075760206003193601126105075761027490611a1b611d5f565b35336127a7565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203611a4557565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff82168203611a4557565b919082519283825260005b848110611ab75750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b602081830181015184830182015201611a78565b602435908115158203611a4557565b9181601f84011215611a455782359167ffffffffffffffff8311611a455760208381860195010111611a4557565b90600319604081840112611a455760043573ffffffffffffffffffffffffffffffffffffffff81168103611a4557926024359167ffffffffffffffff8311611a455782606092030112611a455760040190565b3360009081527f0781d7cac9c378efa22a7481e4d4d29704a680ddf504b3bc50b517700ee11e6c60205260409020547f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a69060ff1615611bb75750565b604490604051907fe2517d3f0000000000000000000000000000000000000000000000000000000082523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615611bb75750565b906000918083528260205273ffffffffffffffffffffffffffffffffffffffff6040842092169182845260205260ff60408420541615600014611cb95780835282602052604083208284526020526040832060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b906000918083528260205273ffffffffffffffffffffffffffffffffffffffff6040842092169182845260205260ff604084205416600014611cb9578083528260205260408320828452602052604083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b600260015414611d70576002600155565b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b6060810190811067ffffffffffffffff821117611db657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff821117611db657604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611db657604052565b91908281039260608412611a4557604051611e5c81611de5565b6040819512611a455760405191611e7283611de5565b8035835260209283820135848201528252604081013567ffffffffffffffff91828211611a45570184601f82011215611a45578035918211611db65760405194611ee3857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160187611e01565b828652848383010111611a4557816000928580930183880137850101520152565b90816020910312611a4557518015158103611a455790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b15611f6257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f43616c6c6261636b206661696c656400000000000000000000000000000000006044820152fd5b90604051611fcd81611de5565b602060018294805484520154910152565b73ffffffffffffffffffffffffffffffffffffffff1690811561204c5715612027576000526005602052604060002033600052602052612024610b9e6040600020611fc0565b90565b336000526005602052604060002090600052602052612024610b9e6040600020611fc0565b602460405163ec442f0560e01b815260006004820152fd5b1561206b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b929173ffffffffffffffffffffffffffffffffffffffff9081851680156123bd5782841690811561204c5781811461238c5782966000958287526020966004885260409661211b610b9e898420611fc0565b9a86835260048a52612131610b9e8a8520611fc0565b978860448b519e8f907f56c72d280000000000000000000000000000000000000000000000000000000082527f060606000000000000000000000000000000000000000000000000000000000060048301526024820152015260648d015260608c6084818660645af19788156123825783908490859a612342575b6121d89b9c9d9e506121bd8b6130d7565b9283612319575b50505061223e575b505050505050506130d7565b156121e1575050565b6064925051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152601460248201527f45524332303a20757064617465206661696c65640000000000000000000000006044820152fd5b61227a7f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a395848d8d5161227081611de5565b82815201526123ee565b808316156122fc5761228f61229e918361337c565b945b848d8d5161227081611de5565b918216156122e1576122b0925061337c565b905b87518151815260209182015182820152825160408201529101516060820152608090a3388080808080806121cc565b50508751906122ef82611de5565b80825289820152906122b2565b5061229e8a5161230b81611de5565b848152848d82015294612291565b61233a9294509061232d612333928a61243f565b846135da565b928661243f565b3880806121c4565b9950505060608c3d821161237a575b8161235e60609383611e01565b81010312610291578b518a8d01519c8a01519b9c8d9c996121ac565b3d9150612351565b89513d85823e3d90fd5b602490604051907fa26ce2e10000000000000000000000000000000000000000000000000000000082526004820152fd5b60246040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152fd5b73ffffffffffffffffffffffffffffffffffffffff808216801561243757600052600360205260406000205416908115612426575090565b8091503b6124315790565b50600090565b505050600090565b9060039061244c836123ee565b73ffffffffffffffffffffffffffffffffffffffff91908281166124c15750612474906132b7565b9216600092818452600460205260016020604086209280518455015191015560408051936124a185611de5565b808552602085019281845281526004602052209251600284015551910155565b9160408051956124d087611de5565b8151926124dc84611de5565b60009182855261251a60209786858a809901528b52868b0197865161250081611de5565b86815286898201528952612513816132b7565b8c5261337c565b865216815260048352209451805186550151600185015551805160028501550151910155565b91909173ffffffffffffffffffffffffffffffffffffffff90818116801561204c576125939060008181526020946004865260409461258c89612587610b9e898720611fc0565b61353e565b959061316b565b986125c16125ba826125878a516125a981611de5565b60065481526007548d820152612f56565b919061316b565b8851907f145fca2c0000000000000000000000000000000000000000000000000000000082527f060602000000000000000000000000000000000000000000000000000000000060048301528260248301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60448301528a826064818a825af191821561279d57879261276c575b508a9b9c6126676121d89b9c949361266d9361302d565b9061302d565b97612677896130d7565b9283612748575b505050612690575b50505050506130d7565b7f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a392848a8a516126bf81611de5565b82815201526126e88951936126d385611de5565b868552868c860152868c8c5161227081611de5565b9081161561272d576126f99161337c565b905b8751815181526020918201518282015282516040820152910151606082015280608081015b0390a33880808080612686565b5050865161273a81611de5565b8381528389820152906126fb565b612754612764936132b7565b805160065501516007558461243f565b38808b61267e565b9091508a81813d8311612796575b6127848183611e01565b810103126113285751906121d8612650565b503d61277a565b8a513d89823e3d90fd5b919073ffffffffffffffffffffffffffffffffffffffff908184169081156123bd578091600090808252602094600486526040946127e9610b9e878620611fc0565b986127f261345c565b9587519a7f56c72d28000000000000000000000000000000000000000000000000000000008c527f060606000000000000000000000000000000000000000000000000000000000060048d015260248c01528660448c015260648b015260608a6084818860645af19586156129f85785908687986129b7575b6121d8999a9b9c5061287c896130d7565b9283612963575b5050506128945750505050506130d7565b6128a590858a8a5161227081611de5565b91821615612928577f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a3916128d89161337c565b838888516128e581611de5565b82815201528651906128f682611de5565b848252888201859052875181518152602091820151828201528251604082015291015160608201528060808101612720565b50507f51d0ad1c942bf69951ef3f74b4b135c487a07fcefe7c0247e1940b708654c5a3855161295681611de5565b83815283888201526128d8565b612978939550612973908561243f565b6135da565b91896129a56129a0856129738d5161298f81611de5565b600654815260075486820152612f56565b6132b7565b80516006550151600755388080612883565b5096505060608a3d82116129f0575b816129d360609383611e01565b81010312610e6e578951888b01519a880151999a8b9a979061286b565b3d91506129c6565b87513d87823e3d90fd5b9190612a7691612a1061345c565b6040517f7c12a1eb0000000000000000000000000000000000000000000000000000000081527f06060000000000000000000000000000000000000000000000000000000000006004820152602481019290925260448201529160209083906064820190565b03928181600095818760645af18015612b42578490612b13575b612a9a91506130d7565b612b0d576040610e11936116e393610b9e93612adc9773ffffffffffffffffffffffffffffffffffffffff809116845260058252848420921683525220611fc0565b15612ae357565b60046040517f288ade40000000000000000000000000000000000000000000000000000000008152fd5b50505050565b508181813d8311612b3b575b612b298183611e01565b810103126105d757612a9a9051612a90565b503d612b1f565b6040513d86823e3d90fd5b919073ffffffffffffffffffffffffffffffffffffffff808416908115612c4d578216908115612c1c57610e1193612bae92612ba7926000526005602052604060002090600052602052612587610b9e6040600020611fc0565b939061316b565b15612bbe57612bbc92612db4565b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332303a20616c6c6f77616e6365206f766572666c6f77000000000000006044820152fd5b60246040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b9092919273ffffffffffffffffffffffffffffffffffffffff91828116928315612c4d578216928315612c1c57612d3b93600091825260056020526040968791828420908452602052612cd5610b9e838520611fc0565b825196879283927fce8c713d000000000000000000000000000000000000000000000000000000008452600484016040909392919360608101947f0606000000000000000000000000000000000000000000000000000000000000825260208201520152565b03818460645af1938415612da857612bbc95968295612d6b575b5050610e16610e11612d669261316b565b612db4565b610e119550612d669250610e169181612d9892903d10612da1575b612d908183611e01565b8101906132a1565b95909250612d55565b503d612d86565b508551903d90823e3d90fd5b9173ffffffffffffffffffffffffffffffffffffffff808416928315612c4d57818116948515612c1c5783612f01916005612e18612e127f836b0bdb95065391d1c4c568d3e48559e54d5969d06d7ea87f85869e1ef69dc8986132b7565b926123ee565b95600093612e52604095865199612e2e8b611de5565b818b5260209a8b0182905280851615612f2157612e4c91508361337c565b976123ee565b90600092838a8851612e6381611de5565b8281520152821615612f0657612e79925061337c565b955b835192612e8784611d9a565b835280830186815281858501918983528b600052848252866000208d6000528252818760002096518051885501516001870155518051600287015501516003850155518051600485015501519101555192839283909291602060609181608085019680518652015182850152805160408501520151910152565b0390a3565b5050835190612f1482611de5565b8082528782015295612e7b565b50865190612f2e82611de5565b8082528a820152976123ee565b92909193612b0d57612bbc93612f50916135da565b91612db4565b80511580613021575b6130185760208151910151604051917f2d5831350000000000000000000000000000000000000000000000000000000083527f06000000000000000000000000000000000000000000000000000000000000006004840152602483015260448201526020816064816000825af190811561300c57600091612fde575090565b906020823d8211613004575b81612ff760209383611e01565b8101031261083657505190565b3d9150612fea565b6040513d6000823e3d90fd5b5061202461345c565b50602081015115612f5f565b6040517ffe9c73d1000000000000000000000000000000000000000000000000000000008152600060048201526024810191909152604481019190915260208180606481015b0381600060645af190811561300c57600091612fde575090565b6040517ffb7da35f00000000000000000000000000000000000000000000000000000000815260006004820152602481019190915260448101919091526020818060648101613073565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af191821561315f57809261312b575b5050151590565b9091506020823d8211613157575b8161314660209383611e01565b810103126108365750513880613124565b3d9150613139565b604051903d90823e3d90fd5b6040517f1d79e49a00000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af191821561315f5780926131bc57505090565b9091506020823d82116130045781612ff760209383611e01565b8051908151916020918280809301519101519361325860405195869384937f0135e4660000000000000000000000000000000000000000000000000000000085527f0600000000000000000000000000000000000000000000000000000000000000600486015260248501526044840152608060648401526084830190611a6d565b0381600060645af190811561300c57600091613275575b50905090565b82813d831161329a575b6132898183611e01565b81010312610836575051803861326f565b503d61327f565b9190826040910312611a45576020825192015190565b602090604080516132c781611de5565b600093818580935201528051917f1f4491de0000000000000000000000000000000000000000000000000000000083527f06000000000000000000000000000000000000000000000000000000000000006004840152602483015280826044818660645af1918215613372578392613350575b50519161334683611de5565b8252602082015290565b9080935061336a92503d8411612da157612d908183611e01565b90913861333a565b81513d85823e3d90fd5b6040805160209361343c93839261339281611de5565b600096818880935201527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000083519260601b166020830152601482526133d682611de5565b825194859283927fe5c833130000000000000000000000000000000000000000000000000000000084527f060000000000000000000000000000000000000000000000000000000000000060048501526024840152606060448401526064830190611a6d565b03818660645af19182156133725783926133505750519161334683611de5565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f060000000000000000000000000000000000000000000000000000000000000060048201526000908160248201526020816044818560645af191821561315f5780926131bc57505090565b604051907fd9b60b600000000000000000000000000000000000000000000000000000000082527f060000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af190811561300c57600091612fde575090565b604080517ff581fa200000000000000000000000000000000000000000000000000000000081527f06060000000000000000000000000000000000000000000000000000000000006004820152602481019290925260448201929092529190826064816000825af191821561300c5760009081936135bb57509190565b90506135d691925060403d8111612da157612d908183611e01565b9091565b6040517f371d1bf20000000000000000000000000000000000000000000000000000000081527f06060000000000000000000000000000000000000000000000000000000000006004820152602481019190915260448101919091526020818060648101613073565b6040517fdd1486930000000000000000000000000000000000000000000000000000000081527f06060000000000000000000000000000000000000000000000000000000000006004820152602481019190915260448101919091526020818060648101613073565b604051907f7c12a1eb0000000000000000000000000000000000000000000000000000000082527f06060200000000000000000000000000000000000000000000000000000000006004830152602482015260009081604482015260208160648185825af191821561315f5780926131bc57505090565b604051907f7c12a1eb0000000000000000000000000000000000000000000000000000000082527f0606020000000000000000000000000000000000000000000000000000000000600483015260248201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60448201526020816064816000825af190811561300c57600091612fde57509056fea164736f6c6343000814000a";
702
1444
 
703
1445
  type PrivateERC20MockConstructorParams =
704
1446
  | [signer?: Signer]