@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
@@ -0,0 +1,88 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+ import "./PodERC20.sol";
5
+
6
+ /// @title PodErc20Mintable
7
+ /// @notice {PodERC20} variant that permits `mint` calls from a single immutable `minter` address.
8
+ /// @dev The minter is set at construction and cannot change. To rotate minters, deploy a new token or subclass with
9
+ /// a mutable `minter` plus access control. All other behavior (transfers, approvals, burns, syncing) is inherited
10
+ /// verbatim from {PodERC20}.
11
+ contract PodErc20Mintable is PodERC20 {
12
+ /// @notice Sole address allowed to call {PodERC20.mint} (encrypted or plain variant).
13
+ address public minter;
14
+ bool private _mintableInitialized;
15
+
16
+ /// @notice Thrown when a non-minter tries to mint; carries the caller for debugging.
17
+ error OnlyMinter(address caller);
18
+ /// @notice Mintable storage was already initialized.
19
+ error PodErc20MintableAlreadyInitialized();
20
+ /// @notice Minter was the zero address.
21
+ error PodErc20MintableInvalidMinter();
22
+
23
+ /**
24
+ * @param _minter Address authorized to mint; must not be zero.
25
+ * @param _cotiChainId See {PodERC20}.
26
+ * @param _inbox See {PodERC20}.
27
+ * @param _cotiSideContract See {PodERC20}.
28
+ * @param _name See {PodERC20}.
29
+ * @param _symbol See {PodERC20}.
30
+ */
31
+ constructor(
32
+ address _minter,
33
+ uint256 _cotiChainId,
34
+ address _inbox,
35
+ address _cotiSideContract,
36
+ string memory _name,
37
+ string memory _symbol
38
+ ) PodERC20(_cotiChainId, _inbox, _cotiSideContract, _name, _symbol) {
39
+ _initializeMintableMinter(_minter);
40
+ }
41
+
42
+ /// @inheritdoc PodERC20
43
+ /// @dev Allows the call only when `msg.sender == minter`; reverts with {OnlyMinter} otherwise.
44
+ function _checkMinter() internal view override {
45
+ if (msg.sender != minter) {
46
+ revert OnlyMinter(msg.sender);
47
+ }
48
+ }
49
+
50
+ /// @notice Initialize mintable token storage with default 18 decimals.
51
+ function _initializePodErc20Mintable(
52
+ address _minter,
53
+ uint256 _cotiChainId,
54
+ address _inbox,
55
+ address _cotiSideContract,
56
+ string memory _name,
57
+ string memory _symbol
58
+ ) internal {
59
+ _initializePodErc20Mintable(_minter, _cotiChainId, _inbox, _cotiSideContract, _name, _symbol, 18);
60
+ }
61
+
62
+ /// @notice Initialize mintable token storage with explicit decimals.
63
+ function _initializePodErc20Mintable(
64
+ address _minter,
65
+ uint256 _cotiChainId,
66
+ address _inbox,
67
+ address _cotiSideContract,
68
+ string memory _name,
69
+ string memory _symbol,
70
+ uint8 _decimals
71
+ ) internal {
72
+ _initializePodERC20(_cotiChainId, _inbox, _cotiSideContract, _name, _symbol, _decimals);
73
+ _initializeMintableMinter(_minter);
74
+ }
75
+
76
+ /// @notice Initialize the immutable-style minter slot for constructors and clones.
77
+ /// @param _minter Address authorized to mint; must not be zero.
78
+ function _initializeMintableMinter(address _minter) internal {
79
+ if (_mintableInitialized) {
80
+ revert PodErc20MintableAlreadyInitialized();
81
+ }
82
+ if (_minter == address(0)) {
83
+ revert PodErc20MintableInvalidMinter();
84
+ }
85
+ _mintableInitialized = true;
86
+ minter = _minter;
87
+ }
88
+ }
@@ -0,0 +1,42 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+ import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
5
+ import "./PodErc20Mintable.sol";
6
+
7
+ /// @title PodErc20MintableInitializable
8
+ /// @notice Clone-friendly {PodErc20Mintable}; the implementation constructor locks the implementation instance.
9
+ /// @dev Usual deploy path is {PrivacyPortalFactory.createPortal} (clone + initialize in one tx).
10
+ /// Split deploy-then-initialize is unsafe: an attacker can front-run `initialize` on an uninitialized clone.
11
+ contract PodErc20MintableInitializable is PodErc20Mintable, Initializable {
12
+ /// @notice Lock the implementation instance with placeholder values.
13
+ constructor() PodErc20Mintable(address(1), 1, address(1), address(1), "IMPLEMENTATION", "IMPL") {
14
+ _disableInitializers();
15
+ }
16
+
17
+ /// @notice Initialize a mintable source-chain pToken clone.
18
+ /// @param _minter Address allowed to mint (the paired {PrivacyPortal}).
19
+ /// @param _owner Ownable admin allowed to {configure} inbox / COTI peer; factory passes `address(this)`.
20
+ /// @param _cotiChainId COTI chain id for remote MPC execution.
21
+ /// @param _inbox Source-chain inbox.
22
+ /// @param _cotiSideContract COTI-side pToken ledger.
23
+ /// @param _name Token name.
24
+ /// @param _symbol Token symbol.
25
+ /// @param _decimals Token decimals.
26
+ function initialize(
27
+ address _minter,
28
+ address _owner,
29
+ uint256 _cotiChainId,
30
+ address _inbox,
31
+ address _cotiSideContract,
32
+ string memory _name,
33
+ string memory _symbol,
34
+ uint8 _decimals
35
+ ) external initializer {
36
+ if (_owner == address(0)) {
37
+ revert PodERC20InvalidInitialization();
38
+ }
39
+ _initializePodErc20Mintable(_minter, _cotiChainId, _inbox, _cotiSideContract, _name, _symbol, _decimals);
40
+ _transferOwnership(_owner);
41
+ }
42
+ }
@@ -0,0 +1,88 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+ import "../../../../utils/mpc/MpcCore.sol";
5
+
6
+ /**
7
+ * @title IPodErc20CotiSide
8
+ * @notice Entry points the COTI inbox invokes for a paired {PodERC20}: balance/allowance ciphertext on-chain, MPC garbling in memory, and `respond`/`raise` wiring.
9
+ * @dev Implementations must restrict callers to the inbox and to the configured remote `PodERC20`. `transferFrom` does not carry
10
+ * `msg.sender` as spender on this chain—allowance must be enforced before the cross-chain message is sent.
11
+ */
12
+ interface IPodErc20CotiSide {
13
+ /**
14
+ * @notice Owner-only mint of plain `amount` into balance ciphertext storage for `to` (bridge / test setup).
15
+ * @dev Does not automatically update PoD ciphertext; use {syncBalances} on `PodERC20` after minting if mirrors must match.
16
+ * Kept distinct from the inbox-called {mint} / {mintPublic} so `.selector` access stays unambiguous.
17
+ */
18
+ function ownerMint(address to, uint256 amount) external;
19
+
20
+ /**
21
+ * @notice Inbox-only mint with garbled `value`; responds with a {PodERC20.transferCallback}-shaped tuple so PoD updates `to`'s ciphertext.
22
+ */
23
+ function mint(address to, gtUint256 value) external;
24
+
25
+ /**
26
+ * @notice Inbox-only mint using a plain `amount`; COTI garbles via `MpcCore.setPublic256` and responds as in {mint}.
27
+ */
28
+ function mintPublic(address to, uint256 amount) external;
29
+
30
+ /**
31
+ * @notice For each account, `onBoard`s stored balance ciphertext, `offBoardToUser`s to that address, and `respond`s with `(addresses, amounts, nonce)`.
32
+ * @dev **Gotcha:** empty `accounts` should be rejected by the implementation; otherwise PoD may receive useless callbacks.
33
+ */
34
+ function syncBalances(address[] calldata accounts) external;
35
+
36
+ /**
37
+ * @notice Moves `value` garbled tokens from `from` to `to` if balance suffices, then `respond`s with the PoD transfer tuple.
38
+ * @dev **Gotcha:** locks on PoD are tracked separately; this function assumes the inbox message is well-formed.
39
+ */
40
+ function transfer(address from, address to, gtUint256 value) external;
41
+
42
+ /**
43
+ * @notice Plain-amount variant of {transfer}; COTI garbles via `MpcCore.setPublic256`.
44
+ */
45
+ function transferPublic(address from, address to, uint256 value) external;
46
+
47
+ /**
48
+ * @notice Legacy same MPC move as {transfer}; kept for compatibility with older PoD tokens.
49
+ * @dev New allowance-based integrations should use {transferFromAsSpender}.
50
+ */
51
+ function transferFrom(address from, address to, gtUint256 value) external;
52
+
53
+ /**
54
+ * @notice Legacy plain-amount variant of {transferFrom}; kept for compatibility with older PoD tokens.
55
+ */
56
+ function transferFromPublic(address from, address to, uint256 value) external;
57
+
58
+ /**
59
+ * @notice Spender-aware transferFrom that consumes allowance on COTI before moving garbled `value`.
60
+ */
61
+ function transferFromAsSpender(address spender, address from, address to, gtUint256 value) external;
62
+
63
+ /**
64
+ * @notice Plain-amount variant of {transferFromAsSpender}.
65
+ */
66
+ function transferFromPublicAsSpender(address spender, address from, address to, uint256 value) external;
67
+
68
+ /**
69
+ * @notice Sets garbled allowance and `respond`s with owner- and spender-specific ciphertext of the same allowance amount.
70
+ * @dev On invalid addresses the implementation should `raise` rather than revert if you need PoD `approveError` symmetry.
71
+ */
72
+ function approve(address tokenOwner, address spender, gtUint256 value) external;
73
+
74
+ /**
75
+ * @notice Plain-amount variant of {approve}; COTI garbles via `MpcCore.setPublic256`.
76
+ */
77
+ function approvePublic(address tokenOwner, address spender, uint256 value) external;
78
+
79
+ /**
80
+ * @notice Subtracts `value` from `from` and responds with a burn-shaped tuple (`to == 0`, zero ciphertexts for receiver side).
81
+ */
82
+ function burn(address from, gtUint256 value) external;
83
+
84
+ /**
85
+ * @notice Plain-amount variant of {burn}; COTI garbles via `MpcCore.setPublic256`.
86
+ */
87
+ function burnPublic(address from, uint256 value) external;
88
+ }