@fhevm/sdk 1.0.0-alpha.1 → 1.0.0-alpha.2
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/_cjs/core/_version.js +1 -1
- package/_cjs/core/actions/base/fetchVerifiedInputProof.js +1 -1
- package/_cjs/core/actions/base/fetchVerifiedInputProof.js.map +1 -1
- package/_cjs/core/actions/base/signDecryptionPermit.js.map +1 -1
- package/_cjs/core/actions/chain/index.js +5 -5
- package/_cjs/core/actions/chain/index.js.map +1 -1
- package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js +2 -3
- package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
- package/_cjs/core/actions/chain/parseTransportKeypair.js +1 -2
- package/_cjs/core/actions/chain/parseTransportKeypair.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptValue.js +4 -1
- package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptValues.js +4 -1
- package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +4 -1
- package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
- package/_cjs/core/actions/decrypt/index.js.map +1 -1
- package/_cjs/core/base/bytes.js +8 -0
- package/_cjs/core/base/bytes.js.map +1 -1
- package/_cjs/core/base/sign.js +50 -0
- package/_cjs/core/base/sign.js.map +1 -0
- package/_cjs/core/base/typedValue.js +17 -0
- package/_cjs/core/base/typedValue.js.map +1 -1
- package/_cjs/core/base/uint.js +29 -0
- package/_cjs/core/base/uint.js.map +1 -1
- package/_cjs/core/clients/decorators/decrypt.js +3 -3
- package/_cjs/core/clients/decorators/decrypt.js.map +1 -1
- package/_cjs/core/coprocessor/ZkProof-p.js +17 -11
- package/_cjs/core/coprocessor/ZkProof-p.js.map +1 -1
- package/_cjs/core/coprocessor/ZkProofBuilder-p.js +6 -4
- package/_cjs/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
- package/_cjs/core/coprocessor/encrypt.js +1 -3
- package/_cjs/core/coprocessor/encrypt.js.map +1 -1
- package/_cjs/core/coprocessor/fetchVerifiedInputProof.js +3 -4
- package/_cjs/core/coprocessor/fetchVerifiedInputProof.js.map +1 -1
- package/_cjs/core/handle/FheType.js +5 -2
- package/_cjs/core/handle/FheType.js.map +1 -1
- package/_cjs/core/host-contracts/KmsSignersContext-p.js +1 -1
- package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
- package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js +2 -3
- package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js.map +1 -1
- package/_cjs/core/kms/publicDecrypt.js +1 -4
- package/_cjs/core/kms/publicDecrypt.js.map +1 -1
- package/_cjs/core/modules/decrypt/mock.js +93 -10
- package/_cjs/core/modules/decrypt/mock.js.map +1 -1
- package/_cjs/core/modules/encrypt/mock.js +142 -12
- package/_cjs/core/modules/encrypt/mock.js.map +1 -1
- package/_cjs/core/modules/encrypt/module/api-p.js +7 -2
- package/_cjs/core/modules/encrypt/module/api-p.js.map +1 -1
- package/_cjs/core/modules/ethereum/types-ct.js +3 -0
- package/_cjs/core/modules/ethereum/types-ct.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +68 -0
- package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +119 -0
- package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +52 -0
- package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +117 -0
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/mock.js +40 -0
- package/_cjs/core/modules/relayer/cleartext/mock.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/signers.js +34 -0
- package/_cjs/core/modules/relayer/cleartext/signers.js.map +1 -0
- package/_cjs/core/modules/relayer/module/fetchCoprocessorSignatures.js +2 -2
- package/_cjs/core/modules/relayer/module/fetchCoprocessorSignatures.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js +1 -1
- package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
- package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +1 -1
- package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/utils.js +16 -0
- package/_cjs/core/modules/relayer/utils.js.map +1 -0
- package/_cjs/ethers/cleartext/createFhevmCleartextBaseClient.js +17 -0
- package/_cjs/ethers/cleartext/createFhevmCleartextBaseClient.js.map +1 -0
- package/_cjs/ethers/cleartext/createFhevmCleartextClient.js +11 -0
- package/_cjs/ethers/cleartext/createFhevmCleartextClient.js.map +1 -0
- package/_cjs/ethers/cleartext/createFhevmCleartextDecryptClient.js +10 -0
- package/_cjs/ethers/cleartext/createFhevmCleartextDecryptClient.js.map +1 -0
- package/_cjs/ethers/cleartext/createFhevmCleartextEncryptClient.js +10 -0
- package/_cjs/ethers/cleartext/createFhevmCleartextEncryptClient.js.map +1 -0
- package/_cjs/ethers/cleartext/decorators/decrypt.js +9 -0
- package/_cjs/ethers/cleartext/decorators/decrypt.js.map +1 -0
- package/_cjs/ethers/cleartext/decorators/encrypt.js +9 -0
- package/_cjs/ethers/cleartext/decorators/encrypt.js.map +1 -0
- package/_cjs/ethers/cleartext/index.js +12 -0
- package/_cjs/ethers/cleartext/index.js.map +1 -0
- package/_cjs/ethers/clients/createFhevmBaseClient.js +2 -1
- package/_cjs/ethers/clients/createFhevmBaseClient.js.map +1 -1
- package/_cjs/ethers/clients/createFhevmClient.js +2 -2
- package/_cjs/ethers/clients/createFhevmClient.js.map +1 -1
- package/_cjs/ethers/clients/createFhevmDecryptClient.js +1 -1
- package/_cjs/ethers/clients/createFhevmDecryptClient.js.map +1 -1
- package/_cjs/ethers/clients/createFhevmEncryptClient.js +1 -1
- package/_cjs/ethers/clients/createFhevmEncryptClient.js.map +1 -1
- package/_cjs/{viem → ethers/clients}/decorators/decrypt.js +2 -2
- package/_cjs/ethers/clients/decorators/decrypt.js.map +1 -0
- package/_cjs/ethers/{decorators → clients/decorators}/encrypt.js +2 -2
- package/_cjs/ethers/clients/decorators/encrypt.js.map +1 -0
- package/_cjs/ethers/index.js +4 -3
- package/_cjs/ethers/index.js.map +1 -1
- package/_cjs/ethers/internal/config.js +32 -0
- package/_cjs/ethers/internal/config.js.map +1 -0
- package/_cjs/ethers/internal/ethereum-ct.js +42 -0
- package/_cjs/ethers/internal/ethereum-ct.js.map +1 -0
- package/_cjs/ethers/internal/ethers-p.js +0 -32
- package/_cjs/ethers/internal/ethers-p.js.map +1 -1
- package/_cjs/ethers/internal/runtime-ct.js +22 -0
- package/_cjs/ethers/internal/runtime-ct.js.map +1 -0
- package/_cjs/ethers/internal/runtime.js +22 -0
- package/_cjs/ethers/internal/runtime.js.map +1 -0
- package/_cjs/ethers/runtime/initFhevmDecryptRuntime.js +3 -2
- package/_cjs/ethers/runtime/initFhevmDecryptRuntime.js.map +1 -1
- package/_cjs/ethers/runtime/initFhevmEncryptRuntime.js +3 -2
- package/_cjs/ethers/runtime/initFhevmEncryptRuntime.js.map +1 -1
- package/_cjs/ethers/runtime/initFhevmRuntime.js +3 -2
- package/_cjs/ethers/runtime/initFhevmRuntime.js.map +1 -1
- package/_cjs/index.js +2 -0
- package/_cjs/index.js.map +1 -0
- package/_cjs/viem/cleartext/createFhevmCleartextBaseClient.js +17 -0
- package/_cjs/viem/cleartext/createFhevmCleartextBaseClient.js.map +1 -0
- package/_cjs/viem/cleartext/createFhevmCleartextClient.js +11 -0
- package/_cjs/viem/cleartext/createFhevmCleartextClient.js.map +1 -0
- package/_cjs/viem/cleartext/createFhevmCleartextDecryptClient.js +10 -0
- package/_cjs/viem/cleartext/createFhevmCleartextDecryptClient.js.map +1 -0
- package/_cjs/viem/cleartext/createFhevmCleartextEncryptClient.js +10 -0
- package/_cjs/viem/cleartext/createFhevmCleartextEncryptClient.js.map +1 -0
- package/_cjs/viem/cleartext/decorators/decrypt.js +9 -0
- package/_cjs/viem/cleartext/decorators/decrypt.js.map +1 -0
- package/_cjs/viem/cleartext/decorators/encrypt.js +9 -0
- package/_cjs/viem/cleartext/decorators/encrypt.js.map +1 -0
- package/_cjs/viem/cleartext/index.js +12 -0
- package/_cjs/viem/cleartext/index.js.map +1 -0
- package/_cjs/viem/clients/createFhevmBaseClient.js +2 -1
- package/_cjs/viem/clients/createFhevmBaseClient.js.map +1 -1
- package/_cjs/viem/clients/createFhevmClient.js +2 -2
- package/_cjs/viem/clients/createFhevmClient.js.map +1 -1
- package/_cjs/viem/clients/createFhevmDecryptClient.js +1 -1
- package/_cjs/viem/clients/createFhevmDecryptClient.js.map +1 -1
- package/_cjs/viem/clients/createFhevmEncryptClient.js +1 -1
- package/_cjs/viem/clients/createFhevmEncryptClient.js.map +1 -1
- package/_cjs/{ethers → viem/clients}/decorators/decrypt.js +2 -2
- package/_cjs/viem/clients/decorators/decrypt.js.map +1 -0
- package/_cjs/viem/{decorators → clients/decorators}/encrypt.js +2 -2
- package/_cjs/viem/clients/decorators/encrypt.js.map +1 -0
- package/_cjs/viem/index.js +6 -5
- package/_cjs/viem/index.js.map +1 -1
- package/_cjs/viem/internal/config.js +32 -0
- package/_cjs/viem/internal/config.js.map +1 -0
- package/_cjs/viem/internal/ethereum-ct.js +42 -0
- package/_cjs/viem/internal/ethereum-ct.js.map +1 -0
- package/_cjs/viem/internal/runtime-ct.js +22 -0
- package/_cjs/viem/internal/runtime-ct.js.map +1 -0
- package/_cjs/viem/internal/runtime.js +22 -0
- package/_cjs/viem/internal/runtime.js.map +1 -0
- package/_cjs/viem/internal/viem-p.js +0 -32
- package/_cjs/viem/internal/viem-p.js.map +1 -1
- package/_cjs/viem/runtime/initFhevmDecryptRuntime.js +2 -1
- package/_cjs/viem/runtime/initFhevmDecryptRuntime.js.map +1 -1
- package/_cjs/viem/runtime/initFhevmEncryptRuntime.js +2 -1
- package/_cjs/viem/runtime/initFhevmEncryptRuntime.js.map +1 -1
- package/_cjs/viem/runtime/initFhevmRuntime.js +2 -1
- package/_cjs/viem/runtime/initFhevmRuntime.js.map +1 -1
- package/_cjs/wasm/tfhe/startWorkers.v1.5.3.js +279 -426
- package/_cjs/wasm/tfhe/startWorkers.v1.5.3.js.map +7 -0
- package/_cjs/wasm/tfhe/tfhe.v1.5.3.js +2779 -3032
- package/_cjs/wasm/tfhe/tfhe.v1.5.3.js.map +7 -0
- package/_cjs/wasm/tfhe/tfhe_bg.v1.5.3.wasm.base64.js +29 -1
- package/_cjs/wasm/tfhe/tfhe_bg.v1.5.3.wasm.base64.js.map +7 -0
- package/_cjs/wasm/tkms/kms_lib.v0.13.10.js +1793 -1985
- package/_cjs/wasm/tkms/kms_lib.v0.13.10.js.map +7 -0
- package/_cjs/wasm/tkms/kms_lib_bg.v0.13.10.wasm.base64.js +29 -3
- package/_cjs/wasm/tkms/kms_lib_bg.v0.13.10.wasm.base64.js.map +7 -0
- package/_cjs/wasm/wasmBaseUrl.js +36 -14
- package/_cjs/wasm/wasmBaseUrl.js.map +7 -0
- package/_esm/core/_version.js +1 -1
- package/_esm/core/actions/base/fetchVerifiedInputProof.js +1 -1
- package/_esm/core/actions/base/fetchVerifiedInputProof.js.map +1 -1
- package/_esm/core/actions/base/signDecryptionPermit.js.map +1 -1
- package/_esm/core/actions/chain/index.js +4 -4
- package/_esm/core/actions/chain/index.js.map +1 -1
- package/_esm/core/actions/chain/parseSignedDecryptionPermit.js +2 -3
- package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
- package/_esm/core/actions/chain/parseTransportKeypair.js +1 -3
- package/_esm/core/actions/chain/parseTransportKeypair.js.map +1 -1
- package/_esm/core/actions/chain/serializeTransportKeypair.js +0 -1
- package/_esm/core/actions/chain/serializeTransportKeypair.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptValue.js +5 -1
- package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptValues.js +5 -1
- package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +5 -1
- package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
- package/_esm/core/actions/decrypt/index.js +2 -2
- package/_esm/core/actions/decrypt/index.js.map +1 -1
- package/_esm/core/base/bytes.js +7 -0
- package/_esm/core/base/bytes.js.map +1 -1
- package/_esm/core/base/sign.js +58 -0
- package/_esm/core/base/sign.js.map +1 -0
- package/_esm/core/base/typedValue.js +16 -0
- package/_esm/core/base/typedValue.js.map +1 -1
- package/_esm/core/base/uint.js +30 -0
- package/_esm/core/base/uint.js.map +1 -1
- package/_esm/core/clients/decorators/decrypt.js +3 -3
- package/_esm/core/clients/decorators/decrypt.js.map +1 -1
- package/_esm/core/coprocessor/InputProof-p.js +2 -2
- package/_esm/core/coprocessor/InputProof-p.js.map +1 -1
- package/_esm/core/coprocessor/ZkProof-p.js +19 -12
- package/_esm/core/coprocessor/ZkProof-p.js.map +1 -1
- package/_esm/core/coprocessor/ZkProofBuilder-p.js +7 -5
- package/_esm/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
- package/_esm/core/coprocessor/encrypt.js +1 -3
- package/_esm/core/coprocessor/encrypt.js.map +1 -1
- package/_esm/core/coprocessor/fetchVerifiedInputProof.js +3 -4
- package/_esm/core/coprocessor/fetchVerifiedInputProof.js.map +1 -1
- package/_esm/core/handle/FheType.js +4 -2
- package/_esm/core/handle/FheType.js.map +1 -1
- package/_esm/core/host-contracts/KmsSignersContext-p.js +1 -1
- package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
- package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js +2 -3
- package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js.map +1 -1
- package/_esm/core/kms/publicDecrypt.js +1 -4
- package/_esm/core/kms/publicDecrypt.js.map +1 -1
- package/_esm/core/modules/decrypt/mock.js +96 -10
- package/_esm/core/modules/decrypt/mock.js.map +1 -1
- package/_esm/core/modules/encrypt/mock.js +151 -12
- package/_esm/core/modules/encrypt/mock.js.map +1 -1
- package/_esm/core/modules/encrypt/module/api-p.js +7 -2
- package/_esm/core/modules/encrypt/module/api-p.js.map +1 -1
- package/_esm/core/modules/ethereum/types-ct.js +2 -0
- package/_esm/core/modules/ethereum/types-ct.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +75 -0
- package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +121 -0
- package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +52 -0
- package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +119 -0
- package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/mock.js +39 -0
- package/_esm/core/modules/relayer/cleartext/mock.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/signers.js +34 -0
- package/_esm/core/modules/relayer/cleartext/signers.js.map +1 -0
- package/_esm/core/modules/relayer/module/fetchCoprocessorSignatures.js +2 -2
- package/_esm/core/modules/relayer/module/fetchCoprocessorSignatures.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js +1 -1
- package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
- package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +1 -1
- package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/utils.js +13 -0
- package/_esm/core/modules/relayer/utils.js.map +1 -0
- package/_esm/ethers/cleartext/createFhevmCleartextBaseClient.js +15 -0
- package/_esm/ethers/cleartext/createFhevmCleartextBaseClient.js.map +1 -0
- package/_esm/ethers/cleartext/createFhevmCleartextClient.js +9 -0
- package/_esm/ethers/cleartext/createFhevmCleartextClient.js.map +1 -0
- package/_esm/ethers/cleartext/createFhevmCleartextDecryptClient.js +8 -0
- package/_esm/ethers/cleartext/createFhevmCleartextDecryptClient.js.map +1 -0
- package/_esm/ethers/cleartext/createFhevmCleartextEncryptClient.js +8 -0
- package/_esm/ethers/cleartext/createFhevmCleartextEncryptClient.js.map +1 -0
- package/_esm/ethers/cleartext/decorators/decrypt.js +7 -0
- package/_esm/ethers/cleartext/decorators/decrypt.js.map +1 -0
- package/_esm/ethers/cleartext/decorators/encrypt.js +7 -0
- package/_esm/ethers/cleartext/decorators/encrypt.js.map +1 -0
- package/_esm/ethers/cleartext/index.js +5 -0
- package/_esm/ethers/cleartext/index.js.map +1 -0
- package/_esm/ethers/clients/createFhevmBaseClient.js +2 -1
- package/_esm/ethers/clients/createFhevmBaseClient.js.map +1 -1
- package/_esm/ethers/clients/createFhevmClient.js +2 -2
- package/_esm/ethers/clients/createFhevmClient.js.map +1 -1
- package/_esm/ethers/clients/createFhevmDecryptClient.js +1 -1
- package/_esm/ethers/clients/createFhevmDecryptClient.js.map +1 -1
- package/_esm/ethers/clients/createFhevmEncryptClient.js +1 -1
- package/_esm/ethers/clients/createFhevmEncryptClient.js.map +1 -1
- package/_esm/ethers/clients/decorators/decrypt.js +7 -0
- package/_esm/ethers/clients/decorators/decrypt.js.map +1 -0
- package/_esm/ethers/clients/decorators/encrypt.js +7 -0
- package/_esm/ethers/clients/decorators/encrypt.js.map +1 -0
- package/_esm/ethers/index.js +1 -1
- package/_esm/ethers/index.js.map +1 -1
- package/_esm/ethers/internal/config.js +38 -0
- package/_esm/ethers/internal/config.js.map +1 -0
- package/_esm/ethers/internal/ethereum-ct.js +39 -0
- package/_esm/ethers/internal/ethereum-ct.js.map +1 -0
- package/_esm/ethers/internal/ethers-p.js +0 -43
- package/_esm/ethers/internal/ethers-p.js.map +1 -1
- package/_esm/ethers/internal/runtime-ct.js +21 -0
- package/_esm/ethers/internal/runtime-ct.js.map +1 -0
- package/_esm/ethers/internal/runtime.js +21 -0
- package/_esm/ethers/internal/runtime.js.map +1 -0
- package/_esm/ethers/runtime/initFhevmDecryptRuntime.js +2 -1
- package/_esm/ethers/runtime/initFhevmDecryptRuntime.js.map +1 -1
- package/_esm/ethers/runtime/initFhevmEncryptRuntime.js +2 -1
- package/_esm/ethers/runtime/initFhevmEncryptRuntime.js.map +1 -1
- package/_esm/ethers/runtime/initFhevmRuntime.js +2 -1
- package/_esm/ethers/runtime/initFhevmRuntime.js.map +1 -1
- package/_esm/index.js +2 -0
- package/_esm/index.js.map +1 -0
- package/_esm/viem/cleartext/createFhevmCleartextBaseClient.js +15 -0
- package/_esm/viem/cleartext/createFhevmCleartextBaseClient.js.map +1 -0
- package/_esm/viem/cleartext/createFhevmCleartextClient.js +9 -0
- package/_esm/viem/cleartext/createFhevmCleartextClient.js.map +1 -0
- package/_esm/viem/cleartext/createFhevmCleartextDecryptClient.js +8 -0
- package/_esm/viem/cleartext/createFhevmCleartextDecryptClient.js.map +1 -0
- package/_esm/viem/cleartext/createFhevmCleartextEncryptClient.js +8 -0
- package/_esm/viem/cleartext/createFhevmCleartextEncryptClient.js.map +1 -0
- package/_esm/viem/cleartext/decorators/decrypt.js +7 -0
- package/_esm/viem/cleartext/decorators/decrypt.js.map +1 -0
- package/_esm/viem/cleartext/decorators/encrypt.js +7 -0
- package/_esm/viem/cleartext/decorators/encrypt.js.map +1 -0
- package/_esm/viem/cleartext/index.js +5 -0
- package/_esm/viem/cleartext/index.js.map +1 -0
- package/_esm/viem/clients/createFhevmBaseClient.js +2 -1
- package/_esm/viem/clients/createFhevmBaseClient.js.map +1 -1
- package/_esm/viem/clients/createFhevmClient.js +2 -2
- package/_esm/viem/clients/createFhevmClient.js.map +1 -1
- package/_esm/viem/clients/createFhevmDecryptClient.js +1 -1
- package/_esm/viem/clients/createFhevmDecryptClient.js.map +1 -1
- package/_esm/viem/clients/createFhevmEncryptClient.js +1 -2
- package/_esm/viem/clients/createFhevmEncryptClient.js.map +1 -1
- package/_esm/viem/clients/decorators/decrypt.js +7 -0
- package/_esm/viem/clients/decorators/decrypt.js.map +1 -0
- package/_esm/viem/clients/decorators/encrypt.js +7 -0
- package/_esm/viem/clients/decorators/encrypt.js.map +1 -0
- package/_esm/viem/index.js +2 -2
- package/_esm/viem/index.js.map +1 -1
- package/_esm/viem/internal/config.js +38 -0
- package/_esm/viem/internal/config.js.map +1 -0
- package/_esm/viem/internal/ethereum-ct.js +39 -0
- package/_esm/viem/internal/ethereum-ct.js.map +1 -0
- package/_esm/viem/internal/runtime-ct.js +21 -0
- package/_esm/viem/internal/runtime-ct.js.map +1 -0
- package/_esm/viem/internal/runtime.js +21 -0
- package/_esm/viem/internal/runtime.js.map +1 -0
- package/_esm/viem/internal/viem-p.js +0 -43
- package/_esm/viem/internal/viem-p.js.map +1 -1
- package/_esm/viem/runtime/initFhevmDecryptRuntime.js +2 -1
- package/_esm/viem/runtime/initFhevmDecryptRuntime.js.map +1 -1
- package/_esm/viem/runtime/initFhevmEncryptRuntime.js +2 -1
- package/_esm/viem/runtime/initFhevmEncryptRuntime.js.map +1 -1
- package/_esm/viem/runtime/initFhevmRuntime.js +2 -1
- package/_esm/viem/runtime/initFhevmRuntime.js.map +1 -1
- package/_types/core/actions/base/signDecryptionPermit.d.ts.map +1 -1
- package/_types/core/actions/chain/index.d.ts +4 -4
- package/_types/core/actions/chain/index.d.ts.map +1 -1
- package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +3 -2
- package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
- package/_types/core/actions/chain/parseTransportKeypair.d.ts +2 -2
- package/_types/core/actions/chain/parseTransportKeypair.d.ts.map +1 -1
- package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts +1 -1
- package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts.map +1 -1
- package/_types/core/actions/decrypt/decryptValue.d.ts +5 -13
- package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
- package/_types/core/actions/decrypt/decryptValues.d.ts +5 -13
- package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
- package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts +5 -13
- package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
- package/_types/core/actions/decrypt/index.d.ts +3 -3
- package/_types/core/actions/decrypt/index.d.ts.map +1 -1
- package/_types/core/base/bytes.d.ts +1 -0
- package/_types/core/base/bytes.d.ts.map +1 -1
- package/_types/core/base/sign.d.ts +10 -0
- package/_types/core/base/sign.d.ts.map +1 -0
- package/_types/core/base/typedValue.d.ts +2 -1
- package/_types/core/base/typedValue.d.ts.map +1 -1
- package/_types/core/base/uint.d.ts +3 -0
- package/_types/core/base/uint.d.ts.map +1 -1
- package/_types/core/clients/decorators/decrypt.d.ts +6 -15
- package/_types/core/clients/decorators/decrypt.d.ts.map +1 -1
- package/_types/core/coprocessor/ZkProof-p.d.ts +2 -2
- package/_types/core/coprocessor/ZkProof-p.d.ts.map +1 -1
- package/_types/core/coprocessor/ZkProofBuilder-p.d.ts +2 -1
- package/_types/core/coprocessor/ZkProofBuilder-p.d.ts.map +1 -1
- package/_types/core/coprocessor/encrypt.d.ts.map +1 -1
- package/_types/core/coprocessor/fetchVerifiedInputProof.d.ts +0 -2
- package/_types/core/coprocessor/fetchVerifiedInputProof.d.ts.map +1 -1
- package/_types/core/handle/FheType.d.ts +1 -0
- package/_types/core/handle/FheType.d.ts.map +1 -1
- package/_types/core/kms/fetchKmsSignedcryptedShares-p.d.ts.map +1 -1
- package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
- package/_types/core/modules/decrypt/mock.d.ts +5 -5
- package/_types/core/modules/decrypt/mock.d.ts.map +1 -1
- package/_types/core/modules/encrypt/mock.d.ts +6 -6
- package/_types/core/modules/encrypt/mock.d.ts.map +1 -1
- package/_types/core/modules/encrypt/module/api-p.d.ts.map +1 -1
- package/_types/core/modules/encrypt/types.d.ts +6 -2
- package/_types/core/modules/encrypt/types.d.ts.map +1 -1
- package/_types/core/modules/ethereum/types-ct.d.ts +46 -0
- package/_types/core/modules/ethereum/types-ct.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/fetchCoprocessorSignatures.d.ts +3 -0
- package/_types/core/modules/relayer/cleartext/fetchCoprocessorSignatures.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts +3 -0
- package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/fetchPublicDecrypt.d.ts +3 -0
- package/_types/core/modules/relayer/cleartext/fetchPublicDecrypt.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +3 -0
- package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/mock.d.ts +3 -0
- package/_types/core/modules/relayer/cleartext/mock.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/signers.d.ts +7 -0
- package/_types/core/modules/relayer/cleartext/signers.d.ts.map +1 -0
- package/_types/core/modules/relayer/module/fetchCoprocessorSignatures.d.ts +2 -2
- package/_types/core/modules/relayer/module/fetchCoprocessorSignatures.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts +2 -2
- package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchPublicDecrypt.d.ts +2 -2
- package/_types/core/modules/relayer/module/fetchPublicDecrypt.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts +2 -2
- package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
- package/_types/core/modules/relayer/types.d.ts +14 -5
- package/_types/core/modules/relayer/types.d.ts.map +1 -1
- package/_types/core/modules/relayer/utils.d.ts +4 -0
- package/_types/core/modules/relayer/utils.d.ts.map +1 -0
- package/_types/core/types/zkProof-p.d.ts +2 -1
- package/_types/core/types/zkProof-p.d.ts.map +1 -1
- package/_types/ethers/cleartext/createFhevmCleartextBaseClient.d.ts +11 -0
- package/_types/ethers/cleartext/createFhevmCleartextBaseClient.d.ts.map +1 -0
- package/_types/ethers/cleartext/createFhevmCleartextClient.d.ts +11 -0
- package/_types/ethers/cleartext/createFhevmCleartextClient.d.ts.map +1 -0
- package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts +11 -0
- package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -0
- package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts +11 -0
- package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -0
- package/_types/ethers/cleartext/decorators/decrypt.d.ts +6 -0
- package/_types/ethers/cleartext/decorators/decrypt.d.ts.map +1 -0
- package/_types/ethers/cleartext/decorators/encrypt.d.ts +6 -0
- package/_types/ethers/cleartext/decorators/encrypt.d.ts.map +1 -0
- package/_types/ethers/cleartext/index.d.ts +5 -0
- package/_types/ethers/cleartext/index.d.ts.map +1 -0
- package/_types/ethers/clients/createFhevmBaseClient.d.ts.map +1 -1
- package/_types/ethers/clients/decorators/decrypt.d.ts +6 -0
- package/_types/ethers/clients/decorators/decrypt.d.ts.map +1 -0
- package/_types/ethers/clients/decorators/encrypt.d.ts +6 -0
- package/_types/ethers/clients/decorators/encrypt.d.ts.map +1 -0
- package/_types/ethers/index.d.ts +1 -1
- package/_types/ethers/index.d.ts.map +1 -1
- package/_types/ethers/internal/config.d.ts +15 -0
- package/_types/ethers/internal/config.d.ts.map +1 -0
- package/_types/ethers/internal/ethereum-ct.d.ts +3 -0
- package/_types/ethers/internal/ethereum-ct.d.ts.map +1 -0
- package/_types/ethers/internal/ethers-p.d.ts +1 -13
- package/_types/ethers/internal/ethers-p.d.ts.map +1 -1
- package/_types/ethers/internal/runtime-ct.d.ts +3 -0
- package/_types/ethers/internal/runtime-ct.d.ts.map +1 -0
- package/_types/ethers/internal/runtime.d.ts +3 -0
- package/_types/ethers/internal/runtime.d.ts.map +1 -0
- package/_types/ethers/runtime/initFhevmDecryptRuntime.d.ts.map +1 -1
- package/_types/ethers/runtime/initFhevmEncryptRuntime.d.ts.map +1 -1
- package/_types/ethers/runtime/initFhevmRuntime.d.ts.map +1 -1
- package/_types/index.d.ts +2 -0
- package/_types/index.d.ts.map +1 -0
- package/_types/viem/cleartext/createFhevmCleartextBaseClient.d.ts +11 -0
- package/_types/viem/cleartext/createFhevmCleartextBaseClient.d.ts.map +1 -0
- package/_types/viem/cleartext/createFhevmCleartextClient.d.ts +11 -0
- package/_types/viem/cleartext/createFhevmCleartextClient.d.ts.map +1 -0
- package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts +11 -0
- package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -0
- package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts +11 -0
- package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -0
- package/_types/viem/cleartext/decorators/decrypt.d.ts +6 -0
- package/_types/viem/cleartext/decorators/decrypt.d.ts.map +1 -0
- package/_types/viem/cleartext/decorators/encrypt.d.ts +6 -0
- package/_types/viem/cleartext/decorators/encrypt.d.ts.map +1 -0
- package/_types/viem/cleartext/index.d.ts +5 -0
- package/_types/viem/cleartext/index.d.ts.map +1 -0
- package/_types/viem/clients/createFhevmBaseClient.d.ts.map +1 -1
- package/_types/viem/clients/decorators/decrypt.d.ts +6 -0
- package/_types/viem/clients/decorators/decrypt.d.ts.map +1 -0
- package/_types/viem/clients/decorators/encrypt.d.ts +6 -0
- package/_types/viem/clients/decorators/encrypt.d.ts.map +1 -0
- package/_types/viem/index.d.ts +2 -2
- package/_types/viem/index.d.ts.map +1 -1
- package/_types/viem/internal/config.d.ts +15 -0
- package/_types/viem/internal/config.d.ts.map +1 -0
- package/_types/viem/internal/ethereum-ct.d.ts +3 -0
- package/_types/viem/internal/ethereum-ct.d.ts.map +1 -0
- package/_types/viem/internal/runtime-ct.d.ts +3 -0
- package/_types/viem/internal/runtime-ct.d.ts.map +1 -0
- package/_types/viem/internal/runtime.d.ts +3 -0
- package/_types/viem/internal/runtime.d.ts.map +1 -0
- package/_types/viem/internal/viem-p.d.ts +1 -13
- package/_types/viem/internal/viem-p.d.ts.map +1 -1
- package/_types/viem/runtime/initFhevmDecryptRuntime.d.ts.map +1 -1
- package/_types/viem/runtime/initFhevmEncryptRuntime.d.ts.map +1 -1
- package/_types/viem/runtime/initFhevmRuntime.d.ts.map +1 -1
- package/core/_version.ts +1 -1
- package/core/actions/base/fetchVerifiedInputProof.ts +1 -1
- package/core/actions/base/signDecryptionPermit.ts +2 -0
- package/core/actions/chain/index.ts +11 -11
- package/core/actions/chain/parseSignedDecryptionPermit.ts +5 -6
- package/core/actions/chain/parseTransportKeypair.ts +3 -7
- package/core/actions/chain/serializeTransportKeypair.ts +0 -2
- package/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.ts +1 -1
- package/core/actions/decrypt/decryptValue.ts +9 -28
- package/core/actions/decrypt/decryptValues.ts +9 -28
- package/core/actions/decrypt/decryptValuesFromPairs.ts +9 -28
- package/core/actions/decrypt/index.ts +3 -14
- package/core/base/bytes.ts +8 -0
- package/core/base/sign.ts +75 -0
- package/core/base/typedValue.ts +18 -0
- package/core/base/uint.ts +32 -0
- package/core/clients/decorators/decrypt.ts +12 -28
- package/core/coprocessor/InputProof-p.ts +2 -2
- package/core/coprocessor/ZkProof-p.ts +21 -9
- package/core/coprocessor/ZkProofBuilder-p.ts +15 -8
- package/core/coprocessor/encrypt.ts +1 -3
- package/core/coprocessor/fetchVerifiedInputProof.ts +7 -13
- package/core/handle/FheType.ts +5 -2
- package/core/host-contracts/KmsSignersContext-p.ts +1 -1
- package/core/kms/fetchKmsSignedcryptedShares-p.ts +16 -24
- package/core/kms/publicDecrypt.ts +6 -12
- package/core/modules/decrypt/mock.ts +126 -13
- package/core/modules/encrypt/mock.ts +206 -12
- package/core/modules/encrypt/module/api-p.ts +7 -2
- package/core/modules/encrypt/types.ts +6 -2
- package/core/modules/ethereum/types-ct.ts +89 -0
- package/core/modules/relayer/cleartext/fetchCoprocessorSignatures.ts +94 -0
- package/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts +147 -0
- package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +67 -0
- package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +141 -0
- package/core/modules/relayer/cleartext/mock.ts +54 -0
- package/core/modules/relayer/cleartext/signers.ts +52 -0
- package/core/modules/relayer/module/fetchCoprocessorSignatures.ts +4 -4
- package/core/modules/relayer/module/fetchDelegatedUserDecrypt.ts +3 -3
- package/core/modules/relayer/module/fetchPublicDecrypt.ts +3 -3
- package/core/modules/relayer/module/fetchUserDecrypt.ts +3 -3
- package/core/modules/relayer/types.ts +13 -5
- package/core/modules/relayer/utils.ts +17 -0
- package/core/types/zkProof-p.ts +3 -1
- package/ethers/cleartext/createFhevmCleartextBaseClient.ts +25 -0
- package/ethers/cleartext/createFhevmCleartextClient.ts +20 -0
- package/ethers/cleartext/createFhevmCleartextDecryptClient.ts +18 -0
- package/ethers/cleartext/createFhevmCleartextEncryptClient.ts +19 -0
- package/ethers/cleartext/decorators/decrypt.ts +12 -0
- package/ethers/cleartext/decorators/encrypt.ts +12 -0
- package/ethers/cleartext/index.ts +4 -0
- package/ethers/cleartext/package.json +6 -0
- package/ethers/clients/createFhevmBaseClient.ts +2 -1
- package/ethers/clients/createFhevmClient.ts +2 -2
- package/ethers/clients/createFhevmDecryptClient.ts +1 -1
- package/ethers/clients/createFhevmEncryptClient.ts +1 -1
- package/ethers/clients/decorators/decrypt.ts +12 -0
- package/ethers/clients/decorators/encrypt.ts +12 -0
- package/ethers/index.ts +1 -1
- package/ethers/internal/config.ts +50 -0
- package/ethers/internal/ethereum-ct.ts +61 -0
- package/ethers/internal/ethers-p.ts +1 -56
- package/ethers/internal/runtime-ct.ts +28 -0
- package/ethers/internal/runtime.ts +28 -0
- package/ethers/runtime/initFhevmDecryptRuntime.ts +2 -1
- package/ethers/runtime/initFhevmEncryptRuntime.ts +2 -1
- package/ethers/runtime/initFhevmRuntime.ts +2 -1
- package/index.ts +0 -0
- package/package.json +14 -2
- package/viem/cleartext/createFhevmCleartextBaseClient.ts +28 -0
- package/viem/cleartext/createFhevmCleartextClient.ts +20 -0
- package/viem/cleartext/createFhevmCleartextDecryptClient.ts +21 -0
- package/viem/cleartext/createFhevmCleartextEncryptClient.ts +22 -0
- package/viem/cleartext/decorators/decrypt.ts +12 -0
- package/viem/cleartext/decorators/encrypt.ts +12 -0
- package/viem/cleartext/index.ts +4 -0
- package/viem/cleartext/package.json +6 -0
- package/viem/clients/createFhevmBaseClient.ts +2 -1
- package/viem/clients/createFhevmClient.ts +2 -2
- package/viem/clients/createFhevmDecryptClient.ts +1 -1
- package/viem/clients/createFhevmEncryptClient.ts +1 -3
- package/viem/clients/decorators/decrypt.ts +12 -0
- package/viem/clients/decorators/encrypt.ts +12 -0
- package/viem/index.ts +2 -2
- package/viem/internal/config.ts +50 -0
- package/viem/internal/ethereum-ct.ts +61 -0
- package/viem/internal/runtime-ct.ts +28 -0
- package/viem/internal/runtime.ts +28 -0
- package/viem/internal/viem-p.ts +1 -56
- package/viem/runtime/initFhevmDecryptRuntime.ts +2 -1
- package/viem/runtime/initFhevmEncryptRuntime.ts +2 -1
- package/viem/runtime/initFhevmRuntime.ts +2 -1
- package/_cjs/core/modules/relayer/mock.js +0 -29
- package/_cjs/core/modules/relayer/mock.js.map +0 -1
- package/_cjs/ethers/decorators/decrypt.js.map +0 -1
- package/_cjs/ethers/decorators/encrypt.js.map +0 -1
- package/_cjs/viem/decorators/decrypt.js.map +0 -1
- package/_cjs/viem/decorators/encrypt.js.map +0 -1
- package/_esm/core/modules/relayer/mock.js +0 -28
- package/_esm/core/modules/relayer/mock.js.map +0 -1
- package/_esm/ethers/decorators/decrypt.js +0 -7
- package/_esm/ethers/decorators/decrypt.js.map +0 -1
- package/_esm/ethers/decorators/encrypt.js +0 -7
- package/_esm/ethers/decorators/encrypt.js.map +0 -1
- package/_esm/viem/decorators/decrypt.js +0 -7
- package/_esm/viem/decorators/decrypt.js.map +0 -1
- package/_esm/viem/decorators/encrypt.js +0 -7
- package/_esm/viem/decorators/encrypt.js.map +0 -1
- package/_types/core/modules/relayer/mock.d.ts +0 -3
- package/_types/core/modules/relayer/mock.d.ts.map +0 -1
- package/_types/ethers/decorators/decrypt.d.ts +0 -6
- package/_types/ethers/decorators/decrypt.d.ts.map +0 -1
- package/_types/ethers/decorators/encrypt.d.ts +0 -6
- package/_types/ethers/decorators/encrypt.d.ts.map +0 -1
- package/_types/viem/decorators/decrypt.d.ts +0 -6
- package/_types/viem/decorators/decrypt.d.ts.map +0 -1
- package/_types/viem/decorators/encrypt.d.ts +0 -6
- package/_types/viem/decorators/encrypt.d.ts.map +0 -1
- package/core/modules/relayer/mock.ts +0 -47
- package/ethers/decorators/decrypt.ts +0 -12
- package/ethers/decorators/encrypt.ts +0 -12
- package/viem/decorators/decrypt.ts +0 -12
- package/viem/decorators/encrypt.ts +0 -12
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
|
|
2
|
+
import type { FetchUserDecryptResultItem } from '../../../types/relayer.js';
|
|
3
|
+
import type { CleartextEthereumModule } from '../../ethereum/types-ct.js';
|
|
4
|
+
import type {
|
|
5
|
+
FetchDelegatedUserDecryptParameters,
|
|
6
|
+
FetchUserDecryptReturnType,
|
|
7
|
+
RelayerClientWithRuntime,
|
|
8
|
+
} from '../types.js';
|
|
9
|
+
import { remove0x } from '../../../base/string.js';
|
|
10
|
+
import { asUint32BigInt, parseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
|
|
11
|
+
import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
|
|
12
|
+
import { userDecryptResultToKmsSigncryptedShares } from '../utils.js';
|
|
13
|
+
import { getKmsSignersPrivateKeyMap } from './signers.js';
|
|
14
|
+
|
|
15
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
16
|
+
|
|
17
|
+
const delegatedUserDecryptAbi = [
|
|
18
|
+
{
|
|
19
|
+
type: 'function',
|
|
20
|
+
name: 'delegatedUserDecrypt',
|
|
21
|
+
inputs: [
|
|
22
|
+
{
|
|
23
|
+
name: 'pairs',
|
|
24
|
+
type: 'tuple[]',
|
|
25
|
+
internalType: 'struct HandleContractPair[]',
|
|
26
|
+
components: [
|
|
27
|
+
{ name: 'handle', type: 'bytes32', internalType: 'bytes32' },
|
|
28
|
+
{
|
|
29
|
+
name: 'contractAddress',
|
|
30
|
+
type: 'address',
|
|
31
|
+
internalType: 'address',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
{ name: 'delegator', type: 'address', internalType: 'address' },
|
|
36
|
+
{ name: 'delegate', type: 'address', internalType: 'address' },
|
|
37
|
+
{ name: 'publicKey', type: 'bytes', internalType: 'bytes' },
|
|
38
|
+
{
|
|
39
|
+
name: 'contractAddresses',
|
|
40
|
+
type: 'address[]',
|
|
41
|
+
internalType: 'address[]',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'startTimestamp',
|
|
45
|
+
type: 'uint256',
|
|
46
|
+
internalType: 'uint256',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'durationDays',
|
|
50
|
+
type: 'uint256',
|
|
51
|
+
internalType: 'uint256',
|
|
52
|
+
},
|
|
53
|
+
{ name: 'delegateSignature', type: 'bytes', internalType: 'bytes' },
|
|
54
|
+
],
|
|
55
|
+
outputs: [
|
|
56
|
+
{ name: 'payload', type: 'bytes', internalType: 'bytes' },
|
|
57
|
+
{ name: 'signers', type: 'address[]', internalType: 'address[]' },
|
|
58
|
+
{ name: 'threshold', type: 'uint256', internalType: 'uint256' },
|
|
59
|
+
{ name: 'extraData', type: 'bytes', internalType: 'bytes' },
|
|
60
|
+
],
|
|
61
|
+
stateMutability: 'view',
|
|
62
|
+
},
|
|
63
|
+
] as const;
|
|
64
|
+
|
|
65
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
66
|
+
|
|
67
|
+
export async function fetchDelegatedUserDecrypt(
|
|
68
|
+
relayerClient: RelayerClientWithRuntime,
|
|
69
|
+
parameters: FetchDelegatedUserDecryptParameters,
|
|
70
|
+
): Promise<FetchUserDecryptReturnType> {
|
|
71
|
+
const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
|
|
72
|
+
const { payload } = parameters;
|
|
73
|
+
const pairs = payload.handleContractPairs;
|
|
74
|
+
const contractAddresses = payload.kmsDecryptEip712Message.contractAddresses;
|
|
75
|
+
|
|
76
|
+
const authCount = contractAddresses.length;
|
|
77
|
+
for (const { contractAddress: c } of pairs) {
|
|
78
|
+
let authorized: boolean = false;
|
|
79
|
+
for (let i = 0; i < authCount; ++i) {
|
|
80
|
+
if (contractAddresses[i] == c) {
|
|
81
|
+
authorized = true;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (!authorized) {
|
|
86
|
+
throw new Error(`ContractAddressNotAuthorized: ${c} is not in the EIP-712 authorized contractAddresses list.`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const { kmsDecryptEip712Message, kmsDecryptEip712Signer, kmsDecryptEip712Signature } = payload;
|
|
91
|
+
const trustedClient = getTrustedClient(relayerClient);
|
|
92
|
+
const res = (await relayerClient.runtime.ethereum.readContract(trustedClient, {
|
|
93
|
+
abi: delegatedUserDecryptAbi,
|
|
94
|
+
address: relayerClient.chain.fhevm.contracts.kmsVerifier.address as ChecksummedAddress,
|
|
95
|
+
args: [
|
|
96
|
+
pairs.map((p) => ({
|
|
97
|
+
handle: p.handle.bytes32Hex,
|
|
98
|
+
contractAddress: p.contractAddress,
|
|
99
|
+
})),
|
|
100
|
+
kmsDecryptEip712Message.delegatorAddress,
|
|
101
|
+
kmsDecryptEip712Signer,
|
|
102
|
+
kmsDecryptEip712Message.publicKey,
|
|
103
|
+
kmsDecryptEip712Message.contractAddresses,
|
|
104
|
+
_parseUintBigIntString('kmsDecryptEip712Message.startTimestamp', kmsDecryptEip712Message.startTimestamp),
|
|
105
|
+
_parseUintBigIntString('kmsDecryptEip712Message.durationDays', kmsDecryptEip712Message.durationDays),
|
|
106
|
+
kmsDecryptEip712Signature,
|
|
107
|
+
],
|
|
108
|
+
functionName: delegatedUserDecryptAbi[0].name,
|
|
109
|
+
})) as unknown[];
|
|
110
|
+
|
|
111
|
+
const commonKmsSigncryptedSharePayload = res[0] as BytesHex;
|
|
112
|
+
const commonKmsSigncryptedSharePayloadNo0x = remove0x(commonKmsSigncryptedSharePayload);
|
|
113
|
+
const signersAddress = res[1] as readonly ChecksummedAddress[];
|
|
114
|
+
const threshold = asUint32BigInt(res[2]);
|
|
115
|
+
const extraData = res[3] as BytesHex;
|
|
116
|
+
|
|
117
|
+
const signers = getKmsSignersPrivateKeyMap(relayerClient);
|
|
118
|
+
|
|
119
|
+
const randomSignersAddress = randomUniqueUints(signersAddress.length, Number(threshold)).map(
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
121
|
+
(i) => signersAddress[i]!,
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
const result: FetchUserDecryptResultItem[] = [];
|
|
125
|
+
|
|
126
|
+
for (const signerAddress of randomSignersAddress) {
|
|
127
|
+
const privateKey = signers.get(signerAddress);
|
|
128
|
+
if (privateKey === undefined) {
|
|
129
|
+
throw new Error(`Unable to find KMS signer for address ${signerAddress}`);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const signature = await cleartextEthereumModule.sign({ hash: commonKmsSigncryptedSharePayload, privateKey });
|
|
133
|
+
result.push({ signature: remove0x(signature), payload: commonKmsSigncryptedSharePayloadNo0x, extraData });
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return userDecryptResultToKmsSigncryptedShares(result);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
140
|
+
|
|
141
|
+
function _parseUintBigIntString(label: string, value: string): bigint {
|
|
142
|
+
const bn = parseUintBigIntString(value);
|
|
143
|
+
if (bn === undefined) {
|
|
144
|
+
throw new Error(`${label} is not a valid uint string, got ${JSON.stringify(value)}`);
|
|
145
|
+
}
|
|
146
|
+
return bn;
|
|
147
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Bytes32Hex, Bytes65Hex, BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
|
|
2
|
+
import type { CleartextEthereumModule } from '../../ethereum/types-ct.js';
|
|
3
|
+
import type { FetchPublicDecryptParameters, FetchPublicDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
|
|
4
|
+
import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
|
|
5
|
+
import { getKmsSignersPrivateKeyMap } from './signers.js';
|
|
6
|
+
|
|
7
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
8
|
+
|
|
9
|
+
const publicDecryptAbi = [
|
|
10
|
+
{
|
|
11
|
+
type: 'function',
|
|
12
|
+
name: 'publicDecrypt',
|
|
13
|
+
inputs: [{ name: 'handles', type: 'bytes32[]', internalType: 'bytes32[]' }],
|
|
14
|
+
outputs: [
|
|
15
|
+
{
|
|
16
|
+
name: 'abiEncodedCleartexts',
|
|
17
|
+
type: 'bytes',
|
|
18
|
+
internalType: 'bytes',
|
|
19
|
+
},
|
|
20
|
+
{ name: 'digest', type: 'bytes32', internalType: 'bytes32' },
|
|
21
|
+
{ name: 'signers', type: 'address[]', internalType: 'address[]' },
|
|
22
|
+
{ name: 'threshold', type: 'uint256', internalType: 'uint256' },
|
|
23
|
+
{ name: 'extraData', type: 'bytes', internalType: 'bytes' },
|
|
24
|
+
],
|
|
25
|
+
stateMutability: 'view',
|
|
26
|
+
},
|
|
27
|
+
] as const;
|
|
28
|
+
|
|
29
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
30
|
+
|
|
31
|
+
export async function fetchPublicDecrypt(
|
|
32
|
+
relayerClient: RelayerClientWithRuntime,
|
|
33
|
+
parameters: FetchPublicDecryptParameters,
|
|
34
|
+
): Promise<FetchPublicDecryptReturnType> {
|
|
35
|
+
const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
|
|
36
|
+
|
|
37
|
+
const trustedClient = getTrustedClient(relayerClient);
|
|
38
|
+
const res = (await relayerClient.runtime.ethereum.readContract(trustedClient, {
|
|
39
|
+
abi: publicDecryptAbi,
|
|
40
|
+
address: relayerClient.chain.fhevm.contracts.kmsVerifier.address as ChecksummedAddress,
|
|
41
|
+
args: [parameters.payload.orderedHandles.map((h) => h.bytes32Hex)],
|
|
42
|
+
functionName: publicDecryptAbi[0].name,
|
|
43
|
+
})) as unknown[];
|
|
44
|
+
|
|
45
|
+
const digest = res[1] as Bytes32Hex;
|
|
46
|
+
const signersAddress = res[2] as readonly ChecksummedAddress[];
|
|
47
|
+
const signers = getKmsSignersPrivateKeyMap(relayerClient);
|
|
48
|
+
|
|
49
|
+
const kmsPublicDecryptEIP712Signatures: Bytes65Hex[] = [];
|
|
50
|
+
|
|
51
|
+
for (let i = 0; i < signersAddress.length; ++i) {
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
53
|
+
const privateKey = signers.get(signersAddress[i]!);
|
|
54
|
+
if (privateKey === undefined) {
|
|
55
|
+
throw new Error('Unable to find kms signer');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const signature = await cleartextEthereumModule.sign({ hash: digest, privateKey });
|
|
59
|
+
kmsPublicDecryptEIP712Signatures.push(signature);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
orderedAbiEncodedClearValues: res[0] as BytesHex,
|
|
64
|
+
kmsPublicDecryptEIP712Signatures,
|
|
65
|
+
extraData: res[4] as BytesHex,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
|
|
2
|
+
import type { FetchUserDecryptResultItem } from '../../../types/relayer.js';
|
|
3
|
+
import type { CleartextEthereumModule } from '../../ethereum/types-ct.js';
|
|
4
|
+
import type { FetchUserDecryptParameters, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
|
|
5
|
+
import { remove0x } from '../../../base/string.js';
|
|
6
|
+
import { asUint32BigInt, parseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
|
|
7
|
+
import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
|
|
8
|
+
import { userDecryptResultToKmsSigncryptedShares } from '../utils.js';
|
|
9
|
+
import { getKmsSignersPrivateKeyMap } from './signers.js';
|
|
10
|
+
|
|
11
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
12
|
+
|
|
13
|
+
const userDecryptAbi = [
|
|
14
|
+
{
|
|
15
|
+
type: 'function',
|
|
16
|
+
name: 'userDecrypt',
|
|
17
|
+
inputs: [
|
|
18
|
+
{
|
|
19
|
+
name: 'pairs',
|
|
20
|
+
type: 'tuple[]',
|
|
21
|
+
internalType: 'struct HandleContractPair[]',
|
|
22
|
+
components: [
|
|
23
|
+
{ name: 'handle', type: 'bytes32', internalType: 'bytes32' },
|
|
24
|
+
{
|
|
25
|
+
name: 'contractAddress',
|
|
26
|
+
type: 'address',
|
|
27
|
+
internalType: 'address',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
{ name: 'userAddress', type: 'address', internalType: 'address' },
|
|
32
|
+
{ name: 'publicKey', type: 'bytes', internalType: 'bytes' },
|
|
33
|
+
{
|
|
34
|
+
name: 'contractAddresses',
|
|
35
|
+
type: 'address[]',
|
|
36
|
+
internalType: 'address[]',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'startTimestamp',
|
|
40
|
+
type: 'uint256',
|
|
41
|
+
internalType: 'uint256',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'durationDays',
|
|
45
|
+
type: 'uint256',
|
|
46
|
+
internalType: 'uint256',
|
|
47
|
+
},
|
|
48
|
+
{ name: 'userSignature', type: 'bytes', internalType: 'bytes' },
|
|
49
|
+
],
|
|
50
|
+
outputs: [
|
|
51
|
+
{ name: 'payload', type: 'bytes', internalType: 'bytes' },
|
|
52
|
+
{ name: 'signers', type: 'address[]', internalType: 'address[]' },
|
|
53
|
+
{ name: 'threshold', type: 'uint256', internalType: 'uint256' },
|
|
54
|
+
{ name: 'extraData', type: 'bytes', internalType: 'bytes' },
|
|
55
|
+
],
|
|
56
|
+
stateMutability: 'view',
|
|
57
|
+
},
|
|
58
|
+
] as const;
|
|
59
|
+
|
|
60
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
61
|
+
|
|
62
|
+
export async function fetchUserDecrypt(
|
|
63
|
+
relayerClient: RelayerClientWithRuntime,
|
|
64
|
+
parameters: FetchUserDecryptParameters,
|
|
65
|
+
): Promise<FetchUserDecryptReturnType> {
|
|
66
|
+
const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
|
|
67
|
+
const { payload } = parameters;
|
|
68
|
+
const pairs = payload.handleContractPairs;
|
|
69
|
+
const contractAddresses = payload.kmsDecryptEip712Message.contractAddresses;
|
|
70
|
+
|
|
71
|
+
const authCount = contractAddresses.length;
|
|
72
|
+
for (const { contractAddress: c } of pairs) {
|
|
73
|
+
let authorized: boolean = false;
|
|
74
|
+
for (let i = 0; i < authCount; ++i) {
|
|
75
|
+
if (contractAddresses[i] == c) {
|
|
76
|
+
authorized = true;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (!authorized) {
|
|
81
|
+
throw new Error(`ContractAddressNotAuthorized: ${c} is not in the EIP-712 authorized contractAddresses list.`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const { kmsDecryptEip712Message, kmsDecryptEip712Signer, kmsDecryptEip712Signature } = payload;
|
|
86
|
+
const trustedClient = getTrustedClient(relayerClient);
|
|
87
|
+
const res = (await relayerClient.runtime.ethereum.readContract(trustedClient, {
|
|
88
|
+
abi: userDecryptAbi,
|
|
89
|
+
address: relayerClient.chain.fhevm.contracts.kmsVerifier.address as ChecksummedAddress,
|
|
90
|
+
args: [
|
|
91
|
+
pairs.map((p) => ({
|
|
92
|
+
handle: p.handle.bytes32Hex,
|
|
93
|
+
contractAddress: p.contractAddress,
|
|
94
|
+
})),
|
|
95
|
+
kmsDecryptEip712Signer,
|
|
96
|
+
kmsDecryptEip712Message.publicKey,
|
|
97
|
+
kmsDecryptEip712Message.contractAddresses,
|
|
98
|
+
_parseUintBigIntString('kmsDecryptEip712Message.startTimestamp', kmsDecryptEip712Message.startTimestamp),
|
|
99
|
+
_parseUintBigIntString('kmsDecryptEip712Message.durationDays', kmsDecryptEip712Message.durationDays),
|
|
100
|
+
kmsDecryptEip712Signature,
|
|
101
|
+
],
|
|
102
|
+
functionName: userDecryptAbi[0].name,
|
|
103
|
+
})) as unknown[];
|
|
104
|
+
|
|
105
|
+
const commonKmsSigncryptedSharePayload = res[0] as BytesHex;
|
|
106
|
+
const commonKmsSigncryptedSharePayloadNo0x = remove0x(commonKmsSigncryptedSharePayload);
|
|
107
|
+
const signersAddress = res[1] as readonly ChecksummedAddress[];
|
|
108
|
+
const threshold = asUint32BigInt(res[2]);
|
|
109
|
+
const extraData = res[3] as BytesHex;
|
|
110
|
+
|
|
111
|
+
const signers = getKmsSignersPrivateKeyMap(relayerClient);
|
|
112
|
+
|
|
113
|
+
const randomSignersAddress = randomUniqueUints(signersAddress.length, Number(threshold)).map(
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
115
|
+
(i) => signersAddress[i]!,
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
const result: FetchUserDecryptResultItem[] = [];
|
|
119
|
+
|
|
120
|
+
for (const signerAddress of randomSignersAddress) {
|
|
121
|
+
const privateKey = signers.get(signerAddress);
|
|
122
|
+
if (privateKey === undefined) {
|
|
123
|
+
throw new Error(`Unable to find KMS signer for address ${signerAddress}`);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const signature = await cleartextEthereumModule.sign({ hash: commonKmsSigncryptedSharePayload, privateKey });
|
|
127
|
+
result.push({ signature: remove0x(signature), payload: commonKmsSigncryptedSharePayloadNo0x, extraData });
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return userDecryptResultToKmsSigncryptedShares(result);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
134
|
+
|
|
135
|
+
function _parseUintBigIntString(label: string, value: string): bigint {
|
|
136
|
+
const bn = parseUintBigIntString(value);
|
|
137
|
+
if (bn === undefined) {
|
|
138
|
+
throw new Error(`${label} is not a valid uint string, got ${JSON.stringify(value)}`);
|
|
139
|
+
}
|
|
140
|
+
return bn;
|
|
141
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { UintNumber } from '../../../types/primitives.js';
|
|
2
|
+
import type {
|
|
3
|
+
FetchFheEncryptionKeyBytesParameters,
|
|
4
|
+
FetchFheEncryptionKeyBytesReturnType,
|
|
5
|
+
FetchFheEncryptionKeySourceParameters,
|
|
6
|
+
RelayerClient,
|
|
7
|
+
RelayerModuleFactory,
|
|
8
|
+
} from '../types.js';
|
|
9
|
+
import { createDeadbeefBytes } from '../../../base/bytes.js';
|
|
10
|
+
import { fetchUserDecrypt } from './fetchUserDecrypt.js';
|
|
11
|
+
import { fetchPublicDecrypt } from './fetchPublicDecrypt.js';
|
|
12
|
+
import { fetchDelegatedUserDecrypt } from './fetchDelegatedUserDecrypt.js';
|
|
13
|
+
import { fetchCoprocessorSignatures } from './fetchCoprocessorSignatures.js';
|
|
14
|
+
|
|
15
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
16
|
+
// relayerModule
|
|
17
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
18
|
+
|
|
19
|
+
export const relayerModule: RelayerModuleFactory = () => {
|
|
20
|
+
return Object.freeze({
|
|
21
|
+
relayer: Object.freeze({
|
|
22
|
+
fetchFheEncryptionKeySource: (
|
|
23
|
+
_relayerClient: RelayerClient,
|
|
24
|
+
_parameters: FetchFheEncryptionKeySourceParameters,
|
|
25
|
+
) => {
|
|
26
|
+
throw new Error('Not yet implemented');
|
|
27
|
+
},
|
|
28
|
+
fetchFheEncryptionKeyBytes: (
|
|
29
|
+
relayerClient: RelayerClient,
|
|
30
|
+
_parameters: FetchFheEncryptionKeyBytesParameters,
|
|
31
|
+
): Promise<FetchFheEncryptionKeyBytesReturnType> => {
|
|
32
|
+
return Promise.resolve({
|
|
33
|
+
publicKeyBytes: {
|
|
34
|
+
id: 'fhe-public-key-data-id',
|
|
35
|
+
bytes: createDeadbeefBytes(256),
|
|
36
|
+
},
|
|
37
|
+
crsBytes: {
|
|
38
|
+
bytes: createDeadbeefBytes(256),
|
|
39
|
+
capacity: 2048 as UintNumber,
|
|
40
|
+
id: 'crs-data-id',
|
|
41
|
+
},
|
|
42
|
+
metadata: {
|
|
43
|
+
relayerUrl: relayerClient.relayerUrl,
|
|
44
|
+
chainId: relayerClient.chainId,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
fetchCoprocessorSignatures,
|
|
49
|
+
fetchPublicDecrypt,
|
|
50
|
+
fetchUserDecrypt,
|
|
51
|
+
fetchDelegatedUserDecrypt,
|
|
52
|
+
}),
|
|
53
|
+
});
|
|
54
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
|
|
2
|
+
import type { CleartextEthereumModule } from '../../ethereum/types-ct.js';
|
|
3
|
+
import type { RelayerClientWithRuntime } from '../types.js';
|
|
4
|
+
|
|
5
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
6
|
+
|
|
7
|
+
const FHEVM_TEST_MNEMONIC = 'test test test test test test test future home engine virtual motion';
|
|
8
|
+
const COPROCESSOR_PATH = "0'/2/";
|
|
9
|
+
const KMS_PATH = "0'/3/";
|
|
10
|
+
|
|
11
|
+
type PrivateKeyMap = Map<ChecksummedAddress, BytesHex>;
|
|
12
|
+
|
|
13
|
+
const signersPrivateKeyMap: { readonly coprocessor: PrivateKeyMap; readonly kms: PrivateKeyMap } = {
|
|
14
|
+
coprocessor: new Map<ChecksummedAddress, BytesHex>(),
|
|
15
|
+
kms: new Map<ChecksummedAddress, BytesHex>(),
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
19
|
+
|
|
20
|
+
export function getCoprocessorSignersPrivateKeyMap(relayerClient: RelayerClientWithRuntime): PrivateKeyMap {
|
|
21
|
+
if (signersPrivateKeyMap.coprocessor.size === 0) {
|
|
22
|
+
_fillSignersPrivateKey(relayerClient, COPROCESSOR_PATH, 20, signersPrivateKeyMap.coprocessor);
|
|
23
|
+
}
|
|
24
|
+
return signersPrivateKeyMap.coprocessor;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
28
|
+
|
|
29
|
+
export function getKmsSignersPrivateKeyMap(relayerClient: RelayerClientWithRuntime): PrivateKeyMap {
|
|
30
|
+
if (signersPrivateKeyMap.kms.size === 0) {
|
|
31
|
+
_fillSignersPrivateKey(relayerClient, KMS_PATH, 20, signersPrivateKeyMap.kms);
|
|
32
|
+
}
|
|
33
|
+
return signersPrivateKeyMap.kms;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
37
|
+
|
|
38
|
+
function _fillSignersPrivateKey(
|
|
39
|
+
relayerClient: RelayerClientWithRuntime,
|
|
40
|
+
hdPathSuffix: string,
|
|
41
|
+
count: number,
|
|
42
|
+
map: PrivateKeyMap,
|
|
43
|
+
): void {
|
|
44
|
+
const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
|
|
45
|
+
for (let i = 0; i < count; ++i) {
|
|
46
|
+
const account = cleartextEthereumModule.mnemonicToAccount({
|
|
47
|
+
mnemonic: FHEVM_TEST_MNEMONIC,
|
|
48
|
+
path: `m/44'/60'/${hdPathSuffix}${i}`,
|
|
49
|
+
});
|
|
50
|
+
map.set(account.address, account.privateKey);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -3,7 +3,7 @@ import type { FetchInputProofResult } from '../../../types/relayer.js';
|
|
|
3
3
|
import type {
|
|
4
4
|
FetchCoprocessorSignaturesParameters,
|
|
5
5
|
FetchCoprocessorSignaturesReturnType,
|
|
6
|
-
|
|
6
|
+
RelayerClientWithRuntime,
|
|
7
7
|
} from '../types.js';
|
|
8
8
|
import { bytesToHexNo0x } from '../../../base/bytes.js';
|
|
9
9
|
import { removeSuffix } from '../../../base/string.js';
|
|
@@ -15,7 +15,7 @@ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
|
|
|
15
15
|
////////////////////////////////////////////////////////////////////////////////
|
|
16
16
|
|
|
17
17
|
export async function fetchCoprocessorSignatures(
|
|
18
|
-
relayerClient:
|
|
18
|
+
relayerClient: RelayerClientWithRuntime,
|
|
19
19
|
parameters: FetchCoprocessorSignaturesParameters,
|
|
20
20
|
): Promise<FetchCoprocessorSignaturesReturnType> {
|
|
21
21
|
const { options, payload } = parameters;
|
|
@@ -24,13 +24,13 @@ export async function fetchCoprocessorSignatures(
|
|
|
24
24
|
ciphertextWithInputVerification: bytesToHexNo0x(payload.zkProof.ciphertextWithZkProof),
|
|
25
25
|
contractAddress: payload.zkProof.contractAddress,
|
|
26
26
|
contractChainId: uintToHex0x(payload.zkProof.chainId),
|
|
27
|
-
extraData: payload.
|
|
27
|
+
extraData: payload.zkProof.getExtraData(),
|
|
28
28
|
userAddress: payload.zkProof.userAddress,
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
const request = new RelayerAsyncRequest({
|
|
32
32
|
relayerOperation: 'INPUT_PROOF',
|
|
33
|
-
url: `${removeSuffix(relayerClient.relayerUrl, '/')}/v2/input-proof`,
|
|
33
|
+
url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/input-proof`,
|
|
34
34
|
payload: inputProofPayload,
|
|
35
35
|
options,
|
|
36
36
|
});
|
|
@@ -3,7 +3,7 @@ import type { FetchDelegatedUserDecryptResult } from '../../../types/relayer.js'
|
|
|
3
3
|
import type {
|
|
4
4
|
FetchDelegatedUserDecryptParameters,
|
|
5
5
|
FetchDelegatedUserDecryptReturnType,
|
|
6
|
-
|
|
6
|
+
RelayerClientWithRuntime,
|
|
7
7
|
} from '../types.js';
|
|
8
8
|
import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
|
|
9
9
|
import { remove0x, removeSuffix } from '../../../base/string.js';
|
|
@@ -14,7 +14,7 @@ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
|
|
|
14
14
|
//////////////////////////////////////////////////////////////////////////////
|
|
15
15
|
|
|
16
16
|
export async function fetchDelegatedUserDecrypt(
|
|
17
|
-
relayerClient:
|
|
17
|
+
relayerClient: RelayerClientWithRuntime,
|
|
18
18
|
parameters: FetchDelegatedUserDecryptParameters,
|
|
19
19
|
): Promise<FetchDelegatedUserDecryptReturnType> {
|
|
20
20
|
const { options, payload } = parameters;
|
|
@@ -47,7 +47,7 @@ export async function fetchDelegatedUserDecrypt(
|
|
|
47
47
|
|
|
48
48
|
const request = new RelayerAsyncRequest({
|
|
49
49
|
relayerOperation: 'DELEGATED_USER_DECRYPT',
|
|
50
|
-
url: `${removeSuffix(relayerClient.relayerUrl, '/')}/v2/delegated-user-decrypt`,
|
|
50
|
+
url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/delegated-user-decrypt`,
|
|
51
51
|
payload: relayerPayload,
|
|
52
52
|
options,
|
|
53
53
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Bytes65Hex, BytesHex } from '../../../types/primitives.js';
|
|
2
2
|
import type { RelayerFetchPublicDecryptPayload } from '../../../types/relayer-p.js';
|
|
3
3
|
import type { FetchPublicDecryptResult } from '../../../types/relayer.js';
|
|
4
|
-
import type { FetchPublicDecryptParameters, FetchPublicDecryptReturnType,
|
|
4
|
+
import type { FetchPublicDecryptParameters, FetchPublicDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
|
|
5
5
|
import { ensure0x, removeSuffix } from '../../../base/string.js';
|
|
6
6
|
import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
|
|
7
7
|
|
|
@@ -10,7 +10,7 @@ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
|
|
|
10
10
|
//////////////////////////////////////////////////////////////////////////////
|
|
11
11
|
|
|
12
12
|
export async function fetchPublicDecrypt(
|
|
13
|
-
relayerClient:
|
|
13
|
+
relayerClient: RelayerClientWithRuntime,
|
|
14
14
|
parameters: FetchPublicDecryptParameters,
|
|
15
15
|
): Promise<FetchPublicDecryptReturnType> {
|
|
16
16
|
const { options, payload } = parameters;
|
|
@@ -25,7 +25,7 @@ export async function fetchPublicDecrypt(
|
|
|
25
25
|
|
|
26
26
|
const request = new RelayerAsyncRequest({
|
|
27
27
|
relayerOperation: 'PUBLIC_DECRYPT',
|
|
28
|
-
url: `${removeSuffix(relayerClient.relayerUrl, '/')}/v2/public-decrypt`,
|
|
28
|
+
url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/public-decrypt`,
|
|
29
29
|
payload: p,
|
|
30
30
|
options,
|
|
31
31
|
});
|
|
@@ -2,7 +2,7 @@ import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
|
|
|
2
2
|
import type { Bytes65HexNo0x } from '../../../types/primitives.js';
|
|
3
3
|
import type { FetchUserDecryptPayload } from '../../../types/relayer-p.js';
|
|
4
4
|
import type { FetchUserDecryptResult } from '../../../types/relayer.js';
|
|
5
|
-
import type { FetchUserDecryptParameters, FetchUserDecryptReturnType,
|
|
5
|
+
import type { FetchUserDecryptParameters, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
|
|
6
6
|
import { remove0x, removeSuffix } from '../../../base/string.js';
|
|
7
7
|
import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
|
|
8
8
|
|
|
@@ -11,7 +11,7 @@ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
|
|
|
11
11
|
//////////////////////////////////////////////////////////////////////////////
|
|
12
12
|
|
|
13
13
|
export async function fetchUserDecrypt(
|
|
14
|
-
relayerClient:
|
|
14
|
+
relayerClient: RelayerClientWithRuntime,
|
|
15
15
|
parameters: FetchUserDecryptParameters,
|
|
16
16
|
): Promise<FetchUserDecryptReturnType> {
|
|
17
17
|
const { options, payload } = parameters;
|
|
@@ -45,7 +45,7 @@ export async function fetchUserDecrypt(
|
|
|
45
45
|
|
|
46
46
|
const request = new RelayerAsyncRequest({
|
|
47
47
|
relayerOperation: 'USER_DECRYPT',
|
|
48
|
-
url: `${removeSuffix(relayerClient.relayerUrl, '/')}/v2/user-decrypt`,
|
|
48
|
+
url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/user-decrypt`,
|
|
49
49
|
payload: relayerPayload,
|
|
50
50
|
options,
|
|
51
51
|
});
|
|
@@ -12,6 +12,8 @@ import type { Bytes65Hex, BytesHex, ChecksummedAddress } from '../../types/primi
|
|
|
12
12
|
import type { Prettify } from '../../types/utils.js';
|
|
13
13
|
import type { ZkProof } from '../../types/zkProof-p.js';
|
|
14
14
|
import type { Handle, InputHandle } from '../../types/encryptedTypes-p.js';
|
|
15
|
+
import type { FhevmChain } from '../../types/fhevmChain.js';
|
|
16
|
+
import type { FhevmRuntime } from '../../types/coreFhevmRuntime.js';
|
|
15
17
|
|
|
16
18
|
////////////////////////////////////////////////////////////////////////////////
|
|
17
19
|
//
|
|
@@ -24,6 +26,13 @@ export type RelayerClient = {
|
|
|
24
26
|
readonly chainId: number;
|
|
25
27
|
};
|
|
26
28
|
|
|
29
|
+
export type RelayerClientWithRuntime = {
|
|
30
|
+
readonly chain: FhevmChain;
|
|
31
|
+
readonly runtime: FhevmRuntime;
|
|
32
|
+
readonly client: NonNullable<object>;
|
|
33
|
+
readonly options: { readonly batchRpcCalls: boolean };
|
|
34
|
+
};
|
|
35
|
+
|
|
27
36
|
////////////////////////////////////////////////////////////////////////////////
|
|
28
37
|
// 1.1 fetchFheEncryptionKeySource
|
|
29
38
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -65,7 +74,6 @@ export type FetchFheEncryptionKeyBytesModuleFunction = {
|
|
|
65
74
|
export type FetchCoprocessorSignaturesParameters = {
|
|
66
75
|
readonly payload: {
|
|
67
76
|
readonly zkProof: ZkProof;
|
|
68
|
-
readonly extraData: BytesHex;
|
|
69
77
|
};
|
|
70
78
|
readonly options?: RelayerInputProofOptions | undefined;
|
|
71
79
|
};
|
|
@@ -78,7 +86,7 @@ export type FetchCoprocessorSignaturesReturnType = {
|
|
|
78
86
|
|
|
79
87
|
export type FetchCoprocessorSignaturesModuleFunction = {
|
|
80
88
|
fetchCoprocessorSignatures(
|
|
81
|
-
relayerClient:
|
|
89
|
+
relayerClient: RelayerClientWithRuntime,
|
|
82
90
|
parameters: FetchCoprocessorSignaturesParameters,
|
|
83
91
|
): Promise<FetchCoprocessorSignaturesReturnType>;
|
|
84
92
|
};
|
|
@@ -103,7 +111,7 @@ export type FetchPublicDecryptReturnType = {
|
|
|
103
111
|
|
|
104
112
|
export type FetchPublicDecryptModuleFunction = {
|
|
105
113
|
fetchPublicDecrypt(
|
|
106
|
-
relayerClient:
|
|
114
|
+
relayerClient: RelayerClientWithRuntime,
|
|
107
115
|
parameters: FetchPublicDecryptParameters,
|
|
108
116
|
): Promise<FetchPublicDecryptReturnType>;
|
|
109
117
|
};
|
|
@@ -129,7 +137,7 @@ export type FetchUserDecryptReturnType = readonly KmsSigncryptedShare[];
|
|
|
129
137
|
|
|
130
138
|
export type FetchUserDecryptModuleFunction = {
|
|
131
139
|
fetchUserDecrypt(
|
|
132
|
-
relayerClient:
|
|
140
|
+
relayerClient: RelayerClientWithRuntime,
|
|
133
141
|
parameters: FetchUserDecryptParameters,
|
|
134
142
|
): Promise<FetchUserDecryptReturnType>;
|
|
135
143
|
};
|
|
@@ -155,7 +163,7 @@ export type FetchDelegatedUserDecryptReturnType = readonly KmsSigncryptedShare[]
|
|
|
155
163
|
|
|
156
164
|
export type FetchDelegatedUserDecryptModuleFunction = {
|
|
157
165
|
fetchDelegatedUserDecrypt(
|
|
158
|
-
relayerClient:
|
|
166
|
+
relayerClient: RelayerClientWithRuntime,
|
|
159
167
|
parameters: FetchDelegatedUserDecryptParameters,
|
|
160
168
|
): Promise<FetchDelegatedUserDecryptReturnType>;
|
|
161
169
|
};
|