@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.
- package/.github/workflows/npm-publish.yml +1 -1
- package/contracts/access/DataPrivacyFramework/DataPrivacyFramework.sol +1 -1
- package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +1 -1
- package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.sol +2 -4
- package/contracts/disperse/disperseToken/MintDisperser.sol +1 -3
- package/contracts/disperse/disperseToken/TokenDisperser.sol +1 -1
- package/contracts/messaging/PrivateMessaging.sol +456 -0
- package/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock.sol +1 -1
- package/contracts/mocks/messaging/PrivateMessagingHarness.sol +54 -0
- package/contracts/mocks/oracle/CotiPriceConsumerMock.sol +31 -0
- package/contracts/mocks/token/ERC20DecimalsMock.sol +21 -0
- package/contracts/mocks/token/ERC20Mock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +9 -4
- package/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.sol +1 -1
- package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.sol +1 -1
- package/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock.sol +1 -1
- package/contracts/mocks/utils/mpc/Arithmetic128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Arithmetic256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/ArithmeticAddTestsContract.sol +196 -0
- package/contracts/mocks/utils/mpc/ArithmeticMulTestsContract.sol +194 -0
- package/contracts/mocks/utils/mpc/ArithmeticSigned128TestsContract.sol +63 -0
- package/contracts/mocks/utils/mpc/ArithmeticSigned256TestsContract.sol +107 -0
- package/contracts/mocks/utils/mpc/ArithmeticSignedNarrowTestsContract.sol +123 -0
- package/contracts/mocks/utils/mpc/ArithmeticSubTestsContract.sol +196 -0
- package/contracts/mocks/utils/mpc/Bitwise128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Bitwise256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Comparison128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Comparison1TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Comparison256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/MinMax128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/MinMax256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/MinimalImplementation.sol +1 -1
- package/contracts/mocks/utils/mpc/MinimalProxy.sol +1 -1
- package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/MpcOperations128TestContract.sol +1 -1
- package/contracts/mocks/utils/mpc/MpcOperationsTestContract.sol +4 -4
- package/contracts/mocks/utils/mpc/Mux128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Mux256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +1 -1
- package/contracts/mocks/utils/mpc/OnBoard128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/OnBoard256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/PrivacyImplementationV1.sol +1 -1
- package/contracts/mocks/utils/mpc/PrivacyImplementationV2.sol +1 -1
- package/contracts/mocks/utils/mpc/PrivacyProxy.sol +1 -1
- package/contracts/mocks/utils/mpc/Random128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Random256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Shift128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Shift256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/StringTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Transfer128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/Transfer256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.sol +1 -1
- package/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.sol +2 -2
- package/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.sol +1 -1
- package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +1 -1
- package/contracts/node/CotiNodeRewards.sol +3 -3
- package/contracts/node/SoulboundNodeNFT.sol +23 -24
- package/contracts/onboard/AccountOnboard.sol +1 -1
- package/contracts/oracle/CotiPriceConsumer.sol +103 -0
- package/contracts/oracle/ICotiPriceConsumer.sol +15 -0
- package/contracts/oracle/IStdReference.sol +26 -0
- package/contracts/pod/IInbox.sol +231 -0
- package/contracts/pod/IInboxMiner.sol +53 -0
- package/contracts/pod/InboxUser.sol +29 -0
- package/contracts/pod/InboxUserCotiTestnet.sol +13 -0
- package/contracts/pod/PodNetworkConstants.sol +30 -0
- package/contracts/pod/examples/MpcAdder.sol +57 -0
- package/contracts/pod/examples/MpcAdderPausable.sol +25 -0
- package/contracts/pod/examples/MpcAdderPausable.sol.bak +25 -0
- package/contracts/pod/examples/it128/PodAdder128.sol +48 -0
- package/contracts/pod/examples/it256/PodAdder256.sol +48 -0
- package/contracts/pod/fee/IInboxFeeManager.sol +40 -0
- package/contracts/pod/manifest.json +52 -0
- package/contracts/pod/mpc/PodLib.sol +10 -0
- package/contracts/pod/mpc/PodLib128.sol +361 -0
- package/contracts/pod/mpc/PodLib256.sol +361 -0
- package/contracts/pod/mpc/PodLib64.sol +385 -0
- package/contracts/pod/mpc/PodLibBase.sol +72 -0
- package/contracts/pod/mpc/PodUser.sol +58 -0
- package/contracts/pod/mpc/PodUserFuji.sol +14 -0
- package/contracts/pod/mpc/PodUserSepolia.sol +13 -0
- package/contracts/pod/mpc/coti-side/IPodExecutorOps.sol +99 -0
- package/contracts/pod/mpccodec/MpcAbiCodec.sol +482 -0
- package/contracts/pod/privacy/IPodPriceOracle.sol +20 -0
- package/contracts/pod/privacy/IPrivacyPortal.sol +248 -0
- package/contracts/pod/privacy/IPrivacyPortalFactory.sol +88 -0
- package/contracts/pod/privacy/PortalFeeOracle.sol +51 -0
- package/contracts/pod/privacy/PrivacyPortal.sol +871 -0
- package/contracts/pod/privacy/PrivacyPortalFactory.sol +492 -0
- package/contracts/pod/privacy/PrivacyPortalFeeLib.sol +98 -0
- package/contracts/pod/privacy/mocks/CloneHelper.sol +14 -0
- package/contracts/pod/privacy/mocks/MockERC20.sol +26 -0
- package/contracts/pod/privacy/mocks/MockPodERC20ForPortal.sol +160 -0
- package/contracts/pod/privacy/mocks/MockPrivacyPortalFactory.sol +125 -0
- package/contracts/pod/privacy/mocks/MockWrappedNative.sol +24 -0
- package/contracts/pod/token/erc7984/Erc7984Constants.sol +9 -0
- package/contracts/pod/token/erc7984/Erc7984Pointers.sol +29 -0
- package/contracts/pod/token/erc7984/IERC7984.sol +69 -0
- package/contracts/pod/token/erc7984/IERC7984PortalWrapper.sol +31 -0
- package/contracts/pod/token/erc7984/PodErc7984Mixin.sol +125 -0
- package/contracts/pod/token/erc7984/README.md +60 -0
- package/contracts/pod/token/perc20/IPodERC20.sol +298 -0
- package/contracts/pod/token/perc20/PodERC20.sol +1021 -0
- package/contracts/pod/token/perc20/PodErc20Mintable.sol +88 -0
- package/contracts/pod/token/perc20/PodErc20MintableInitializable.sol +42 -0
- package/contracts/pod/token/perc20/cotiside/IPodErc20CotiSide.sol +88 -0
- package/contracts/pod/token/perc20/cotiside/PodErc20CotiMother.sol +529 -0
- package/contracts/pod/utils/IWrappedNative.sol +11 -0
- package/contracts/privacyBridge/PrivacyBridge.sol +376 -94
- package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +210 -162
- package/contracts/privacyBridge/PrivacyBridgeERC20.sol +242 -160
- package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +8 -2
- package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +8 -2
- package/contracts/privacyBridge/PrivacyBridgeWADA.sol +8 -2
- package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +8 -2
- package/contracts/privacyBridge/PrivacyBridgeWETH.sol +8 -2
- package/contracts/privacyBridge/PrivacyBridgegCoti.sol +8 -2
- package/contracts/token/PrivateERC20/IPrivateERC20.sol +1 -1
- package/contracts/token/PrivateERC20/ITokenReceiver.sol +1 -1
- package/contracts/token/PrivateERC20/ITokenReceiverEncrypted.sol +1 -1
- package/contracts/token/PrivateERC20/PrivateERC20.sol +5 -5
- package/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.sol +1 -1
- package/contracts/token/PrivateERC20/tokens/PrivateCOTI.sol +1 -1
- package/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.sol +1 -1
- package/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.sol +1 -1
- package/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.sol +1 -1
- package/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.sol +1 -1
- package/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.sol +1 -1
- package/contracts/token/PrivateERC721/IERC721Errors.sol +1 -1
- package/contracts/token/PrivateERC721/PrivateERC721.sol +1 -1
- package/contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage.sol +1 -1
- package/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.sol +1 -1
- package/contracts/token/points/CotiTokenPoints004.sol +43 -0
- package/contracts/utils/mpc/MpcCore.sol +610 -1
- package/contracts/utils/mpc/MpcInterface.sol +1 -1
- package/hardhat.config.ts +9 -15
- package/package.json +4 -4
- package/scripts/add-bridge-operators.cjs +87 -0
- package/scripts/deploy-coti-price-consumer-mainnet.cjs +49 -0
- package/scripts/deployCotiNodeRewards.ts +51 -0
- package/scripts/deployCotiTokenPoints004.ts +61 -0
- package/scripts/deployFixedRatioCoinDisperserUnlimitedWindow.ts +68 -0
- package/scripts/redeploy-private-and-bridges.cjs +201 -0
- package/scripts/set-bridge-limits-mainnet.cjs +177 -0
- package/scripts/verify-mainnet-private-bridges.cjs +289 -0
- package/scripts/verifyCotiTokenPoints004.ts +123 -0
- package/scripts/verifyFixedRatioCoinDisperserUnlimitedWindow.ts +112 -0
- package/sonar-project.properties +11 -0
- package/test/messaging/PrivateMessaging.test.ts +158 -0
- package/test/pod/privacy/PrivacyPortal.access.test.ts +756 -0
- package/test/pod/privacy/PrivacyPortal.recovery.test.ts +263 -0
- package/test/privacyBridge/UnifiedPrivacyBridges.test.cjs +1665 -0
- package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +162 -239
- package/test/utils/mpc/CheckedSignedArithmetic256.test.ts +163 -0
- package/test/utils/mpc/NegativeCases.test.ts +3 -3
- package/test/utils/mpc/Precompile.test.ts +6 -6
- package/typechain-types/@openzeppelin/contracts/access/AccessControl.ts +324 -0
- package/typechain-types/@openzeppelin/contracts/access/AccessControlEnumerable.ts +361 -0
- package/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts +292 -0
- package/typechain-types/@openzeppelin/contracts/access/IAccessControlEnumerable.ts +329 -0
- package/typechain-types/@openzeppelin/contracts/access/extensions/AccessControlEnumerable.ts +375 -0
- package/typechain-types/@openzeppelin/contracts/access/extensions/IAccessControlEnumerable.ts +329 -0
- package/typechain-types/@openzeppelin/contracts/access/extensions/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts/access/index.ts +6 -0
- package/typechain-types/@openzeppelin/contracts/index.ts +2 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.ts +412 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts +151 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/security/Pausable.ts +150 -0
- package/typechain-types/@openzeppelin/contracts/security/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts +286 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +6 -6
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts +313 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.ts +356 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.ts +423 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +286 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +3 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/utils/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.ts +420 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.ts +420 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC721/index.ts +3 -0
- package/typechain-types/@openzeppelin/contracts/utils/Nonces.ts +85 -0
- package/typechain-types/@openzeppelin/contracts/utils/Pausable.ts +150 -0
- package/typechain-types/@openzeppelin/contracts/utils/ReentrancyGuard.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/ShortStrings.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/Strings.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.ts +151 -0
- package/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts/utils/index.ts +9 -0
- package/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/math/index.ts +4 -0
- package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.ts +735 -0
- package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.ts +734 -0
- package/typechain-types/contracts/disperse/coinByRatio/index.ts +2 -0
- package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable.ts +95 -0
- package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser.ts +22 -0
- package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
- package/typechain-types/contracts/index.ts +8 -0
- package/typechain-types/contracts/messaging/PrivateMessaging.ts +871 -0
- package/typechain-types/contracts/messaging/index.ts +4 -0
- package/typechain-types/contracts/mocks/index.ts +4 -0
- package/typechain-types/contracts/mocks/messaging/PrivateMessagingHarness.ts +951 -0
- package/typechain-types/contracts/mocks/messaging/index.ts +4 -0
- package/typechain-types/contracts/mocks/oracle/CotiPriceConsumerMock.ts +163 -0
- package/typechain-types/contracts/mocks/oracle/index.ts +4 -0
- package/typechain-types/contracts/mocks/token/ERC20DecimalsMock.ts +305 -0
- package/typechain-types/contracts/mocks/token/ERC20Mock.ts +324 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.ts +108 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.ts +1906 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.ts +1296 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.ts +1270 -0
- package/typechain-types/contracts/mocks/{utils/mpc/Bitwise128BitTestsContract.ts → token/PrivateERC20/PrivateERC20GtCallerMock.ts} +47 -67
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +757 -25
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted.ts +102 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock.ts +154 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.ts +155 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.ts +107 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.ts +100 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/index.ts +10 -0
- package/typechain-types/contracts/mocks/token/index.ts +2 -0
- package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.ts +6 -6
- package/typechain-types/contracts/node/CotiNodeRewards.ts +566 -0
- package/typechain-types/contracts/node/SoulboundNodeNFT.sol/IERC5192.ts +123 -0
- package/typechain-types/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT.ts +975 -0
- package/typechain-types/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
- package/typechain-types/contracts/node/index.ts +6 -0
- package/typechain-types/contracts/oracle/CotiPriceConsumer.ts +256 -0
- package/typechain-types/contracts/oracle/ICotiPriceConsumer.ts +119 -0
- package/typechain-types/contracts/oracle/IStdReference.ts +136 -0
- package/typechain-types/contracts/oracle/index.ts +6 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridge.ts +1642 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeCotiNative.ts +1884 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals.ts +84 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20.ts +1906 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDCe.ts +1906 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDT.ts +1906 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeWADA.ts +1906 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeWBTC.ts +1906 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeWETH.ts +1906 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgegCoti.ts +1906 -0
- package/typechain-types/contracts/privacyBridge/index.ts +13 -0
- package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +439 -19
- package/typechain-types/contracts/token/PrivateERC20/ITokenReceiver.ts +100 -0
- package/typechain-types/contracts/token/PrivateERC20/ITokenReceiverEncrypted.ts +99 -0
- package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +763 -15
- package/typechain-types/contracts/token/PrivateERC20/index.ts +4 -0
- package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.ts +1270 -0
- package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTI.ts +1270 -0
- package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.ts +1270 -0
- package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.ts +1270 -0
- package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.ts +1270 -0
- package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.ts +1270 -0
- package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.ts +1270 -0
- package/typechain-types/contracts/token/PrivateERC20/tokens/index.ts +10 -0
- package/typechain-types/contracts/token/index.ts +2 -0
- package/typechain-types/contracts/token/points/CotiTokenPoints004.sol/COTITokenPoints004.ts +826 -0
- package/typechain-types/contracts/token/points/CotiTokenPoints004.ts +826 -0
- package/typechain-types/contracts/token/points/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/AccessControlEnumerable__factory.ts +276 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/AccessControl__factory.ts +250 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControlEnumerable__factory.ts +244 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +218 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +22 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/extensions/AccessControlEnumerable__factory.ts +316 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/extensions/IAccessControlEnumerable__factory.ts +265 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/extensions/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts/index.ts +1 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.ts +393 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.ts +71 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +127 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +111 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +128 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +3 -0
- package/typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts +61 -0
- package/typechain-types/factories/@openzeppelin/contracts/security/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +330 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +3 -3
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts +364 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable__factory.ts +382 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit__factory.ts +540 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +247 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +2 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.ts +96 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.ts +455 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata__factory.ts +355 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/index.ts +2 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Nonces__factory.ts +57 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Pausable__factory.ts +71 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/ReentrancyGuard__factory.ts +30 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.ts +83 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts +90 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +91 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/EIP712__factory.ts +87 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +7 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +118 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts +4 -0
- package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1__factory.ts +802 -0
- package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow__factory.ts +749 -0
- package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +12 -1
- package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +2 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable__factory.ts +35 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +41 -1
- package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +12 -1
- package/typechain-types/factories/contracts/index.ts +4 -0
- package/typechain-types/factories/contracts/messaging/PrivateMessaging__factory.ts +1035 -0
- package/typechain-types/factories/contracts/messaging/index.ts +4 -0
- package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/index.ts +2 -0
- package/typechain-types/factories/contracts/mocks/messaging/PrivateMessagingHarness__factory.ts +1161 -0
- package/typechain-types/factories/contracts/mocks/messaging/index.ts +4 -0
- package/typechain-types/factories/contracts/mocks/oracle/CotiPriceConsumerMock__factory.ts +159 -0
- package/typechain-types/factories/contracts/mocks/oracle/index.ts +4 -0
- package/typechain-types/factories/contracts/mocks/token/ERC20DecimalsMock__factory.ts +432 -0
- package/typechain-types/factories/contracts/mocks/token/ERC20Mock__factory.ts +430 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock__factory.ts +125 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock__factory.ts +1885 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock__factory.ts +1540 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock__factory.ts +1492 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock__factory.ts +165 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +794 -52
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted__factory.ts +54 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock__factory.ts +159 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock__factory.ts +164 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock__factory.ts +130 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock__factory.ts +102 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/index.ts +9 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/index.ts +2 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +4 -22
- package/typechain-types/factories/contracts/node/CotiNodeRewards__factory.ts +576 -0
- package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/IERC5192__factory.ts +54 -0
- package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT__factory.ts +1072 -0
- package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/node/index.ts +5 -0
- package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +1 -1
- package/typechain-types/factories/contracts/oracle/CotiPriceConsumer__factory.ts +295 -0
- package/typechain-types/factories/contracts/oracle/ICotiPriceConsumer__factory.ts +73 -0
- package/typechain-types/factories/contracts/oracle/IStdReference__factory.ts +107 -0
- package/typechain-types/factories/contracts/oracle/index.ts +6 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeCotiNative__factory.ts +1753 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals__factory.ts +38 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20__factory.ts +1766 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDCe__factory.ts +1870 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDT__factory.ts +1870 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWADA__factory.ts +1870 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWBTC__factory.ts +1870 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWETH__factory.ts +1870 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridge__factory.ts +1444 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgegCoti__factory.ts +1870 -0
- package/typechain-types/factories/contracts/privacyBridge/index.ts +12 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +481 -35
- package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiverEncrypted__factory.ts +53 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiver__factory.ts +54 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +812 -52
- package/typechain-types/factories/contracts/token/PrivateERC20/index.ts +3 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC__factory.ts +1471 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken__factory.ts +1477 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTI__factory.ts +1468 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateTetherUSD__factory.ts +1471 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedADA__factory.ts +1471 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC__factory.ts +1471 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedEther__factory.ts +1477 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/index.ts +10 -0
- package/typechain-types/factories/contracts/token/index.ts +1 -0
- package/typechain-types/factories/contracts/token/points/CotiTokenPoints004.sol/COTITokenPoints004__factory.ts +992 -0
- package/typechain-types/factories/contracts/token/points/CotiTokenPoints004__factory.ts +992 -0
- package/typechain-types/factories/contracts/token/points/index.ts +4 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +1414 -118
- package/typechain-types/index.ts +138 -2
- package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +0 -408
- package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.ts +0 -341
- package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +0 -347
- package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +0 -186
- package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +0 -260
- package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +0 -260
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +0 -302
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +0 -322
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +0 -349
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +0 -364
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +0 -182
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +0 -182
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +0 -255
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +0 -255
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +0 -332
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +0 -380
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import "./IPrivacyPortalFactory.sol";
|
|
5
|
+
|
|
6
|
+
/// @title IPrivacyPortal
|
|
7
|
+
/// @notice Source-chain portal interface for locking public ERC20 collateral and minting/burning private pTokens.
|
|
8
|
+
/// @dev Public deposit/withdraw amounts are visible in calldata and events. Privacy-sensitive integrations should use encrypted pToken APIs where available after entering the private token system.
|
|
9
|
+
interface IPrivacyPortal {
|
|
10
|
+
/// @notice Withdrawal lifecycle tracked by the portal.
|
|
11
|
+
enum WithdrawalStatus {
|
|
12
|
+
/// @notice No withdrawal exists for the id.
|
|
13
|
+
None,
|
|
14
|
+
/// @notice pToken transfer to the portal has been requested but not yet released.
|
|
15
|
+
TransferPending,
|
|
16
|
+
/// @notice Underlying collateral was released to the recipient.
|
|
17
|
+
Released,
|
|
18
|
+
/// @notice Async pToken transfer failed; withdrawal abandoned without releasing collateral.
|
|
19
|
+
Failed
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/// @notice Deposit escrow lifecycle for collateral locked pending async mint.
|
|
23
|
+
enum DepositEscrowStatus {
|
|
24
|
+
/// @notice No escrow exists for the mint request id.
|
|
25
|
+
None,
|
|
26
|
+
/// @notice Underlying is locked awaiting mint success or failure.
|
|
27
|
+
Pending,
|
|
28
|
+
/// @notice Mint request hit an Inbox system error; collateral is eligible for refund.
|
|
29
|
+
Failed,
|
|
30
|
+
/// @notice Underlying was returned to the depositor after a failed mint.
|
|
31
|
+
Refunded
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/// @notice Escrow of public collateral locked for an async pToken mint.
|
|
35
|
+
struct DepositEscrow {
|
|
36
|
+
/// @notice User who deposited the underlying (refund recipient).
|
|
37
|
+
address user;
|
|
38
|
+
/// @notice Intended pToken mint recipient.
|
|
39
|
+
address recipient;
|
|
40
|
+
/// @notice Locked underlying amount.
|
|
41
|
+
uint256 amount;
|
|
42
|
+
/// @notice Escrow lifecycle status.
|
|
43
|
+
DepositEscrowStatus status;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/// @notice Withdrawal request state stored by withdrawal id.
|
|
47
|
+
struct Withdrawal {
|
|
48
|
+
/// @notice User whose pTokens are transferred into portal custody.
|
|
49
|
+
address user;
|
|
50
|
+
/// @notice Recipient of the public underlying ERC20.
|
|
51
|
+
address recipient;
|
|
52
|
+
/// @notice Public withdrawal amount.
|
|
53
|
+
uint256 amount;
|
|
54
|
+
/// @notice Async pToken transfer request that must succeed before release.
|
|
55
|
+
bytes32 transferRequestId;
|
|
56
|
+
/// @notice Current withdrawal lifecycle status.
|
|
57
|
+
WithdrawalStatus status;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/// @notice Initialize a clone portal.
|
|
61
|
+
/// @param underlyingToken Public ERC20 locked and released by this portal (WETH/WAVAX when native-wrapped).
|
|
62
|
+
/// @param pToken PoD pToken minted and burned for the underlying token.
|
|
63
|
+
/// @param decimals Token decimals exposed for UI compatibility.
|
|
64
|
+
/// @param nativeWrappedUnderlying When true, {depositNative} accepts native coin (wraps in-contract); withdraw releases wrapped underlying ERC20.
|
|
65
|
+
/// @param factory PrivacyPortalFactory (admin, fees, pause, blacklist, rescue, operators).
|
|
66
|
+
function initialize(
|
|
67
|
+
address underlyingToken,
|
|
68
|
+
address pToken,
|
|
69
|
+
uint8 decimals,
|
|
70
|
+
bool nativeWrappedUnderlying,
|
|
71
|
+
address factory
|
|
72
|
+
) external;
|
|
73
|
+
|
|
74
|
+
/// @notice Factory that created / binds this portal.
|
|
75
|
+
function factory() external view returns (address);
|
|
76
|
+
|
|
77
|
+
/// @notice Whether this portal accepts native coin on deposit via {depositNative}.
|
|
78
|
+
function nativeWrappedUnderlying() external view returns (bool);
|
|
79
|
+
|
|
80
|
+
/// @notice Accumulated portal protocol fees awaiting sweep.
|
|
81
|
+
function accumulatedPortalFees() external view returns (uint256);
|
|
82
|
+
|
|
83
|
+
/// @notice pToken amount held in portal custody pending factory-admin batch burn.
|
|
84
|
+
function pendingBurnAmount() external view returns (uint256);
|
|
85
|
+
|
|
86
|
+
/// @notice Lock public ERC20 and request a private pToken mint.
|
|
87
|
+
/// @param recipient Address receiving private pTokens on successful async mint.
|
|
88
|
+
/// @param amount Public amount to deposit; visible on-chain.
|
|
89
|
+
/// @param portalFee Portal protocol fee collected by this portal.
|
|
90
|
+
/// @param mintCallbackFee Native fee slice for the mint callback.
|
|
91
|
+
/// @return requestId Async pToken mint request id.
|
|
92
|
+
function deposit(address recipient, uint256 amount, uint256 portalFee, uint256 mintCallbackFee)
|
|
93
|
+
external
|
|
94
|
+
payable
|
|
95
|
+
returns (bytes32 requestId);
|
|
96
|
+
|
|
97
|
+
/// @notice Wrap native coin into the underlying WETH/WAVAX, then mint pTokens (single tx).
|
|
98
|
+
/// @dev Requires {nativeWrappedUnderlying}. `msg.value` must equal `amount + mintFee + portalFee`.
|
|
99
|
+
/// @param recipient Address receiving private pTokens on successful async mint.
|
|
100
|
+
/// @param amount Native amount to wrap and lock (wei).
|
|
101
|
+
/// @param portalFee Portal protocol fee collected by this portal.
|
|
102
|
+
/// @param mintCallbackFee Native fee slice for the mint callback.
|
|
103
|
+
/// @return requestId Async pToken mint request id.
|
|
104
|
+
function depositNative(
|
|
105
|
+
address recipient,
|
|
106
|
+
uint256 amount,
|
|
107
|
+
uint256 portalFee,
|
|
108
|
+
uint256 mintCallbackFee
|
|
109
|
+
) external payable returns (bytes32 requestId);
|
|
110
|
+
|
|
111
|
+
/// @notice Request withdrawal by permitting and transferring pTokens into portal custody, then releasing after async success.
|
|
112
|
+
/// @dev `msg.value` must equal `transferFee + portalFee`. pTokens are batch-burned separately by the portal owner.
|
|
113
|
+
/// @param recipient Public underlying recipient (wrapped ERC20 for native portals).
|
|
114
|
+
/// @param amount Public amount to withdraw.
|
|
115
|
+
/// @param portalFee Portal protocol fee collected by this portal.
|
|
116
|
+
/// @param transferFee Native fee paid for the pToken transfer request.
|
|
117
|
+
/// @param transferCallbackFee Native fee slice for the pToken transfer callback.
|
|
118
|
+
/// @param permitDeadline Permit expiry timestamp.
|
|
119
|
+
/// @param v Permit signature v.
|
|
120
|
+
/// @param r Permit signature r.
|
|
121
|
+
/// @param s Permit signature s.
|
|
122
|
+
/// @return withdrawalId Portal withdrawal id.
|
|
123
|
+
/// @return transferRequestId Async pToken transfer request id.
|
|
124
|
+
function requestWithdrawWithPermit(
|
|
125
|
+
address recipient,
|
|
126
|
+
uint256 amount,
|
|
127
|
+
uint256 portalFee,
|
|
128
|
+
uint256 transferFee,
|
|
129
|
+
uint256 transferCallbackFee,
|
|
130
|
+
uint256 permitDeadline,
|
|
131
|
+
uint8 v,
|
|
132
|
+
bytes32 r,
|
|
133
|
+
bytes32 s
|
|
134
|
+
) external payable returns (bytes32 withdrawalId, bytes32 transferRequestId);
|
|
135
|
+
|
|
136
|
+
/// @notice Callback entry point used by the pToken after a transfer-to-portal succeeds.
|
|
137
|
+
function onPTokenTransferred(bytes32 withdrawalId) external;
|
|
138
|
+
|
|
139
|
+
/// @notice Manually release a pending withdrawal after its pToken transfer request is marked successful.
|
|
140
|
+
function triggerWithdrawalRelease(bytes32 withdrawalId) external;
|
|
141
|
+
|
|
142
|
+
/// @notice Refund underlying collateral after a mint Inbox system error
|
|
143
|
+
/// (`pToken.requests(requestId).status == SystemFailed`).
|
|
144
|
+
/// @dev App `raise` / `Failed` is not refundable (mint should not raise). Portal protocol fee is kept.
|
|
145
|
+
/// Permissionless: anyone may call; underlying is always sent to the original depositor.
|
|
146
|
+
/// @param requestId Mint request id returned by {deposit} / {depositNative} / {wrap}.
|
|
147
|
+
function refundFailedDeposit(bytes32 requestId) external;
|
|
148
|
+
|
|
149
|
+
/// @notice Mark a pending withdrawal as Failed after its pToken transfer request fails.
|
|
150
|
+
/// @dev Does not release underlying; user retains pTokens. Portal protocol fee is kept.
|
|
151
|
+
/// @param withdrawalId Portal withdrawal id from {requestWithdrawWithPermit}.
|
|
152
|
+
function cancelFailedWithdrawal(bytes32 withdrawalId) external;
|
|
153
|
+
|
|
154
|
+
/// @notice Escrow state for a deposit mint request id.
|
|
155
|
+
function depositEscrows(bytes32 requestId)
|
|
156
|
+
external
|
|
157
|
+
view
|
|
158
|
+
returns (address user, address recipient, uint256 amount, DepositEscrowStatus status);
|
|
159
|
+
|
|
160
|
+
/// @notice Owner batch-burn for pTokens accumulated from completed withdrawals.
|
|
161
|
+
function burnAccumulatedPTokens(uint256 amount, uint256 burnCallbackFee)
|
|
162
|
+
external
|
|
163
|
+
payable
|
|
164
|
+
returns (bytes32 burnRequestId);
|
|
165
|
+
|
|
166
|
+
/// @notice Set per-portal deposit fee override; zero packed config clears override.
|
|
167
|
+
/// @dev Caller must hold factory {OPERATOR_ROLE}.
|
|
168
|
+
function setDepositFee(uint256 fixedFee, uint256 percentageBps, uint256 maxFee) external;
|
|
169
|
+
|
|
170
|
+
/// @notice Set per-portal withdraw fee override.
|
|
171
|
+
function setWithdrawFee(uint256 fixedFee, uint256 percentageBps, uint256 maxFee) external;
|
|
172
|
+
|
|
173
|
+
/// @notice Clear per-portal deposit fee override (inherit factory default).
|
|
174
|
+
function clearDepositFeeOverride() external;
|
|
175
|
+
|
|
176
|
+
/// @notice Clear per-portal withdraw fee override (inherit factory default).
|
|
177
|
+
function clearWithdrawFeeOverride() external;
|
|
178
|
+
|
|
179
|
+
/// @notice Maximum amount that can be deposited in a single transaction.
|
|
180
|
+
function maxDepositAmount() external view returns (uint256);
|
|
181
|
+
|
|
182
|
+
/// @notice Maximum amount that can be withdrawn in a single transaction.
|
|
183
|
+
function maxWithdrawAmount() external view returns (uint256);
|
|
184
|
+
|
|
185
|
+
/// @notice Minimum amount required for a deposit.
|
|
186
|
+
function minDepositAmount() external view returns (uint256);
|
|
187
|
+
|
|
188
|
+
/// @notice Minimum amount required for a withdrawal.
|
|
189
|
+
function minWithdrawAmount() external view returns (uint256);
|
|
190
|
+
|
|
191
|
+
/// @notice Update per-portal deposit and withdrawal amount limits.
|
|
192
|
+
/// @dev Setting `maxDeposit` or `maxWithdraw` to zero disables that operation.
|
|
193
|
+
function setLimits(
|
|
194
|
+
uint256 minDeposit,
|
|
195
|
+
uint256 maxDeposit,
|
|
196
|
+
uint256 minWithdraw,
|
|
197
|
+
uint256 maxWithdraw
|
|
198
|
+
) external;
|
|
199
|
+
|
|
200
|
+
/// @notice Sweep accumulated portal protocol fees to the factory fee recipient.
|
|
201
|
+
function withdrawPortalFees(uint256 amount) external;
|
|
202
|
+
|
|
203
|
+
/// @notice Rescue native to the factory {rescueRecipient} while paused.
|
|
204
|
+
function rescueNative(uint256 amount) external;
|
|
205
|
+
|
|
206
|
+
/// @notice Rescue ERC20 to the factory {rescueRecipient} while paused (not the paired pToken).
|
|
207
|
+
function rescueERC20(address token, uint256 amount) external;
|
|
208
|
+
|
|
209
|
+
/// @notice Estimate deposit fees for UI quoting.
|
|
210
|
+
function estimateDepositFees(uint256 amount)
|
|
211
|
+
external
|
|
212
|
+
view
|
|
213
|
+
returns (
|
|
214
|
+
uint256 portalFee,
|
|
215
|
+
bool usedDynamicPricing,
|
|
216
|
+
uint256 mintTotalFee,
|
|
217
|
+
uint256 mintCallbackFee
|
|
218
|
+
);
|
|
219
|
+
|
|
220
|
+
/// @notice Estimate withdraw fees for UI quoting.
|
|
221
|
+
function estimateWithdrawFees(uint256 amount)
|
|
222
|
+
external
|
|
223
|
+
view
|
|
224
|
+
returns (
|
|
225
|
+
uint256 portalFee,
|
|
226
|
+
bool usedDynamicPricing,
|
|
227
|
+
uint256 transferTotalFee,
|
|
228
|
+
uint256 transferCallbackFee
|
|
229
|
+
);
|
|
230
|
+
|
|
231
|
+
/// @notice Estimate batch burn inbox fees for keeper UI.
|
|
232
|
+
function estimateBatchBurnFees(uint256 amount)
|
|
233
|
+
external
|
|
234
|
+
view
|
|
235
|
+
returns (uint256 burnTotalFee, uint256 burnCallbackFee);
|
|
236
|
+
|
|
237
|
+
/// @notice Effective fee config for this portal (override when set, else factory default).
|
|
238
|
+
/// @param isDeposit True for deposit/wrap fees; false for withdraw fees.
|
|
239
|
+
function getFeeConfig(bool isDeposit) external view returns (PortalFeeConfig memory config);
|
|
240
|
+
|
|
241
|
+
/// @notice Per-portal fee override for a direction, when configured.
|
|
242
|
+
/// @return config Unpacked override parameters when `isSet` is true.
|
|
243
|
+
/// @return isSet True when this portal overrides the factory default for that direction.
|
|
244
|
+
function getFeeConfigOverride(bool isDeposit)
|
|
245
|
+
external
|
|
246
|
+
view
|
|
247
|
+
returns (PortalFeeConfig memory config, bool isSet);
|
|
248
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import "./IPodPriceOracle.sol";
|
|
5
|
+
|
|
6
|
+
/// @notice Unpacked portal fee parameters (`fixedFee` and `maxFee` in native wei; `percentageBps` / 1_000_000).
|
|
7
|
+
struct PortalFeeConfig {
|
|
8
|
+
uint256 fixedFee;
|
|
9
|
+
uint256 percentageBps;
|
|
10
|
+
uint256 maxFee;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// @notice Pause flags exposed by the factory (and readable by portal clones).
|
|
14
|
+
/// @dev Both views reflect the same {Pausable.paused} state after factory {pause}/{unpause}.
|
|
15
|
+
interface IPrivacyPortalPauseController {
|
|
16
|
+
/// @notice Whether new withdrawal requests should revert.
|
|
17
|
+
function withdrawalsPaused() external view returns (bool);
|
|
18
|
+
|
|
19
|
+
/// @notice Whether new deposits / wraps should revert.
|
|
20
|
+
function depositsPaused() external view returns (bool);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// @notice Factory-level address blocklist read by portal clones before user entry points.
|
|
24
|
+
interface IPrivacyPortalBlacklistController {
|
|
25
|
+
/// @notice Whether `account` is blocked from deposits and withdrawals on factory portals.
|
|
26
|
+
function blacklisted(address account) external view returns (bool);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/// @title IPrivacyPortalFactory
|
|
30
|
+
/// @notice Factory surface used by portal clones for pause control, blacklist, fees, and operators.
|
|
31
|
+
interface IPrivacyPortalFactory is IPrivacyPortalPauseController, IPrivacyPortalBlacklistController {
|
|
32
|
+
/// @notice Primary factory admin for tooling (`Ownable.owner()`-shaped).
|
|
33
|
+
function owner() external view returns (address);
|
|
34
|
+
|
|
35
|
+
/// @notice Whether `account` holds factory {DEFAULT_ADMIN_ROLE} (portal admin / pause / rescue / limits).
|
|
36
|
+
function isAdmin(address account) external view returns (bool);
|
|
37
|
+
|
|
38
|
+
/// @notice Whether `account` holds factory {OPERATOR_ROLE} (portal fee / soft-deposit controls).
|
|
39
|
+
function isOperator(address account) external view returns (bool);
|
|
40
|
+
|
|
41
|
+
/// @notice Recipient of swept portal protocol fees (fixed at factory deploy).
|
|
42
|
+
function feeRecipient() external view returns (address);
|
|
43
|
+
|
|
44
|
+
/// @notice Catastrophe rescue destination used by portals from this factory.
|
|
45
|
+
function rescueRecipient() external view returns (address);
|
|
46
|
+
|
|
47
|
+
/// @notice Wrapped native token on this chain (WETH/WAVAX) used for portal fee gas pricing.
|
|
48
|
+
function nativeToken() external view returns (address);
|
|
49
|
+
|
|
50
|
+
/// @notice Optional USD oracle for dynamic portal fees; zero disables dynamic pricing.
|
|
51
|
+
function priceOracle() external view returns (IPodPriceOracle);
|
|
52
|
+
|
|
53
|
+
/// @notice Factory default packed deposit fee config.
|
|
54
|
+
function defaultDepositFeePacked() external view returns (bytes32);
|
|
55
|
+
|
|
56
|
+
/// @notice Factory default packed withdraw fee config.
|
|
57
|
+
function defaultWithdrawFeePacked() external view returns (bytes32);
|
|
58
|
+
|
|
59
|
+
/// @notice Estimate deposit portal fee for an underlying and amount.
|
|
60
|
+
function estimateDepositPortalFee(address underlying, uint256 amount, uint8 decimals)
|
|
61
|
+
external
|
|
62
|
+
view
|
|
63
|
+
returns (uint256 fee, bool usedDynamicPricing);
|
|
64
|
+
|
|
65
|
+
/// @notice Estimate withdraw portal fee for an underlying and amount.
|
|
66
|
+
function estimateWithdrawPortalFee(address underlying, uint256 amount, uint8 decimals)
|
|
67
|
+
external
|
|
68
|
+
view
|
|
69
|
+
returns (uint256 fee, bool usedDynamicPricing);
|
|
70
|
+
|
|
71
|
+
/// @notice Live-oracle deposit portal fee floor for tx validation.
|
|
72
|
+
function getDepositPortalFeeFloor(address underlying, uint256 amount, uint8 decimals)
|
|
73
|
+
external
|
|
74
|
+
view
|
|
75
|
+
returns (uint256 floor, uint128 maxFee);
|
|
76
|
+
|
|
77
|
+
/// @notice Live-oracle withdraw portal fee floor for tx validation.
|
|
78
|
+
function getWithdrawPortalFeeFloor(address underlying, uint256 amount, uint8 decimals)
|
|
79
|
+
external
|
|
80
|
+
view
|
|
81
|
+
returns (uint256 floor, uint128 maxFee);
|
|
82
|
+
|
|
83
|
+
/// @notice Factory default fee config for deposits (`isDeposit == true`) or withdrawals.
|
|
84
|
+
function getFeeConfig(bool isDeposit) external view returns (PortalFeeConfig memory config);
|
|
85
|
+
|
|
86
|
+
/// @notice Decode any packed fee config slot (e.g. from storage or events).
|
|
87
|
+
function decodeFeeConfig(bytes32 packed) external pure returns (PortalFeeConfig memory config);
|
|
88
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import "@openzeppelin/contracts/access/Ownable.sol";
|
|
5
|
+
import "./IPodPriceOracle.sol";
|
|
6
|
+
|
|
7
|
+
/// @title PortalFeeOracle
|
|
8
|
+
/// @notice Testnet/manual oracle: all live reads return admin-set pegs (no external feeds).
|
|
9
|
+
/// @dev Trust model: `owner` fully controls rates. Zero prices disable dynamic portal fees (fixed fee only).
|
|
10
|
+
contract PortalFeeOracle is IPodPriceOracle, Ownable {
|
|
11
|
+
/// @notice USD peg per token (18 decimals per whole token).
|
|
12
|
+
mapping(address => uint256) public tokenPriceUSD;
|
|
13
|
+
|
|
14
|
+
/// @notice USD peg must be non-zero.
|
|
15
|
+
error ZeroUsdPrice();
|
|
16
|
+
|
|
17
|
+
/// @notice Token address was zero.
|
|
18
|
+
error ZeroToken();
|
|
19
|
+
|
|
20
|
+
event TokenPriceUpdated(address indexed token, uint256 priceUsd);
|
|
21
|
+
|
|
22
|
+
/// @param initialOwner Admin allowed to set rates.
|
|
23
|
+
constructor(address initialOwner) Ownable(initialOwner) {}
|
|
24
|
+
|
|
25
|
+
/// @notice Set USD peg for `token`.
|
|
26
|
+
/// @param priceUsd 18-decimal USD per whole token (must be non-zero).
|
|
27
|
+
function setTokenPriceUSD(address token, uint256 priceUsd) external onlyOwner {
|
|
28
|
+
if (token == address(0)) {
|
|
29
|
+
revert ZeroToken();
|
|
30
|
+
}
|
|
31
|
+
if (priceUsd == 0) {
|
|
32
|
+
revert ZeroUsdPrice();
|
|
33
|
+
}
|
|
34
|
+
tokenPriceUSD[token] = priceUsd;
|
|
35
|
+
emit TokenPriceUpdated(token, priceUsd);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/// @inheritdoc IPodPriceOracle
|
|
39
|
+
function getLivePrice(address token) external view returns (uint256 priceUsd) {
|
|
40
|
+
return tokenPriceUSD[token];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/// @inheritdoc IPodPriceOracle
|
|
44
|
+
function getLivePrices(address nativeToken, address collateralToken)
|
|
45
|
+
external
|
|
46
|
+
view
|
|
47
|
+
returns (uint256 nativeUsd, uint256 collateralUsd)
|
|
48
|
+
{
|
|
49
|
+
return (tokenPriceUSD[nativeToken], tokenPriceUSD[collateralToken]);
|
|
50
|
+
}
|
|
51
|
+
}
|