@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,41 @@
|
|
1
|
+
import { Account, Chain, PublicClient, TransactionReceipt, Transport, WalletClient } from 'viem';
|
2
|
+
import { SupportedChain } from '../chain.js';
|
3
|
+
export type PublicWalletClient = {
|
4
|
+
public: PublicClient<Transport, Chain, Account>;
|
5
|
+
wallet: WalletClient<Transport, Chain, Account>;
|
6
|
+
};
|
7
|
+
export declare function createPublicWalletClient({ account, hostChainRpcUrl, chain, }: {
|
8
|
+
account: Account;
|
9
|
+
hostChainRpcUrl: string;
|
10
|
+
chain: Chain;
|
11
|
+
}): PublicWalletClient;
|
12
|
+
export declare function getFhevmDeployerClient({ deployer, hostChainRpcUrl, chain, }: {
|
13
|
+
deployer: Account;
|
14
|
+
hostChainRpcUrl: string;
|
15
|
+
chain: SupportedChain;
|
16
|
+
}): PublicWalletClient;
|
17
|
+
export type PrivateKeys = {
|
18
|
+
relayer: string;
|
19
|
+
kmsSigner: string;
|
20
|
+
deployer: string;
|
21
|
+
};
|
22
|
+
export type HostChainConfig = {
|
23
|
+
privateKeys: PrivateKeys;
|
24
|
+
rpcUrl: string;
|
25
|
+
};
|
26
|
+
export declare function configureFhevmContracts({ chain, hostChain: { privateKeys, rpcUrl }, }: {
|
27
|
+
hostChain: HostChainConfig;
|
28
|
+
chain: SupportedChain;
|
29
|
+
}): Promise<{
|
30
|
+
addRelayerTxReceipt: TransactionReceipt | null;
|
31
|
+
addKmsSignerTxReceipt: TransactionReceipt | null;
|
32
|
+
}>;
|
33
|
+
export type L1Config = {
|
34
|
+
cometRpcEndpoint: string;
|
35
|
+
mnemonic: string;
|
36
|
+
grpcEndpoint: string;
|
37
|
+
};
|
38
|
+
export declare function ensureFheEnvironmentRegistered({ l1, chain, }: {
|
39
|
+
l1: L1Config;
|
40
|
+
chain: SupportedChain;
|
41
|
+
}): Promise<void>;
|
@@ -0,0 +1,139 @@
|
|
1
|
+
import { createClient } from '@connectrpc/connect';
|
2
|
+
import { createGrpcTransport } from '@connectrpc/connect-node';
|
3
|
+
import { createPublicClient, createWalletClient, getContract, http, } from 'viem';
|
4
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
5
|
+
import * as chains from 'viem/chains';
|
6
|
+
import { normaliseToHex } from '../binary.js';
|
7
|
+
import { gatewayContractAbi, kmsVerifierAbi } from '../generated/abis/inco-fhevm.js';
|
8
|
+
import { Query } from '../generated/es/inco/fhe/v1/query_pb.js';
|
9
|
+
import { createL1Client, createL1Wallet } from '../l1/index.js';
|
10
|
+
import { getFheEnvironment } from './fhe-environment.js';
|
11
|
+
// Create a public and wallet client for the given chain.
|
12
|
+
export function createPublicWalletClient({ account, hostChainRpcUrl, chain, }) {
|
13
|
+
const transport = http(hostChainRpcUrl);
|
14
|
+
const publicClient = createPublicClient({
|
15
|
+
chain,
|
16
|
+
transport,
|
17
|
+
});
|
18
|
+
// const privateKey = await shell("cast wallet private-key --account sepolia_deployer --password ''");
|
19
|
+
// const account = privateKeyToAccount(mustBeHex(privateKey));
|
20
|
+
const walletClient = createWalletClient({
|
21
|
+
chain,
|
22
|
+
transport,
|
23
|
+
account,
|
24
|
+
});
|
25
|
+
return { public: publicClient, wallet: walletClient };
|
26
|
+
}
|
27
|
+
export function getFhevmDeployerClient({ deployer, hostChainRpcUrl, chain, }) {
|
28
|
+
const viemChain = getViemChain(chain.id);
|
29
|
+
const transport = http(hostChainRpcUrl);
|
30
|
+
const publicClient = createPublicClient({
|
31
|
+
chain: viemChain,
|
32
|
+
transport,
|
33
|
+
});
|
34
|
+
// const privateKey = await shell("cast wallet private-key --account sepolia_deployer --password ''");
|
35
|
+
// const account = privateKeyToAccount(mustBeHex(privateKey));
|
36
|
+
const walletClient = createWalletClient({
|
37
|
+
chain: viemChain,
|
38
|
+
transport,
|
39
|
+
account: deployer,
|
40
|
+
});
|
41
|
+
return { public: publicClient, wallet: walletClient };
|
42
|
+
}
|
43
|
+
export async function configureFhevmContracts({ chain, hostChain: { privateKeys, rpcUrl }, }) {
|
44
|
+
const deployer = privateKeyToAccount(normaliseToHex(privateKeys.deployer));
|
45
|
+
const relayer = privateKeyToAccount(normaliseToHex(privateKeys.relayer));
|
46
|
+
const kmsSigner = privateKeyToAccount(normaliseToHex(privateKeys.kmsSigner));
|
47
|
+
console.log(`Configuring FHE environment contracts on ${chain.name} with deployer ${deployer.address}, relayer ${relayer.address}, and KMS signer ${kmsSigner.address}...`);
|
48
|
+
const client = getFhevmDeployerClient({
|
49
|
+
hostChainRpcUrl: rpcUrl,
|
50
|
+
deployer,
|
51
|
+
chain,
|
52
|
+
});
|
53
|
+
const { gatewayAddress, kmsVerifierAddress } = getFheEnvironment(chain.id);
|
54
|
+
const gateway = getContract({
|
55
|
+
address: gatewayAddress,
|
56
|
+
abi: gatewayContractAbi,
|
57
|
+
client,
|
58
|
+
});
|
59
|
+
const kmsVerifier = getContract({
|
60
|
+
address: kmsVerifierAddress,
|
61
|
+
abi: kmsVerifierAbi,
|
62
|
+
client,
|
63
|
+
});
|
64
|
+
console.log(`Adding relayer ${relayer.address}...`);
|
65
|
+
let addRelayerTxReceipt = null;
|
66
|
+
let addKmsSignerTxReceipt = null;
|
67
|
+
const ErrAlreadyRelayer = 'Address is already relayer';
|
68
|
+
try {
|
69
|
+
const addRelayerTxHash = await gateway.write.addRelayer([relayer.address]);
|
70
|
+
addRelayerTxReceipt = await client.public.waitForTransactionReceipt({
|
71
|
+
hash: addRelayerTxHash,
|
72
|
+
});
|
73
|
+
}
|
74
|
+
catch (err) {
|
75
|
+
if (!err.message.includes(ErrAlreadyRelayer)) {
|
76
|
+
throw err;
|
77
|
+
}
|
78
|
+
console.log(`Relayer ${relayer.address} already added`);
|
79
|
+
}
|
80
|
+
console.log(`Adding KMS signer ${kmsSigner.address}...`);
|
81
|
+
const ErrAlreadySigner = 'Address is already a signer';
|
82
|
+
try {
|
83
|
+
const addKmsSignerTxHash = await kmsVerifier.write.addSigner([kmsSigner.address]);
|
84
|
+
addKmsSignerTxReceipt = await client.public.waitForTransactionReceipt({
|
85
|
+
hash: addKmsSignerTxHash,
|
86
|
+
});
|
87
|
+
}
|
88
|
+
catch (err) {
|
89
|
+
if (!err.message.includes(ErrAlreadySigner)) {
|
90
|
+
throw err;
|
91
|
+
}
|
92
|
+
console.log(`KMS signer ${kmsSigner.address} already added`);
|
93
|
+
}
|
94
|
+
return { addRelayerTxReceipt, addKmsSignerTxReceipt };
|
95
|
+
}
|
96
|
+
// Attempts to ensure the given Inco L1 has the FHE environment for the given chain/ACL registered.
|
97
|
+
// based extracting from logs.
|
98
|
+
export async function ensureFheEnvironmentRegistered({ l1, chain, }) {
|
99
|
+
console.log(`Ensuring FHE environment is registered on ${l1.grpcEndpoint} ...`);
|
100
|
+
const { aclAddress } = getFheEnvironment(chain.id);
|
101
|
+
const wallet = await createL1Wallet(l1.mnemonic);
|
102
|
+
const signingClient = await createL1Client({
|
103
|
+
cometRpcEndpoint: l1.cometRpcEndpoint,
|
104
|
+
grpcEndpoint: l1.grpcEndpoint,
|
105
|
+
wallet,
|
106
|
+
});
|
107
|
+
const transport = createGrpcTransport({ baseUrl: l1.grpcEndpoint });
|
108
|
+
const queryClient = createClient(Query, transport);
|
109
|
+
const [signingAccount] = await wallet.getAccounts();
|
110
|
+
const fheEnvArg = {
|
111
|
+
keysetId: aclAddress.slice(2),
|
112
|
+
hostChainId: `evm/${chain.id}`,
|
113
|
+
accessControl: undefined,
|
114
|
+
};
|
115
|
+
const NotFoundErrorMessage = 'collections: not found';
|
116
|
+
try {
|
117
|
+
const { fheEnv } = await queryClient.fheEnv(fheEnvArg);
|
118
|
+
console.log(`FHE environment already registered on ${chain.id} using ACL ${aclAddress} : ${JSON.stringify(fheEnv)} `);
|
119
|
+
}
|
120
|
+
catch (err) {
|
121
|
+
if (String(err).includes(NotFoundErrorMessage)) {
|
122
|
+
const tx = await signingClient.sendTx(signingAccount.address, '/inco.fhe.v1.MsgAddFheEnv', {
|
123
|
+
fheEnv: fheEnvArg,
|
124
|
+
authority: signingAccount.address,
|
125
|
+
});
|
126
|
+
console.log(tx);
|
127
|
+
return;
|
128
|
+
}
|
129
|
+
throw err;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
function getViemChain(chainId) {
|
133
|
+
const found = Object.values(chains).find((chain) => chain.id === chainId);
|
134
|
+
if (!found) {
|
135
|
+
throw new Error(`could not find chain with id ${chainId}`);
|
136
|
+
}
|
137
|
+
return found;
|
138
|
+
}
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmhldm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmhldm0vZmhldm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFHTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxJQUFJLEdBS0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPekQseURBQXlEO0FBQ3pELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxFQUN2QyxPQUFPLEVBQ1AsZUFBZSxFQUNmLEtBQUssR0FLTjtJQUNDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4QyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBNEI7UUFDakUsS0FBSztRQUNMLFNBQVM7S0FDVixDQUFDLENBQUM7SUFDSCxzR0FBc0c7SUFDdEcsOERBQThEO0lBQzlELE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDO1FBQ3RDLEtBQUs7UUFDTCxTQUFTO1FBQ1QsT0FBTztLQUNSLENBQUMsQ0FBQztJQUVILE9BQU8sRUFB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
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './fhe-environment.js';
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { Account, Address, Chain, Transport, WalletClient } from 'viem';
|
2
|
+
import { CryptoboxScheme } from '../encryption/encryption.js';
|
3
|
+
import type { Reencryptor, ReencryptorArgs } from '../reencryption/index.js';
|
4
|
+
import type { PubKeyEncodable } from '../reencryption/types.js';
|
5
|
+
export interface EphemeralCryptoBoxKeypair extends PubKeyEncodable {
|
6
|
+
scheme: CryptoboxScheme;
|
7
|
+
publicKey: Uint8Array;
|
8
|
+
privateKey: Uint8Array;
|
9
|
+
}
|
10
|
+
export interface ZamaReencryptorArgs extends ReencryptorArgs {
|
11
|
+
gatewayUrl: string;
|
12
|
+
unsafeSkipVerifyKMSSignatures?: boolean;
|
13
|
+
walletClient: WalletClient<Transport, Chain, Account>;
|
14
|
+
contractAddress: Address;
|
15
|
+
chainId: bigint;
|
16
|
+
kmsSigners: Address[];
|
17
|
+
userAddress: Address;
|
18
|
+
}
|
19
|
+
export declare function zamaReencryptor({ chainId, gatewayUrl, walletClient, unsafeSkipVerifyKMSSignatures, contractAddress, kmsSigners, userAddress, }: ZamaReencryptorArgs): Promise<Reencryptor<CryptoboxScheme>>;
|
20
|
+
export declare function generateCryptoBoxEphemeralKeyPair(): EphemeralCryptoBoxKeypair;
|
@@ -0,0 +1,123 @@
|
|
1
|
+
import { Schema } from 'effect';
|
2
|
+
import { cryptobox_get_pk, cryptobox_keygen, cryptobox_pk_to_u8vec, cryptobox_sk_to_u8vec, new_client, process_reencryption_resp_from_js, u8vec_to_cryptobox_pk, u8vec_to_cryptobox_sk, } from 'node-tkms';
|
3
|
+
import { getAddress, hexToBigInt } from 'viem';
|
4
|
+
import { bytesToBigInt, bytesToHex } from '../binary.js';
|
5
|
+
import { bigintToPlaintext, encryptionSchemes, } from '../encryption/encryption.js';
|
6
|
+
import { getHandleType } from '../handle.js';
|
7
|
+
import { createEIP712Payload } from '../reencryption/index.js';
|
8
|
+
import { parse } from '../schema.js';
|
9
|
+
// The domain constants that Zama uses for reencrypts.
|
10
|
+
const ZAMA_REENCRYPT_DOMAIN = {
|
11
|
+
name: 'Authorization token',
|
12
|
+
version: '1',
|
13
|
+
salt: undefined,
|
14
|
+
};
|
15
|
+
export async function zamaReencryptor({ chainId, gatewayUrl, walletClient, unsafeSkipVerifyKMSSignatures, contractAddress, kmsSigners, userAddress, }) {
|
16
|
+
const ephemeralKeypair = generateCryptoBoxEphemeralKeyPair();
|
17
|
+
// Sign the EIP712 attesting that the user has access to the private key
|
18
|
+
// corresponding to the ephemeral public key.
|
19
|
+
const eip712Payload = createEIP712Payload({
|
20
|
+
chainId,
|
21
|
+
primaryType: 'ReencryptionRequest',
|
22
|
+
primaryTypeFields: [{ name: 'publicKey', type: 'bytes' }],
|
23
|
+
message: {
|
24
|
+
publicKey: bytesToHex(ephemeralKeypair.encodePublicKey()),
|
25
|
+
},
|
26
|
+
domainName: ZAMA_REENCRYPT_DOMAIN.name,
|
27
|
+
domainVersion: ZAMA_REENCRYPT_DOMAIN.version,
|
28
|
+
});
|
29
|
+
// Using browser extensions, this step will prompt the user to sign the
|
30
|
+
// payload.
|
31
|
+
const eip712Signature = await walletClient.signTypedData(eip712Payload);
|
32
|
+
return async function reencrypt({ handle, }) {
|
33
|
+
const handleBigInt = hexToBigInt(handle);
|
34
|
+
const reencryptRequest = {
|
35
|
+
signature: eip712Signature.replace(/^(0x)/, ''),
|
36
|
+
client_address: getAddress(userAddress),
|
37
|
+
enc_key: bytesToHex(ephemeralKeypair.encodePublicKey()).replace(/^(0x)/, ''),
|
38
|
+
ciphertext_handle: handleBigInt.toString(16).padStart(64, '0'),
|
39
|
+
eip712_verifying_contract: getAddress(contractAddress),
|
40
|
+
};
|
41
|
+
const reencryptResponse = await makeReencryptRequest(reencryptRequest, gatewayUrl);
|
42
|
+
let pubKey;
|
43
|
+
let privKey;
|
44
|
+
try {
|
45
|
+
pubKey = u8vec_to_cryptobox_pk(ephemeralKeypair.publicKey);
|
46
|
+
privKey = u8vec_to_cryptobox_sk(ephemeralKeypair.privateKey);
|
47
|
+
}
|
48
|
+
catch (e) {
|
49
|
+
throw new Error(`Invalid public or private key: ${JSON.stringify(e)}`);
|
50
|
+
}
|
51
|
+
const client = new_client(kmsSigners, userAddress, 'default');
|
52
|
+
try {
|
53
|
+
const buffer = new ArrayBuffer(32);
|
54
|
+
const view = new DataView(buffer);
|
55
|
+
view.setUint32(28, Number(chainId), false);
|
56
|
+
const chainIdArrayBE = new Uint8Array(buffer);
|
57
|
+
// Duplicate reencryptRequest and replace ciphertext_handle with ciphertext_digest.
|
58
|
+
const { ciphertext_handle, ...p } = reencryptRequest;
|
59
|
+
// TODO (from Zama): check all ciphertext digests are all the same
|
60
|
+
const payloadForVerification = {
|
61
|
+
...p,
|
62
|
+
ciphertext_digest: reencryptResponse.response[0].ciphertext_digest,
|
63
|
+
};
|
64
|
+
const decrypted = process_reencryption_resp_from_js(client, payloadForVerification, {
|
65
|
+
name: eip712Payload.domain.name,
|
66
|
+
version: eip712Payload.domain.version,
|
67
|
+
chain_id: chainIdArrayBE,
|
68
|
+
verifying_contract: eip712Payload.domain.verifyingContract,
|
69
|
+
}, reencryptResponse.response, pubKey, privKey, !unsafeSkipVerifyKMSSignatures);
|
70
|
+
return bigintToPlaintext(encryptionSchemes.cryptobox, getHandleType(handle), bytesToBigInt(decrypted));
|
71
|
+
}
|
72
|
+
catch (e) {
|
73
|
+
console.error(e);
|
74
|
+
throw new Error(`An error occurred during decryption: ${e}`);
|
75
|
+
}
|
76
|
+
};
|
77
|
+
}
|
78
|
+
// Generate a new ephemeral keypair for reencryption.
|
79
|
+
export function generateCryptoBoxEphemeralKeyPair() {
|
80
|
+
const keypair = cryptobox_keygen();
|
81
|
+
const publicKey = cryptobox_pk_to_u8vec(cryptobox_get_pk(keypair));
|
82
|
+
return {
|
83
|
+
scheme: encryptionSchemes.cryptobox,
|
84
|
+
publicKey,
|
85
|
+
privateKey: cryptobox_sk_to_u8vec(keypair),
|
86
|
+
encodePublicKey() {
|
87
|
+
return publicKey;
|
88
|
+
},
|
89
|
+
};
|
90
|
+
}
|
91
|
+
// This is the response type of the reencrypt endpoint, defined on the
|
92
|
+
// server-side in Zama's gateway. The response field is a vector of this struct
|
93
|
+
// in Rust:
|
94
|
+
// https://github.com/zama-ai/kms-core/blob/a3b824b389e87429d04537696e28dee902a3b2d9/blockchain/events/src/kms.rs#L985-L1003
|
95
|
+
const ZamaGatewayReencryptResponse = Schema.Struct({
|
96
|
+
status: Schema.Union(Schema.Literal('success'), Schema.Literal('failure')),
|
97
|
+
response: Schema.Array(Schema.Struct({
|
98
|
+
ciphertext_digest: Schema.optional(Schema.String),
|
99
|
+
payload: Schema.String,
|
100
|
+
signature: Schema.String,
|
101
|
+
})),
|
102
|
+
});
|
103
|
+
// Make a HTTP request to the reencrypt endpoint of the gateway.
|
104
|
+
async function makeReencryptRequest(request, gatewayUrl) {
|
105
|
+
const fetchOptions = {
|
106
|
+
method: 'POST',
|
107
|
+
headers: {
|
108
|
+
'Content-Type': 'application/json',
|
109
|
+
},
|
110
|
+
body: JSON.stringify(request),
|
111
|
+
};
|
112
|
+
const response = await fetch(`${gatewayUrl}/reencrypt`, fetchOptions);
|
113
|
+
if (!response.ok) {
|
114
|
+
throw new Error(`Reencrypt failed: gateway respond with HTTP code ${response.status}: ${JSON.stringify(await response.json())}`);
|
115
|
+
}
|
116
|
+
const json = await response.json();
|
117
|
+
const reencryptResponse = parse(ZamaGatewayReencryptResponse, json);
|
118
|
+
if (reencryptResponse.status === 'failure') {
|
119
|
+
throw new Error('Reencrypt failed: gateway responded with failure');
|
120
|
+
}
|
121
|
+
return reencryptResponse;
|
122
|
+
}
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVlbmNyeXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZoZXZtL3JlZW5jcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsVUFBVSxFQUNWLGlDQUFpQyxFQUNqQyxxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBMkIsVUFBVSxFQUFFLFdBQVcsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixpQkFBaUIsR0FHbEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFpQ3JDLHNEQUFzRDtBQUN0RCxNQUFNLHFCQUFxQixHQUFHO0lBQzVCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsT0FBTyxFQUFFLEdBQUc7SUFDWixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDO0FBRUYsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUMsRUFDcEMsT0FBTyxFQUNQLFVBQVUsRUFDVixZQUFZLEVBQ1osNkJBQTZCLEVBQzdCLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxHQUNTO0lBQ3BCLE1BQU0sZ0JBQWdCLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztJQUU3RCx3RUFBd0U7SUFDeEUsNkNBQTZDO0lBQzdDLE1BQU0sYUFBYSxHQUFHLG1CQUFt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
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { RustType } from 'bincode-ts';
|
2
|
+
import { Schema } from 'effect';
|
3
|
+
import { CompactPkePublicParams, TfheCompactPublicKey } from 'node-tfhe';
|
4
|
+
import { Decryptor, Encryptor, Plaintext, TfheScheme } from '../encryption/encryption.js';
|
5
|
+
export declare const SERIALIZED_SIZE_LIMIT_CIPHERTEXT: bigint;
|
6
|
+
export declare const SERIALIZED_SIZE_LIMIT_PK: bigint;
|
7
|
+
export declare const SERIALIZED_SIZE_LIMIT_CRS: bigint;
|
8
|
+
export type TfheEncryptorArgs = {
|
9
|
+
scheme: TfheScheme;
|
10
|
+
publicKey: Buffer;
|
11
|
+
crs2048: Buffer;
|
12
|
+
};
|
13
|
+
export type TfheDecryptorArgs = {
|
14
|
+
scheme: TfheScheme;
|
15
|
+
cks: Buffer;
|
16
|
+
};
|
17
|
+
export type PublicParams<T = CompactPkePublicParams> = {
|
18
|
+
[key in EncryptionTypes]?: {
|
19
|
+
publicParams: T;
|
20
|
+
};
|
21
|
+
};
|
22
|
+
export declare const ENCRYPTION_TYPES: {
|
23
|
+
1: number;
|
24
|
+
4: number;
|
25
|
+
8: number;
|
26
|
+
16: number;
|
27
|
+
32: number;
|
28
|
+
64: number;
|
29
|
+
128: number;
|
30
|
+
160: number;
|
31
|
+
256: number;
|
32
|
+
512: number;
|
33
|
+
1024: number;
|
34
|
+
2048: number;
|
35
|
+
};
|
36
|
+
export type EncryptionTypes = keyof typeof ENCRYPTION_TYPES;
|
37
|
+
export type ZKInput = {
|
38
|
+
addBool: (value: boolean) => ZKInput;
|
39
|
+
add4: (value: number | bigint) => ZKInput;
|
40
|
+
add8: (value: number | bigint) => ZKInput;
|
41
|
+
add16: (value: number | bigint) => ZKInput;
|
42
|
+
add32: (value: number | bigint) => ZKInput;
|
43
|
+
add64: (value: number | bigint) => ZKInput;
|
44
|
+
add128: (value: number | bigint) => ZKInput;
|
45
|
+
add256: (value: number | bigint) => ZKInput;
|
46
|
+
addBytes64: (value: Uint8Array) => ZKInput;
|
47
|
+
addBytes128: (value: Uint8Array) => ZKInput;
|
48
|
+
addBytes256: (value: Uint8Array) => ZKInput;
|
49
|
+
addAddress: (value: string) => ZKInput;
|
50
|
+
getBits: () => number[];
|
51
|
+
encrypt: () => Promise<{
|
52
|
+
prehandles: Uint8Array[];
|
53
|
+
ciphertext: Uint8Array;
|
54
|
+
}>;
|
55
|
+
};
|
56
|
+
export declare function getTfheEncryptor(args: TfheEncryptorArgs): Encryptor<TfheScheme>;
|
57
|
+
export declare function createEncryptedInput(aclContractAddress: string, chainId: bigint, tfheCompactPublicKey: TfheCompactPublicKey, publicParams: PublicParams): (userAddress: string, contractAddress: string) => ZKInput;
|
58
|
+
export declare function addPlaintextInput(input: ZKInput, plaintext: Plaintext): ZKInput;
|
59
|
+
export declare function getTfheDecryptor({ cks }: TfheDecryptorArgs): Decryptor<TfheScheme>;
|
60
|
+
export declare const SerializationHeader: RustType.Type<{
|
61
|
+
[x: string]: {};
|
62
|
+
} & {
|
63
|
+
[x: string]: {};
|
64
|
+
}>;
|
65
|
+
export declare const ProvenCompactCiphertextListTypeName = "high_level_api::ProvenCompactCiphertextList";
|
66
|
+
export declare const FheUintTypeName = "high_level_api::FheUint";
|
67
|
+
export declare const TfheSerialisationTypeName: Schema.Literal<["high_level_api::ProvenCompactCiphertextList", "high_level_api::FheUint"]>;
|
68
|
+
export type TfheSerialisationTypeName = typeof TfheSerialisationTypeName.Type;
|
69
|
+
export declare const TfheSerializationHeader: Schema.Struct<{
|
70
|
+
header_version: typeof Schema.String;
|
71
|
+
name: Schema.Union<[Schema.Literal<["high_level_api::ProvenCompactCiphertextList", "high_level_api::FheUint"]>, typeof Schema.String]>;
|
72
|
+
}>;
|
73
|
+
export type TfheSerializationHeader = typeof TfheSerializationHeader.Type;
|
74
|
+
export declare function decodeTfheSerializationHeader(buffer: Uint8Array): TfheSerializationHeader;
|