@inco/js 0.2.16 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/attestedcompute/attested-compute.d.ts +38 -0
- package/dist/cjs/attestedcompute/attested-compute.js +98 -0
- package/dist/cjs/attestedcompute/types.d.ts +34 -0
- package/dist/cjs/attestedcompute/types.js +46 -0
- package/dist/{attesteddecrypt → cjs/attesteddecrypt}/attested-decrypt.d.ts +16 -11
- package/dist/cjs/attesteddecrypt/attested-decrypt.js +93 -0
- package/dist/cjs/attesteddecrypt/index.d.ts +2 -0
- package/dist/{generated/abis → cjs/attesteddecrypt}/index.js +3 -3
- package/dist/cjs/attesteddecrypt/types.d.ts +20 -0
- package/dist/{attesteddecrypt → cjs/attesteddecrypt}/types.js +1 -1
- package/dist/cjs/binary.js +82 -0
- package/dist/{chain.d.ts → cjs/chain.d.ts} +3 -0
- package/dist/cjs/chain.js +31 -0
- package/dist/{encryption → cjs/encryption}/encryption.d.ts +2 -2
- package/dist/cjs/encryption/encryption.js +109 -0
- package/dist/cjs/encryption/index.d.ts +1 -0
- package/dist/{encryption → cjs/encryption}/index.js +2 -2
- package/dist/{fhevm → cjs/fhevm}/fhe-environment.d.ts +1 -1
- package/dist/cjs/fhevm/fhe-environment.js +11 -0
- package/dist/{fhevm → cjs/fhevm}/fhevm.d.ts +1 -1
- package/dist/cjs/fhevm/fhevm.js +145 -0
- package/dist/cjs/fhevm/index.d.ts +1 -0
- package/dist/{fhevm → cjs/fhevm}/index.js +2 -2
- package/dist/{fhevm → cjs/fhevm}/reencrypt.d.ts +3 -3
- package/dist/cjs/fhevm/reencrypt.js +127 -0
- package/dist/{fhevm → cjs/fhevm}/tfhe.d.ts +1 -1
- package/dist/cjs/fhevm/tfhe.js +336 -0
- package/dist/{fhevm → cjs/fhevm}/types.d.ts +1 -1
- package/dist/cjs/fhevm/types.js +29 -0
- package/dist/cjs/generated/abis/addTwo.js +62 -0
- package/dist/cjs/generated/abis/inco-fhevm.js +681 -0
- package/dist/{generated → cjs/generated}/abis/lightning.d.ts +4 -0
- package/dist/cjs/generated/abis/lightning.js +1609 -0
- package/dist/{generated → cjs/generated}/es/cosmos/msg/v1/msg_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/cosmos/msg/v1/msg_pb.js +6 -6
- package/dist/{generated → cjs/generated}/es/cosmos_proto/cosmos_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/cosmos_proto/cosmos_pb.js +16 -16
- package/dist/{generated → cjs/generated}/es/google/api/annotations_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/google/api/annotations_pb.js +4 -4
- package/dist/{generated → cjs/generated}/es/google/api/http_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/google/api/http_pb.js +6 -6
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/events_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/events_pb.js +6 -6
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/genesis_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/genesis_pb.js +11 -11
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/query_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/query_pb.js +23 -23
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/tx_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/tx_pb.js +23 -23
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/types_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/types_pb.js +17 -17
- package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/kms_service_pb.d.ts +239 -33
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +161 -0
- package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/types_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/types_pb.js +11 -11
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/genesis_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/genesis_pb.js +6 -6
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/query_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/query_pb.js +9 -9
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/tx_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/tx_pb.js +11 -11
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/types_pb.d.ts +1 -1
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/types_pb.js +9 -9
- package/dist/{generated → cjs/generated}/fhe-environments.js +1 -1
- package/dist/{generated → cjs/generated}/lightning.d.ts +42 -0
- package/dist/{generated → cjs/generated}/lightning.js +45 -1
- package/dist/cjs/generated/local-node.d.ts +34 -0
- package/dist/cjs/generated/local-node.js +38 -0
- package/dist/{generated → cjs/generated}/ts/amino/amino.js +2 -2
- package/dist/{generated → cjs/generated}/ts/cometbft/abci/v1/types.js +49 -49
- package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.js +108 -0
- package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.js +433 -0
- package/dist/cjs/generated/ts/cometbft/types/v1/params.js +716 -0
- package/dist/cjs/generated/ts/cometbft/types/v1/validator.js +358 -0
- package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.js +221 -0
- package/dist/{generated → cjs/generated}/ts/cosmos/msg/v1/msg.js +2 -2
- package/dist/cjs/generated/ts/cosmos_proto/cosmos.js +216 -0
- package/dist/{generated → cjs/generated}/ts/gogoproto/gogo.js +2 -2
- package/dist/{generated → cjs/generated}/ts/google/api/annotations.js +2 -2
- package/dist/cjs/generated/ts/google/api/http.js +356 -0
- package/dist/{generated → cjs/generated}/ts/google/protobuf/descriptor.js +35 -35
- package/dist/cjs/generated/ts/google/protobuf/duration.js +93 -0
- package/dist/cjs/generated/ts/google/protobuf/timestamp.js +93 -0
- package/dist/cjs/generated/ts/google/protobuf/wrappers.js +509 -0
- package/dist/cjs/generated/ts/inco/abci/v1/types.js +73 -0
- package/dist/cjs/generated/ts/inco/fhe/module/v1/module.js +66 -0
- package/dist/cjs/generated/ts/inco/fhe/v1/events.js +190 -0
- package/dist/cjs/generated/ts/inco/fhe/v1/genesis.js +714 -0
- package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/query.d.ts +19 -19
- package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/query.js +20 -20
- package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/tx.d.ts +19 -19
- package/dist/cjs/generated/ts/inco/fhe/v1/tx.js +1236 -0
- package/dist/cjs/generated/ts/inco/fhe/v1/types.js +990 -0
- package/dist/cjs/generated/ts/inco/originchain/module/v1/module.js +66 -0
- package/dist/cjs/generated/ts/inco/originchain/v1/abci.js +331 -0
- package/dist/cjs/generated/ts/inco/originchain/v1/events.js +216 -0
- package/dist/cjs/generated/ts/inco/originchain/v1/genesis.js +69 -0
- package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/query.d.ts +5 -5
- package/dist/cjs/generated/ts/inco/originchain/v1/query.js +280 -0
- package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/tx.d.ts +3 -3
- package/dist/cjs/generated/ts/inco/originchain/v1/tx.js +140 -0
- package/dist/cjs/generated/ts/inco/originchain/v1/types.js +203 -0
- package/dist/cjs/generated/ts/inco/preflight/module/v1/module.js +66 -0
- package/dist/cjs/generated/ts/inco/preflight/v1/genesis.js +185 -0
- package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/query.d.ts +5 -5
- package/dist/cjs/generated/ts/inco/preflight/v1/query.js +259 -0
- package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/tx.d.ts +7 -7
- package/dist/cjs/generated/ts/inco/preflight/v1/tx.js +448 -0
- package/dist/cjs/generated/ts/inco/preflight/v1/types.js +398 -0
- package/dist/{handle.d.ts → cjs/handle.d.ts} +1 -1
- package/dist/{handle.js → cjs/handle.js} +5 -5
- package/dist/cjs/index.d.ts +5 -0
- package/dist/{index.js → cjs/index.js} +5 -5
- package/dist/{kms → cjs/kms}/client.d.ts +2 -2
- package/dist/{kms → cjs/kms}/client.js +3 -3
- package/dist/{l1 → cjs/l1}/client.d.ts +6 -6
- package/dist/{l1 → cjs/l1}/client.js +8 -8
- package/dist/cjs/l1/index.d.ts +2 -0
- package/dist/{l1 → cjs/l1}/index.js +3 -3
- package/dist/{l1 → cjs/l1}/preflight.d.ts +3 -3
- package/dist/cjs/l1/preflight.js +42 -0
- package/dist/cjs/lite/attested-compute.d.ts +4 -0
- package/dist/cjs/lite/attested-compute.js +6 -0
- package/dist/{lite → cjs/lite}/attested-decrypt.d.ts +1 -1
- package/dist/cjs/lite/attested-decrypt.js +6 -0
- package/dist/{lite → cjs/lite}/deployments.d.ts +2 -2
- package/dist/cjs/lite/deployments.js +21 -0
- package/dist/{lite → cjs/lite}/ecies.d.ts +6 -6
- package/dist/cjs/lite/ecies.js +135 -0
- package/dist/{lite → cjs/lite}/hadu.d.ts +1 -1
- package/dist/cjs/lite/hadu.js +41 -0
- package/dist/cjs/lite/index.d.ts +7 -0
- package/dist/{attesteddecrypt → cjs/lite}/index.js +7 -3
- package/dist/{lite → cjs/lite}/lightning.d.ts +20 -9
- package/dist/cjs/lite/lightning.js +217 -0
- package/dist/{lite → cjs/lite}/reencrypt.d.ts +7 -6
- package/dist/cjs/lite/reencrypt.js +142 -0
- package/dist/cjs/local/index.d.ts +1 -0
- package/dist/{local → cjs/local}/index.js +2 -2
- package/dist/{local → cjs/local}/local-node.d.ts +4 -1
- package/dist/cjs/local/local-node.js +33 -0
- package/dist/{reencryption → cjs/reencryption}/eip712.js +9 -7
- package/dist/cjs/reencryption/index.d.ts +2 -0
- package/dist/cjs/reencryption/index.js +19 -0
- package/dist/{reencryption → cjs/reencryption}/types.d.ts +6 -8
- package/dist/{reencryption → cjs/reencryption}/types.js +1 -1
- package/dist/{retry.js → cjs/retry.js} +1 -1
- package/dist/{schema.js → cjs/schema.js} +1 -1
- package/dist/{viem.d.ts → cjs/viem.d.ts} +363 -1
- package/dist/cjs/viem.js +12 -0
- package/dist/esm/attestedcompute/attested-compute.d.ts +38 -0
- package/dist/esm/attestedcompute/attested-compute.js +95 -0
- package/dist/esm/attestedcompute/types.d.ts +34 -0
- package/dist/esm/attestedcompute/types.js +42 -0
- package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +40 -0
- package/dist/esm/attesteddecrypt/attested-decrypt.js +89 -0
- package/dist/esm/attesteddecrypt/index.d.ts +2 -0
- package/dist/esm/attesteddecrypt/index.js +3 -0
- package/dist/esm/attesteddecrypt/types.d.ts +20 -0
- package/dist/esm/attesteddecrypt/types.js +12 -0
- package/dist/esm/binary.d.ts +21 -0
- package/dist/esm/binary.js +67 -0
- package/dist/esm/chain.d.ts +25 -0
- package/dist/esm/chain.js +27 -0
- package/dist/esm/encryption/encryption.d.ts +119 -0
- package/dist/esm/encryption/encryption.js +101 -0
- package/dist/esm/encryption/index.d.ts +1 -0
- package/dist/esm/encryption/index.js +2 -0
- package/dist/esm/fhevm/fhe-environment.d.ts +9 -0
- package/dist/esm/fhevm/fhe-environment.js +8 -0
- package/dist/esm/fhevm/fhevm.d.ts +41 -0
- package/dist/esm/fhevm/fhevm.js +139 -0
- package/dist/esm/fhevm/index.d.ts +1 -0
- package/dist/esm/fhevm/index.js +2 -0
- package/dist/esm/fhevm/reencrypt.d.ts +20 -0
- package/dist/esm/fhevm/reencrypt.js +123 -0
- package/dist/esm/fhevm/tfhe.d.ts +74 -0
- package/dist/esm/fhevm/tfhe.js +328 -0
- package/dist/esm/fhevm/types.d.ts +3 -0
- package/dist/esm/fhevm/types.js +26 -0
- package/dist/esm/generated/abis/addTwo.d.ts +83 -0
- package/dist/{generated → esm/generated}/abis/addTwo.js +2 -5
- package/dist/esm/generated/abis/inco-fhevm.d.ts +874 -0
- package/dist/{generated → esm/generated}/abis/inco-fhevm.js +3 -6
- package/dist/esm/generated/abis/lightning.d.ts +2230 -0
- package/dist/{generated → esm/generated}/abis/lightning.js +6 -6
- package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.d.ts +29 -0
- package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.js +33 -0
- package/dist/esm/generated/es/cosmos_proto/cosmos_pb.d.ts +174 -0
- package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +115 -0
- package/dist/esm/generated/es/google/api/annotations_pb.d.ts +13 -0
- package/dist/esm/generated/es/google/api/annotations_pb.js +27 -0
- package/dist/esm/generated/es/google/api/http_pb.d.ts +440 -0
- package/dist/esm/generated/es/google/api/http_pb.js +34 -0
- package/dist/esm/generated/es/inco/fhe/v1/events_pb.d.ts +79 -0
- package/dist/esm/generated/es/inco/fhe/v1/events_pb.js +21 -0
- package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.d.ts +252 -0
- package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.js +46 -0
- package/dist/esm/generated/es/inco/fhe/v1/query_pb.d.ts +569 -0
- package/dist/esm/generated/es/inco/fhe/v1/query_pb.js +108 -0
- package/dist/esm/generated/es/inco/fhe/v1/tx_pb.d.ts +494 -0
- package/dist/esm/generated/es/inco/fhe/v1/tx_pb.js +108 -0
- package/dist/esm/generated/es/inco/fhe/v1/types_pb.d.ts +419 -0
- package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +133 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +526 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +158 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.d.ts +212 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +44 -0
- package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.d.ts +56 -0
- package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.js +20 -0
- package/dist/esm/generated/es/inco/preflight/v1/query_pb.d.ts +100 -0
- package/dist/esm/generated/es/inco/preflight/v1/query_pb.js +38 -0
- package/dist/esm/generated/es/inco/preflight/v1/tx_pb.d.ts +193 -0
- package/dist/esm/generated/es/inco/preflight/v1/tx_pb.js +48 -0
- package/dist/esm/generated/es/inco/preflight/v1/types_pb.d.ts +144 -0
- package/dist/esm/generated/es/inco/preflight/v1/types_pb.js +34 -0
- package/dist/esm/generated/fhe-environments.d.ts +14 -0
- package/dist/esm/generated/fhe-environments.js +15 -0
- package/dist/esm/generated/lightning.d.ts +253 -0
- package/dist/esm/generated/lightning.js +267 -0
- package/dist/esm/generated/local-node.d.ts +34 -0
- package/dist/esm/generated/local-node.js +35 -0
- package/dist/esm/generated/ts/amino/amino.d.ts +1 -0
- package/dist/esm/generated/ts/amino/amino.js +8 -0
- package/dist/esm/generated/ts/cometbft/abci/v1/types.d.ts +597 -0
- package/dist/esm/generated/ts/cometbft/abci/v1/types.js +5063 -0
- package/dist/esm/generated/ts/cometbft/crypto/v1/keys.d.ts +27 -0
- package/dist/esm/generated/ts/cometbft/crypto/v1/keys.js +105 -0
- package/dist/esm/generated/ts/cometbft/crypto/v1/proof.d.ts +60 -0
- package/dist/esm/generated/ts/cometbft/crypto/v1/proof.js +430 -0
- package/dist/esm/generated/ts/cometbft/types/v1/params.d.ts +179 -0
- package/dist/esm/generated/ts/cometbft/types/v1/params.js +713 -0
- package/dist/esm/generated/ts/cometbft/types/v1/validator.d.ts +61 -0
- package/dist/esm/generated/ts/cometbft/types/v1/validator.js +353 -0
- package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.d.ts +104 -0
- package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.js +218 -0
- package/dist/esm/generated/ts/cosmos/msg/v1/msg.d.ts +1 -0
- package/dist/esm/generated/ts/cosmos/msg/v1/msg.js +8 -0
- package/dist/esm/generated/ts/cosmos_proto/cosmos.d.ts +80 -0
- package/dist/esm/generated/ts/cosmos_proto/cosmos.js +211 -0
- package/dist/esm/generated/ts/gogoproto/gogo.d.ts +1 -0
- package/dist/esm/generated/ts/gogoproto/gogo.js +8 -0
- package/dist/esm/generated/ts/google/api/annotations.d.ts +1 -0
- package/dist/esm/generated/ts/google/api/annotations.js +8 -0
- package/dist/esm/generated/ts/google/api/http.d.ts +371 -0
- package/dist/esm/generated/ts/google/api/http.js +353 -0
- package/dist/esm/generated/ts/google/protobuf/descriptor.d.ts +1228 -0
- package/dist/esm/generated/ts/google/protobuf/descriptor.js +5070 -0
- package/dist/esm/generated/ts/google/protobuf/duration.d.ts +99 -0
- package/dist/esm/generated/ts/google/protobuf/duration.js +90 -0
- package/dist/esm/generated/ts/google/protobuf/timestamp.d.ts +128 -0
- package/dist/esm/generated/ts/google/protobuf/timestamp.js +90 -0
- package/dist/esm/generated/ts/google/protobuf/wrappers.d.ts +111 -0
- package/dist/esm/generated/ts/google/protobuf/wrappers.js +506 -0
- package/dist/esm/generated/ts/inco/abci/v1/types.d.ts +35 -0
- package/dist/esm/generated/ts/inco/abci/v1/types.js +70 -0
- package/dist/esm/generated/ts/inco/fhe/module/v1/module.d.ts +31 -0
- package/dist/esm/generated/ts/inco/fhe/module/v1/module.js +63 -0
- package/dist/esm/generated/ts/inco/fhe/v1/events.d.ts +66 -0
- package/dist/esm/generated/ts/inco/fhe/v1/events.js +187 -0
- package/dist/esm/generated/ts/inco/fhe/v1/genesis.d.ts +117 -0
- package/dist/esm/generated/ts/inco/fhe/v1/genesis.js +711 -0
- package/dist/esm/generated/ts/inco/fhe/v1/query.d.ts +366 -0
- package/dist/esm/generated/ts/inco/fhe/v1/query.js +1391 -0
- package/dist/esm/generated/ts/inco/fhe/v1/tx.d.ts +409 -0
- package/dist/esm/generated/ts/inco/fhe/v1/tx.js +1233 -0
- package/dist/esm/generated/ts/inco/fhe/v1/types.d.ts +225 -0
- package/dist/esm/generated/ts/inco/fhe/v1/types.js +985 -0
- package/dist/esm/generated/ts/inco/originchain/module/v1/module.d.ts +30 -0
- package/dist/esm/generated/ts/inco/originchain/module/v1/module.js +63 -0
- package/dist/esm/generated/ts/inco/originchain/v1/abci.d.ts +80 -0
- package/dist/esm/generated/ts/inco/originchain/v1/abci.js +328 -0
- package/dist/esm/generated/ts/inco/originchain/v1/events.d.ts +60 -0
- package/dist/esm/generated/ts/inco/originchain/v1/events.js +213 -0
- package/dist/esm/generated/ts/inco/originchain/v1/genesis.d.ts +28 -0
- package/dist/esm/generated/ts/inco/originchain/v1/genesis.js +66 -0
- package/dist/esm/generated/ts/inco/originchain/v1/query.d.ts +116 -0
- package/dist/esm/generated/ts/inco/originchain/v1/query.js +277 -0
- package/dist/esm/generated/ts/inco/originchain/v1/tx.d.ts +89 -0
- package/dist/esm/generated/ts/inco/originchain/v1/tx.js +137 -0
- package/dist/esm/generated/ts/inco/originchain/v1/types.d.ts +58 -0
- package/dist/esm/generated/ts/inco/originchain/v1/types.js +200 -0
- package/dist/esm/generated/ts/inco/preflight/module/v1/module.d.ts +31 -0
- package/dist/esm/generated/ts/inco/preflight/module/v1/module.js +63 -0
- package/dist/esm/generated/ts/inco/preflight/v1/genesis.d.ts +41 -0
- package/dist/esm/generated/ts/inco/preflight/v1/genesis.js +182 -0
- package/dist/esm/generated/ts/inco/preflight/v1/query.d.ts +93 -0
- package/dist/esm/generated/ts/inco/preflight/v1/query.js +256 -0
- package/dist/esm/generated/ts/inco/preflight/v1/tx.d.ts +187 -0
- package/dist/esm/generated/ts/inco/preflight/v1/tx.js +445 -0
- package/dist/esm/generated/ts/inco/preflight/v1/types.d.ts +84 -0
- package/dist/esm/generated/ts/inco/preflight/v1/types.js +395 -0
- package/dist/esm/handle.d.ts +41 -0
- package/dist/esm/handle.js +94 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/kms/client.d.ts +8 -0
- package/dist/esm/kms/client.js +35 -0
- package/dist/esm/l1/client.d.ts +35 -0
- package/dist/esm/l1/client.js +93 -0
- package/dist/esm/l1/index.d.ts +2 -0
- package/dist/esm/l1/index.js +3 -0
- package/dist/esm/l1/preflight.d.ts +20 -0
- package/dist/esm/l1/preflight.js +39 -0
- package/dist/esm/lite/attested-compute.d.ts +4 -0
- package/dist/esm/lite/attested-compute.js +3 -0
- package/dist/esm/lite/attested-decrypt.d.ts +3 -0
- package/dist/esm/lite/attested-decrypt.js +3 -0
- package/dist/esm/lite/deployments.d.ts +6 -0
- package/dist/esm/lite/deployments.js +17 -0
- package/dist/esm/lite/ecies.d.ts +26 -0
- package/dist/esm/lite/ecies.js +124 -0
- package/dist/esm/lite/hadu.d.ts +24 -0
- package/dist/esm/lite/hadu.js +36 -0
- package/dist/esm/lite/index.d.ts +7 -0
- package/dist/esm/lite/index.js +7 -0
- package/dist/esm/lite/lightning.d.ts +132 -0
- package/dist/esm/lite/lightning.js +213 -0
- package/dist/esm/lite/reencrypt.d.ts +24 -0
- package/dist/esm/lite/reencrypt.js +132 -0
- package/dist/esm/local/index.d.ts +1 -0
- package/dist/esm/local/index.js +2 -0
- package/dist/esm/local/local-node.d.ts +22 -0
- package/dist/esm/local/local-node.js +29 -0
- package/dist/esm/reencryption/eip712.d.ts +29 -0
- package/dist/esm/reencryption/eip712.js +83 -0
- package/dist/esm/reencryption/index.d.ts +2 -0
- package/dist/esm/reencryption/index.js +3 -0
- package/dist/esm/reencryption/types.d.ts +25 -0
- package/dist/esm/reencryption/types.js +2 -0
- package/dist/esm/retry.d.ts +15 -0
- package/dist/esm/retry.js +25 -0
- package/dist/esm/schema.d.ts +4 -0
- package/dist/esm/schema.js +15 -0
- package/dist/esm/viem.d.ts +789 -0
- package/dist/esm/viem.js +8 -0
- package/dist/types/attestedcompute/attested-compute.d.ts +38 -0
- package/dist/types/attestedcompute/types.d.ts +34 -0
- package/dist/types/attesteddecrypt/attested-decrypt.d.ts +40 -0
- package/dist/types/attesteddecrypt/index.d.ts +2 -0
- package/dist/types/attesteddecrypt/types.d.ts +20 -0
- package/dist/types/binary.d.ts +21 -0
- package/dist/types/chain.d.ts +25 -0
- package/dist/types/encryption/encryption.d.ts +119 -0
- package/dist/types/encryption/index.d.ts +1 -0
- package/dist/types/fhevm/fhe-environment.d.ts +9 -0
- package/dist/types/fhevm/fhevm.d.ts +41 -0
- package/dist/types/fhevm/index.d.ts +1 -0
- package/dist/types/fhevm/reencrypt.d.ts +20 -0
- package/dist/types/fhevm/tfhe.d.ts +74 -0
- package/dist/types/fhevm/types.d.ts +3 -0
- package/dist/types/generated/abis/addTwo.d.ts +83 -0
- package/dist/types/generated/abis/inco-fhevm.d.ts +874 -0
- package/dist/types/generated/abis/lightning.d.ts +2230 -0
- package/dist/types/generated/es/cosmos/msg/v1/msg_pb.d.ts +29 -0
- package/dist/types/generated/es/cosmos_proto/cosmos_pb.d.ts +174 -0
- package/dist/types/generated/es/google/api/annotations_pb.d.ts +13 -0
- package/dist/types/generated/es/google/api/http_pb.d.ts +440 -0
- package/dist/types/generated/es/inco/fhe/v1/events_pb.d.ts +79 -0
- package/dist/types/generated/es/inco/fhe/v1/genesis_pb.d.ts +252 -0
- package/dist/types/generated/es/inco/fhe/v1/query_pb.d.ts +569 -0
- package/dist/types/generated/es/inco/fhe/v1/tx_pb.d.ts +494 -0
- package/dist/types/generated/es/inco/fhe/v1/types_pb.d.ts +419 -0
- package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +526 -0
- package/dist/types/generated/es/inco/kms/lite/v1/types_pb.d.ts +212 -0
- package/dist/types/generated/es/inco/preflight/v1/genesis_pb.d.ts +56 -0
- package/dist/types/generated/es/inco/preflight/v1/query_pb.d.ts +100 -0
- package/dist/types/generated/es/inco/preflight/v1/tx_pb.d.ts +193 -0
- package/dist/types/generated/es/inco/preflight/v1/types_pb.d.ts +144 -0
- package/dist/types/generated/fhe-environments.d.ts +14 -0
- package/dist/types/generated/lightning.d.ts +253 -0
- package/dist/types/generated/local-node.d.ts +34 -0
- package/dist/types/generated/ts/amino/amino.d.ts +1 -0
- package/dist/types/generated/ts/cometbft/abci/v1/types.d.ts +597 -0
- package/dist/types/generated/ts/cometbft/crypto/v1/keys.d.ts +27 -0
- package/dist/types/generated/ts/cometbft/crypto/v1/proof.d.ts +60 -0
- package/dist/types/generated/ts/cometbft/types/v1/params.d.ts +179 -0
- package/dist/types/generated/ts/cometbft/types/v1/validator.d.ts +61 -0
- package/dist/types/generated/ts/cosmos/app/v1alpha1/module.d.ts +104 -0
- package/dist/types/generated/ts/cosmos/msg/v1/msg.d.ts +1 -0
- package/dist/types/generated/ts/cosmos_proto/cosmos.d.ts +80 -0
- package/dist/types/generated/ts/gogoproto/gogo.d.ts +1 -0
- package/dist/types/generated/ts/google/api/annotations.d.ts +1 -0
- package/dist/types/generated/ts/google/api/http.d.ts +371 -0
- package/dist/types/generated/ts/google/protobuf/descriptor.d.ts +1228 -0
- package/dist/types/generated/ts/google/protobuf/duration.d.ts +99 -0
- package/dist/types/generated/ts/google/protobuf/timestamp.d.ts +128 -0
- package/dist/types/generated/ts/google/protobuf/wrappers.d.ts +111 -0
- package/dist/types/generated/ts/inco/abci/v1/types.d.ts +35 -0
- package/dist/types/generated/ts/inco/fhe/module/v1/module.d.ts +31 -0
- package/dist/types/generated/ts/inco/fhe/v1/events.d.ts +66 -0
- package/dist/types/generated/ts/inco/fhe/v1/genesis.d.ts +117 -0
- package/dist/types/generated/ts/inco/fhe/v1/query.d.ts +366 -0
- package/dist/types/generated/ts/inco/fhe/v1/tx.d.ts +409 -0
- package/dist/types/generated/ts/inco/fhe/v1/types.d.ts +225 -0
- package/dist/types/generated/ts/inco/originchain/module/v1/module.d.ts +30 -0
- package/dist/types/generated/ts/inco/originchain/v1/abci.d.ts +80 -0
- package/dist/types/generated/ts/inco/originchain/v1/events.d.ts +60 -0
- package/dist/types/generated/ts/inco/originchain/v1/genesis.d.ts +28 -0
- package/dist/types/generated/ts/inco/originchain/v1/query.d.ts +116 -0
- package/dist/types/generated/ts/inco/originchain/v1/tx.d.ts +89 -0
- package/dist/types/generated/ts/inco/originchain/v1/types.d.ts +58 -0
- package/dist/types/generated/ts/inco/preflight/module/v1/module.d.ts +31 -0
- package/dist/types/generated/ts/inco/preflight/v1/genesis.d.ts +41 -0
- package/dist/types/generated/ts/inco/preflight/v1/query.d.ts +93 -0
- package/dist/types/generated/ts/inco/preflight/v1/tx.d.ts +187 -0
- package/dist/types/generated/ts/inco/preflight/v1/types.d.ts +84 -0
- package/dist/types/handle.d.ts +41 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/kms/client.d.ts +8 -0
- package/dist/types/l1/client.d.ts +35 -0
- package/dist/types/l1/index.d.ts +2 -0
- package/dist/types/l1/preflight.d.ts +20 -0
- package/dist/types/lite/attested-compute.d.ts +4 -0
- package/dist/types/lite/attested-decrypt.d.ts +3 -0
- package/dist/types/lite/deployments.d.ts +6 -0
- package/dist/types/lite/ecies.d.ts +26 -0
- package/dist/types/lite/hadu.d.ts +24 -0
- package/dist/types/lite/index.d.ts +7 -0
- package/dist/types/lite/lightning.d.ts +132 -0
- package/dist/types/lite/reencrypt.d.ts +24 -0
- package/dist/types/local/index.d.ts +1 -0
- package/dist/types/local/local-node.d.ts +22 -0
- package/dist/types/reencryption/eip712.d.ts +29 -0
- package/dist/types/reencryption/index.d.ts +2 -0
- package/dist/types/reencryption/types.d.ts +25 -0
- package/dist/types/retry.d.ts +15 -0
- package/dist/types/schema.d.ts +4 -0
- package/dist/types/viem.d.ts +789 -0
- package/package.json +67 -15
- package/dist/attesteddecrypt/attested-decrypt.js +0 -79
- package/dist/attesteddecrypt/index.d.ts +0 -2
- package/dist/attesteddecrypt/types.d.ts +0 -28
- package/dist/binary.js +0 -82
- package/dist/chain.js +0 -28
- package/dist/encryption/encryption.js +0 -109
- package/dist/encryption/index.d.ts +0 -1
- package/dist/fhevm/fhe-environment.js +0 -11
- package/dist/fhevm/fhevm.js +0 -145
- package/dist/fhevm/index.d.ts +0 -1
- package/dist/fhevm/reencrypt.js +0 -127
- package/dist/fhevm/tfhe.js +0 -336
- package/dist/fhevm/types.js +0 -29
- package/dist/generated/abis/index.d.ts +0 -2
- package/dist/generated/es/cosmos/ics23/v1/proofs_pb.d.ts +0 -593
- package/dist/generated/es/cosmos/ics23/v1/proofs_pb.js +0 -201
- package/dist/generated/es/inco/kms/lite/v1/kms_service_pb.js +0 -66
- package/dist/generated/es/kms/base_pb.d.ts +0 -765
- package/dist/generated/es/kms/base_pb.js +0 -241
- package/dist/generated/es/sf/ethereum/type/v2/type_pb.d.ts +0 -1736
- package/dist/generated/es/sf/ethereum/type/v2/type_pb.js +0 -574
- package/dist/generated/local-node.d.ts +0 -7
- package/dist/generated/local-node.js +0 -11
- package/dist/generated/ts/cometbft/crypto/v1/keys.js +0 -108
- package/dist/generated/ts/cometbft/crypto/v1/proof.js +0 -433
- package/dist/generated/ts/cometbft/types/v1/params.js +0 -716
- package/dist/generated/ts/cometbft/types/v1/validator.js +0 -358
- package/dist/generated/ts/cosmos/app/v1alpha1/module.js +0 -221
- package/dist/generated/ts/cosmos_proto/cosmos.js +0 -216
- package/dist/generated/ts/google/api/http.js +0 -356
- package/dist/generated/ts/google/protobuf/duration.js +0 -93
- package/dist/generated/ts/google/protobuf/timestamp.js +0 -93
- package/dist/generated/ts/google/protobuf/wrappers.js +0 -509
- package/dist/generated/ts/inco/abci/v1/types.js +0 -73
- package/dist/generated/ts/inco/fhe/module/v1/module.js +0 -66
- package/dist/generated/ts/inco/fhe/v1/events.js +0 -190
- package/dist/generated/ts/inco/fhe/v1/genesis.js +0 -714
- package/dist/generated/ts/inco/fhe/v1/tx.js +0 -1236
- package/dist/generated/ts/inco/fhe/v1/types.js +0 -990
- package/dist/generated/ts/inco/originchain/module/v1/module.js +0 -66
- package/dist/generated/ts/inco/originchain/v1/abci.js +0 -331
- package/dist/generated/ts/inco/originchain/v1/events.js +0 -216
- package/dist/generated/ts/inco/originchain/v1/genesis.js +0 -69
- package/dist/generated/ts/inco/originchain/v1/query.js +0 -280
- package/dist/generated/ts/inco/originchain/v1/tx.js +0 -140
- package/dist/generated/ts/inco/originchain/v1/types.js +0 -203
- package/dist/generated/ts/inco/preflight/module/v1/module.js +0 -66
- package/dist/generated/ts/inco/preflight/v1/genesis.js +0 -185
- package/dist/generated/ts/inco/preflight/v1/query.js +0 -259
- package/dist/generated/ts/inco/preflight/v1/tx.js +0 -448
- package/dist/generated/ts/inco/preflight/v1/types.js +0 -398
- package/dist/index.d.ts +0 -5
- package/dist/l1/index.d.ts +0 -2
- package/dist/l1/preflight.js +0 -42
- package/dist/lite/attested-decrypt.js +0 -6
- package/dist/lite/deployments.js +0 -21
- package/dist/lite/ecies.js +0 -135
- package/dist/lite/hadu.js +0 -41
- package/dist/lite/index.d.ts +0 -7
- package/dist/lite/index.js +0 -23
- package/dist/lite/lightning.js +0 -198
- package/dist/lite/reencrypt.js +0 -142
- package/dist/local/index.d.ts +0 -1
- package/dist/local/local-node.js +0 -28
- package/dist/reencryption/index.d.ts +0 -2
- package/dist/reencryption/index.js +0 -19
- package/dist/types.d.ts +0 -20
- package/dist/types.js +0 -3
- package/dist/viem.js +0 -12
- /package/dist/{binary.d.ts → cjs/binary.d.ts} +0 -0
- /package/dist/{generated → cjs/generated}/abis/addTwo.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/abis/inco-fhevm.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/fhe-environments.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/amino/amino.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/cometbft/abci/v1/types.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/cometbft/crypto/v1/keys.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/cometbft/crypto/v1/proof.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/cometbft/types/v1/params.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/cometbft/types/v1/validator.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/cosmos/app/v1alpha1/module.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/cosmos/msg/v1/msg.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/cosmos_proto/cosmos.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/gogoproto/gogo.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/google/api/annotations.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/google/api/http.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/google/protobuf/descriptor.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/google/protobuf/duration.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/google/protobuf/timestamp.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/google/protobuf/wrappers.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/abci/v1/types.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/fhe/module/v1/module.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/events.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/genesis.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/types.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/originchain/module/v1/module.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/abci.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/events.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/genesis.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/types.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/preflight/module/v1/module.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/genesis.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/types.d.ts +0 -0
- /package/dist/{reencryption → cjs/reencryption}/eip712.d.ts +0 -0
- /package/dist/{retry.d.ts → cjs/retry.d.ts} +0 -0
- /package/dist/{schema.d.ts → cjs/schema.d.ts} +0 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
import { SupportedScalarBinaryOp } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
|
2
|
+
/**
|
3
|
+
* Supported attested compute operations.
|
4
|
+
*/
|
5
|
+
export const AttestedComputeSupportedOps = {
|
6
|
+
/*
|
7
|
+
Add: SupportedScalarBinaryOp.FHE_ADD,
|
8
|
+
Sub: SupportedScalarBinaryOp.FHE_SUB,
|
9
|
+
Mul: SupportedScalarBinaryOp.FHE_MUL,
|
10
|
+
Div: SupportedScalarBinaryOp.FHE_DIV,
|
11
|
+
Rem: SupportedScalarBinaryOp.FHE_REM,
|
12
|
+
BitAnd: SupportedScalarBinaryOp.FHE_BIT_AND,
|
13
|
+
BitOr: SupportedScalarBinaryOp.FHE_BIT_OR,
|
14
|
+
BitXor: SupportedScalarBinaryOp.FHE_BIT_XOR,
|
15
|
+
Shl: SupportedScalarBinaryOp.FHE_SHL,
|
16
|
+
Shr: SupportedScalarBinaryOp.FHE_SHR,
|
17
|
+
Rotl: SupportedScalarBinaryOp.FHE_ROTL,
|
18
|
+
Rotr: SupportedScalarBinaryOp.FHE_ROTR,
|
19
|
+
*/
|
20
|
+
Eq: SupportedScalarBinaryOp.FHE_EQ,
|
21
|
+
Ne: SupportedScalarBinaryOp.FHE_NE,
|
22
|
+
Ge: SupportedScalarBinaryOp.FHE_GE,
|
23
|
+
Gt: SupportedScalarBinaryOp.FHE_GT,
|
24
|
+
Le: SupportedScalarBinaryOp.FHE_LE,
|
25
|
+
Lt: SupportedScalarBinaryOp.FHE_LT,
|
26
|
+
/*
|
27
|
+
Min: SupportedScalarBinaryOp.FHE_MIN,
|
28
|
+
Max: SupportedScalarBinaryOp.FHE_MAX,
|
29
|
+
*/
|
30
|
+
};
|
31
|
+
/**
|
32
|
+
* Custom error class for attested compute operations.
|
33
|
+
*/
|
34
|
+
export class AttestedComputeError extends Error {
|
35
|
+
cause;
|
36
|
+
constructor(message, cause) {
|
37
|
+
super(message);
|
38
|
+
this.cause = cause;
|
39
|
+
this.name = 'AttestedComputeError';
|
40
|
+
}
|
41
|
+
}
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRjb21wdXRlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRzdGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekM7Ozs7Ozs7Ozs7Ozs7TUFhRTtJQUNGLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDOzs7TUFHRTtDQUNNLENBQUM7QUFPWDs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxLQUFLO0lBRzNCO0lBRmxCLFlBQ0UsT0FBZSxFQUNDLEtBQWU7UUFFL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRkMsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUcvQixJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7Q0FDRiJ9
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import type { Account, Chain, Transport, WalletClient } from 'viem';
|
2
|
+
import { SupportedChainId } from '../chain.js';
|
3
|
+
import { EciesScheme } from '../encryption/encryption.js';
|
4
|
+
import type { KmsClient } from '../kms/client.js';
|
5
|
+
import { AttestedDecryptor } from './types.js';
|
6
|
+
/**
|
7
|
+
* Validates a handle format.
|
8
|
+
* @param handle - The handle to validate
|
9
|
+
* @throws {AttestedDecryptError} If the handle format is invalid
|
10
|
+
*/
|
11
|
+
export declare function validateHandle(handle: string): void;
|
12
|
+
/**
|
13
|
+
* Arguments for creating an attested decryptor.
|
14
|
+
*/
|
15
|
+
export interface IncoLiteAttestedDecryptorArgs {
|
16
|
+
/** The wallet used to interact with the blockchain and sign the decrypt request */
|
17
|
+
walletClient: WalletClient<Transport, Chain, Account>;
|
18
|
+
/** The KMS connect RPC endpoint or client instance */
|
19
|
+
kmsConnectRpcEndpointOrClient?: string | KmsClient;
|
20
|
+
/** The chain ID to use */
|
21
|
+
chainId: SupportedChainId;
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* Creates an attested decryptor that can decrypt handles with an attached attestation from the covalidator.
|
25
|
+
* @param args - The arguments for creating the decryptor
|
26
|
+
* @returns A function that can decrypt handles using attestation
|
27
|
+
* @throws {AttestedDecryptError} If the decryptor creation fails
|
28
|
+
*
|
29
|
+
* @todo Support multiple handles in a single request.
|
30
|
+
*
|
31
|
+
* @example
|
32
|
+
* ```typescript
|
33
|
+
* const decryptor = await incoLiteAttestedDecryptor({
|
34
|
+
* walletClient,
|
35
|
+
* chainId: sepolia,
|
36
|
+
* });
|
37
|
+
* const { plaintext, covalidatorSignature } = await decryptor({ handle: '0x...' });
|
38
|
+
* ```
|
39
|
+
*/
|
40
|
+
export declare function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }: IncoLiteAttestedDecryptorArgs): AttestedDecryptor<EciesScheme>;
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import { hexToBytes } from 'viem';
|
2
|
+
import { bytesToBigInt } from '../binary.js';
|
3
|
+
import { getSupportedChain } from '../chain.js';
|
4
|
+
import { bigintToPlaintext, encryptionSchemes } from '../encryption/encryption.js';
|
5
|
+
import { getHandleType } from '../handle.js';
|
6
|
+
import { defaultCovalidatorGrpc, getKmsClient } from '../kms/client.js';
|
7
|
+
import { createEIP712Payload } from '../reencryption/eip712.js';
|
8
|
+
import { retryWithBackoff } from '../retry.js';
|
9
|
+
import { AttestedDecryptError } from './types.js';
|
10
|
+
const ATTESTED_DECRYPT_DOMAIN_NAME = 'IncoAttestedDecrypt';
|
11
|
+
const ATTESTED_DECRYPT_DOMAIN_VERSION = '0.1.0';
|
12
|
+
/**
|
13
|
+
* Validates a handle format.
|
14
|
+
* @param handle - The handle to validate
|
15
|
+
* @throws {AttestedDecryptError} If the handle format is invalid
|
16
|
+
*/
|
17
|
+
export function validateHandle(handle) {
|
18
|
+
if (!handle.startsWith('0x') || handle.length !== 66) {
|
19
|
+
throw new AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
|
20
|
+
}
|
21
|
+
}
|
22
|
+
/**
|
23
|
+
* Creates an attested decryptor that can decrypt handles with an attached attestation from the covalidator.
|
24
|
+
* @param args - The arguments for creating the decryptor
|
25
|
+
* @returns A function that can decrypt handles using attestation
|
26
|
+
* @throws {AttestedDecryptError} If the decryptor creation fails
|
27
|
+
*
|
28
|
+
* @todo Support multiple handles in a single request.
|
29
|
+
*
|
30
|
+
* @example
|
31
|
+
* ```typescript
|
32
|
+
* const decryptor = await incoLiteAttestedDecryptor({
|
33
|
+
* walletClient,
|
34
|
+
* chainId: sepolia,
|
35
|
+
* });
|
36
|
+
* const { plaintext, covalidatorSignature } = await decryptor({ handle: '0x...' });
|
37
|
+
* ```
|
38
|
+
*/
|
39
|
+
export function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }) {
|
40
|
+
const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc(getSupportedChain(chainId)));
|
41
|
+
return async function attestedDecrypt({ handle, backoffConfig, }) {
|
42
|
+
try {
|
43
|
+
validateHandle(handle);
|
44
|
+
// Create the EIP712 payload for the handles to decrypt
|
45
|
+
const eip712Payload = createEIP712Payload({
|
46
|
+
chainId: BigInt(chainId),
|
47
|
+
primaryType: 'AttestedDecryptRequest',
|
48
|
+
primaryTypeFields: [{ name: 'handles', type: 'bytes32[]' }],
|
49
|
+
message: {
|
50
|
+
handles: [handle],
|
51
|
+
},
|
52
|
+
domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
|
53
|
+
domainVersion: ATTESTED_DECRYPT_DOMAIN_VERSION,
|
54
|
+
});
|
55
|
+
// Sign the EIP712 message
|
56
|
+
const eip712Signature = await walletClient.signTypedData(eip712Payload);
|
57
|
+
const attestedDecryptRequest = {
|
58
|
+
$typeName: 'inco.kms.lite.v1.AttestedDecryptRequest',
|
59
|
+
userAddress: walletClient.account.address,
|
60
|
+
handles: [handle],
|
61
|
+
eip712Signature: hexToBytes(eip712Signature),
|
62
|
+
};
|
63
|
+
const response = await retryWithBackoff(async () => {
|
64
|
+
return await kmsClient.attestedDecrypt(attestedDecryptRequest);
|
65
|
+
}, backoffConfig);
|
66
|
+
if (response.decryptionAttestations.length !== 1) {
|
67
|
+
throw new AttestedDecryptError('Expected 1 decryption attestation in response');
|
68
|
+
}
|
69
|
+
const decryptionAttestation = response.decryptionAttestations[0];
|
70
|
+
if (decryptionAttestation.plaintext === undefined) {
|
71
|
+
throw new AttestedDecryptError('No plaintext in response');
|
72
|
+
}
|
73
|
+
const handleType = getHandleType(handle);
|
74
|
+
const bigIntValue = bytesToBigInt(decryptionAttestation.plaintext);
|
75
|
+
return {
|
76
|
+
handle: decryptionAttestation.handle,
|
77
|
+
plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
|
78
|
+
covalidatorSignature: decryptionAttestation.signature,
|
79
|
+
};
|
80
|
+
}
|
81
|
+
catch (error) {
|
82
|
+
if (error instanceof AttestedDecryptError) {
|
83
|
+
throw error;
|
84
|
+
}
|
85
|
+
throw new AttestedDecryptError('Failed to decrypt handle', error);
|
86
|
+
}
|
87
|
+
};
|
88
|
+
}
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsaUJBQWlCLEVBQW9CLE1BQU0sNkJBQTZCLENBQUM7QUFFbEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBNEMsTUFBTSxZQUFZLENBQUM7QUFFNUYsTUFBTSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQztBQUMzRCxNQUFNLCtCQUErQixHQUFHLE9BQU8sQ0FBQztBQUVoRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFjO0lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDckQsTUFBTSxJQUFJLG9CQUFvQixDQUFDLG9FQUFvRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztBQUNILENBQUM7QUFjRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxFQUN4Qyw2QkFBNkIsRUFDN0IsT0FBTyxFQUNQ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
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './attested-decrypt.js';
|
2
|
+
export * from './types.js';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxZQUFZLENBQUMifQ==
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { HexString } from '../binary.js';
|
2
|
+
import { EncryptionScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption.js';
|
3
|
+
import type { BackoffConfig } from '../retry.js';
|
4
|
+
/**
|
5
|
+
* Custom error class for attested decrypt operations.
|
6
|
+
*/
|
7
|
+
export declare class AttestedDecryptError extends Error {
|
8
|
+
readonly cause?: unknown | undefined;
|
9
|
+
constructor(message: string, cause?: unknown | undefined);
|
10
|
+
}
|
11
|
+
export type DecryptionAttestation<S extends EncryptionScheme, T extends SupportedFheType> = {
|
12
|
+
handle: HexString;
|
13
|
+
plaintext: PlaintextOf<S, T>;
|
14
|
+
covalidatorSignature: Uint8Array;
|
15
|
+
};
|
16
|
+
export type AttestedDecryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: {
|
17
|
+
/** The handle to decrypt */
|
18
|
+
handle: HexString;
|
19
|
+
backoffConfig?: Partial<BackoffConfig>;
|
20
|
+
}) => Promise<DecryptionAttestation<S, T>>;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**
|
2
|
+
* Custom error class for attested decrypt operations.
|
3
|
+
*/
|
4
|
+
export class AttestedDecryptError extends Error {
|
5
|
+
cause;
|
6
|
+
constructor(message, cause) {
|
7
|
+
super(message);
|
8
|
+
this.cause = cause;
|
9
|
+
this.name = 'AttestedDecryptError';
|
10
|
+
}
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLEtBQUs7SUFHM0I7SUFGbEIsWUFDRSxPQUFlLEVBQ0MsS0FBZTtRQUUvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGQyxVQUFLLEdBQUwsS0FBSyxDQUFVO1FBRy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Schema } from 'effect';
|
2
|
+
import { Hex } from 'viem';
|
3
|
+
export declare const HexString: Schema.TemplateLiteral<`0x${string}`>;
|
4
|
+
export type HexString = typeof HexString.Type;
|
5
|
+
export type BytesIsh = string | Uint8Array;
|
6
|
+
export declare function bytesToBigInt(byteArray: Uint8Array): bigint;
|
7
|
+
export declare function bufferToBigInt(buffer: Buffer): bigint;
|
8
|
+
export declare function bigintToBytes32(value: bigint): Bytes32;
|
9
|
+
export declare function padLeft(bs: Uint8Array, n: number): Buffer;
|
10
|
+
export declare function bytes32ToBigint(bs: BytesIsh): bigint;
|
11
|
+
export declare function bytesFromHexString(hexString: string): Buffer;
|
12
|
+
export declare function mustBeHex(value: string): Hex;
|
13
|
+
export declare function normaliseToHex(value: string): Hex;
|
14
|
+
export declare function bytesToHex(bs: Uint8Array): Hex;
|
15
|
+
export declare const Bytes32: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
|
16
|
+
export declare function asBytes32(x: BytesIsh): Bytes32;
|
17
|
+
export type Bytes32 = typeof Bytes32.Type;
|
18
|
+
export type Address = typeof Address.Type;
|
19
|
+
export declare const Address: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
|
20
|
+
export declare function parseAddress(address: string): Address;
|
21
|
+
export declare function parseHex(hex: string): HexString;
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import { ParseResult, Schema } from 'effect';
|
2
|
+
import { isHex } from 'viem';
|
3
|
+
import { parse } from './schema.js';
|
4
|
+
export const HexString = Schema.TemplateLiteral('0x', Schema.String);
|
5
|
+
export function bytesToBigInt(byteArray) {
|
6
|
+
// Ugly but better than bigint-buffer that insists on writing junk to stderr if it doesn't have native bindings
|
7
|
+
return !byteArray?.length ? BigInt(0) : BigInt('0x' + Buffer.from(byteArray).toString('hex'));
|
8
|
+
}
|
9
|
+
export function bufferToBigInt(buffer) {
|
10
|
+
return bytesToBigInt(Uint8Array.from(buffer));
|
11
|
+
}
|
12
|
+
// Convert a bigint to a 32-byte array, left-padded if necessary. Note: it is
|
13
|
+
// caller's responsibility to ensure that the bigint is not too large to fit in
|
14
|
+
// 32 bytes, or else the result will be truncated.
|
15
|
+
export function bigintToBytes32(value) {
|
16
|
+
return parse(Bytes32, Buffer.from(value.toString(16).padStart(64, '0'), 'hex').toString('hex'));
|
17
|
+
}
|
18
|
+
export function padLeft(bs, n) {
|
19
|
+
if (bs.length > n) {
|
20
|
+
throw new Error(`Cannot pad ${bs.length} bytes to ${n} - would truncate`);
|
21
|
+
}
|
22
|
+
const buf = Buffer.alloc(n);
|
23
|
+
buf.set(bs, n - bs.length);
|
24
|
+
return buf;
|
25
|
+
}
|
26
|
+
export function bytes32ToBigint(bs) {
|
27
|
+
const bytes32 = asBytes32(bs);
|
28
|
+
return BigInt(bytes32);
|
29
|
+
}
|
30
|
+
export function bytesFromHexString(hexString) {
|
31
|
+
return Buffer.from(hexString.startsWith('0x') ? hexString.slice(2) : hexString, 'hex');
|
32
|
+
}
|
33
|
+
export function mustBeHex(value) {
|
34
|
+
if (!isHex(value)) {
|
35
|
+
throw new Error(`Expected hex string, got: ${value}`);
|
36
|
+
}
|
37
|
+
return value;
|
38
|
+
}
|
39
|
+
export function normaliseToHex(value) {
|
40
|
+
return mustBeHex(value.startsWith('0x') ? value : `0x${value}`);
|
41
|
+
}
|
42
|
+
export function bytesToHex(bs) {
|
43
|
+
return ('0x' + Buffer.from(bs).toString('hex'));
|
44
|
+
}
|
45
|
+
const ByteArray = Schema.Object.pipe(Schema.filter((x) => x instanceof Uint8Array));
|
46
|
+
const BytesToHex = Schema.transformOrFail(Schema.Union(Schema.String, ByteArray), HexString, {
|
47
|
+
strict: true,
|
48
|
+
encode: ParseResult.succeed,
|
49
|
+
decode: (x) => x instanceof Uint8Array
|
50
|
+
? ParseResult.succeed(bytesToHex(x))
|
51
|
+
: ((y) => isHex(y)
|
52
|
+
? ParseResult.succeed(y)
|
53
|
+
: ParseResult.fail(new ParseResult.Unexpected(y, `'${y}' is not a hex string`)))(normaliseToHex(x)),
|
54
|
+
});
|
55
|
+
export const Bytes32 = BytesToHex.pipe(Schema.filter((x) => x.length === 66 ||
|
56
|
+
`Expected 32-byte hex string (66 characters with 0x prefix) but got ${x.length} character string`), Schema.brand('Bytes32'));
|
57
|
+
export function asBytes32(x) {
|
58
|
+
return parse(Bytes32, x);
|
59
|
+
}
|
60
|
+
export const Address = HexString.pipe(Schema.filter((s) => s.length === 42 || `Address must be a 20-byte '0x'-prefixed hex string, but got: ${s}`), Schema.brand('Address'));
|
61
|
+
export function parseAddress(address) {
|
62
|
+
return parse(Address, address);
|
63
|
+
}
|
64
|
+
export function parseHex(hex) {
|
65
|
+
return parse(HexString, hex);
|
66
|
+
}
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQU1yRSxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQXFCO0lBQ2pELCtHQUErRztJQUMvRyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBYztJQUMzQyxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELDZFQUE2RTtBQUM3RSwrRUFBK0U7QUFDL0Usa0RBQWtEO0FBQ2xELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBYTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEcsQ0FBQztBQUVELE1B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
|
@@ -0,0 +1,25 @@
|
|
1
|
+
export declare const supportedChains: {
|
2
|
+
readonly baseSepolia: 84532;
|
3
|
+
readonly sepolia: 11155111;
|
4
|
+
readonly monadTestnet: 10143;
|
5
|
+
readonly plasmaTestnet: 9746;
|
6
|
+
readonly worldchainSepolia: 4801;
|
7
|
+
readonly anvil: 31337;
|
8
|
+
};
|
9
|
+
export declare const fheSupportedChains: {
|
10
|
+
readonly baseSepolia: 84532;
|
11
|
+
readonly sepolia: 11155111;
|
12
|
+
};
|
13
|
+
type SupportedChains = typeof supportedChains;
|
14
|
+
export type SupportedChainId = SupportedChains[keyof SupportedChains];
|
15
|
+
export type SupportedChainName = keyof SupportedChains;
|
16
|
+
export type SupportedChain = {
|
17
|
+
name: SupportedChainName;
|
18
|
+
id: SupportedChainId;
|
19
|
+
};
|
20
|
+
export type Numberish = number | bigint;
|
21
|
+
export type Chainish = {
|
22
|
+
id: Numberish;
|
23
|
+
} | Numberish | string;
|
24
|
+
export declare function getSupportedChain(chainish: Chainish): SupportedChain;
|
25
|
+
export {};
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// No imports here to avoid issues with closures and modules across pulumi boundary
|
2
|
+
// This file can be seen as mirroring the functionality of viem changes without depending on it directly.
|
3
|
+
// It exists as a workaround for some very gnarly issues with code reuse between Pulumi and this module, partly
|
4
|
+
// relating to modules but also linked to Pulumi's ability to capture closures and serialise them.
|
5
|
+
export const supportedChains = {
|
6
|
+
baseSepolia: 84532,
|
7
|
+
sepolia: 11155111,
|
8
|
+
monadTestnet: 10143,
|
9
|
+
plasmaTestnet: 9746,
|
10
|
+
worldchainSepolia: 4801,
|
11
|
+
anvil: 31337,
|
12
|
+
};
|
13
|
+
export const fheSupportedChains = { baseSepolia: 84532, sepolia: 11155111 };
|
14
|
+
// Get supportedChain either by its chain ID or the short name (lower pascal case)
|
15
|
+
export function getSupportedChain(chainish) {
|
16
|
+
const found = typeof chainish === 'number' || typeof chainish === 'bigint'
|
17
|
+
? Object.entries(supportedChains).find(([, id]) => id === Number(chainish))
|
18
|
+
: typeof chainish === 'object'
|
19
|
+
? Object.entries(supportedChains).find(([, id]) => id === Number(chainish.id))
|
20
|
+
: Object.entries(supportedChains).find(([shortName]) => shortName === chainish);
|
21
|
+
if (!found) {
|
22
|
+
throw new Error(`Supported chain ${chainish} not found`);
|
23
|
+
}
|
24
|
+
const [name, id] = found;
|
25
|
+
return { name: name, id };
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUZBQW1GO0FBRW5GLHlHQUF5RztBQUN6RywrR0FBK0c7QUFDL0csa0dBQWtHO0FBRWxHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixXQUFXLEVBQUUsS0FBSztJQUNsQixPQUFPLEVBQUUsUUFBUTtJQUNqQixZQUFZLEVBQUUsS0FBSztJQUNuQixhQUFhLEVBQUUsSUFBSTtJQUNuQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLEtBQUssRUFBRSxLQUFLO0NBQ0osQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFXLENBQUM7QUFjckYsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxRQUFrQjtJQUNsRCxNQUFNLEtBQUssR0FDVCxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUTtRQUMxRCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVE7WUFDNUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDdEYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsUUFBUSxZQUFZLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxJQUEwQixFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ2xELENBQUMifQ==
|
@@ -0,0 +1,119 @@
|
|
1
|
+
import { Schema } from 'effect';
|
2
|
+
import { Bytes32 } from '../binary.js';
|
3
|
+
import { InputContext } from '../handle.js';
|
4
|
+
export type Encryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(plaintext: PlaintextWithContextOf<S, T>) => Promise<EncryptResultOf<S, T>>;
|
5
|
+
export type Decryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(ciphertext: CiphertextOf<S, T>, context?: InputContext) => Promise<PlaintextOf<S, T>>;
|
6
|
+
export declare const supportedFheTypes: {
|
7
|
+
readonly euint64: 5;
|
8
|
+
readonly euint160: 7;
|
9
|
+
readonly euint256: 8;
|
10
|
+
readonly ebool: 0;
|
11
|
+
};
|
12
|
+
export declare const SupportedFheTypeName: Schema.SchemaClass<"ebool" | "euint64" | "euint160" | "euint256", "ebool" | "euint64" | "euint160" | "euint256", never>;
|
13
|
+
export type SupportedFheTypeName = typeof SupportedFheTypeName.Type;
|
14
|
+
export declare const SupportedFheType: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
|
15
|
+
export type SupportedFheType = typeof SupportedFheType.Type;
|
16
|
+
export declare const encryptionSchemes: {
|
17
|
+
readonly tfhe: 0;
|
18
|
+
readonly ecies: 1;
|
19
|
+
readonly cryptobox: 2;
|
20
|
+
};
|
21
|
+
export declare function getEncryptionSchemeName(scheme: number): string;
|
22
|
+
export type EncryptionSchemes = typeof encryptionSchemes;
|
23
|
+
export type EciesScheme = EncryptionSchemes['ecies'];
|
24
|
+
export type TfheScheme = EncryptionSchemes['tfhe'];
|
25
|
+
export type CryptoboxScheme = EncryptionSchemes['cryptobox'];
|
26
|
+
export declare const EncryptionScheme: Schema.Literal<[0, 1, 2]>;
|
27
|
+
export type EncryptionScheme = typeof EncryptionScheme.Type;
|
28
|
+
type DistType<P, S extends EncryptionScheme, T extends SupportedFheType> = P extends any ? P & {
|
29
|
+
scheme: S;
|
30
|
+
type: T;
|
31
|
+
} : never;
|
32
|
+
export declare const ciphertextEnvelopes: {
|
33
|
+
readonly none: 0;
|
34
|
+
readonly hadu: 1;
|
35
|
+
};
|
36
|
+
export declare const CiphertextEnvelope: Schema.SchemaClass<0 | 1, 0 | 1, never>;
|
37
|
+
export declare const Ciphertext: Schema.Struct<{
|
38
|
+
scheme: Schema.Literal<[0, 1, 2]>;
|
39
|
+
type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
|
40
|
+
value: Schema.TemplateLiteral<`0x${string}`>;
|
41
|
+
envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
|
42
|
+
}>;
|
43
|
+
export type Ciphertext = typeof Ciphertext.Type;
|
44
|
+
export type CiphertextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Ciphertext, S, T>;
|
45
|
+
export declare const CiphertextWithContext: Schema.Struct<{
|
46
|
+
ciphertext: Schema.Struct<{
|
47
|
+
scheme: Schema.Literal<[0, 1, 2]>;
|
48
|
+
type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
|
49
|
+
value: Schema.TemplateLiteral<`0x${string}`>;
|
50
|
+
envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
|
51
|
+
}>;
|
52
|
+
context: Schema.Struct<{
|
53
|
+
hostChainId: typeof Schema.BigInt;
|
54
|
+
aclAddress: Schema.TemplateLiteral<`0x${string}`>;
|
55
|
+
userAddress: Schema.TemplateLiteral<`0x${string}`>;
|
56
|
+
contractAddress: Schema.TemplateLiteral<`0x${string}`>;
|
57
|
+
}>;
|
58
|
+
}>;
|
59
|
+
export type CiphertextWithContext = typeof CiphertextWithContext.Type;
|
60
|
+
export type CiphertextWithContextOf<S extends EncryptionScheme, T extends SupportedFheType> = CiphertextWithContext & {
|
61
|
+
ciphertext: CiphertextOf<S, T>;
|
62
|
+
};
|
63
|
+
export declare const EncryptResult: Schema.Struct<{
|
64
|
+
ciphertext: Schema.Struct<{
|
65
|
+
scheme: Schema.Literal<[0, 1, 2]>;
|
66
|
+
type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
|
67
|
+
value: Schema.TemplateLiteral<`0x${string}`>;
|
68
|
+
envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
|
69
|
+
}>;
|
70
|
+
context: Schema.Struct<{
|
71
|
+
hostChainId: typeof Schema.BigInt;
|
72
|
+
aclAddress: Schema.TemplateLiteral<`0x${string}`>;
|
73
|
+
userAddress: Schema.TemplateLiteral<`0x${string}`>;
|
74
|
+
contractAddress: Schema.TemplateLiteral<`0x${string}`>;
|
75
|
+
}>;
|
76
|
+
prehandle: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
|
77
|
+
handle: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
|
78
|
+
}>;
|
79
|
+
export type EncryptResult = typeof EncryptResult.Type;
|
80
|
+
export type EncryptResultOf<S extends EncryptionScheme, T extends SupportedFheType> = EncryptResult & {
|
81
|
+
ciphertext: CiphertextOf<S, T>;
|
82
|
+
};
|
83
|
+
export declare const Plaintext: Schema.Union<[Schema.Struct<{
|
84
|
+
scheme: Schema.Literal<[0, 1, 2]>;
|
85
|
+
type: Schema.Literal<[5, 7, 8]>;
|
86
|
+
value: typeof Schema.BigInt;
|
87
|
+
}>, Schema.Struct<{
|
88
|
+
scheme: Schema.Literal<[0, 1, 2]>;
|
89
|
+
type: Schema.Literal<[0]>;
|
90
|
+
value: typeof Schema.Boolean;
|
91
|
+
}>]>;
|
92
|
+
export type Plaintext = typeof Plaintext.Type;
|
93
|
+
export type PlaintextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Plaintext, S, T>;
|
94
|
+
export declare const PlaintextWithContext: Schema.Struct<{
|
95
|
+
plaintext: Schema.Union<[Schema.Struct<{
|
96
|
+
scheme: Schema.Literal<[0, 1, 2]>;
|
97
|
+
type: Schema.Literal<[5, 7, 8]>;
|
98
|
+
value: typeof Schema.BigInt;
|
99
|
+
}>, Schema.Struct<{
|
100
|
+
scheme: Schema.Literal<[0, 1, 2]>;
|
101
|
+
type: Schema.Literal<[0]>;
|
102
|
+
value: typeof Schema.Boolean;
|
103
|
+
}>]>;
|
104
|
+
context: Schema.Struct<{
|
105
|
+
hostChainId: typeof Schema.BigInt;
|
106
|
+
aclAddress: Schema.TemplateLiteral<`0x${string}`>;
|
107
|
+
userAddress: Schema.TemplateLiteral<`0x${string}`>;
|
108
|
+
contractAddress: Schema.TemplateLiteral<`0x${string}`>;
|
109
|
+
}>;
|
110
|
+
}>;
|
111
|
+
export type PlaintextWithContext = typeof PlaintextWithContext.Type;
|
112
|
+
export type PlaintextWithContextOf<S extends EncryptionScheme, T extends SupportedFheType> = PlaintextWithContext & {
|
113
|
+
plaintext: PlaintextOf<S, T>;
|
114
|
+
};
|
115
|
+
export declare function bigintToPlaintext<S extends EncryptionScheme, T extends SupportedFheType>(scheme: S, type: T, bigPt: bigint): PlaintextOf<S, T>;
|
116
|
+
export declare function plaintextToBigint(plaintext: Plaintext): bigint;
|
117
|
+
export declare function plaintextToBytes32(plaintext: Plaintext): Bytes32;
|
118
|
+
export declare function bytes32ToPlaintext(plaintext: Bytes32, scheme: EncryptionScheme, type: SupportedFheType): Plaintext;
|
119
|
+
export {};
|
@@ -0,0 +1,101 @@
|
|
1
|
+
import { Schema } from 'effect';
|
2
|
+
import { bigintToBytes32, Bytes32, HexString } from '../binary.js';
|
3
|
+
import { handleTypes, InputContext } from '../handle.js';
|
4
|
+
export const supportedFheTypes = {
|
5
|
+
euint64: handleTypes.euint64,
|
6
|
+
euint160: handleTypes.euint160,
|
7
|
+
euint256: handleTypes.euint256,
|
8
|
+
ebool: handleTypes.ebool,
|
9
|
+
};
|
10
|
+
const supportedFheTypeNames = Object.keys(supportedFheTypes);
|
11
|
+
export const SupportedFheTypeName = Schema.Literal(...supportedFheTypeNames);
|
12
|
+
// TODO: extend to all types
|
13
|
+
export const SupportedFheType = Schema.Literal(...Object.values(supportedFheTypes));
|
14
|
+
export const encryptionSchemes = {
|
15
|
+
tfhe: 0,
|
16
|
+
ecies: 1,
|
17
|
+
cryptobox: 2,
|
18
|
+
};
|
19
|
+
export function getEncryptionSchemeName(scheme) {
|
20
|
+
switch (scheme) {
|
21
|
+
case encryptionSchemes.tfhe:
|
22
|
+
return 'TFHE';
|
23
|
+
case encryptionSchemes.ecies:
|
24
|
+
return 'ECIES';
|
25
|
+
case encryptionSchemes.cryptobox:
|
26
|
+
return 'NACLCryptoBox';
|
27
|
+
default:
|
28
|
+
throw new Error(`Unknown encryption scheme: ${scheme}`);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
export const EncryptionScheme = Schema.Literal(encryptionSchemes.tfhe, encryptionSchemes.ecies, encryptionSchemes.cryptobox);
|
32
|
+
export const ciphertextEnvelopes = {
|
33
|
+
none: 0,
|
34
|
+
hadu: 1,
|
35
|
+
};
|
36
|
+
export const CiphertextEnvelope = Schema.Literal(...Object.values(ciphertextEnvelopes));
|
37
|
+
export const Ciphertext = Schema.Struct({
|
38
|
+
scheme: EncryptionScheme,
|
39
|
+
type: SupportedFheType,
|
40
|
+
value: HexString,
|
41
|
+
envelope: Schema.optional(CiphertextEnvelope),
|
42
|
+
});
|
43
|
+
export const CiphertextWithContext = Schema.Struct({
|
44
|
+
ciphertext: Ciphertext,
|
45
|
+
context: InputContext,
|
46
|
+
});
|
47
|
+
export const EncryptResult = Schema.Struct({
|
48
|
+
ciphertext: Ciphertext,
|
49
|
+
context: InputContext,
|
50
|
+
prehandle: Bytes32,
|
51
|
+
handle: Bytes32,
|
52
|
+
});
|
53
|
+
export const Plaintext = Schema.Union(Schema.Struct({
|
54
|
+
scheme: EncryptionScheme,
|
55
|
+
type: Schema.Literal(handleTypes.euint64, handleTypes.euint160, handleTypes.euint256),
|
56
|
+
value: Schema.BigInt,
|
57
|
+
}), Schema.Struct({
|
58
|
+
scheme: EncryptionScheme,
|
59
|
+
type: Schema.Literal(handleTypes.ebool),
|
60
|
+
value: Schema.Boolean,
|
61
|
+
}));
|
62
|
+
export const PlaintextWithContext = Schema.Struct({
|
63
|
+
plaintext: Plaintext,
|
64
|
+
context: InputContext,
|
65
|
+
});
|
66
|
+
export function bigintToPlaintext(scheme, type, bigPt) {
|
67
|
+
switch (type) {
|
68
|
+
case handleTypes.euint64:
|
69
|
+
case handleTypes.euint160:
|
70
|
+
case handleTypes.euint256:
|
71
|
+
return {
|
72
|
+
scheme,
|
73
|
+
type,
|
74
|
+
value: bigPt,
|
75
|
+
};
|
76
|
+
case handleTypes.ebool:
|
77
|
+
return {
|
78
|
+
scheme,
|
79
|
+
type,
|
80
|
+
value: bigPt !== 0n,
|
81
|
+
};
|
82
|
+
}
|
83
|
+
throw new Error(`Unsupported FHE type: ${type}`);
|
84
|
+
}
|
85
|
+
export function plaintextToBigint(plaintext) {
|
86
|
+
switch (plaintext.type) {
|
87
|
+
case handleTypes.euint64:
|
88
|
+
case handleTypes.euint160:
|
89
|
+
case handleTypes.euint256:
|
90
|
+
return plaintext.value;
|
91
|
+
case handleTypes.ebool:
|
92
|
+
return plaintext.value ? 1n : 0n;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
export function plaintextToBytes32(plaintext) {
|
96
|
+
return bigintToBytes32(plaintextToBigint(plaintext));
|
97
|
+
}
|
98
|
+
export function bytes32ToPlaintext(plaintext, scheme, type) {
|
99
|
+
return bigintToPlaintext(scheme, type, BigInt(plaintext));
|
100
|
+
}
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmNyeXB0aW9uL2VuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFhekQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO0lBQzVCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7SUFDOUIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0NBQ2hCLENBQUM7QUFFWCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQXVDLENBQUM7QUFFbkcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUM7QUFJN0UsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztBQUlwRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsU0FBUyxFQUFFLENBQUM7Q0FDSixDQUFDO0FBRVgsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQWM7SUFDcEQsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssaUJBQWlCLENBQUMsSUFBSTtZQUN6QixPQUFPLE1BQU0sQ0FBQztRQUNoQixLQUFLLGlCQUFpQixDQUFDLEtBQUs7WUFDMUIsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxpQkFBaUIsQ0FBQyxTQUFTO1lBQzlCLE9BQU8sZUFBZSxDQUFDO1FBQ3pCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0FBQ0gsQ0FBQztBQVVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQzVDLGlCQUFpQixDQUFDLElBQUksRUFDdEIsaUJBQWlCLENBQUMsS0FBSyxFQUN2QixpQkFBaUIsQ0FBQyxTQUFTLENBQzVCLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxJQUFJLEVBQUUsQ0FBQztJQUNQLElBQUksRUFBRSxDQUFDO0NBQ0MsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztBQUV4RixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN0QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLElBQUksRUFBRSxnQkFBZ0I7SUFDdEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUM7Q0FDOUMsQ0FBQyxDQUFDO0FBTUgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNqRCxVQUFVLEVBQUUsVUFBVTtJQUN0QixPQUFPLEVBQUUsWUFBWTtDQUN0QixDQUFDLENBQUM7QUFRSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6QyxVQUFVLEVBQUUsVUFBVTtJQUN0QixPQUFPLEVBQUUsWUFBWTtJQUNyQixTQUFTLEVBQUUsT0FBTztJQUNsQixNQUFNLEVBQUUsT0FBTztDQUNoQixDQUFDLENBQUM7QUFRSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNaLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFDckYsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNO0NBQ3JCLENBQUMsRUFDRixNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ1osTUFBTSxFQUFFLGdCQUFnQjtJQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTztDQUN0QixDQUFDLENBQ0gsQ0FBQztBQU1GLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDaEQsU0FBUyxFQUFFLFNBQVM7SUFDcEIsT0FBTyxFQUFFLFlBQVk7Q0FDdEIsQ0FBQyxDQUFDO0FBUUgsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixNQUFTLEVBQ1QsSUFBTyxFQUNQLEtBQWE7SUFFYixRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ3pCLEtBQUssV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUMxQixLQUFLLFdBQVcsQ0FBQyxRQUFRO1lBQ3ZCLE9BQU87Z0JBQ0wsTUFBTTtnQkFDTixJQUFJO2dCQUNKLEtBQUssRUFBRSxLQUFLO2FBQ1EsQ0FBQztRQUN6QixLQUFLLFdBQVcsQ0FBQyxLQUFLO1lBQ3BCLE9BQU87Z0JBQ0wsTUFBTTtnQkFDTixJQUFJO2dCQUNKLEtBQUssRUFBRSxLQUFLLEtBQUssRUFBRTthQUNDLENBQUM7SUFDM0IsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxTQUFvQjtJQUNwRCxRQUFRLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixLQUFLLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDekIsS0FBSyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQzFCLEtBQUssV0FBVyxDQUFDLFFBQVE7WUFDdkIsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ3pCLEtBQUssV0FBVyxDQUFDLEtBQUs7WUFDcEIsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFvQjtJQUNyRCxPQUFPLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBa0IsRUFBRSxNQUF3QixFQUFFLElBQXNCO0lBQ3JHLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDIn0=
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './encryption.js';
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { Chainish } from '../chain.js';
|
2
|
+
export type Address = `0x${string}`;
|
3
|
+
export type FheEnvironment = {
|
4
|
+
aclAddress: Address;
|
5
|
+
thfeExecutorAddress: Address;
|
6
|
+
gatewayAddress: Address;
|
7
|
+
kmsVerifierAddress: Address;
|
8
|
+
};
|
9
|
+
export declare function getFheEnvironment(chainId: Chainish): FheEnvironment;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
// Avoid inporting any other dependencies in this file to avoid serialisation issues downstream in infracto
|
2
|
+
import { getSupportedChain } from '../chain.js';
|
3
|
+
import { FHEEnvironments } from '../generated/fhe-environments.js';
|
4
|
+
export function getFheEnvironment(chainId) {
|
5
|
+
const supportedChain = getSupportedChain(chainId);
|
6
|
+
return FHEEnvironments[supportedChain.name];
|
7
|
+
}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmhlLWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZoZXZtL2ZoZS1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyR0FBMkc7QUFDM0csT0FBTyxFQUFnQyxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFhbkUsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWlCO0lBQ2pELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUF1QyxDQUFDLENBQUM7QUFDakYsQ0FBQyJ9
|