@coti-io/coti-contracts 1.0.9 → 1.2.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 +18 -14
- package/README.md +3 -1
- package/contracts/disperse/coinByRatio/FixedRatioCoinDisperser.sol +452 -0
- package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.sol +490 -0
- package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.sol +432 -0
- package/contracts/disperse/disperseToken/MintDisperser.sol +120 -0
- package/contracts/disperse/disperseToken/TokenDisperser.sol +139 -0
- package/contracts/mocks/token/ERC20Mock.sol +19 -0
- package/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.sol +18 -0
- package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +13 -0
- package/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.sol +44 -0
- package/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.sol +23 -0
- package/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.sol +29 -0
- package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +9 -4
- package/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol +39 -0
- package/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.sol +29 -0
- package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.sol +18 -0
- package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.sol +12 -0
- package/contracts/mocks/utils/mpc/Arithmetic128TestsContract.sol +123 -0
- package/contracts/mocks/utils/mpc/Arithmetic256TestsContract.sol +122 -0
- package/contracts/mocks/utils/mpc/Bitwise128TestsContract.sol +65 -0
- package/contracts/mocks/utils/mpc/Bitwise256TestsContract.sol +65 -0
- package/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.sol +64 -0
- package/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.sol +64 -0
- package/contracts/mocks/utils/mpc/Comparison128TestsContract.sol +98 -0
- package/contracts/mocks/utils/mpc/Comparison256TestsContract.sol +98 -0
- package/contracts/mocks/utils/mpc/MinMax128TestsContract.sol +44 -0
- package/contracts/mocks/utils/mpc/MinMax256TestsContract.sol +44 -0
- package/contracts/mocks/utils/mpc/MinimalImplementation.sol +55 -0
- package/contracts/mocks/utils/mpc/MinimalProxy.sol +27 -0
- package/contracts/mocks/utils/mpc/MpcOperations128TestContract.sol +267 -0
- package/contracts/mocks/utils/mpc/MpcOperationsTestContract.sol +334 -0
- package/contracts/mocks/utils/mpc/Mux128TestsContract.sol +24 -0
- package/contracts/mocks/utils/mpc/Mux256TestsContract.sol +24 -0
- package/contracts/mocks/utils/mpc/OnBoard128TestsContract.sol +93 -0
- package/contracts/mocks/utils/mpc/OnBoard256TestsContract.sol +116 -0
- package/contracts/mocks/utils/mpc/PrivacyImplementationV1.sol +157 -0
- package/contracts/mocks/utils/mpc/PrivacyImplementationV2.sol +133 -0
- package/contracts/mocks/utils/mpc/PrivacyProxy.sol +137 -0
- package/contracts/mocks/utils/mpc/Random128TestsContract.sol +32 -0
- package/contracts/mocks/utils/mpc/Random256TestsContract.sol +32 -0
- package/contracts/mocks/utils/mpc/Shift128TestsContract.sol +36 -0
- package/contracts/mocks/utils/mpc/Shift256TestsContract.sol +36 -0
- package/contracts/mocks/utils/mpc/Transfer128TestsContract.sol +29 -0
- package/contracts/mocks/utils/mpc/Transfer256TestsContract.sol +29 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.sol +32 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.sol +32 -0
- package/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.sol +59 -0
- package/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.sol +63 -0
- package/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.sol +99 -0
- package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +7 -6
- package/contracts/node/CotiNodeRewards.sol +199 -0
- package/contracts/node/SoulboundNodeNFT.sol +519 -0
- package/contracts/privacyBridge/PrivacyBridge.sol +318 -0
- package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +268 -0
- package/contracts/privacyBridge/PrivacyBridgeERC20.sol +251 -0
- package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +16 -0
- package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +17 -0
- package/contracts/privacyBridge/PrivacyBridgeWADA.sol +17 -0
- package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +17 -0
- package/contracts/privacyBridge/PrivacyBridgeWETH.sol +17 -0
- package/contracts/privacyBridge/PrivacyBridgegCoti.sol +17 -0
- package/contracts/token/PrivateERC20/IPrivateERC20.sol +273 -40
- package/contracts/token/PrivateERC20/ITokenReceiver.sol +17 -0
- package/contracts/token/PrivateERC20/ITokenReceiverEncrypted.sol +20 -0
- package/contracts/token/PrivateERC20/PrivateERC20.sol +861 -152
- package/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.sol +17 -0
- package/contracts/token/PrivateERC20/tokens/PrivateCOTI.sol +13 -0
- package/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.sol +17 -0
- package/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.sol +17 -0
- package/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.sol +17 -0
- package/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.sol +17 -0
- package/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.sol +13 -0
- package/contracts/utils/mpc/MpcCore.sol +10891 -2449
- package/contracts/utils/mpc/MpcInterface.sol +7 -2
- package/hardhat/gasPriceBump.ts +60 -0
- package/hardhat.config.ts +60 -12
- package/package.json +21 -3
- package/scripts/deploySoulboundNodeNFT.ts +57 -0
- package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +327 -0
- package/test/token/PrivateERC20/PrivateERC20.test.ts +1109 -268
- package/test/utils/mpc/Bitwise128.test.ts +92 -0
- package/test/utils/mpc/Bitwise256.test.ts +101 -0
- package/test/utils/mpc/BuildInputText128.test.ts +398 -0
- package/test/utils/mpc/CheckedArithmetic128.test.ts +45 -0
- package/test/utils/mpc/CheckedArithmetic256.test.ts +45 -0
- package/test/utils/mpc/Comparison128.test.ts +48 -0
- package/test/utils/mpc/Comparison256.test.ts +48 -0
- package/test/utils/mpc/InvalidCiphertext.test.ts +179 -0
- package/test/utils/mpc/InvalidCiphertext128.test.ts +179 -0
- package/test/utils/mpc/InvalidCiphertext256.test.ts +201 -0
- package/test/utils/mpc/InvalidTransfer128.test.ts +166 -0
- package/test/utils/mpc/InvalidTransfer256.test.ts +158 -0
- package/test/utils/mpc/MinMax128.test.ts +44 -0
- package/test/utils/mpc/MinMax256.test.ts +44 -0
- package/test/utils/mpc/MinimalProxyDemo.test.ts +280 -0
- package/test/utils/mpc/MpcOperations.test.ts +589 -0
- package/test/utils/mpc/MpcOperations128.test.ts +632 -0
- package/test/utils/mpc/Mux128.test.ts +41 -0
- package/test/utils/mpc/Mux256.test.ts +41 -0
- package/test/utils/mpc/NegativeCases.test.ts +478 -0
- package/test/utils/mpc/NegativeCases128.test.ts +237 -0
- package/test/utils/mpc/NegativeCases256.test.ts +236 -0
- package/test/utils/mpc/OnBoard128.test.ts +90 -0
- package/test/utils/mpc/OnBoard256.test.ts +114 -0
- package/test/utils/mpc/Precompile128.test.ts +51 -0
- package/test/utils/mpc/Precompile256.test.ts +115 -0
- package/test/utils/mpc/ProxyValidation.test.ts +199 -0
- package/test/utils/mpc/Random128.test.ts +47 -0
- package/test/utils/mpc/Random256.test.ts +47 -0
- package/test/utils/mpc/Shift128.test.ts +41 -0
- package/test/utils/mpc/Shift256.test.ts +41 -0
- package/test/utils/mpc/Transfer128.test.ts +46 -0
- package/test/utils/mpc/Transfer256.test.ts +46 -0
- package/test/utils/mpc/TransferWithAllowance128.test.ts +48 -0
- package/test/utils/mpc/TransferWithAllowance256.test.ts +48 -0
- package/test/utils/mpc/UpgradeablePrivacyProxy.test.ts +307 -0
- package/test/utils/mpc/ValidateCiphertext.test.ts +221 -0
- package/test/utils/mpc/ValidateCiphertext256.test.ts +161 -0
- package/test/utils/mpc/ValidateCiphertext256Decryption.test.ts +383 -0
- package/test/utils/mpc/WalletEncryptionFailures.test.ts +494 -0
- package/test/utils/privateErc20Helpers.ts +97 -0
- package/typechain-types/@openzeppelin/contracts/access/Ownable.ts +153 -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/token/ERC20/IERC20.ts +262 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.ts +143 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +6 -0
- package/typechain-types/@openzeppelin/contracts/token/index.ts +2 -0
- package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperser.ts +679 -0
- package/typechain-types/contracts/disperse/coinByRatio/index.ts +4 -0
- package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20.ts +97 -0
- package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser.ts +206 -0
- package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +5 -0
- package/typechain-types/contracts/disperse/disperseToken/TokenDisperser.ts +191 -0
- package/typechain-types/contracts/disperse/disperseToken/index.ts +6 -0
- package/typechain-types/contracts/disperse/index.ts +7 -0
- package/typechain-types/contracts/index.ts +2 -0
- package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +77 -60
- package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.ts +341 -0
- package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128TestsContract.ts +311 -0
- package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +347 -0
- package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256TestsContract.ts +311 -0
- package/typechain-types/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.ts +186 -0
- package/typechain-types/contracts/mocks/utils/mpc/Bitwise128TestsContract.ts +179 -0
- package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +186 -0
- package/typechain-types/contracts/mocks/utils/mpc/Bitwise256TestsContract.ts +179 -0
- package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.ts +206 -0
- package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.ts +206 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +260 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison128TestsContract.ts +278 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +260 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison256TestsContract.ts +278 -0
- package/typechain-types/contracts/mocks/utils/mpc/MinMax128TestsContract.ts +142 -0
- package/typechain-types/contracts/mocks/utils/mpc/MinMax256TestsContract.ts +142 -0
- package/typechain-types/contracts/mocks/utils/mpc/MinimalImplementation.ts +259 -0
- package/typechain-types/contracts/mocks/utils/mpc/MinimalProxy.ts +90 -0
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +302 -0
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +322 -0
- package/typechain-types/contracts/mocks/utils/mpc/MpcOperations128TestContract.ts +388 -0
- package/typechain-types/contracts/mocks/utils/mpc/MpcOperationsTestContract.ts +455 -0
- package/typechain-types/contracts/mocks/utils/mpc/Mux128TestsContract.ts +109 -0
- package/typechain-types/contracts/mocks/utils/mpc/Mux256TestsContract.ts +109 -0
- package/typechain-types/contracts/mocks/utils/mpc/OnBoard128TestsContract.ts +166 -0
- package/typechain-types/contracts/mocks/utils/mpc/OnBoard256TestsContract.ts +194 -0
- package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV1.ts +385 -0
- package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV2.ts +441 -0
- package/typechain-types/contracts/mocks/utils/mpc/PrivacyProxy.ts +201 -0
- package/typechain-types/contracts/mocks/utils/mpc/Random128TestsContract.ts +131 -0
- package/typechain-types/contracts/mocks/utils/mpc/Random256TestsContract.ts +131 -0
- package/typechain-types/contracts/mocks/utils/mpc/Shift128TestsContract.ts +142 -0
- package/typechain-types/contracts/mocks/utils/mpc/Shift256TestsContract.ts +142 -0
- package/typechain-types/contracts/mocks/utils/mpc/Transfer128TestsContract.ts +109 -0
- package/typechain-types/contracts/mocks/utils/mpc/Transfer256TestsContract.ts +109 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.ts +128 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.ts +128 -0
- package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.ts +198 -0
- package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.ts +182 -0
- package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.ts +257 -0
- package/typechain-types/contracts/mocks/utils/mpc/index.ts +32 -0
- package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +77 -60
- package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +77 -60
- package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +111 -10
- package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +74 -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/token/ERC20/IERC20__factory.ts +205 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.ts +100 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts/token/index.ts +1 -0
- package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +759 -0
- package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +4 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20__factory.ts +43 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +185 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +198 -0
- package/typechain-types/factories/contracts/disperse/disperseToken/index.ts +5 -0
- package/typechain-types/factories/contracts/disperse/index.ts +5 -0
- package/typechain-types/factories/contracts/index.ts +1 -0
- package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +179 -47
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +349 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +330 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +364 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +330 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +182 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +184 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +182 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +184 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +203 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +203 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +255 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +295 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +255 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +295 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +147 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +147 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +263 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +104 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +332 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +380 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +723 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1410 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +115 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +115 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +175 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +205 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +521 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +648 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +179 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +131 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +131 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +147 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +147 -0
- 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 +135 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +135 -0
- 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 +154 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +154 -0
- 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 +190 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +210 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +260 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +32 -0
- package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +7 -7
- package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +174 -42
- package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +174 -42
- package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +126 -0
- package/typechain-types/hardhat.d.ts +702 -0
- package/typechain-types/index.ts +78 -0
- package/contracts/mocks/utils/mpc/README.md +0 -486
- package/contracts/package.json +0 -11
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import {
|
|
5
|
+
Contract,
|
|
6
|
+
ContractFactory,
|
|
7
|
+
ContractTransactionResponse,
|
|
8
|
+
Interface,
|
|
9
|
+
} from "ethers";
|
|
10
|
+
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
|
|
11
|
+
import type { NonPayableOverrides } from "../../../../../common";
|
|
12
|
+
import type {
|
|
13
|
+
Arithmetic256BitTestsContract,
|
|
14
|
+
Arithmetic256BitTestsContractInterface,
|
|
15
|
+
} from "../../../../../contracts/mocks/utils/mpc/Arithmetic256BitTestsContract";
|
|
16
|
+
|
|
17
|
+
const _abi = [
|
|
18
|
+
{
|
|
19
|
+
inputs: [
|
|
20
|
+
{
|
|
21
|
+
internalType: "uint256[]",
|
|
22
|
+
name: "a",
|
|
23
|
+
type: "uint256[]",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
internalType: "uint256[]",
|
|
27
|
+
name: "b",
|
|
28
|
+
type: "uint256[]",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
name: "addTest",
|
|
32
|
+
outputs: [],
|
|
33
|
+
stateMutability: "nonpayable",
|
|
34
|
+
type: "function",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
inputs: [
|
|
38
|
+
{
|
|
39
|
+
internalType: "uint256",
|
|
40
|
+
name: "a",
|
|
41
|
+
type: "uint256",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
internalType: "uint256",
|
|
45
|
+
name: "b",
|
|
46
|
+
type: "uint256",
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
name: "checkedAddTest",
|
|
50
|
+
outputs: [],
|
|
51
|
+
stateMutability: "nonpayable",
|
|
52
|
+
type: "function",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
inputs: [
|
|
56
|
+
{
|
|
57
|
+
internalType: "uint256[]",
|
|
58
|
+
name: "a",
|
|
59
|
+
type: "uint256[]",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
internalType: "uint256[]",
|
|
63
|
+
name: "b",
|
|
64
|
+
type: "uint256[]",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
name: "checkedAddWithOverflowBitTest",
|
|
68
|
+
outputs: [],
|
|
69
|
+
stateMutability: "nonpayable",
|
|
70
|
+
type: "function",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
inputs: [
|
|
74
|
+
{
|
|
75
|
+
internalType: "uint256",
|
|
76
|
+
name: "a",
|
|
77
|
+
type: "uint256",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
internalType: "uint256",
|
|
81
|
+
name: "b",
|
|
82
|
+
type: "uint256",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
|
|
86
|
+
name: "privateInput",
|
|
87
|
+
type: "uint8",
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
name: "checkedMulTest",
|
|
91
|
+
outputs: [],
|
|
92
|
+
stateMutability: "nonpayable",
|
|
93
|
+
type: "function",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
inputs: [
|
|
97
|
+
{
|
|
98
|
+
internalType: "uint256[]",
|
|
99
|
+
name: "a",
|
|
100
|
+
type: "uint256[]",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
internalType: "uint256[]",
|
|
104
|
+
name: "b",
|
|
105
|
+
type: "uint256[]",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
|
|
109
|
+
name: "privateInput",
|
|
110
|
+
type: "uint8",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
name: "checkedMulWithOverflowBitTest",
|
|
114
|
+
outputs: [],
|
|
115
|
+
stateMutability: "nonpayable",
|
|
116
|
+
type: "function",
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
inputs: [
|
|
120
|
+
{
|
|
121
|
+
internalType: "uint256",
|
|
122
|
+
name: "a",
|
|
123
|
+
type: "uint256",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
internalType: "uint256",
|
|
127
|
+
name: "b",
|
|
128
|
+
type: "uint256",
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
name: "checkedSubTest",
|
|
132
|
+
outputs: [],
|
|
133
|
+
stateMutability: "nonpayable",
|
|
134
|
+
type: "function",
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
inputs: [
|
|
138
|
+
{
|
|
139
|
+
internalType: "uint256[]",
|
|
140
|
+
name: "a",
|
|
141
|
+
type: "uint256[]",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
internalType: "uint256[]",
|
|
145
|
+
name: "b",
|
|
146
|
+
type: "uint256[]",
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
name: "checkedSubWithOverflowBitTest",
|
|
150
|
+
outputs: [],
|
|
151
|
+
stateMutability: "nonpayable",
|
|
152
|
+
type: "function",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
inputs: [
|
|
156
|
+
{
|
|
157
|
+
internalType: "uint256[]",
|
|
158
|
+
name: "a",
|
|
159
|
+
type: "uint256[]",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
internalType: "uint256[]",
|
|
163
|
+
name: "b",
|
|
164
|
+
type: "uint256[]",
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
|
|
168
|
+
name: "privateInput",
|
|
169
|
+
type: "uint8",
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
name: "mulTest",
|
|
173
|
+
outputs: [],
|
|
174
|
+
stateMutability: "nonpayable",
|
|
175
|
+
type: "function",
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
inputs: [
|
|
179
|
+
{
|
|
180
|
+
internalType: "uint256",
|
|
181
|
+
name: "",
|
|
182
|
+
type: "uint256",
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
name: "numbers2",
|
|
186
|
+
outputs: [
|
|
187
|
+
{
|
|
188
|
+
internalType: "uint256",
|
|
189
|
+
name: "",
|
|
190
|
+
type: "uint256",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
stateMutability: "view",
|
|
194
|
+
type: "function",
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
inputs: [
|
|
198
|
+
{
|
|
199
|
+
internalType: "uint256",
|
|
200
|
+
name: "",
|
|
201
|
+
type: "uint256",
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
name: "numbersLHS2",
|
|
205
|
+
outputs: [
|
|
206
|
+
{
|
|
207
|
+
internalType: "uint256",
|
|
208
|
+
name: "",
|
|
209
|
+
type: "uint256",
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
stateMutability: "view",
|
|
213
|
+
type: "function",
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
inputs: [
|
|
217
|
+
{
|
|
218
|
+
internalType: "uint256",
|
|
219
|
+
name: "",
|
|
220
|
+
type: "uint256",
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
name: "numbersRHS2",
|
|
224
|
+
outputs: [
|
|
225
|
+
{
|
|
226
|
+
internalType: "uint256",
|
|
227
|
+
name: "",
|
|
228
|
+
type: "uint256",
|
|
229
|
+
},
|
|
230
|
+
],
|
|
231
|
+
stateMutability: "view",
|
|
232
|
+
type: "function",
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
inputs: [
|
|
236
|
+
{
|
|
237
|
+
internalType: "uint256",
|
|
238
|
+
name: "",
|
|
239
|
+
type: "uint256",
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
name: "overflows",
|
|
243
|
+
outputs: [
|
|
244
|
+
{
|
|
245
|
+
internalType: "bool",
|
|
246
|
+
name: "",
|
|
247
|
+
type: "bool",
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
stateMutability: "view",
|
|
251
|
+
type: "function",
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
inputs: [
|
|
255
|
+
{
|
|
256
|
+
internalType: "uint256",
|
|
257
|
+
name: "",
|
|
258
|
+
type: "uint256",
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
name: "overflowsLHS",
|
|
262
|
+
outputs: [
|
|
263
|
+
{
|
|
264
|
+
internalType: "bool",
|
|
265
|
+
name: "",
|
|
266
|
+
type: "bool",
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
stateMutability: "view",
|
|
270
|
+
type: "function",
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
inputs: [
|
|
274
|
+
{
|
|
275
|
+
internalType: "uint256",
|
|
276
|
+
name: "",
|
|
277
|
+
type: "uint256",
|
|
278
|
+
},
|
|
279
|
+
],
|
|
280
|
+
name: "overflowsRHS",
|
|
281
|
+
outputs: [
|
|
282
|
+
{
|
|
283
|
+
internalType: "bool",
|
|
284
|
+
name: "",
|
|
285
|
+
type: "bool",
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
stateMutability: "view",
|
|
289
|
+
type: "function",
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
inputs: [
|
|
293
|
+
{
|
|
294
|
+
internalType: "uint256[]",
|
|
295
|
+
name: "a",
|
|
296
|
+
type: "uint256[]",
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
internalType: "uint256[]",
|
|
300
|
+
name: "b",
|
|
301
|
+
type: "uint256[]",
|
|
302
|
+
},
|
|
303
|
+
],
|
|
304
|
+
name: "subTest",
|
|
305
|
+
outputs: [],
|
|
306
|
+
stateMutability: "nonpayable",
|
|
307
|
+
type: "function",
|
|
308
|
+
},
|
|
309
|
+
] as const;
|
|
310
|
+
|
|
311
|
+
const _bytecode =
|
|
312
|
+
"0x608060405234801561001057600080fd5b50614797806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806383ee8b0811610097578063c7b20e1211610066578063c7b20e12146101f0578063cadc466414610203578063d9bf2dff14610216578063e7bd89a81461022957600080fd5b806383ee8b08146101a4578063859cc7d6146101b7578063ab2eae7e146101ca578063b24a0743146101dd57600080fd5b80633d35258b116100d35780633d35258b1461014857806346125d481461016b57806350cdee371461017e5780635a5a1a771461019157600080fd5b806320016fbc146100fa57806322f876121461010f57806333e9b8b314610122575b600080fd5b61010d61010836600461448a565b61023c565b005b61010d61011d3660046144f1565b61030a565b61013561013036600461455d565b6105d8565b6040519081526020015b60405180910390f35b61015b61015636600461455d565b6105f9565b604051901515815260200161013f565b61010d61017936600461458a565b61062d565b61010d61018c3660046144f1565b6107dd565b61010d61019f36600461458a565b610a8d565b61010d6101b236600461460b565b610c82565b6101356101c536600461455d565b610d65565b61015b6101d836600461455d565b610d75565b61010d6101eb36600461448a565b610d85565b61015b6101fe36600461455d565b610e1c565b61010d6102113660046144f1565b610e2c565b61013561022436600461455d565b610fba565b61010d6102373660046144f1565b610fca565b6102466001611158565b6000610251836111b7565b9050600061025e836111b7565b905061027261026d83836111ef565b611277565b600360008154811061028657610286614640565b60009182526020909120015561029f61026d85836112ce565b60036000815481106102b3576102b3614640565b9060005260206000200154146102cb576102cb61466f565b6102d861026d838561134d565b60036000815481106102ec576102ec614640565b9060005260206000200154146103045761030461466f565b50505050565b828114610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d61746368000000000000000000000060448201526064015b60405180910390fd5b6103818361139c565b61038a8361140b565b6103938361147d565b61039c83611158565b6103a5836114f0565b6103ae8361154b565b60008060006103bb6143eb565b6103c36143eb565b6103cb6143eb565b60005b898110156105cb5760006103f98c8c848181106103ed576103ed614640565b905060200201356111b7565b905060006104128b8b858181106103ed576103ed614640565b905061041e82826115a6565b90995095506104458d8d8581811061043857610438614640565b9050602002013582611652565b909850945061046c828c8c8681811061046057610460614640565b905060200201356116f8565b909750935061047a89611759565b6000848154811061048d5761048d614640565b90600052602060002090602091828204019190066101000a81548160ff0219169083151502179055506104bf88611759565b600184815481106104d2576104d2614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061050487611759565b6002848154811061051757610517614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061054986611277565b6003848154811061055c5761055c614640565b60009182526020909120015561057185611277565b6004848154811061058457610584614640565b60009182526020909120015561059984611277565b600584815481106105ac576105ac614640565b600091825260209091200155506105c49050816146cd565b90506103ce565b5050505050505050505050565b600581815481106105e857600080fd5b600091825260209091200154905081565b6002818154811061060957600080fd5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b838214610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61069f84611158565b60005b848110156107d55760006106c18787848181106103ed576103ed614640565b905060006106da8686858181106103ed576103ed614640565b905060008460028111156106f0576106f0614705565b036107265761070261026d83836117ea565b6003848154811061071557610715614640565b6000918252602090912001556107c2565b600184600281111561073a5761073a614705565b036107645761070261026d8388888781811061075857610758614640565b90506020020135611865565b600284600281111561077857610778614705565b036107c2576107a261026d89898681811061079557610795614640565b90506020020135836118dc565b600384815481106107b5576107b5614640565b6000918252602090912001555b5050806107ce906146cd565b90506106a2565b505050505050565b828114610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61084f8361139c565b6108588361140b565b6108618361147d565b61086a83611158565b610873836114f0565b61087c8361154b565b60008060006108896143eb565b6108916143eb565b6108996143eb565b60005b898110156105cb5760006108bb8c8c848181106103ed576103ed614640565b905060006108d48b8b858181106103ed576103ed614640565b90506108e08282611931565b90995095506109078d8d858181106108fa576108fa614640565b90506020020135826119a8565b909850945061092e828c8c8681811061092257610922614640565b90506020020135611a1d565b909750935061093c89611759565b6000848154811061094f5761094f614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061098188611759565b6001848154811061099457610994614640565b90600052602060002090602091828204019190066101000a81548160ff0219169083151502179055506109c687611759565b600284815481106109d9576109d9614640565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610a0b86611277565b60038481548110610a1e57610a1e614640565b600091825260209091200155610a3385611277565b60048481548110610a4657610a46614640565b600091825260209091200155610a5b84611277565b60058481548110610a6e57610a6e614640565b60009182526020909120015550610a869050816146cd565b905061089c565b838214610af6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b610aff8461139c565b610b0884611158565b6000610b126143eb565b60005b86811015610c78576000610b348989848181106103ed576103ed614640565b90506000610b4d8888858181106103ed576103ed614640565b90506000866002811115610b6357610b63614705565b03610b7c57610b728282611a7f565b9095509350610bf8565b6001866002811115610b9057610b90614705565b03610bb757610b728a8a85818110610baa57610baa614640565b9050602002013582611b6f565b6002866002811115610bcb57610bcb614705565b03610bf857610bf282898986818110610be657610be6614640565b90506020020135611cd0565b90955093505b610c0185611759565b60008481548110610c1457610c14614640565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610c4684611277565b60038481548110610c5957610c59614640565b60009182526020909120015550610c719050816146cd565b9050610b15565b5050505050505050565b610c8c6001611158565b6000610c97846111b7565b90506000610ca4846111b7565b90506000836002811115610cba57610cba614705565b03610cf157610ccc61026d8383611ddf565b6003600081548110610ce057610ce0614640565b600091825260209091200155610d5e565b6001836002811115610d0557610d05614705565b03610d1757610ccc61026d8386611ea1565b6002836002811115610d2b57610d2b614705565b03610d5e57610d3d61026d8683611f4b565b6003600081548110610d5157610d51614640565b6000918252602090912001555b5050505050565b600381815481106105e857600080fd5b6001818154811061060957600080fd5b610d8f6001611158565b6000610d9a836111b7565b90506000610da7836111b7565b9050610db661026d8383611fb8565b6003600081548110610dca57610dca614640565b600091825260209091200155610de361026d8583612015565b6003600081548110610df757610df7614640565b906000526020600020015414610e0f57610e0f61466f565b6102d861026d8385612075565b6000818154811061060957600080fd5b828114610e95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b610e9e83611158565b60005b83811015610d5e576000610ec08686848181106103ed576103ed614640565b90506000610ed98585858181106103ed576103ed614640565b9050610ee861026d83836120c3565b60038481548110610efb57610efb614640565b600091825260209091200155610f2c61026d888886818110610f1f57610f1f614640565b9050602002013583612120565b60038481548110610f3f57610f3f614640565b906000526020600020015414610f5757610f5761466f565b610f7c61026d83878787818110610f7057610f70614640565b90506020020135612180565b60038481548110610f8f57610f8f614640565b906000526020600020015414610fa757610fa761466f565b505080610fb3906146cd565b9050610ea1565b600481815481106105e857600080fd5b828114611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61103c83611158565b60005b83811015610d5e57600061105e8686848181106103ed576103ed614640565b905060006110778585858181106103ed576103ed614640565b905061108661026d83836121ce565b6003848154811061109957611099614640565b6000918252602090912001556110ca61026d8888868181106110bd576110bd614640565b9050602002013583612230565b600384815481106110dd576110dd614640565b9060005260206000200154146110f5576110f561466f565b61111a61026d8387878781811061110e5761110e614640565b90506020020135612294565b6003848154811061112d5761112d614640565b9060005260206000200154146111455761114561466f565b505080611151906146cd565b905061103f565b6111646003600061442f565b60005b818110156111b3576003805460018101825560009182527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0155806111ab816146cd565b915050611167565b5050565b6111bf6143eb565b6111c76143eb565b82608081901c6111d6816122e3565b83526111e1826122e3565b602084015250909392505050565b6111f76143eb565b6111ff6143eb565b6112118460200151846020015161232f565b8160200181905250600061122d856020015185602001516123af565b8551855191925061123d916123f6565b80835261126b90829061126661125f83611258846001612486565b885161250e565b6001612567565b61250e565b82525090505b92915050565b60008061128783600001516125ff565b9050600061129884602001516125ff565b9050806fffffffffffffffffffffffffffffffff166080836fffffffffffffffffffffffffffffffff16901b1792505050919050565b6112d66143eb565b6112de6143eb565b6020830151608085901c9085906112f6908290612658565b8360200181905250600061130e8287602001516126e2565b905061131e838760000151612732565b80855261134090829061126661125f83611339846001612486565b8a5161250e565b8452509195945050505050565b6113556143eb565b61135d6143eb565b6020840151608084901c90849061137490826127a8565b8360200181905250600061138c87602001518361281e565b905061131e876000015184612567565b6113a7600080614450565b60005b818110156111b357600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360208204018054601f9092166101000a60ff0219909116905580611403816146cd565b9150506113aa565b61141760016000614450565b60005b818110156111b3576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660208204018054601f9092166101000a60ff0219909116905580611475816146cd565b91505061141a565b61148960026000614450565b60005b818110156111b357600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace60208204018054601f9092166101000a60ff02199091169055806114e8816146cd565b91505061148c565b6114fc6004600061442f565b60005b818110156111b3576004805460018101825560009182527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015580611543816146cd565b9150506114ff565b6115576005600061442f565b60005b818110156111b3576005805460018101825560009182527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001558061159e816146cd565b91505061155a565b60006115b06143eb565b60006115bc6000612863565b90506115c66143eb565b6115d886602001518660200151612908565b60208083018290528701516000916115ef916123af565b90506000806116068960000151896000015161297d565b91509150600080611618836001612a39565b91509150611630858561162b8786612b00565b612b99565b965061163d85848361250e565b865250949650929450505050505b9250929050565b600061165c6143eb565b60006116686000612863565b90506116726143eb565b6020850151608087901c90879061168a908290612c5d565b6020840181905260009061169e908361281e565b90506000806116b1858b60000151612cce565b915091506000806116c3836001612a39565b915091506116d6858561162b8786612b00565b98506116e385848361250e565b885250969b959a509498505050505050505050565b60006117026143eb565b600061170e6000612863565b90506117186143eb565b6020860151608086901c90869061172f9082612486565b6020808501829052890151600091611746916123af565b90506000806116b18b6000015186612a39565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af11580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e19190614734565b15159392505050565b6117f26143eb565b6117fa6143eb565b60008061180f86602001518660200151612d61565b91509150600061182787600001518760200151612d61565b915050600061183e88602001518860000151612d61565b91505061185461184e8584612908565b82612908565b855250506020830152509392505050565b61186d6143eb565b6118756143eb565b6020840151608084901c90849060009081906118919084612eef565b9150915060006118a5896000015185612eef565b91505060006118b88a6020015187612eef565b9150506118c861184e8584612908565b875250506020850152509195945050505050565b6118e46143eb565b6118ec6143eb565b600080608086901c869150915060008061190a838860200151612fcf565b91509150600061191e858960200151612fcf565b91505060006118b8858a60000151612fcf565b600061193b6143eb565b60006119476000612863565b90506119516143eb565b6119638660200151866020015161232f565b8160200181905250600061197f876020015187602001516123af565b9050600080611996896000015189600001516130af565b91509150600080611618836001613151565b60006119b26143eb565b60006119be6000612863565b90506119c86143eb565b6020850151608087901c9087906119e0908290612658565b836020018190525060006119f88289602001516126e2565b9050600080611a0b858b600001516131fa565b915091506000806116c3836001613151565b6000611a276143eb565b6000611a336000612863565b9050611a3d6143eb565b6020860151608086901c908690611a5490826127a8565b83602001819052506000611a6c89602001518361281e565b9050600080611a0b8b6000015186613151565b6000611a896143eb565b611a916143eb565b600080611aa687602001518760200151612d61565b91509150600080611abf89600001518960200151612d61565b91509150600080611ad88b602001518b60000151612d61565b91509150600080611af18d600001518d60000151612d61565b915091506000806000611b048b8961297d565b91509150611b12818761297d565b8d5260208d018b905292506000611b57611b2c8486612b00565b611b52611b4b611b3c8e8d612908565b611b468a8c612908565b612908565b6000613292565b612b00565b9e509b9c505050505050505050505050509250929050565b6000611b796143eb565b611b816143eb565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260008060808f901c8f91509150611c3c818f60200151612fcf565b809b50819a505050611c52828f60200151612fcf565b8f51909950909750611c65908290612fcf565b8f51909750909550611c78908390612fcf565b945092506000915081905080611c8e8a8a61297d565b91509150611c9c818861297d565b8d5260208d018c905292506000611b57611cb68486612b00565b611b52611b4b611cc68d8c612908565b611b468b8b612908565b6000611cda6143eb565b611ce26143eb565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260008060808e901c8e91509150611d9d8f6020015182612eef565b809b50819a505050611db38f6000015182612eef565b8099508198505050611dc98f6020015183612eef565b8097508196505050611c788f6000015183612eef565b611de76143eb565b611def6143eb565b600080611e0486602001518660200151612d61565b91509150600080611e1d88600001518860200151612d61565b91509150600080611e368a602001518a60000151612d61565b91509150600080611e4f8c600001518c60000151612d61565b91509150611e66611e6089876132d7565b846132d7565b895260208901879052611e906000611e8b611e818988612908565b611b468587612908565b612732565b50979b9a5050505050505050505050565b611ea96143eb565b611eb16143eb565b6020840151608084901c9084906000908190611ecd9084612eef565b91509150600080611ee28a6000015186612eef565b91509150600080611ef78c6020015189612eef565b91509150600080611f0c8e600001518b612eef565b91509150611f1d611e6089876132d7565b8b5260208b01879052611f386000611e8b611e818988612908565b50999d9c50505050505050505050505050565b611f536143eb565b611f5b6143eb565b600080608086901c8691509150600080611f79838860200151612fcf565b91509150600080611f8e868a60200151612fcf565b91509150600080611fa3878c60000151612fcf565b91509150600080611f0c8a8e60000151612fcf565b611fc06143eb565b611fc86143eb565b611fda84602001518460200151612908565b6020808301829052850151600091611ff1916123af565b85518551919250612001916132d7565b80835261126b90829061126681600161334c565b61201d6143eb565b6120256143eb565b6020830151608085901c90859061203d908290612c5d565b60208401819052600090612051908361281e565b90506120618387600001516133d4565b80855261134090829061126681600161334c565b61207d6143eb565b6120856143eb565b6020840151608084901c90849061209c9082612486565b60208085018290528701516000916120b3916123af565b905061206187600001518461334c565b6120cb6143eb565b6120d36143eb565b6120e584602001518460200151612908565b60208083018290528501516000916120fc916123af565b8551855191925061210c91612908565b80835261126b908290611266816001612486565b6121286143eb565b6121306143eb565b6020830151608085901c908590612148908290612c5d565b6020840181905260009061215c908361281e565b905061216c838760000151612c5d565b808552611340908290611266816001612486565b6121886143eb565b6121906143eb565b6020840151608084901c9084906121a79082612486565b60208085018290528701516000916121be916123af565b905061216c876000015184612486565b6121d66143eb565b6121de6143eb565b6121f08460200151846020015161232f565b8160200181905250600061220c856020015185602001516123af565b8551855191925061221c9161232f565b80835261126b9082906112668160016127a8565b6122386143eb565b6122406143eb565b6020830151608085901c908590612258908290612658565b836020018190525060006122708287602001516126e2565b9050612280838760000151612658565b8085526113409082906112668160016127a8565b61229c6143eb565b6122a46143eb565b6020840151608084901c9084906122bb90826127a8565b836020018190525060006122d387602001518361281e565b90506122808760000151846127a8565b604080518082019091526000808252602082015260408051808201909152600080825260208201528267ffffffffffffffff604082901c1661232481613445565b83526111e182613445565b60408051808201909152600080825260208201526040805180820190915260008082526020820152612369846020015184602001516134f4565b816020018181525050600061238685602001518560200151613509565b85518551919250612396916134f4565b80835261126b9082906123aa81600161351e565b6135a8565b6000806123c4846000015184600001516135bd565b90506123ee816123dc86600001518660000151613509565b61162b87602001518760200151613509565b949350505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152612430846020015184602001516134f4565b816020018181525050600061244d85602001518560200151613509565b8551855191925061245d916135d2565b80835261126b9082906123aa61247f836124788460016136a9565b88516135a8565b60016136bf565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506124d38660200151826136a9565b60208085018290528701516000916124ea91613509565b90506124fa8760000151846136a9565b8085526113409082906123aa8160016136a9565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261254985856020015185602001516135a8565b60208201528351835161255d9187916135a8565b8152949350505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506125b486602001518261351e565b83602001818152505060006125cd87602001518361374b565b90506125dd8760000151846136bf565b8085526113409082906123aa61247f836125f88460016136a9565b8a516135a8565b60008061260f8360000151613761565b905060006126208460200151613761565b90508067ffffffffffffffff1660408367ffffffffffffffff166fffffffffffffffffffffffffffffffff16901b1792505050919050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff1686915091506126a58186602001516137bb565b83602001818152505060006126be828760200151613845565b90506126ce8387600001516137bb565b8085526113409082906123aa81600161351e565b805160009067ffffffffffffffff604085901c16908490839061270690849061385b565b90506127288161271a858860000151613845565b61162b858960200151613845565b9695505050505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff16869150915061277f8186602001516137bb565b8360200181815250506000612798828760200151613845565b90506125dd838760000151613871565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506127f586602001518261351e565b836020018181525050600061280e87602001518361374b565b90506126ce87600001518461351e565b815160009067ffffffffffffffff604084901c16908390839061284190846138fd565b90506127288161285588600001518661374b565b61162b89602001518661374b565b60008082612872576000612875565b60015b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081526000600482015260ff9190911660248201819052915060649063d9b60b60906044015b6020604051808303816000875af11580156128dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129019190614734565b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261294284602001518460200151613913565b602080830182905285015160009161295991613509565b8551855191925061296991613913565b80835261126b9082906123aa8160016136a9565b600061299c604051806040016040528060008152602001600081525090565b60006129a86000612863565b90506129c7604051806040016040528060008152602001600081525090565b6129d986602001518660200151613913565b60208083018290528701516000916129f091613509565b9050600080612a0789600001518960000151613928565b91509150600080612a198360016139f6565b91509150612a2c858561162b8786612b00565b965061163d8584836135a8565b6000612a58604051806040016040528060008152602001600081525090565b6000612a646000612863565b9050612a83604051806040016040528060008152602001600081525090565b602086015167ffffffffffffffff604087901c16908690612aa490826136a9565b6020808501829052890151600091612abb91613509565b9050600080612ace8b60000151866139f6565b91509150600080612ae08360016139f6565b91509150612af3858561162b8786612b00565b98506116e38584836135a8565b6000606463fb7da35f612b14838080613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064016020604051808303816000875af11580156128dd573d6000803e3d6000fd5b600060646320cc408d612bad838080613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810187905260448101869052606481018590526084016020604051808303816000875af1158015612c39573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ee9190614734565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff168691509150612caa818660200151613ae0565b60208401819052600090612cbe908361374b565b90506124fa838760000151613ae0565b6000612ced604051806040016040528060008152602001600081525090565b6000612cf96000612863565b9050612d18604051806040016040528060008152602001600081525090565b602085015167ffffffffffffffff604088901c16908790612d3a908290613ae0565b60208401819052600090612d4e908361374b565b9050600080612ace858b60000151613af6565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff906040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526000612def8a87613b83565b90506000612dfe8b6040613bed565b90506000612e0c8b89613b83565b90506000612e1b8c6040613bed565b9050612e278483613d02565b9750612e338482613d02565b9650612e3f8383613d02565b9550612e4b8382613d02565b9450505050506000612e78612e6e612e64876040613bed565b611b46878a613b83565b611b468589613b83565b90506000612e87826040613bed565b90506000612eb1612e9d85611b46896040613bed565b611b46612eab886040613bed565b85612908565b90506000612edb612ec2898b613b83565b612ed6612ecf878d613b83565b6040613d84565b613e69565b919d919c50909a5050505050505050505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff906040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526000612f7d8a87613b83565b90506000612f8c8b6040613bed565b905067ffffffffffffffff8a81169060408c901c16612fab8483613ebf565b9750612fb78482613ebf565b9650612fc38383613ebf565b9550612e4b8382613ebf565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff9060408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff8981169060408b901c1660006130708b89613b83565b9050600061307f8c6040613bed565b905061308b8483613f48565b97506130978482613f48565b96506130a38383613f48565b9550612e4b8382613f48565b60006130ce604051806040016040528060008152602001600081525090565b60006130da6000612863565b90506130f9604051806040016040528060008152602001600081525090565b61310b866020015186602001516134f4565b816020018181525050600061312887602001518760200151613509565b905060008061313f89600001518960000151613fd4565b91509150600080612a19836001613fec565b6000613170604051806040016040528060008152602001600081525090565b600061317c6000612863565b905061319b604051806040016040528060008152602001600081525090565b602086015167ffffffffffffffff604087901c169086906131bc908261351e565b83602001818152505060006131d589602001518361374b565b90506000806131e88b6000015186613fec565b91509150600080612ae0836001613fec565b6000613219604051806040016040528060008152602001600081525090565b60006132256000612863565b9050613244604051806040016040528060008152602001600081525090565b602085015167ffffffffffffffff604088901c169087906132669082906137bb565b836020018181525050600061327f828960200151613845565b90506000806131e8858b60000151614005565b815160009067ffffffffffffffff604084901c1690839083906132b590846138fd565b9050612728816132c988600001518661401e565b61162b89602001518661401e565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261331184602001518460200151613913565b602080830182905285015160009161332891613509565b8551855191925061333891614034565b80835261126b9082906123aa81600161404b565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506133998660200151826136a9565b60208085018290528701516000916133b091613509565b90506133c087600001518461404b565b8085526113409082906123aa81600161404b565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff168691509150613421818660200151613ae0565b60208401819052600090613435908361374b565b90506133c0838760000151614063565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af11580156134d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112719190614734565b6000606463371d1bf2612b1460048085613a83565b6000606463dd148693612b1460048085613a83565b6000606463371d1bf26135346004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905267ffffffffffffffff851660448201526064016128be565b600060646320cc408d612bad60048085613a83565b60006064637c12a1eb612b1460048085613a83565b60008080606463ce8c713d6135e960048085613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101889052604481018790526064015b60408051808303816000875af115801561366e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613692919061474d565b915091506136a0828261407b565b95945050505050565b60006064638c5d01506135346004806002613a83565b60008080606463ce8c713d6136d76004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810188905267ffffffffffffffff87166044820152606401613650565b6000606463dd1486936135346004806002613a83565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b81526004016134b19291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6000606463371d1bf26137d16004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff86166024820152604481018590526064016128be565b6000606463dd1486936137d16004806001613a83565b60006064637c12a1eb6137d16004806001613a83565b60008080606463ce8c713d6138896004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff8816602482015260448101879052606401613650565b60006064637c12a1eb6135346004806002613a83565b60006064638c5d0150612b1460048085613a83565b6000808080606463f581fa2061394060048085613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101899052604481018890526064015b60408051808303816000875af11580156139c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e9919061474d565b9097909650945050505050565b6000808080606463f581fa20613a0f6004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810189905267ffffffffffffffff881660448201526064016139a7565b6000816002811115613a9757613a97614705565b60ff166008846004811115613aae57613aae614705565b61ffff16901b61ffff166010866004811115613acc57613acc614705565b62ffffff16901b171760e81b949350505050565b60006064638c5d01506137d16004806001613a83565b6000808080606463f581fa20613b0f6004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff89166024820152604481018890526064016139a7565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff168591509150613bd086602001518261408c565b60208401528551613be1908361408c565b83525090949350505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408360ff1610613c5b57613c2e8460200151846140a2565b508351613c4590613c40604086614771565b6140a2565b6020820152613c546000613445565b8152612901565b60ff831615613ced576000613c71846040614771565b60ff1667ffffffffffffffff8016901c9050613cba613c948660200151866140a2565b613cb5613ca588600001518561408c565b613cb0886040614771565b614126565b61413d565b602083015250835167ffffffffffffffff60ff85161b90613ce590613cdf908361408c565b856140a2565b825250612901565b60208085015190820152835181529392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080613d3f86602001518660200151614152565b915091506000613d5787600001518760200151614152565b9150506000613d6e88602001518860000151614152565b915050611854613d7e8584613913565b82613913565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408360ff1610613de9578351613dc39084614126565b50613dce6000613445565b602080830191909152840151613c5490613cb0604086614771565b60ff831615613ced57602084015167ffffffffffffffff60ff85161c90613e1a90613e14908361408c565b85614126565b6020830152613e2a846040614771565b60ff1667ffffffffffffffff8016901b9050613ce5613e4d866000015186614126565b613cb5613e5e88602001518561408c565b613c40886040614771565b60408051808201909152600080825260208201526040805180820190915260008082526020820152613ea38460200151846020015161413d565b602082015283518351613eb6919061413d565b81529392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152602084015167ffffffffffffffff84811691604086901c909116906000908190613f119085614255565b915091506000613f25896000015186614255565b9150506000613f388a6020015186614255565b9150506118c8613d7e8584613913565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600067ffffffffffffffff80168516905060006040866fffffffffffffffffffffffffffffffff16901c9050600080613fad8488602001516142ba565b915091506000613fc18489602001516142ba565b9150506000613f38868a600001516142ba565b6000808080606463ce8c713d61394060048085613a83565b6000808080606463ce8c713d613a0f6004806002613a83565b6000808080606463ce8c713d613b0f6004806001613a83565b60006064636d82e45e6135346004806002613a83565b60008080606463f581fa206135e960048085613a83565b60008080606463f581fa206136d76004806002613a83565b60008080606463f581fa206138896004806001613a83565b60006140868361431a565b50919050565b6000606463fe9c73d16135346004806002613a83565b600060646339bd1d8d6140b9600460016002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905260ff851660448201526064016128be565b60006064631135f71a6140b9600460016002613a83565b6000606463fb7da35f612b1460048085613a83565b60008063ffffffff81808080806141698a8761408c565b905060006141788b60206140a2565b905060006141868b8961408c565b905060006141958c60206140a2565b90506141a1848361439b565b97506141ad848261439b565b96506141b9838361439b565b95506141c5838261439b565b94505050505060006141f76141ed6141de8760206140a2565b6141e8878a61408c565b613913565b6141e8858961408c565b905060006142068260206140a2565b9050600061423061421c856141e88960206140a2565b6141e861422a8860206140a2565b85613913565b90506000612edb614241898b61408c565b613cb561424e878d61408c565b6020614126565b60008063ffffffff818080808061426c8a8761408c565b9050600061427b8b60206140a2565b905063ffffffff8a81169060208c901c1661429684836143b0565b97506142a284826143b0565b96506142ae83836143b0565b95506141c583826143b0565b60008063ffffffff8180808088851660208a901c8616826142db8b8961408c565b905060006142ea8c60206140a2565b90506142f684836143c6565b975061430284826143c6565b965061430e83836143c6565b95506141c583826143c6565b6000614325826143dc565b905061433081611759565b15156001146111b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6f766572666c6f77206572726f72000000000000000000000000000000000000604482015260640161036f565b6000606463f1d21bb4612b1460048085613a83565b6000606463f1d21bb46135346004806002613a83565b6000606463f1d21bb46137d16004806001613a83565b60006064631d79e49a8261376d565b6040805160808101825260009181018281526060820192909252908190815260200161442a604051806040016040528060008152602001600081525090565b905290565b508054600082559060005260206000209081019061444d9190614471565b50565b50805460008255601f01602090049060005260206000209081019061444d91905b5b808211156144865760008155600101614472565b5090565b6000806040838503121561449d57600080fd5b50508035926020909101359150565b60008083601f8401126144be57600080fd5b50813567ffffffffffffffff8111156144d657600080fd5b6020830191508360208260051b850101111561164b57600080fd5b6000806000806040858703121561450757600080fd5b843567ffffffffffffffff8082111561451f57600080fd5b61452b888389016144ac565b9096509450602087013591508082111561454457600080fd5b50614551878288016144ac565b95989497509550505050565b60006020828403121561456f57600080fd5b5035919050565b80356003811061458557600080fd5b919050565b6000806000806000606086880312156145a257600080fd5b853567ffffffffffffffff808211156145ba57600080fd5b6145c689838a016144ac565b909750955060208801359150808211156145df57600080fd5b506145ec888289016144ac565b90945092506145ff905060408701614576565b90509295509295909350565b60008060006060848603121561462057600080fd5b833592506020840135915061463760408501614576565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036146fe576146fe61469e565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561474657600080fd5b5051919050565b6000806040838503121561476057600080fd5b505080516020909101519092909150565b60ff82811682821603908111156112715761127161469e56fea164736f6c6343000813000a";
|
|
313
|
+
|
|
314
|
+
type Arithmetic256BitTestsContractConstructorParams =
|
|
315
|
+
| [signer?: Signer]
|
|
316
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
317
|
+
|
|
318
|
+
const isSuperArgs = (
|
|
319
|
+
xs: Arithmetic256BitTestsContractConstructorParams
|
|
320
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
321
|
+
|
|
322
|
+
export class Arithmetic256BitTestsContract__factory extends ContractFactory {
|
|
323
|
+
constructor(...args: Arithmetic256BitTestsContractConstructorParams) {
|
|
324
|
+
if (isSuperArgs(args)) {
|
|
325
|
+
super(...args);
|
|
326
|
+
} else {
|
|
327
|
+
super(_abi, _bytecode, args[0]);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
override getDeployTransaction(
|
|
332
|
+
overrides?: NonPayableOverrides & { from?: string }
|
|
333
|
+
): Promise<ContractDeployTransaction> {
|
|
334
|
+
return super.getDeployTransaction(overrides || {});
|
|
335
|
+
}
|
|
336
|
+
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
|
|
337
|
+
return super.deploy(overrides || {}) as Promise<
|
|
338
|
+
Arithmetic256BitTestsContract & {
|
|
339
|
+
deploymentTransaction(): ContractTransactionResponse;
|
|
340
|
+
}
|
|
341
|
+
>;
|
|
342
|
+
}
|
|
343
|
+
override connect(
|
|
344
|
+
runner: ContractRunner | null
|
|
345
|
+
): Arithmetic256BitTestsContract__factory {
|
|
346
|
+
return super.connect(runner) as Arithmetic256BitTestsContract__factory;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
static readonly bytecode = _bytecode;
|
|
350
|
+
static readonly abi = _abi;
|
|
351
|
+
static createInterface(): Arithmetic256BitTestsContractInterface {
|
|
352
|
+
return new Interface(_abi) as Arithmetic256BitTestsContractInterface;
|
|
353
|
+
}
|
|
354
|
+
static connect(
|
|
355
|
+
address: string,
|
|
356
|
+
runner?: ContractRunner | null
|
|
357
|
+
): Arithmetic256BitTestsContract {
|
|
358
|
+
return new Contract(
|
|
359
|
+
address,
|
|
360
|
+
_abi,
|
|
361
|
+
runner
|
|
362
|
+
) as unknown as Arithmetic256BitTestsContract;
|
|
363
|
+
}
|
|
364
|
+
}
|