@primuslabs/fhetransform-sdk 0.4.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/README.md +198 -0
- package/dist/abis/acl.abi.d.ts +379 -0
- package/dist/abis/acl.abi.js +495 -0
- package/dist/abis/acl.abi.js.map +1 -0
- package/dist/abis/alphatrion_reward.abi.d.ts +407 -0
- package/dist/abis/alphatrion_reward.abi.js +532 -0
- package/dist/abis/alphatrion_reward.abi.js.map +1 -0
- package/dist/abis/ciphertext_digests.abi.d.ts +336 -0
- package/dist/abis/ciphertext_digests.abi.js +444 -0
- package/dist/abis/ciphertext_digests.abi.js.map +1 -0
- package/dist/abis/ciphertext_verification.abi.d.ts +637 -0
- package/dist/abis/ciphertext_verification.abi.js +830 -0
- package/dist/abis/ciphertext_verification.abi.js.map +1 -0
- package/dist/abis/convert_token.abi.d.ts +922 -0
- package/dist/abis/convert_token.abi.js +1208 -0
- package/dist/abis/convert_token.abi.js.map +1 -0
- package/dist/abis/decryption.abi.d.ts +956 -0
- package/dist/abis/decryption.abi.js +1244 -0
- package/dist/abis/decryption.abi.js.map +1 -0
- package/dist/abis/erc20.abi.d.ts +265 -0
- package/dist/abis/erc20.abi.js +350 -0
- package/dist/abis/erc20.abi.js.map +1 -0
- package/dist/abis/fhe_executor.abi.d.ts +1535 -0
- package/dist/abis/fhe_executor.abi.js +1962 -0
- package/dist/abis/fhe_executor.abi.js.map +1 -0
- package/dist/abis/space_bridge_config.abi.d.ts +792 -0
- package/dist/abis/space_bridge_config.abi.js +1032 -0
- package/dist/abis/space_bridge_config.abi.js.map +1 -0
- package/dist/abis/token.abi.d.ts +630 -0
- package/dist/abis/token.abi.js +828 -0
- package/dist/abis/token.abi.js.map +1 -0
- package/dist/cli/eusdc.d.ts +2 -0
- package/dist/cli/eusdc.js +41 -0
- package/dist/cli/eusdc.js.map +1 -0
- package/dist/contract/callbacks.d.ts +59 -0
- package/dist/contract/callbacks.js +2 -0
- package/dist/contract/callbacks.js.map +1 -0
- package/dist/contract/convert-token.d.ts +107 -0
- package/dist/contract/convert-token.js +249 -0
- package/dist/contract/convert-token.js.map +1 -0
- package/dist/contract/token.d.ts +167 -0
- package/dist/contract/token.js +404 -0
- package/dist/contract/token.js.map +1 -0
- package/dist/contract/transaction.d.ts +29 -0
- package/dist/contract/transaction.js +2 -0
- package/dist/contract/transaction.js.map +1 -0
- package/dist/core/address.d.ts +118 -0
- package/dist/core/address.js +200 -0
- package/dist/core/address.js.map +1 -0
- package/dist/core/auth.d.ts +68 -0
- package/dist/core/auth.js +58 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/bytes.d.ts +48 -0
- package/dist/core/bytes.js +117 -0
- package/dist/core/bytes.js.map +1 -0
- package/dist/core/cache-manager.d.ts +138 -0
- package/dist/core/cache-manager.js +440 -0
- package/dist/core/cache-manager.js.map +1 -0
- package/dist/core/chain.d.ts +41 -0
- package/dist/core/chain.js +59 -0
- package/dist/core/chain.js.map +1 -0
- package/dist/core/constants.d.ts +24 -0
- package/dist/core/constants.js +25 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/error.d.ts +2 -0
- package/dist/core/error.js +14 -0
- package/dist/core/error.js.map +1 -0
- package/dist/core/errors/error-catalog.d.ts +29 -0
- package/dist/core/errors/error-catalog.js +84 -0
- package/dist/core/errors/error-catalog.js.map +1 -0
- package/dist/core/errors/error-codes.d.ts +52 -0
- package/dist/core/errors/error-codes.js +61 -0
- package/dist/core/errors/error-codes.js.map +1 -0
- package/dist/core/errors/error-utils.d.ts +27 -0
- package/dist/core/errors/error-utils.js +110 -0
- package/dist/core/errors/error-utils.js.map +1 -0
- package/dist/core/errors/fhe-error.d.ts +98 -0
- package/dist/core/errors/fhe-error.js +190 -0
- package/dist/core/errors/fhe-error.js.map +1 -0
- package/dist/core/errors/index.d.ts +4 -0
- package/dist/core/errors/index.js +5 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/estimate.d.ts +39 -0
- package/dist/core/estimate.js +111 -0
- package/dist/core/estimate.js.map +1 -0
- package/dist/core/event.d.ts +212 -0
- package/dist/core/event.js +42 -0
- package/dist/core/event.js.map +1 -0
- package/dist/core/fhe-type.d.ts +75 -0
- package/dist/core/fhe-type.js +115 -0
- package/dist/core/fhe-type.js.map +1 -0
- package/dist/core/fhe.d.ts +11 -0
- package/dist/core/fhe.js +23 -0
- package/dist/core/fhe.js.map +1 -0
- package/dist/core/handle.d.ts +42 -0
- package/dist/core/handle.js +99 -0
- package/dist/core/handle.js.map +1 -0
- package/dist/core/json-utils.d.ts +18 -0
- package/dist/core/json-utils.js +37 -0
- package/dist/core/json-utils.js.map +1 -0
- package/dist/core/kms.d.ts +42 -0
- package/dist/core/kms.js +70 -0
- package/dist/core/kms.js.map +1 -0
- package/dist/core/logger.d.ts +3 -0
- package/dist/core/logger.js +11 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/pretty-print.d.ts +18 -0
- package/dist/core/pretty-print.js +84 -0
- package/dist/core/pretty-print.js.map +1 -0
- package/dist/core/primitives.d.ts +22 -0
- package/dist/core/primitives.js +2 -0
- package/dist/core/primitives.js.map +1 -0
- package/dist/core/retryable-handler.d.ts +74 -0
- package/dist/core/retryable-handler.js +227 -0
- package/dist/core/retryable-handler.js.map +1 -0
- package/dist/core/signer-address-info.d.ts +15 -0
- package/dist/core/signer-address-info.js +33 -0
- package/dist/core/signer-address-info.js.map +1 -0
- package/dist/core/string.d.ts +28 -0
- package/dist/core/string.js +33 -0
- package/dist/core/string.js.map +1 -0
- package/dist/core/swallow.d.ts +23 -0
- package/dist/core/swallow.js +37 -0
- package/dist/core/swallow.js.map +1 -0
- package/dist/core/system-contract-info.d.ts +17 -0
- package/dist/core/system-contract-info.js +41 -0
- package/dist/core/system-contract-info.js.map +1 -0
- package/dist/core/ttl-cache.d.ts +81 -0
- package/dist/core/ttl-cache.js +113 -0
- package/dist/core/ttl-cache.js.map +1 -0
- package/dist/core/tx-error-parser.d.ts +40 -0
- package/dist/core/tx-error-parser.js +83 -0
- package/dist/core/tx-error-parser.js.map +1 -0
- package/dist/core/utils.d.ts +62 -0
- package/dist/core/utils.js +143 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/jazz/encrypt-key-p.d.ts +65 -0
- package/dist/jazz/encrypt-key-p.js +283 -0
- package/dist/jazz/encrypt-key-p.js.map +1 -0
- package/dist/jazz/encrypt-p.d.ts +82 -0
- package/dist/jazz/encrypt-p.js +139 -0
- package/dist/jazz/encrypt-p.js.map +1 -0
- package/dist/jazz/encrypt.d.ts +58 -0
- package/dist/jazz/encrypt.js +155 -0
- package/dist/jazz/encrypt.js.map +1 -0
- package/dist/jazz/input-proof-p.d.ts +122 -0
- package/dist/jazz/input-proof-p.js +265 -0
- package/dist/jazz/input-proof-p.js.map +1 -0
- package/dist/jazz/jazz-client-i.d.ts +16 -0
- package/dist/jazz/jazz-client-i.js +2 -0
- package/dist/jazz/jazz-client-i.js.map +1 -0
- package/dist/jazz/jazz-client.d.ts +18 -0
- package/dist/jazz/jazz-client.js +24 -0
- package/dist/jazz/jazz-client.js.map +1 -0
- package/dist/jazz/key-pair.d.ts +50 -0
- package/dist/jazz/key-pair.js +166 -0
- package/dist/jazz/key-pair.js.map +1 -0
- package/dist/jazz/mock/fake.d.ts +3 -0
- package/dist/jazz/mock/fake.js +23 -0
- package/dist/jazz/mock/fake.js.map +1 -0
- package/dist/jazz/mock/fetch-input-proof.d.ts +4 -0
- package/dist/jazz/mock/fetch-input-proof.js +63 -0
- package/dist/jazz/mock/fetch-input-proof.js.map +1 -0
- package/dist/jazz/mock/fetch-key-url.d.ts +3 -0
- package/dist/jazz/mock/fetch-key-url.js +15 -0
- package/dist/jazz/mock/fetch-key-url.js.map +1 -0
- package/dist/jazz/mock/fetch-public-decrypt.d.ts +3 -0
- package/dist/jazz/mock/fetch-public-decrypt.js +81 -0
- package/dist/jazz/mock/fetch-public-decrypt.js.map +1 -0
- package/dist/jazz/mock/fetch-user-decrypt.d.ts +4 -0
- package/dist/jazz/mock/fetch-user-decrypt.js +174 -0
- package/dist/jazz/mock/fetch-user-decrypt.js.map +1 -0
- package/dist/jazz/module/fetch-input-proof.d.ts +19 -0
- package/dist/jazz/module/fetch-input-proof.js +72 -0
- package/dist/jazz/module/fetch-input-proof.js.map +1 -0
- package/dist/jazz/module/fetch-key-url.d.ts +17 -0
- package/dist/jazz/module/fetch-key-url.js +46 -0
- package/dist/jazz/module/fetch-key-url.js.map +1 -0
- package/dist/jazz/module/fetch-public-decrypt.d.ts +19 -0
- package/dist/jazz/module/fetch-public-decrypt.js +65 -0
- package/dist/jazz/module/fetch-public-decrypt.js.map +1 -0
- package/dist/jazz/module/fetch-user-decrypt.d.ts +19 -0
- package/dist/jazz/module/fetch-user-decrypt.js +109 -0
- package/dist/jazz/module/fetch-user-decrypt.js.map +1 -0
- package/dist/jazz/module/jazz-async-request.d.ts +102 -0
- package/dist/jazz/module/jazz-async-request.js +515 -0
- package/dist/jazz/module/jazz-async-request.js.map +1 -0
- package/dist/jazz/module/jazz-p.d.ts +61 -0
- package/dist/jazz/module/jazz-p.js +33 -0
- package/dist/jazz/module/jazz-p.js.map +1 -0
- package/dist/jazz/module/s3-download.d.ts +85 -0
- package/dist/jazz/module/s3-download.js +293 -0
- package/dist/jazz/module/s3-download.js.map +1 -0
- package/dist/jazz/permit.d.ts +200 -0
- package/dist/jazz/permit.js +319 -0
- package/dist/jazz/permit.js.map +1 -0
- package/dist/jazz/public-decrypt-p.d.ts +96 -0
- package/dist/jazz/public-decrypt-p.js +258 -0
- package/dist/jazz/public-decrypt-p.js.map +1 -0
- package/dist/jazz/public-decrypt.d.ts +48 -0
- package/dist/jazz/public-decrypt.js +156 -0
- package/dist/jazz/public-decrypt.js.map +1 -0
- package/dist/jazz/read-contract.d.ts +81 -0
- package/dist/jazz/read-contract.js +125 -0
- package/dist/jazz/read-contract.js.map +1 -0
- package/dist/jazz/types/common.d.ts +17 -0
- package/dist/jazz/types/common.js +2 -0
- package/dist/jazz/types/common.js.map +1 -0
- package/dist/jazz/types/input-proof.d.ts +76 -0
- package/dist/jazz/types/input-proof.js +2 -0
- package/dist/jazz/types/input-proof.js.map +1 -0
- package/dist/jazz/types/key-url.d.ts +68 -0
- package/dist/jazz/types/key-url.js +5 -0
- package/dist/jazz/types/key-url.js.map +1 -0
- package/dist/jazz/types/public-decrypt.d.ts +61 -0
- package/dist/jazz/types/public-decrypt.js +2 -0
- package/dist/jazz/types/public-decrypt.js.map +1 -0
- package/dist/jazz/types/user-decrypt.d.ts +123 -0
- package/dist/jazz/types/user-decrypt.js +2 -0
- package/dist/jazz/types/user-decrypt.js.map +1 -0
- package/dist/jazz/user-decrypt-p.d.ts +111 -0
- package/dist/jazz/user-decrypt-p.js +280 -0
- package/dist/jazz/user-decrypt-p.js.map +1 -0
- package/dist/jazz/user-decrypt.d.ts +74 -0
- package/dist/jazz/user-decrypt.js +143 -0
- package/dist/jazz/user-decrypt.js.map +1 -0
- package/dist/native/fhe-api.js +5959 -0
- package/dist/native/fhe-api.node.cjs +6167 -0
- package/dist/native/fhe-api.node.worker.cjs +210 -0
- package/dist/native/fhe-api.wasm +0 -0
- package/dist/native/fhe-api.worker.js +164 -0
- package/dist/native/kms/node/kms_lib.d.ts +38 -0
- package/dist/native/kms/node/kms_lib.js +356 -0
- package/dist/native/kms/node/kms_lib_bg.wasm +0 -0
- package/dist/native/kms/node/kms_lib_bg.wasm.d.ts +21 -0
- package/dist/native/kms/node/package.json +11 -0
- package/dist/native/kms/web/kms_lib.d.ts +84 -0
- package/dist/native/kms/web/kms_lib.js +443 -0
- package/dist/native/kms/web/kms_lib_bg.wasm +0 -0
- package/dist/native/kms/web/kms_lib_bg.wasm.d.ts +21 -0
- package/dist/native/kms/web/package.json +15 -0
- package/dist/runtime/browser.d.ts +36 -0
- package/dist/runtime/browser.js +115 -0
- package/dist/runtime/browser.js.map +1 -0
- package/dist/runtime/node.d.ts +30 -0
- package/dist/runtime/node.js +95 -0
- package/dist/runtime/node.js.map +1 -0
- package/dist/sdk/fhetransform-sdk-b.d.ts +102 -0
- package/dist/sdk/fhetransform-sdk-b.js +294 -0
- package/dist/sdk/fhetransform-sdk-b.js.map +1 -0
- package/dist/sdk/fhetransform-sdk.d.ts +87 -0
- package/dist/sdk/fhetransform-sdk.js +135 -0
- package/dist/sdk/fhetransform-sdk.js.map +1 -0
- package/dist/sdk/jazz-service.d.ts +13 -0
- package/dist/sdk/jazz-service.js +58 -0
- package/dist/sdk/jazz-service.js.map +1 -0
- package/dist/sdk/permit-service.d.ts +45 -0
- package/dist/sdk/permit-service.js +144 -0
- package/dist/sdk/permit-service.js.map +1 -0
- package/dist/wasm/fhe-wasm-client.d.ts +19 -0
- package/dist/wasm/fhe-wasm-client.js +23 -0
- package/dist/wasm/fhe-wasm-client.js.map +1 -0
- package/dist/wasm/fhe-wasm-module.d.ts +24 -0
- package/dist/wasm/fhe-wasm-module.js +141 -0
- package/dist/wasm/fhe-wasm-module.js.map +1 -0
- package/dist/wasm/fhe-wasm-type.d.ts +59 -0
- package/dist/wasm/fhe-wasm-type.js +244 -0
- package/dist/wasm/fhe-wasm-type.js.map +1 -0
- package/dist/wasm/wasm-loader.browser.d.ts +21 -0
- package/dist/wasm/wasm-loader.browser.js +143 -0
- package/dist/wasm/wasm-loader.browser.js.map +1 -0
- package/dist/wasm/wasm-loader.node.d.ts +24 -0
- package/dist/wasm/wasm-loader.node.js +114 -0
- package/dist/wasm/wasm-loader.node.js.map +1 -0
- package/dist/wasm/worker-client.browser.d.ts +6 -0
- package/dist/wasm/worker-client.browser.js +21 -0
- package/dist/wasm/worker-client.browser.js.map +1 -0
- package/dist/wasm/worker-client.d.ts +34 -0
- package/dist/wasm/worker-client.js +160 -0
- package/dist/wasm/worker-client.js.map +1 -0
- package/dist/wasm/worker-client.node.d.ts +6 -0
- package/dist/wasm/worker-client.node.js +20 -0
- package/dist/wasm/worker-client.node.js.map +1 -0
- package/dist/wasm/worker-message.d.ts +61 -0
- package/dist/wasm/worker-message.js +2 -0
- package/dist/wasm/worker-message.js.map +1 -0
- package/dist/wasm/worker-transport.browser.d.ts +15 -0
- package/dist/wasm/worker-transport.browser.js +35 -0
- package/dist/wasm/worker-transport.browser.js.map +1 -0
- package/dist/wasm/worker-transport.d.ts +6 -0
- package/dist/wasm/worker-transport.js +2 -0
- package/dist/wasm/worker-transport.js.map +1 -0
- package/dist/wasm/worker-transport.node.d.ts +17 -0
- package/dist/wasm/worker-transport.node.js +39 -0
- package/dist/wasm/worker-transport.node.js.map +1 -0
- package/dist/wasm/worker.d.ts +1 -0
- package/dist/wasm/worker.js +69 -0
- package/dist/wasm/worker.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IJazzClient, JazzConfig } from "./jazz-client-i.js";
|
|
2
|
+
import { EncryptParameters, EncryptPayload, EncryptResult } from "./encrypt.js";
|
|
3
|
+
import { GenerateTransportKeyPairResult } from "./key-pair.js";
|
|
4
|
+
import { SignDecryptionPermitParameters, SignedDecryptionPermitResult } from "./permit.js";
|
|
5
|
+
import { PublicDecryptParameters, PublicDecryptPayload, PublicDecryptResult } from "./public-decrypt.js";
|
|
6
|
+
import { UserDecryptParameters, UserDecryptPayload, UserDecryptResult } from "./user-decrypt.js";
|
|
7
|
+
import type { FheTransformSDK } from "../sdk/fhetransform-sdk";
|
|
8
|
+
export declare class JazzClientImpl implements IJazzClient {
|
|
9
|
+
private readonly config;
|
|
10
|
+
readonly sdk: FheTransformSDK;
|
|
11
|
+
constructor(sdk: FheTransformSDK, config: JazzConfig);
|
|
12
|
+
encryptValue: <T extends EncryptPayload>(parameters: EncryptParameters<T>) => Promise<EncryptResult<T>>;
|
|
13
|
+
decryptPublicValue: <T extends PublicDecryptPayload>(parameters: PublicDecryptParameters<T>) => Promise<PublicDecryptResult<T>>;
|
|
14
|
+
generateTransportKeyPair: () => Promise<GenerateTransportKeyPairResult>;
|
|
15
|
+
signDecryptionPermit: (parameters: SignDecryptionPermitParameters) => Promise<SignedDecryptionPermitResult>;
|
|
16
|
+
decryptUserValue: <T extends UserDecryptPayload>(parameters: UserDecryptParameters<T>) => Promise<UserDecryptResult<T>>;
|
|
17
|
+
}
|
|
18
|
+
export declare function createJazzClient(sdk: FheTransformSDK, config: JazzConfig): IJazzClient;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { encryptValue } from "./encrypt.js";
|
|
2
|
+
import { generateTransportKeyPair } from "./key-pair.js";
|
|
3
|
+
import { signDecryptionPermit } from "./permit.js";
|
|
4
|
+
import { decryptPublicValue } from "./public-decrypt.js";
|
|
5
|
+
import { decryptUserValue } from "./user-decrypt.js";
|
|
6
|
+
export class JazzClientImpl {
|
|
7
|
+
config;
|
|
8
|
+
sdk;
|
|
9
|
+
constructor(sdk, config) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.sdk = sdk;
|
|
12
|
+
}
|
|
13
|
+
// IMPLEMENTS
|
|
14
|
+
encryptValue = async (parameters) => encryptValue(this, parameters);
|
|
15
|
+
decryptPublicValue = async (parameters) => decryptPublicValue(this, parameters);
|
|
16
|
+
generateTransportKeyPair = async () => generateTransportKeyPair(this.sdk);
|
|
17
|
+
signDecryptionPermit = async (parameters) => signDecryptionPermit(this.sdk, parameters);
|
|
18
|
+
decryptUserValue = async (parameters) => decryptUserValue(this, parameters);
|
|
19
|
+
}
|
|
20
|
+
export function createJazzClient(sdk, config) {
|
|
21
|
+
const c = new JazzClientImpl(sdk, config);
|
|
22
|
+
return c;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=jazz-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jazz-client.js","sourceRoot":"","sources":["../../src/jazz/jazz-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAoD,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAkC,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAgE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAsE,MAAM,qBAAqB,CAAC;AAC7H,OAAO,EAAE,gBAAgB,EAAgE,MAAM,mBAAmB,CAAC;AAGnH,MAAM,OAAO,cAAc;IAG0B;IAF1C,GAAG,CAAkB;IAE9B,YAAY,GAAoB,EAAmB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QACnE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,aAAa;IACb,YAAY,GAAG,KAAK,EAA4B,UAAgC,EACpD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE9D,kBAAkB,GAAG,KAAK,EAAkC,UAAsC,EAChE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE1E,wBAAwB,GAAG,KAAK,IACU,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChF,oBAAoB,GAAG,KAAK,EAAE,UAA0C,EAChC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAEtF,gBAAgB,GAAG,KAAK,EAAgC,UAAoC,EAC5D,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;CACvE;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAoB,EAAE,MAAkB;IACvE,MAAM,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Address, BytesHex } from "../core/primitives.js";
|
|
2
|
+
import { FheTransformSDK } from "../sdk/fhetransform-sdk.js";
|
|
3
|
+
/**
|
|
4
|
+
* Branded type for TransportKeyPair to ensure type safety.
|
|
5
|
+
*/
|
|
6
|
+
declare const TransportKeyPairBrand: unique symbol;
|
|
7
|
+
/**
|
|
8
|
+
* Transport key pair for secure communication.
|
|
9
|
+
*
|
|
10
|
+
* This key pair is used for transport-level encryption and authentication.
|
|
11
|
+
* The private key should never be exposed outside of secure storage.
|
|
12
|
+
*/
|
|
13
|
+
export type TransportKeyPair = {
|
|
14
|
+
/** Private key as hex with 0x prefix (keep secure) */
|
|
15
|
+
readonly privateKey: BytesHex;
|
|
16
|
+
/** Public key as hex with 0x prefix (can be shared) */
|
|
17
|
+
readonly publicKey: BytesHex;
|
|
18
|
+
/** Brand to prevent accidental type compatibility */
|
|
19
|
+
readonly [TransportKeyPairBrand]: true;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Result of generating a transport key pair.
|
|
23
|
+
*/
|
|
24
|
+
export type GenerateTransportKeyPairResult = TransportKeyPair;
|
|
25
|
+
/**
|
|
26
|
+
* Generates a new transport key pair using the KMS backend.
|
|
27
|
+
*
|
|
28
|
+
* This function initializes the KMS module and generates a new key pair.
|
|
29
|
+
* The generated keys are returned as hex strings with 0x prefix.
|
|
30
|
+
*
|
|
31
|
+
* @returns Promise resolving to TransportKeyPair containing private and public keys
|
|
32
|
+
* @throws Error if KMS initialization or key generation fails
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateTransportKeyPair(sdk: FheTransformSDK): Promise<GenerateTransportKeyPairResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Gets an existing transport key pair from cache, or generates a new one.
|
|
37
|
+
*
|
|
38
|
+
* This function implements a caching strategy:
|
|
39
|
+
* 1. Checks if the key pair exists in cache and is still valid (TTL)
|
|
40
|
+
* 2. If expired or missing, generates a new key pair
|
|
41
|
+
* 3. Saves the new key pair to cache
|
|
42
|
+
* 4. Returns the key pair
|
|
43
|
+
*
|
|
44
|
+
* @param client - The Jazz client instance
|
|
45
|
+
* @param signerAddress - Address of the signer (used as cache key prefix)
|
|
46
|
+
* @returns Promise resolving to TransportKeyPair
|
|
47
|
+
* @throws Error if KMS initialization or key generation fails
|
|
48
|
+
*/
|
|
49
|
+
export declare function getOrCreateKeyPair(sdk: FheTransformSDK, signerAddress: Address): Promise<TransportKeyPair>;
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { bytesToHex } from "../core/bytes.js";
|
|
2
|
+
import { kms_enc_keygen, kms_init } from "../core/kms.js";
|
|
3
|
+
import { logger } from "../core/logger.js";
|
|
4
|
+
import { DEFAULT_TRANSPORT_KEY_PAIR_TTL_SECONDS } from "../core/constants.js";
|
|
5
|
+
import { FheErrorCode } from "../core/errors/error-codes.js";
|
|
6
|
+
import { FheError } from "../core/errors/fhe-error.js";
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Key Pair Generation
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Generates a new transport key pair using the KMS backend.
|
|
12
|
+
*
|
|
13
|
+
* This function initializes the KMS module and generates a new key pair.
|
|
14
|
+
* The generated keys are returned as hex strings with 0x prefix.
|
|
15
|
+
*
|
|
16
|
+
* @returns Promise resolving to TransportKeyPair containing private and public keys
|
|
17
|
+
* @throws Error if KMS initialization or key generation fails
|
|
18
|
+
*/
|
|
19
|
+
export async function generateTransportKeyPair(sdk) {
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Step 1: Initialize KMS
|
|
22
|
+
// ============================================================================
|
|
23
|
+
logger.trace('[generateTransportKeyPair] Initializing KMS module');
|
|
24
|
+
await kms_init();
|
|
25
|
+
// ============================================================================
|
|
26
|
+
// Step 2: Generate Key Pair
|
|
27
|
+
// ============================================================================
|
|
28
|
+
logger.debug('[generateTransportKeyPair] Generating new key pair');
|
|
29
|
+
const [sk, pk] = kms_enc_keygen();
|
|
30
|
+
if (!sk || !pk) {
|
|
31
|
+
throw new FheError({ code: FheErrorCode.EncryptionFailed, message: "KMS key generation returned no keys" });
|
|
32
|
+
}
|
|
33
|
+
logger.debug('[generateTransportKeyPair] Key pair generated', {
|
|
34
|
+
skLength: sk.length,
|
|
35
|
+
pkLength: pk.length,
|
|
36
|
+
});
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Step 3: Convert to Hex
|
|
39
|
+
// ============================================================================
|
|
40
|
+
const privateKey = bytesToHex(sk);
|
|
41
|
+
const publicKey = bytesToHex(pk);
|
|
42
|
+
logger.debug('[generateTransportKeyPair] Key pair generated successfully', {
|
|
43
|
+
privateKeyLength: privateKey.length,
|
|
44
|
+
publicKeyLength: publicKey.length,
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
privateKey: privateKey,
|
|
48
|
+
publicKey: publicKey,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// Key Pair Management with Caching
|
|
53
|
+
// ============================================================================
|
|
54
|
+
/**
|
|
55
|
+
* Gets an existing transport key pair from cache, or generates a new one.
|
|
56
|
+
*
|
|
57
|
+
* This function implements a caching strategy:
|
|
58
|
+
* 1. Checks if the key pair exists in cache and is still valid (TTL)
|
|
59
|
+
* 2. If expired or missing, generates a new key pair
|
|
60
|
+
* 3. Saves the new key pair to cache
|
|
61
|
+
* 4. Returns the key pair
|
|
62
|
+
*
|
|
63
|
+
* @param client - The Jazz client instance
|
|
64
|
+
* @param signerAddress - Address of the signer (used as cache key prefix)
|
|
65
|
+
* @returns Promise resolving to TransportKeyPair
|
|
66
|
+
* @throws Error if KMS initialization or key generation fails
|
|
67
|
+
*/
|
|
68
|
+
export async function getOrCreateKeyPair(sdk, signerAddress) {
|
|
69
|
+
// Enter method
|
|
70
|
+
logger.debug('[getOrCreateKeyPair] Enter', {
|
|
71
|
+
signerAddress,
|
|
72
|
+
hasClient: !!sdk,
|
|
73
|
+
});
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// Step 1: Build Cache Keys
|
|
76
|
+
// ============================================================================
|
|
77
|
+
const KEY_PAIR_PREFIX = signerAddress;
|
|
78
|
+
const KEY_PAIR_SK_PATH = `keypair:${KEY_PAIR_PREFIX}_sk`;
|
|
79
|
+
const KEY_PAIR_PK_PATH = `keypair:${KEY_PAIR_PREFIX}_pk`;
|
|
80
|
+
// Get TTL from config or use default
|
|
81
|
+
const KEY_PAIR_TTL_SECONDS = sdk.config.transportKeyPairTTL ??
|
|
82
|
+
DEFAULT_TRANSPORT_KEY_PAIR_TTL_SECONDS;
|
|
83
|
+
logger.debug('[getOrCreateKeyPair] Cache configuration', {
|
|
84
|
+
skPath: KEY_PAIR_SK_PATH,
|
|
85
|
+
pkPath: KEY_PAIR_PK_PATH,
|
|
86
|
+
ttlSeconds: KEY_PAIR_TTL_SECONDS,
|
|
87
|
+
});
|
|
88
|
+
// ============================================================================
|
|
89
|
+
// Step 2: Check Cache Expiration
|
|
90
|
+
// ============================================================================
|
|
91
|
+
const [shouldRefreshSk, shouldRefreshPk] = await Promise.all([
|
|
92
|
+
sdk.cacheManager.shouldRefresh(KEY_PAIR_SK_PATH, KEY_PAIR_TTL_SECONDS),
|
|
93
|
+
sdk.cacheManager.shouldRefresh(KEY_PAIR_PK_PATH, KEY_PAIR_TTL_SECONDS),
|
|
94
|
+
]);
|
|
95
|
+
logger.debug('[getOrCreateKeyPair] Cache status', {
|
|
96
|
+
skExpired: shouldRefreshSk,
|
|
97
|
+
pkExpired: shouldRefreshPk,
|
|
98
|
+
needsRefresh: shouldRefreshSk || shouldRefreshPk,
|
|
99
|
+
});
|
|
100
|
+
// ============================================================================
|
|
101
|
+
// Step 3: Initialize KMS
|
|
102
|
+
// ============================================================================
|
|
103
|
+
// TODO: Move kms_init() inside the KMS API wrapper
|
|
104
|
+
logger.trace('[getOrCreateKeyPair] Initializing KMS module');
|
|
105
|
+
await kms_init();
|
|
106
|
+
// ============================================================================
|
|
107
|
+
// Step 4: Generate or Load Key Pair
|
|
108
|
+
// ============================================================================
|
|
109
|
+
let sk;
|
|
110
|
+
let pk;
|
|
111
|
+
const needsRefresh = shouldRefreshSk || shouldRefreshPk;
|
|
112
|
+
if (needsRefresh) {
|
|
113
|
+
logger.debug('[getOrCreateKeyPair] Generating new key pair', {
|
|
114
|
+
reason: shouldRefreshSk && shouldRefreshPk ? 'both expired' :
|
|
115
|
+
shouldRefreshSk ? 'private key expired' : 'public key expired',
|
|
116
|
+
});
|
|
117
|
+
// Generate new key pair
|
|
118
|
+
[sk, pk] = kms_enc_keygen();
|
|
119
|
+
if (!sk || !pk) {
|
|
120
|
+
throw new FheError({ code: FheErrorCode.EncryptionFailed, message: "KMS key generation returned no keys" });
|
|
121
|
+
}
|
|
122
|
+
logger.debug('[getOrCreateKeyPair] Key pair generated', {
|
|
123
|
+
skLength: sk.length,
|
|
124
|
+
pkLength: pk.length,
|
|
125
|
+
});
|
|
126
|
+
// Save to cache
|
|
127
|
+
await Promise.all([
|
|
128
|
+
sdk.cacheManager.save(KEY_PAIR_SK_PATH, sk),
|
|
129
|
+
sdk.cacheManager.save(KEY_PAIR_PK_PATH, pk),
|
|
130
|
+
]);
|
|
131
|
+
logger.debug('[getOrCreateKeyPair] Key pair saved to cache', {
|
|
132
|
+
skPath: KEY_PAIR_SK_PATH,
|
|
133
|
+
pkPath: KEY_PAIR_PK_PATH,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
logger.debug('[getOrCreateKeyPair] Loading key pair from cache');
|
|
138
|
+
// Load from cache
|
|
139
|
+
[sk, pk] = await Promise.all([
|
|
140
|
+
sdk.cacheManager.load(KEY_PAIR_SK_PATH),
|
|
141
|
+
sdk.cacheManager.load(KEY_PAIR_PK_PATH),
|
|
142
|
+
]);
|
|
143
|
+
if (!sk || !pk) {
|
|
144
|
+
logger.error('[getOrCreateKeyPair] Cache load failed', {
|
|
145
|
+
hasSk: !!sk,
|
|
146
|
+
hasPk: !!pk,
|
|
147
|
+
});
|
|
148
|
+
throw new FheError({ code: FheErrorCode.KeyPairNotFound, message: 'Failed to load key pair from cache' });
|
|
149
|
+
}
|
|
150
|
+
logger.debug('[getOrCreateKeyPair] Key pair loaded from cache', {
|
|
151
|
+
skLength: sk.length,
|
|
152
|
+
pkLength: pk.length,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
// ============================================================================
|
|
156
|
+
// Step 5: Convert to Hex and Return
|
|
157
|
+
// ============================================================================
|
|
158
|
+
const privateKey = bytesToHex(sk);
|
|
159
|
+
const publicKey = bytesToHex(pk);
|
|
160
|
+
logger.debug('[getOrCreateKeyPair] Key pair ready', { signerAddress, fromCache: !needsRefresh });
|
|
161
|
+
return {
|
|
162
|
+
privateKey: privateKey,
|
|
163
|
+
publicKey: publicKey,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=key-pair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-pair.js","sourceRoot":"","sources":["../../src/jazz/key-pair.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import { getHandleAbiType } from "../../core/handle.js";
|
|
3
|
+
import { logger } from "../../core/logger.js";
|
|
4
|
+
export function fakeAbiEncodeClearValues(ctHandles) {
|
|
5
|
+
const clearTypes = [];
|
|
6
|
+
const clearTexts = [];
|
|
7
|
+
for (let i = 0; i < ctHandles.length; i++) {
|
|
8
|
+
const handle = ctHandles[i];
|
|
9
|
+
const abiType = getHandleAbiType(handle);
|
|
10
|
+
clearTypes.push(abiType);
|
|
11
|
+
if (abiType == "bool") {
|
|
12
|
+
clearTexts.push(1);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
clearTexts.push((i + 1) * 3);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const abiCoder = ethers.AbiCoder.defaultAbiCoder();
|
|
19
|
+
const abiEncodeClearValues = abiCoder.encode(clearTypes, clearTexts);
|
|
20
|
+
logger.debug('[fakeAbiEncodeClearValues] Encoded values', { abiEncodeClearValues });
|
|
21
|
+
return abiEncodeClearValues;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=fake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake.js","sourceRoot":"","sources":["../../../src/jazz/mock/fake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,UAAU,wBAAwB,CAAC,SAAuB;IAC9D,MAAM,UAAU,GAAG,EAAE,CAAA;IACrB,MAAM,UAAU,GAAG,EAAE,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACnD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAa,CAAC;IACjF,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAEpF,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IJazzClient } from "../jazz-client-i.js";
|
|
2
|
+
import { FetchInputProofParameters, FetchInputProofResult } from "../types/input-proof.js";
|
|
3
|
+
import { EncryptPayloadItem } from "../encrypt.js";
|
|
4
|
+
export declare function fetchInputProof(client: IJazzClient, parameters: FetchInputProofParameters, payloads: EncryptPayloadItem[]): Promise<FetchInputProofResult>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import { makeHandle } from "../../core/handle.js";
|
|
3
|
+
import { logger } from "../../core/logger.js";
|
|
4
|
+
const inputProofAbi = [
|
|
5
|
+
{
|
|
6
|
+
type: 'function',
|
|
7
|
+
name: 'inputProofMock',
|
|
8
|
+
inputs: [
|
|
9
|
+
{
|
|
10
|
+
name: 'ctHandles',
|
|
11
|
+
type: 'bytes32[]',
|
|
12
|
+
internalType: 'bytes32[]',
|
|
13
|
+
},
|
|
14
|
+
{ name: 'userAddress', type: 'address', internalType: 'address' },
|
|
15
|
+
{
|
|
16
|
+
name: 'contractAddress',
|
|
17
|
+
type: 'address',
|
|
18
|
+
internalType: 'address',
|
|
19
|
+
},
|
|
20
|
+
{ name: 'extraData', type: 'bytes', internalType: 'bytes' },
|
|
21
|
+
],
|
|
22
|
+
outputs: [
|
|
23
|
+
{ name: 'digest', type: 'bytes32', internalType: 'bytes32' },
|
|
24
|
+
{ name: 'signers', type: 'address[]', internalType: 'address[]' },
|
|
25
|
+
{ name: 'threshold', type: 'uint256', internalType: 'uint256' },
|
|
26
|
+
],
|
|
27
|
+
stateMutability: 'view',
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
export async function fetchInputProof(client, parameters, payloads) {
|
|
31
|
+
const { options, payload } = parameters;
|
|
32
|
+
const sysContractInfo = await client.sdk.getSystemContractInfo();
|
|
33
|
+
const chainId = payload.zkProof.chainId;
|
|
34
|
+
const extraData = "0x00";
|
|
35
|
+
const handles = [];
|
|
36
|
+
for (const item of payloads) {
|
|
37
|
+
const handle = makeHandle(Number(chainId), item.fheType);
|
|
38
|
+
handles.push(handle);
|
|
39
|
+
}
|
|
40
|
+
const provider = await client.sdk.requireProvider();
|
|
41
|
+
const contract = new ethers.Contract(sysContractInfo.ciphertextVerificationAddress, inputProofAbi, provider);
|
|
42
|
+
const res = await contract.inputProofMock(handles, payload.zkProof.userAddress, payload.zkProof.contractAddress, extraData);
|
|
43
|
+
logger.debug('[fetchInputProof] inputProofMock result', res);
|
|
44
|
+
const digest = res[0];
|
|
45
|
+
const alphatrionEip712Signatures = [];
|
|
46
|
+
{
|
|
47
|
+
const privateKey = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
|
|
48
|
+
const signingKey = new ethers.SigningKey(privateKey);
|
|
49
|
+
const signature = signingKey.sign(digest);
|
|
50
|
+
logger.debug('[fetchInputProof] Signature generated:', signature);
|
|
51
|
+
const compact = ethers.Signature.from(signature).serialized;
|
|
52
|
+
logger.debug('[fetchInputProof] Compact signature generated', compact);
|
|
53
|
+
alphatrionEip712Signatures.push(compact);
|
|
54
|
+
}
|
|
55
|
+
const result = {
|
|
56
|
+
handles,
|
|
57
|
+
alphatrionEip712Signatures,
|
|
58
|
+
extraData,
|
|
59
|
+
};
|
|
60
|
+
logger.debug('[fetchInputProof] Mock result built', { result });
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=fetch-input-proof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-input-proof.js","sourceRoot":"","sources":["../../../src/jazz/mock/fetch-input-proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export async function fetchKeyUrl(client, parameters) {
|
|
2
|
+
const keyUrlResult = {
|
|
3
|
+
publicKeySource: {
|
|
4
|
+
id: "mock-pk-id",
|
|
5
|
+
url: "_pk_mcl_snark1.bin", // local file
|
|
6
|
+
},
|
|
7
|
+
crsSource: {
|
|
8
|
+
id: "mock-crs-id",
|
|
9
|
+
url: "_crs_mcl_snark1.bin", // local file
|
|
10
|
+
capacity: 2048,
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
return keyUrlResult;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=fetch-key-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-key-url.js","sourceRoot":"","sources":["../../../src/jazz/mock/fetch-key-url.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAmB,EACnB,UAAiC;IAGjC,MAAM,YAAY,GAAqB;QACrC,eAAe,EAAE;YACf,EAAE,EAAE,YAAY;YAChB,GAAG,EAAE,oBAAoB,EAAE,aAAa;SACzC;QACD,SAAS,EAAE;YACT,EAAE,EAAE,aAAa;YACjB,GAAG,EAAE,qBAAqB,EAAE,aAAa;YACzC,QAAQ,EAAE,IAAI;SACf;KACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { IJazzClient } from "../jazz-client-i.js";
|
|
2
|
+
import { FetchPublicDecryptParameters, FetchPublicDecryptResult } from "../types/public-decrypt.js";
|
|
3
|
+
export declare function fetchPublicDecrypt(client: IJazzClient, parameters: FetchPublicDecryptParameters): Promise<FetchPublicDecryptResult>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import { fakeAbiEncodeClearValues } from "./fake.js";
|
|
3
|
+
import { logger } from "../../core/logger.js";
|
|
4
|
+
const publicDecryptAbi = [
|
|
5
|
+
{
|
|
6
|
+
"inputs": [
|
|
7
|
+
{
|
|
8
|
+
"internalType": "bytes32[]",
|
|
9
|
+
"name": "handles",
|
|
10
|
+
"type": "bytes32[]"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"internalType": "bytes",
|
|
14
|
+
"name": "decryptedResult",
|
|
15
|
+
"type": "bytes"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"name": "publicDecryptMock",
|
|
19
|
+
"outputs": [
|
|
20
|
+
{
|
|
21
|
+
"internalType": "bytes32",
|
|
22
|
+
"name": "digest",
|
|
23
|
+
"type": "bytes32"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"internalType": "address[]",
|
|
27
|
+
"name": "signers",
|
|
28
|
+
"type": "address[]"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"internalType": "uint256",
|
|
32
|
+
"name": "threshold",
|
|
33
|
+
"type": "uint256"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"internalType": "bytes",
|
|
37
|
+
"name": "extraData",
|
|
38
|
+
"type": "bytes"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"stateMutability": "view",
|
|
42
|
+
"type": "function"
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
export async function fetchPublicDecrypt(client, parameters) {
|
|
46
|
+
const { options, payload } = parameters;
|
|
47
|
+
const sysContractInfo = await client.sdk.getSystemContractInfo();
|
|
48
|
+
const ctHandles = payload.orderedHandles;
|
|
49
|
+
const abiEncodeClearValues = fakeAbiEncodeClearValues([...ctHandles]);
|
|
50
|
+
const decryptedResult = abiEncodeClearValues;
|
|
51
|
+
// {
|
|
52
|
+
// logger.debug("Clear txt", clearTexts)
|
|
53
|
+
// logger.debug("Encoded:", encoded);
|
|
54
|
+
// const decoded = abiCoder.decode(clearTypes, encoded);
|
|
55
|
+
// logger.debug("Decoded:", decoded);
|
|
56
|
+
// }
|
|
57
|
+
const provider = await client.sdk.requireProvider();
|
|
58
|
+
const contract = new ethers.Contract(sysContractInfo.decryptionContractAddress, publicDecryptAbi, provider);
|
|
59
|
+
const res = await contract.publicDecryptMock(ctHandles, decryptedResult);
|
|
60
|
+
logger.debug('[fetchPublicDecrypt] publicDecryptMock result', { res });
|
|
61
|
+
const digest = res[0];
|
|
62
|
+
const signersAddress = res[1];
|
|
63
|
+
const kmsPublicDecryptEIP712Signatures = [];
|
|
64
|
+
{
|
|
65
|
+
const privateKey = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
|
|
66
|
+
const signingKey = new ethers.SigningKey(privateKey);
|
|
67
|
+
const signature = signingKey.sign(digest);
|
|
68
|
+
logger.debug('[fetchPublicDecrypt] Signature generated', signature);
|
|
69
|
+
const compact = ethers.Signature.from(signature).serialized;
|
|
70
|
+
logger.debug('[fetchPublicDecrypt] Compact signature generated', compact);
|
|
71
|
+
kmsPublicDecryptEIP712Signatures.push(compact);
|
|
72
|
+
}
|
|
73
|
+
const result = {
|
|
74
|
+
orderedAbiEncodedClearValues: decryptedResult,
|
|
75
|
+
kmsPublicDecryptEIP712Signatures,
|
|
76
|
+
extraData: res[3],
|
|
77
|
+
};
|
|
78
|
+
logger.debug('[fetchPublicDecrypt] Mock result built', { result });
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=fetch-public-decrypt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-public-decrypt.js","sourceRoot":"","sources":["../../../src/jazz/mock/fetch-public-decrypt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IJazzClient } from "../jazz-client-i.js";
|
|
2
|
+
import { FetchUserDecryptParameters, FetchUserDecryptResult } from "../types/user-decrypt.js";
|
|
3
|
+
import { TransportKeyPair } from "../key-pair.js";
|
|
4
|
+
export declare function fetchUserDecrypt(client: IJazzClient, parameters: FetchUserDecryptParameters, keypair: TransportKeyPair): Promise<FetchUserDecryptResult>;
|