@coti-io/coti-contracts 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/npm-publish.yml +1 -1
- package/contracts/messaging/PrivateMessaging.sol +456 -0
- 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/PrivateERC20/PrivacyBridgeERC20Mock.sol +8 -3
- package/contracts/node/SoulboundNodeNFT.sol +22 -22
- package/contracts/oracle/CotiPriceConsumer.sol +103 -0
- package/contracts/oracle/ICotiPriceConsumer.sol +15 -0
- package/contracts/oracle/IStdReference.sol +26 -0
- package/contracts/privacyBridge/PrivacyBridge.sol +373 -91
- package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +209 -161
- package/contracts/privacyBridge/PrivacyBridgeERC20.sol +241 -159
- package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +7 -1
- package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +7 -1
- package/contracts/privacyBridge/PrivacyBridgeWADA.sol +7 -1
- package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +7 -1
- package/contracts/privacyBridge/PrivacyBridgeWETH.sol +7 -1
- package/contracts/privacyBridge/PrivacyBridgegCoti.sol +7 -1
- package/hardhat.config.ts +5 -2
- package/package.json +2 -2
- 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/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/sonar-project.properties +11 -0
- package/test/messaging/PrivateMessaging.test.ts +158 -0
- package/test/privacyBridge/UnifiedPrivacyBridges.test.cjs +1663 -0
- package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +162 -239
- 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/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/index.ts +2 -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 +330 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +286 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +1 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +1 -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/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 +349 -0
- package/typechain-types/contracts/mocks/token/ERC20Mock.ts +368 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.ts +108 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.ts +1892 -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 +1628 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeCotiNative.ts +1870 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals.ts +84 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20.ts +1892 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDCe.ts +1892 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDT.ts +1892 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeWADA.ts +1892 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeWBTC.ts +1892 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgeWETH.ts +1892 -0
- package/typechain-types/contracts/privacyBridge/PrivacyBridgegCoti.ts +1892 -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/factories/@openzeppelin/contracts/access/AccessControlEnumerable__factory.ts +276 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/AccessControl__factory.ts +229 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControlEnumerable__factory.ts +244 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +197 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/index.ts +1 -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 +356 -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 +1 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +1 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.ts +416 -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/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1__factory.ts +791 -0
- package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow__factory.ts +711 -0
- package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +1 -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 +19 -1
- package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +1 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +1 -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 +394 -0
- package/typechain-types/factories/contracts/mocks/token/ERC20Mock__factory.ts +392 -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 +1797 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock__factory.ts +1514 -0
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock__factory.ts +1466 -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 +771 -55
- 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 +549 -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 +947 -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 +1676 -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 +1678 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDCe__factory.ts +1782 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDT__factory.ts +1782 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWADA__factory.ts +1782 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWBTC__factory.ts +1782 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWETH__factory.ts +1782 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridge__factory.ts +1367 -0
- package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgegCoti__factory.ts +1782 -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 +793 -59
- package/typechain-types/factories/contracts/token/PrivateERC20/index.ts +3 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC__factory.ts +1445 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken__factory.ts +1451 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTI__factory.ts +1442 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateTetherUSD__factory.ts +1445 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedADA__factory.ts +1445 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC__factory.ts +1445 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedEther__factory.ts +1451 -0
- package/typechain-types/factories/contracts/token/PrivateERC20/tokens/index.ts +10 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +953 -17
- package/typechain-types/index.ts +104 -0
- 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
|
@@ -67,7 +67,7 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
67
67
|
/// @notice Last minted token ID (starts at 0, first mint = 1)
|
|
68
68
|
uint256 public nextTokenId;
|
|
69
69
|
|
|
70
|
-
/// @notice Maximum length (in bytes) for
|
|
70
|
+
/// @notice Maximum length (in bytes) for name and socialURL
|
|
71
71
|
uint256 public constant MAX_TEXT_BYTES = 150;
|
|
72
72
|
|
|
73
73
|
/**
|
|
@@ -78,8 +78,8 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
78
78
|
|
|
79
79
|
/// @notice Node-specific metadata stored on-chain
|
|
80
80
|
struct NodeData {
|
|
81
|
-
string
|
|
82
|
-
string
|
|
81
|
+
string name; // required
|
|
82
|
+
string image; // optional (ipfs:// or https://)
|
|
83
83
|
string socialURL; // optional
|
|
84
84
|
bool isHot; // true = hot node, false = cold node
|
|
85
85
|
}
|
|
@@ -91,8 +91,8 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
91
91
|
event NodeMinted(
|
|
92
92
|
address indexed to,
|
|
93
93
|
uint256 indexed tokenId,
|
|
94
|
-
string
|
|
95
|
-
string
|
|
94
|
+
string name,
|
|
95
|
+
string image,
|
|
96
96
|
string socialURL
|
|
97
97
|
);
|
|
98
98
|
|
|
@@ -187,8 +187,8 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
187
187
|
/**
|
|
188
188
|
* @notice Mint a new soulbound Node NFT
|
|
189
189
|
* @param to Recipient address
|
|
190
|
-
* @param
|
|
191
|
-
* @param
|
|
190
|
+
* @param name Node name (required, <=150 bytes)
|
|
191
|
+
* @param image Optional image URI
|
|
192
192
|
* @param socialURL Optional social URL (<=150 bytes)
|
|
193
193
|
* @return tokenId The ID of the newly minted token
|
|
194
194
|
* @dev Restrictions:
|
|
@@ -199,22 +199,22 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
199
199
|
* - Minting is paused (MintPaused)
|
|
200
200
|
* - to is the zero address (InvalidRecipient)
|
|
201
201
|
* - to already owns an NFT (AlreadyOwnsNodeNFT)
|
|
202
|
-
* -
|
|
203
|
-
* -
|
|
202
|
+
* - name is empty (NodeNameRequired)
|
|
203
|
+
* - name exceeds MAX_TEXT_BYTES (NodeNameTooLong)
|
|
204
204
|
* - socialURL exceeds MAX_TEXT_BYTES (SocialURLTooLong)
|
|
205
205
|
* @dev Emits Locked and NodeMinted events
|
|
206
206
|
*/
|
|
207
207
|
function mintNode(
|
|
208
208
|
address to,
|
|
209
|
-
string calldata
|
|
210
|
-
string calldata
|
|
209
|
+
string calldata name,
|
|
210
|
+
string calldata image,
|
|
211
211
|
string calldata socialURL
|
|
212
212
|
) external onlyOwner returns (uint256 tokenId) {
|
|
213
213
|
if (mintPaused) revert MintPaused();
|
|
214
214
|
if (to == address(0)) revert InvalidRecipient();
|
|
215
215
|
if (balanceOf(to) != 0) revert AlreadyOwnsNodeNFT();
|
|
216
|
-
if (bytes(
|
|
217
|
-
if (bytes(
|
|
216
|
+
if (bytes(name).length == 0) revert NodeNameRequired();
|
|
217
|
+
if (bytes(name).length > MAX_TEXT_BYTES) revert NodeNameTooLong();
|
|
218
218
|
if (bytes(socialURL).length > MAX_TEXT_BYTES) revert SocialURLTooLong();
|
|
219
219
|
|
|
220
220
|
tokenId = ++nextTokenId;
|
|
@@ -222,21 +222,21 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
222
222
|
_safeMint(to, tokenId);
|
|
223
223
|
|
|
224
224
|
_nodeData[tokenId] = NodeData({
|
|
225
|
-
|
|
226
|
-
|
|
225
|
+
name: name,
|
|
226
|
+
image: image,
|
|
227
227
|
socialURL: socialURL,
|
|
228
228
|
// Default new nodes to hot; can be updated later via setNodeHotStatus
|
|
229
229
|
isHot: true
|
|
230
230
|
});
|
|
231
231
|
|
|
232
232
|
emit Locked(tokenId);
|
|
233
|
-
emit NodeMinted(to, tokenId,
|
|
233
|
+
emit NodeMinted(to, tokenId, name, image, socialURL);
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
/**
|
|
237
237
|
* @notice Get node metadata for a token
|
|
238
238
|
* @param tokenId Token ID to query
|
|
239
|
-
* @return NodeData struct containing
|
|
239
|
+
* @return NodeData struct containing name, image, and socialURL
|
|
240
240
|
* @dev Reverts if the token does not exist (NonexistentToken)
|
|
241
241
|
*/
|
|
242
242
|
function nodeData(uint256 tokenId) external view returns (NodeData memory) {
|
|
@@ -295,7 +295,7 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
295
295
|
if (msg.sender != tokenOwner && msg.sender != owner())
|
|
296
296
|
revert NotAuthorized();
|
|
297
297
|
|
|
298
|
-
_nodeData[tokenId].
|
|
298
|
+
_nodeData[tokenId].image = newImageURI;
|
|
299
299
|
emit ImageURIUpdated(tokenId, newImageURI);
|
|
300
300
|
}
|
|
301
301
|
|
|
@@ -349,7 +349,7 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
349
349
|
if (bytes(newNodeName).length > MAX_TEXT_BYTES)
|
|
350
350
|
revert NodeNameTooLong();
|
|
351
351
|
|
|
352
|
-
_nodeData[tokenId].
|
|
352
|
+
_nodeData[tokenId].name = newNodeName;
|
|
353
353
|
emit NodeNameUpdated(tokenId, newNodeName);
|
|
354
354
|
}
|
|
355
355
|
|
|
@@ -456,16 +456,16 @@ contract SoulboundNodeNFT is ERC721, Ownable, IERC5192 {
|
|
|
456
456
|
|
|
457
457
|
string memory attributes = string.concat(
|
|
458
458
|
'[{"trait_type":"Node name","value":"',
|
|
459
|
-
_escapeJSON(d.
|
|
459
|
+
_escapeJSON(d.name),
|
|
460
460
|
'"}',
|
|
461
461
|
',{"trait_type":"Social URL","value":"',
|
|
462
462
|
_escapeJSON(d.socialURL),
|
|
463
463
|
'"}]'
|
|
464
464
|
);
|
|
465
465
|
|
|
466
|
-
string memory imagePart = bytes(d.
|
|
466
|
+
string memory imagePart = bytes(d.image).length == 0
|
|
467
467
|
? ""
|
|
468
|
-
: string.concat(',"image":"', _escapeJSON(d.
|
|
468
|
+
: string.concat(',"image":"', _escapeJSON(d.image), '"');
|
|
469
469
|
|
|
470
470
|
string memory json = string.concat(
|
|
471
471
|
'{"name":"Node #',
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import "./IStdReference.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title CotiPriceConsumer
|
|
8
|
+
* @notice Retrieves token/USD prices from the Band Protocol oracle.
|
|
9
|
+
* @dev All prices returned by Band Protocol are scaled by 1e18.
|
|
10
|
+
* For example, a rate of 50000000000000000 means $0.05.
|
|
11
|
+
*/
|
|
12
|
+
contract CotiPriceConsumer {
|
|
13
|
+
/// @notice Band Protocol StdReferenceProxy on COTI .
|
|
14
|
+
IStdReference public immutable ref;
|
|
15
|
+
|
|
16
|
+
/// @notice Maximum acceptable age (in seconds) for oracle data before it is considered stale.
|
|
17
|
+
uint256 public maxStaleness;
|
|
18
|
+
|
|
19
|
+
/// @notice Emitted when the staleness threshold is updated.
|
|
20
|
+
event MaxStalenessUpdated(uint256 oldValue, uint256 newValue);
|
|
21
|
+
|
|
22
|
+
/// @notice Thrown when the oracle data is older than the allowed staleness window.
|
|
23
|
+
error StaleOracleData(uint256 lastUpdated, uint256 threshold);
|
|
24
|
+
|
|
25
|
+
address public owner;
|
|
26
|
+
|
|
27
|
+
/// @notice Minimum allowed staleness threshold (1 hour).
|
|
28
|
+
uint256 public constant MIN_STALENESS = 1 hours;
|
|
29
|
+
|
|
30
|
+
/// @notice Thrown when the staleness value is below the minimum.
|
|
31
|
+
error StalenessTooLow(uint256 provided, uint256 minimum);
|
|
32
|
+
|
|
33
|
+
modifier onlyOwner() {
|
|
34
|
+
require(msg.sender == owner, "CotiPriceConsumer: caller is not the owner");
|
|
35
|
+
_;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @param _ref Address of the Band Protocol StdReferenceProxy contract.
|
|
40
|
+
* @param _maxStaleness Maximum acceptable data age in seconds (0 = no staleness check).
|
|
41
|
+
*/
|
|
42
|
+
constructor(address _ref, uint256 _maxStaleness) {
|
|
43
|
+
require(_ref != address(0), "CotiPriceConsumer: zero ref address");
|
|
44
|
+
if (_maxStaleness < MIN_STALENESS) revert StalenessTooLow(_maxStaleness, MIN_STALENESS);
|
|
45
|
+
ref = IStdReference(_ref);
|
|
46
|
+
maxStaleness = _maxStaleness;
|
|
47
|
+
owner = msg.sender;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/// @notice Returns the rate, last update timestamp, and current block timestamp for any base/USD pair.
|
|
51
|
+
/// @return rate The price scaled by 1e18
|
|
52
|
+
/// @return lastUpdated Block timestamp when the oracle data was last updated
|
|
53
|
+
/// @return blockTimestamp The current block.timestamp
|
|
54
|
+
function getPriceWithMeta(string calldata _base) external view returns (uint256 rate, uint256 lastUpdated, uint256 blockTimestamp) {
|
|
55
|
+
IStdReference.ReferenceData memory data = _getPrice(_base);
|
|
56
|
+
rate = data.rate;
|
|
57
|
+
lastUpdated = data.lastUpdatedBase;
|
|
58
|
+
blockTimestamp = block.timestamp;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
// ──────────────────────────────────────────────────────────────────────
|
|
63
|
+
// Internal helper
|
|
64
|
+
// ──────────────────────────────────────────────────────────────────────
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @dev Queries the Band oracle for `_base`/USD and optionally enforces staleness.
|
|
68
|
+
*/
|
|
69
|
+
function _getPrice(string memory _base) internal view returns (IStdReference.ReferenceData memory data) {
|
|
70
|
+
data = ref.getReferenceData(_base, "USD");
|
|
71
|
+
|
|
72
|
+
uint256 threshold = block.timestamp - maxStaleness;
|
|
73
|
+
if (data.lastUpdatedBase < threshold) {
|
|
74
|
+
revert StaleOracleData(data.lastUpdatedBase, threshold);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
// ──────────────────────────────────────────────────────────────────────
|
|
80
|
+
// Generic getter — query any symbol the oracle supports
|
|
81
|
+
// ──────────────────────────────────────────────────────────────────────
|
|
82
|
+
|
|
83
|
+
/// @notice Returns the rate for an arbitrary base/USD pair scaled by 1e18.
|
|
84
|
+
function getPrice(string calldata _base) external view returns (uint256) {
|
|
85
|
+
return _getPrice(_base).rate;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
/// @notice Returns the full ReferenceData for an arbitrary base/USD pair.
|
|
90
|
+
function getPriceData(string calldata _base) external view returns (IStdReference.ReferenceData memory) {
|
|
91
|
+
return _getPrice(_base);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* @notice Updates the maximum staleness threshold.
|
|
96
|
+
* @param _maxStaleness New threshold in seconds (0 = disable check).
|
|
97
|
+
*/
|
|
98
|
+
function setMaxStaleness(uint256 _maxStaleness) external onlyOwner {
|
|
99
|
+
if (_maxStaleness < MIN_STALENESS) revert StalenessTooLow(_maxStaleness, MIN_STALENESS);
|
|
100
|
+
emit MaxStalenessUpdated(maxStaleness, _maxStaleness);
|
|
101
|
+
maxStaleness = _maxStaleness;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.19;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title ICotiPriceConsumer
|
|
6
|
+
* @notice Minimal interface for the CotiPriceConsumer oracle used by the bridge
|
|
7
|
+
*/
|
|
8
|
+
interface ICotiPriceConsumer {
|
|
9
|
+
|
|
10
|
+
/// @notice Returns the rate for an arbitrary base/USD pair scaled by 1e18.
|
|
11
|
+
function getPrice(string calldata _base) external view returns (uint256);
|
|
12
|
+
|
|
13
|
+
/// @notice Returns rate + metadata for any base/USD pair.
|
|
14
|
+
function getPriceWithMeta(string calldata _base) external view returns (uint256 rate, uint256 lastUpdated, uint256 blockTimestamp);
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title IStdReference
|
|
6
|
+
* @notice Band Protocol Standard Reference interface for querying price data.
|
|
7
|
+
*/
|
|
8
|
+
interface IStdReference {
|
|
9
|
+
struct ReferenceData {
|
|
10
|
+
uint256 rate; // base/quote exchange rate, scaled by 1e18
|
|
11
|
+
uint256 lastUpdatedBase; // UNIX epoch when the base price was last updated
|
|
12
|
+
uint256 lastUpdatedQuote; // UNIX epoch when the quote price was last updated
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/// @notice Returns the price data for a single base/quote pair.
|
|
16
|
+
function getReferenceData(
|
|
17
|
+
string memory _base,
|
|
18
|
+
string memory _quote
|
|
19
|
+
) external view returns (ReferenceData memory);
|
|
20
|
+
|
|
21
|
+
/// @notice Returns the price data for multiple base/quote pairs.
|
|
22
|
+
function getReferenceDataBulk(
|
|
23
|
+
string[] memory _bases,
|
|
24
|
+
string[] memory _quotes
|
|
25
|
+
) external view returns (ReferenceData[] memory);
|
|
26
|
+
}
|