@inco/js 0.2.15 → 0.2.17
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/attesteddecrypt/attested-decrypt.d.ts +34 -0
- package/dist/cjs/attesteddecrypt/attested-decrypt.js +91 -0
- package/dist/cjs/attesteddecrypt/index.d.ts +2 -0
- package/dist/cjs/attesteddecrypt/index.js +19 -0
- package/dist/cjs/attesteddecrypt/types.d.ts +18 -0
- package/dist/cjs/attesteddecrypt/types.js +16 -0
- package/dist/cjs/binary.js +82 -0
- package/dist/{chain.js → cjs/chain.js} +1 -1
- 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/{fhevm → 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/{encryption → 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/index.js +1 -1
- package/dist/cjs/generated/abis/lightning.js +1606 -0
- package/dist/{generated → cjs/generated}/es/cosmos/ics23/v1/proofs_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/cosmos/msg/v1/msg_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/cosmos_proto/cosmos_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/google/api/annotations_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/google/api/http_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/events_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/genesis_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/query_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/tx_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/fhe/v1/types_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/kms_service_pb.d.ts +54 -41
- package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/kms_service_pb.js +6 -11
- package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/types_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/genesis_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/query_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/tx_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/inco/preflight/v1/types_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/kms/base_pb.js +1 -1
- package/dist/{generated → cjs/generated}/es/sf/ethereum/type/v2/type_pb.js +1 -1
- package/dist/{generated → cjs/generated}/fhe-environments.js +1 -1
- package/dist/{generated → cjs/generated}/lightning.d.ts +21 -0
- package/dist/{generated → cjs/generated}/lightning.js +23 -1
- package/dist/cjs/generated/local-node.d.ts +23 -0
- package/dist/cjs/generated/local-node.js +27 -0
- package/dist/{generated → cjs/generated}/ts/amino/amino.js +1 -1
- package/dist/{generated → cjs/generated}/ts/cometbft/abci/v1/types.js +1 -1
- 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 +1 -1
- package/dist/cjs/generated/ts/cosmos_proto/cosmos.js +216 -0
- package/dist/{generated → cjs/generated}/ts/gogoproto/gogo.js +1 -1
- package/dist/{generated → cjs/generated}/ts/google/api/annotations.js +1 -1
- package/dist/cjs/generated/ts/google/api/http.js +356 -0
- package/dist/{generated → cjs/generated}/ts/google/protobuf/descriptor.js +1 -1
- 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.js +1 -1
- package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/tx.js +1 -1
- 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/cjs/generated/ts/inco/originchain/v1/query.js +280 -0
- 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/cjs/generated/ts/inco/preflight/v1/query.js +259 -0
- 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/cjs/kms/client.d.ts +8 -0
- package/dist/cjs/kms/client.js +41 -0
- 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-decrypt.d.ts +3 -0
- 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/cjs/lite/index.js +23 -0
- package/dist/{lite → cjs/lite}/lightning.d.ts +13 -6
- package/dist/cjs/lite/lightning.js +204 -0
- package/dist/{lite → cjs/lite}/reencrypt.d.ts +7 -7
- 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.js +1 -1
- package/dist/{reencryption → cjs/reencryption}/eip712.js +5 -5
- 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 -10
- package/dist/{reencryption → cjs/reencryption}/types.js +1 -1
- package/dist/cjs/retry.d.ts +15 -0
- package/dist/cjs/retry.js +28 -0
- package/dist/{schema.js → cjs/schema.js} +1 -1
- package/dist/{viem.d.ts → cjs/viem.d.ts} +1 -1
- package/dist/cjs/viem.js +12 -0
- package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +34 -0
- package/dist/esm/attesteddecrypt/attested-decrypt.js +88 -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 +18 -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 +22 -0
- package/dist/esm/chain.js +24 -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/index.d.ts +2 -0
- package/dist/esm/generated/abis/index.js +3 -0
- package/dist/esm/generated/abis/lightning.d.ts +2226 -0
- package/dist/{generated → esm/generated}/abis/lightning.js +2 -5
- package/dist/esm/generated/es/cosmos/ics23/v1/proofs_pb.d.ts +593 -0
- package/dist/esm/generated/es/cosmos/ics23/v1/proofs_pb.js +198 -0
- 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 +333 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +58 -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/es/kms/base_pb.d.ts +765 -0
- package/dist/esm/generated/es/kms/base_pb.js +238 -0
- package/dist/esm/generated/es/sf/ethereum/type/v2/type_pb.d.ts +1736 -0
- package/dist/esm/generated/es/sf/ethereum/type/v2/type_pb.js +571 -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 +211 -0
- package/dist/esm/generated/lightning.js +223 -0
- package/dist/esm/generated/local-node.d.ts +23 -0
- package/dist/esm/generated/local-node.js +24 -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-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 +124 -0
- package/dist/esm/lite/lightning.js +200 -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 +19 -0
- package/dist/esm/local/local-node.js +24 -0
- package/dist/esm/reencryption/eip712.d.ts +29 -0
- package/dist/esm/reencryption/eip712.js +81 -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 +427 -0
- package/dist/esm/viem.js +8 -0
- package/dist/types/attesteddecrypt/attested-decrypt.d.ts +34 -0
- package/dist/types/attesteddecrypt/index.d.ts +2 -0
- package/dist/types/attesteddecrypt/types.d.ts +18 -0
- package/dist/types/binary.d.ts +21 -0
- package/dist/types/chain.d.ts +22 -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/index.d.ts +2 -0
- package/dist/types/generated/abis/lightning.d.ts +2226 -0
- package/dist/types/generated/es/cosmos/ics23/v1/proofs_pb.d.ts +593 -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 +333 -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/es/kms/base_pb.d.ts +765 -0
- package/dist/types/generated/es/sf/ethereum/type/v2/type_pb.d.ts +1736 -0
- package/dist/types/generated/fhe-environments.d.ts +14 -0
- package/dist/types/generated/lightning.d.ts +211 -0
- package/dist/types/generated/local-node.d.ts +23 -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-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 +124 -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 +19 -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 +427 -0
- package/package.json +64 -15
- package/dist/binary.js +0 -82
- 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/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/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/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 -183
- package/dist/lite/reencrypt.js +0 -161
- package/dist/local/index.d.ts +0 -1
- package/dist/reencryption/index.d.ts +0 -2
- package/dist/reencryption/index.js +0 -19
- package/dist/viem.js +0 -12
- /package/dist/{binary.d.ts → cjs/binary.d.ts} +0 -0
- /package/dist/{chain.d.ts → cjs/chain.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}/abis/index.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/abis/lightning.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/cosmos/ics23/v1/proofs_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/cosmos/msg/v1/msg_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/cosmos_proto/cosmos_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/google/api/annotations_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/google/api/http_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/fhe/v1/events_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/fhe/v1/genesis_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/fhe/v1/query_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/fhe/v1/tx_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/fhe/v1/types_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/types_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/preflight/v1/genesis_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/preflight/v1/query_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/preflight/v1/tx_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/inco/preflight/v1/types_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/kms/base_pb.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/es/sf/ethereum/type/v2/type_pb.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/query.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/tx.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/query.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/tx.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/query.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/tx.d.ts +0 -0
- /package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/types.d.ts +0 -0
- /package/dist/{local → cjs/local}/local-node.d.ts +0 -0
- /package/dist/{reencryption → cjs/reencryption}/eip712.d.ts +0 -0
- /package/dist/{schema.d.ts → cjs/schema.d.ts} +0 -0
package/dist/fhevm/tfhe.js
DELETED
@@ -1,336 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.TfheSerializationHeader = exports.TfheSerialisationTypeName = exports.FheUintTypeName = exports.ProvenCompactCiphertextListTypeName = exports.SerializationHeader = exports.ENCRYPTION_TYPES = exports.SERIALIZED_SIZE_LIMIT_CRS = exports.SERIALIZED_SIZE_LIMIT_PK = exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT = void 0;
|
4
|
-
exports.getTfheEncryptor = getTfheEncryptor;
|
5
|
-
exports.createEncryptedInput = createEncryptedInput;
|
6
|
-
exports.addPlaintextInput = addPlaintextInput;
|
7
|
-
exports.getTfheDecryptor = getTfheDecryptor;
|
8
|
-
exports.decodeTfheSerializationHeader = decodeTfheSerializationHeader;
|
9
|
-
const bincode_ts_1 = require("bincode-ts");
|
10
|
-
const effect_1 = require("effect");
|
11
|
-
const node_tfhe_1 = require("node-tfhe");
|
12
|
-
const viem_1 = require("viem");
|
13
|
-
const binary_1 = require("../binary");
|
14
|
-
const encryption_1 = require("../encryption/encryption");
|
15
|
-
const handle_1 = require("../handle");
|
16
|
-
const schema_1 = require("../schema");
|
17
|
-
const types_1 = require("./types");
|
18
|
-
// This code pulled and modifier from fhevmjs which currently is a relatively poor dependency to extend since it does
|
19
|
-
// not expose types correctly and does not export various modules
|
20
|
-
// Handed down on a stone tablet from: https://github.com/zama-ai/fhevm-backend/blob/5a70c19a90671cfa4901413db9e162a65c4cf17a/fhevm-engine/fhevm-engine-common/src/utils.rs#L6-L7
|
21
|
-
// We use fhevm-backend in KMS and compute services
|
22
|
-
exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT = BigInt(1024 * 1024 * 512);
|
23
|
-
exports.SERIALIZED_SIZE_LIMIT_PK = BigInt(1024 * 1024 * 512);
|
24
|
-
exports.SERIALIZED_SIZE_LIMIT_CRS = BigInt(1024 * 1024 * 512);
|
25
|
-
exports.ENCRYPTION_TYPES = {
|
26
|
-
1: 0, // ebool takes 2 encrypted bits
|
27
|
-
4: 1,
|
28
|
-
8: 2,
|
29
|
-
16: 3,
|
30
|
-
32: 4,
|
31
|
-
64: 5,
|
32
|
-
128: 6,
|
33
|
-
160: 7,
|
34
|
-
256: 8,
|
35
|
-
512: 9,
|
36
|
-
1024: 10,
|
37
|
-
2048: 11,
|
38
|
-
};
|
39
|
-
function getTfheEncryptor(args) {
|
40
|
-
const publicKey = node_tfhe_1.TfheCompactPublicKey.safe_deserialize(args.publicKey, exports.SERIALIZED_SIZE_LIMIT_PK);
|
41
|
-
const publicParams = node_tfhe_1.CompactPkePublicParams.safe_deserialize(args.crs2048, exports.SERIALIZED_SIZE_LIMIT_CRS);
|
42
|
-
return async ({ context, plaintext, }) => {
|
43
|
-
if (plaintext.scheme !== encryption_1.encryptionSchemes.tfhe) {
|
44
|
-
throw new Error(`Plaintext with scheme ${(0, encryption_1.getEncryptionSchemeName)(plaintext.scheme)} cannot be encrypted with TFHE`);
|
45
|
-
}
|
46
|
-
const { aclAddress, userAddress, contractAddress, hostChainId } = context;
|
47
|
-
const input = createEncryptedInput(aclAddress, hostChainId, publicKey, { 2048: { publicParams } })(userAddress, contractAddress);
|
48
|
-
const encInput = await addPlaintextInput(input, plaintext).encrypt();
|
49
|
-
// FIXME: support multi-valued ciphertext properly
|
50
|
-
const prehandle = encInput.prehandles[0];
|
51
|
-
const handle = (0, handle_1.computeHandle)({ prehandle, context });
|
52
|
-
return {
|
53
|
-
context,
|
54
|
-
// The '0x' prefix is required for bytes32 for correct json parsing in foundry, but avoided in ciphertext to avoid bytes-based encoding
|
55
|
-
// we may need
|
56
|
-
prehandle: (0, binary_1.asBytes32)(prehandle),
|
57
|
-
handle: (0, binary_1.asBytes32)(handle),
|
58
|
-
ciphertext: {
|
59
|
-
scheme: plaintext.scheme,
|
60
|
-
type: plaintext.type,
|
61
|
-
value: (0, binary_1.bytesToHex)(encInput.ciphertext),
|
62
|
-
},
|
63
|
-
};
|
64
|
-
};
|
65
|
-
}
|
66
|
-
function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey, publicParams) {
|
67
|
-
return (userAddress, contractAddress) => {
|
68
|
-
if (!(0, viem_1.isAddress)(contractAddress)) {
|
69
|
-
throw new Error('Contract address is not a valid address.');
|
70
|
-
}
|
71
|
-
if (!(0, viem_1.isAddress)(userAddress)) {
|
72
|
-
throw new Error('User address is not a valid address.');
|
73
|
-
}
|
74
|
-
const bits = [];
|
75
|
-
const builder = node_tfhe_1.CompactCiphertextList.builder(tfheCompactPublicKey);
|
76
|
-
const checkLimit = (added) => {
|
77
|
-
if (bits.reduce((acc, val) => acc + Math.max(2, val), 0) + added > 2048) {
|
78
|
-
throw Error('Packing more than 2048 bits in a single input ciphertext is unsupported');
|
79
|
-
}
|
80
|
-
if (bits.length + 1 > 256)
|
81
|
-
throw Error('Packing more than 256 variables in a single input ciphertext is unsupported');
|
82
|
-
};
|
83
|
-
function checkEncryptedValue(value, bits) {
|
84
|
-
if (value == null)
|
85
|
-
throw new Error('Missing value');
|
86
|
-
let limit;
|
87
|
-
if (bits >= 8) {
|
88
|
-
limit = BigInt(`0x${new Array(bits / 8).fill(null).reduce((v) => `${v}ff`, '')}`);
|
89
|
-
}
|
90
|
-
else {
|
91
|
-
limit = BigInt(2 ** bits - 1);
|
92
|
-
}
|
93
|
-
if (value > limit) {
|
94
|
-
throw new Error(`The value exceeds the limit for ${bits}bits integer (${limit.toString()}).`);
|
95
|
-
}
|
96
|
-
}
|
97
|
-
return {
|
98
|
-
addBool(value) {
|
99
|
-
if (typeof value !== 'bigint' && Number(value) > 1)
|
100
|
-
throw new Error('The value must be 1 or 0.');
|
101
|
-
checkEncryptedValue(Number(value), 1);
|
102
|
-
checkLimit(2);
|
103
|
-
builder.push_boolean(!!value);
|
104
|
-
bits.push(1); // ebool takes 2 encrypted bits
|
105
|
-
return this;
|
106
|
-
},
|
107
|
-
add4(value) {
|
108
|
-
checkEncryptedValue(value, 4);
|
109
|
-
checkLimit(4);
|
110
|
-
builder.push_u4(Number(value));
|
111
|
-
bits.push(4);
|
112
|
-
return this;
|
113
|
-
},
|
114
|
-
add8(value) {
|
115
|
-
checkEncryptedValue(value, 8);
|
116
|
-
checkLimit(8);
|
117
|
-
builder.push_u8(Number(value));
|
118
|
-
bits.push(8);
|
119
|
-
return this;
|
120
|
-
},
|
121
|
-
add16(value) {
|
122
|
-
checkEncryptedValue(value, 16);
|
123
|
-
checkLimit(16);
|
124
|
-
builder.push_u16(Number(value));
|
125
|
-
bits.push(16);
|
126
|
-
return this;
|
127
|
-
},
|
128
|
-
add32(value) {
|
129
|
-
checkEncryptedValue(value, 32);
|
130
|
-
checkLimit(32);
|
131
|
-
builder.push_u32(Number(value));
|
132
|
-
bits.push(32);
|
133
|
-
return this;
|
134
|
-
},
|
135
|
-
add64(value) {
|
136
|
-
checkEncryptedValue(value, 64);
|
137
|
-
checkLimit(64);
|
138
|
-
builder.push_u64(BigInt(value));
|
139
|
-
bits.push(64);
|
140
|
-
return this;
|
141
|
-
},
|
142
|
-
add128(value) {
|
143
|
-
checkEncryptedValue(value, 128);
|
144
|
-
checkLimit(128);
|
145
|
-
builder.push_u128(BigInt(value));
|
146
|
-
bits.push(128);
|
147
|
-
return this;
|
148
|
-
},
|
149
|
-
addAddress(value) {
|
150
|
-
if (!(0, viem_1.isAddress)(value)) {
|
151
|
-
throw new Error('The value must be a valid address.');
|
152
|
-
}
|
153
|
-
checkLimit(160);
|
154
|
-
builder.push_u160(BigInt(value));
|
155
|
-
bits.push(160);
|
156
|
-
return this;
|
157
|
-
},
|
158
|
-
add256(value) {
|
159
|
-
checkEncryptedValue(value, 256);
|
160
|
-
checkLimit(256);
|
161
|
-
builder.push_u256(BigInt(value));
|
162
|
-
bits.push(256);
|
163
|
-
return this;
|
164
|
-
},
|
165
|
-
addBytes64(value) {
|
166
|
-
if (value.length !== 64)
|
167
|
-
throw Error('Incorrect length of input Uint8Array, should be 64 for an ebytes64');
|
168
|
-
const bigIntValue = (0, binary_1.bytesToBigInt)(value);
|
169
|
-
checkEncryptedValue(bigIntValue, 512);
|
170
|
-
checkLimit(512);
|
171
|
-
builder.push_u512(bigIntValue);
|
172
|
-
bits.push(512);
|
173
|
-
return this;
|
174
|
-
},
|
175
|
-
addBytes128(value) {
|
176
|
-
if (value.length !== 128)
|
177
|
-
throw Error('Incorrect length of input Uint8Array, should be 128 for an ebytes128');
|
178
|
-
const bigIntValue = (0, binary_1.bytesToBigInt)(value);
|
179
|
-
checkEncryptedValue(bigIntValue, 1024);
|
180
|
-
checkLimit(1024);
|
181
|
-
builder.push_u1024(bigIntValue);
|
182
|
-
bits.push(1024);
|
183
|
-
return this;
|
184
|
-
},
|
185
|
-
addBytes256(value) {
|
186
|
-
if (value.length !== 256)
|
187
|
-
throw Error('Incorrect length of input Uint8Array, should be 256 for an ebytes256');
|
188
|
-
const bigIntValue = (0, binary_1.bytesToBigInt)(value);
|
189
|
-
checkEncryptedValue(bigIntValue, 2048);
|
190
|
-
checkLimit(2048);
|
191
|
-
builder.push_u2048(bigIntValue);
|
192
|
-
bits.push(2048);
|
193
|
-
return this;
|
194
|
-
},
|
195
|
-
getBits() {
|
196
|
-
return bits;
|
197
|
-
},
|
198
|
-
async encrypt() {
|
199
|
-
const getKeys = (obj) => Object.keys(obj);
|
200
|
-
const totalBits = bits.reduce((total, v) => total + v, 0);
|
201
|
-
const now = Date.now();
|
202
|
-
// const ppTypes = getKeys(publicParams);
|
203
|
-
const ppTypes = getKeys(publicParams);
|
204
|
-
const closestPP = ppTypes.find((k) => Number(k) >= totalBits);
|
205
|
-
if (!closestPP) {
|
206
|
-
throw new Error(`Too many bits in provided values. Maximum is ${ppTypes[ppTypes.length - 1]}.`);
|
207
|
-
}
|
208
|
-
const pp = publicParams[closestPP].publicParams;
|
209
|
-
const buffContract = (0, binary_1.bytesFromHexString)(contractAddress);
|
210
|
-
const buffUser = (0, binary_1.bytesFromHexString)(userAddress);
|
211
|
-
const buffAcl = (0, binary_1.bytesFromHexString)(aclContractAddress);
|
212
|
-
const buffChainId = (0, binary_1.bytesFromHexString)(chainId.toString(16));
|
213
|
-
const auxData = new Uint8Array(buffContract.length + buffUser.length + buffAcl.length + 32);
|
214
|
-
auxData.set(buffContract, 0);
|
215
|
-
auxData.set(buffUser, 20);
|
216
|
-
auxData.set(buffAcl, 40);
|
217
|
-
auxData.set(buffChainId, auxData.length - buffChainId.length);
|
218
|
-
const encrypted = builder.build_with_proof_packed(pp, auxData, node_tfhe_1.ZkComputeLoad.Proof);
|
219
|
-
const ciphertext = Buffer.from(encrypted.safe_serialize(exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT));
|
220
|
-
// These prehandles have the expected layout expected by verifyCiphertext
|
221
|
-
// including type and version metadata
|
222
|
-
const prehandles = [];
|
223
|
-
for (let i = 0; i < encrypted.len(); i++) {
|
224
|
-
const handleType = (0, types_1.getHandleTypeFromFheType)(encrypted.get_kind_of(i));
|
225
|
-
prehandles[i] = (0, handle_1.computePrehandle)({
|
226
|
-
ciphertext,
|
227
|
-
handleType: handleType,
|
228
|
-
handleVersion: handle_1.HANDLE_VERSION,
|
229
|
-
indexHandle: i,
|
230
|
-
});
|
231
|
-
}
|
232
|
-
return {
|
233
|
-
prehandles,
|
234
|
-
ciphertext,
|
235
|
-
};
|
236
|
-
},
|
237
|
-
};
|
238
|
-
};
|
239
|
-
}
|
240
|
-
function addPlaintextInput(input, plaintext) {
|
241
|
-
switch (plaintext.type) {
|
242
|
-
case handle_1.handleTypes.ebool:
|
243
|
-
return input.addBool(plaintext.value);
|
244
|
-
case handle_1.handleTypes.euint64:
|
245
|
-
return input.add64(plaintext.value);
|
246
|
-
case handle_1.handleTypes.euint160:
|
247
|
-
let addrStr = plaintext.value.toString(16);
|
248
|
-
return input.addAddress(addrStr);
|
249
|
-
case handle_1.handleTypes.euint256:
|
250
|
-
return input.add256(plaintext.value);
|
251
|
-
}
|
252
|
-
}
|
253
|
-
// Decryption...
|
254
|
-
function getTfheDecryptor({ cks }) {
|
255
|
-
const clientKey = node_tfhe_1.TfheClientKey.safe_deserialize(cks, exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
|
256
|
-
const serverKey = node_tfhe_1.TfheServerKey.new(clientKey);
|
257
|
-
(0, node_tfhe_1.set_server_key)(serverKey);
|
258
|
-
return async ({ scheme, type, value, }) => {
|
259
|
-
if (scheme !== encryption_1.encryptionSchemes.tfhe) {
|
260
|
-
throw new Error(`Ciphertext with scheme ${(0, encryption_1.getEncryptionSchemeName)(scheme)} cannot be decrypted with TFHE`);
|
261
|
-
}
|
262
|
-
const handleType = type;
|
263
|
-
const ctBuf = (0, binary_1.bytesFromHexString)(value);
|
264
|
-
const header = decodeTfheSerializationHeader(ctBuf);
|
265
|
-
// For now just support a singleton ciphertext list
|
266
|
-
if (header.name === exports.ProvenCompactCiphertextListTypeName) {
|
267
|
-
const encrypted = node_tfhe_1.ProvenCompactCiphertextList.safe_deserialize(ctBuf, exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
|
268
|
-
const decrypted = encrypted.expand_without_verification();
|
269
|
-
const kind = decrypted.get_kind_of(0);
|
270
|
-
return fromCiphertextList(decrypted, clientKey);
|
271
|
-
}
|
272
|
-
const decryptor = decryptionClasses[handleType];
|
273
|
-
if (!decryptor) {
|
274
|
-
throw new Error(`Unsupported handle type: ${handleType}`);
|
275
|
-
}
|
276
|
-
const encrypted = decryptor.safe_deserialize(ctBuf, exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
|
277
|
-
const decrypted = encrypted.decrypt(clientKey);
|
278
|
-
// First assign to unnarrowed plaintext to avoid concealing type
|
279
|
-
const plaintext = { scheme: encryption_1.encryptionSchemes.tfhe, type: handleType, value: decrypted };
|
280
|
-
return plaintext;
|
281
|
-
};
|
282
|
-
}
|
283
|
-
function fromCiphertextList(decrypted, clientKey) {
|
284
|
-
const kind = decrypted.get_kind_of(0);
|
285
|
-
const scheme = encryption_1.encryptionSchemes.tfhe;
|
286
|
-
switch (kind) {
|
287
|
-
case node_tfhe_1.FheTypes.Bool:
|
288
|
-
return { scheme, type: handle_1.handleTypes.ebool, value: decrypted.get_bool(0).decrypt(clientKey) };
|
289
|
-
case node_tfhe_1.FheTypes.Uint64:
|
290
|
-
return { scheme, type: handle_1.handleTypes.euint64, value: decrypted.get_uint64(0).decrypt(clientKey) };
|
291
|
-
case node_tfhe_1.FheTypes.Uint256:
|
292
|
-
return { scheme, type: handle_1.handleTypes.euint256, value: decrypted.get_uint256(0).decrypt(clientKey) };
|
293
|
-
}
|
294
|
-
throw new Error(`Unsupported kind: ${kind}`);
|
295
|
-
}
|
296
|
-
const decryptionClasses = {
|
297
|
-
[handle_1.handleTypes.ebool]: node_tfhe_1.FheBool,
|
298
|
-
[handle_1.handleTypes.euint64]: node_tfhe_1.FheUint64,
|
299
|
-
[handle_1.handleTypes.euint160]: node_tfhe_1.FheUint160,
|
300
|
-
[handle_1.handleTypes.euint256]: node_tfhe_1.FheUint256,
|
301
|
-
};
|
302
|
-
var VersioningMode;
|
303
|
-
(function (VersioningMode) {
|
304
|
-
VersioningMode[VersioningMode["Versioned"] = 0] = "Versioned";
|
305
|
-
VersioningMode[VersioningMode["Unversioned"] = 1] = "Unversioned";
|
306
|
-
})(VersioningMode || (VersioningMode = {}));
|
307
|
-
// Representation of (https://github.com/zama-ai/tfhe-rs/blob/8ee1bdd9a935e9f00c72238f2ff5220ccf77c850/tfhe/src/safe_serialization.rs#L75-L79):
|
308
|
-
// struct SerializationHeader {
|
309
|
-
// header_version: Cow<'static, str>,
|
310
|
-
// versioning_mode: SerializationVersioningMode,
|
311
|
-
// name: Cow<'static, str>,
|
312
|
-
// }
|
313
|
-
exports.SerializationHeader = bincode_ts_1.RustType.Struct([
|
314
|
-
['header_version', bincode_ts_1.RustType.Str],
|
315
|
-
[
|
316
|
-
'versioning_mode',
|
317
|
-
bincode_ts_1.RustType.Enum({ [VersioningMode.Versioned]: bincode_ts_1.RustType.Str, [VersioningMode.Unversioned]: bincode_ts_1.RustType.Str }),
|
318
|
-
],
|
319
|
-
['name', bincode_ts_1.RustType.Str],
|
320
|
-
]);
|
321
|
-
// Output schema (note we currently strip the versioning_mode field because we do not care about it, only the name
|
322
|
-
exports.ProvenCompactCiphertextListTypeName = 'high_level_api::ProvenCompactCiphertextList';
|
323
|
-
exports.FheUintTypeName = 'high_level_api::FheUint';
|
324
|
-
exports.TfheSerialisationTypeName = effect_1.Schema.Literal(exports.ProvenCompactCiphertextListTypeName, exports.FheUintTypeName);
|
325
|
-
exports.TfheSerializationHeader = effect_1.Schema.Struct({
|
326
|
-
header_version: effect_1.Schema.String,
|
327
|
-
// For now, we will accept any string to avoid having to define an exhaustive union above
|
328
|
-
name: effect_1.Schema.Union(exports.TfheSerialisationTypeName, effect_1.Schema.String),
|
329
|
-
});
|
330
|
-
// Decode a serialisation header from a ciphertext or other bincode-serialised data from tfhe-rs
|
331
|
-
function decodeTfheSerializationHeader(buffer) {
|
332
|
-
const decoder = new bincode_ts_1.Decoder();
|
333
|
-
const decoded = decoder.load(Uint8Array.from(buffer).buffer).decodeAs(exports.SerializationHeader);
|
334
|
-
return (0, schema_1.parse)(exports.TfheSerializationHeader, decoded);
|
335
|
-
}
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maGV2bS90ZmhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWtHQSw0Q0FvQ0M7QUFFRCxvREFpTEM7QUFFRCw4Q0FZQztBQUlELDRDQWlDQztBQTJERCxzRUFJQztBQTNhRCwyQ0FBK0M7QUFDL0MsbUNBQWdDO0FBQ2hDLHlDQWVtQjtBQUNuQiwrQkFBaUM7QUFDakMsc0NBQXFGO0FBQ3JGLHlEQVlrQztBQUNsQyxzQ0FBeUY7QUFDekYsc0NBQWtDO0FBQ2xDLG1DQUFtRDtBQUVuRCxxSEFBcUg7QUFDckgsbUVBQW1FO0FBRW5FLGlMQUFpTDtBQUNqTCxtREFBbUQ7QUFDdEMsUUFBQSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUM3RCxRQUFBLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3JELFFBQUEseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFrQnRELFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsQ0FBQyxFQUFFLENBQUMsRUFBRSwrQkFBK0I7SUFDckMsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLEVBQUUsRUFBRSxDQUFDO0lBQ0wsRUFBRSxFQUFFLENBQUM7SUFDTCxFQUFFLEVBQUUsQ0FBQztJQUNMLEdBQUcsRUFBRSxDQUFDO0lBQ04sR0FBRyxFQUFFLENBQUM7SUFDTixHQUFHLEVBQUUsQ0FBQztJQUNOLEdBQUcsRUFBRSxDQUFDO0lBQ04sSUFBSSxFQUFFLEVBQUU7SUFDUixJQUFJLEVBQUUsRUFBRTtDQUNULENBQUM7QUF1QkYsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBdUI7SUFDdEQsTUFBTSxTQUFTLEdBQUcsZ0NBQW9CLENBQUMsZ0JBQWdC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
|
package/dist/fhevm/types.js
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getHandleTypeFromFheType = getHandleTypeFromFheType;
|
4
|
-
const node_tfhe_1 = require("node-tfhe");
|
5
|
-
const handle_1 = require("../handle");
|
6
|
-
// To HandleType
|
7
|
-
// FIXME: how did you arrive at this?
|
8
|
-
const fheTypeToHandleType = Object.freeze({
|
9
|
-
[node_tfhe_1.FheTypes.Bool]: handle_1.handleTypes.ebool,
|
10
|
-
[node_tfhe_1.FheTypes.Uint4]: handle_1.handleTypes.euint4,
|
11
|
-
[node_tfhe_1.FheTypes.Uint8]: handle_1.handleTypes.euint8,
|
12
|
-
[node_tfhe_1.FheTypes.Uint16]: handle_1.handleTypes.euint16,
|
13
|
-
[node_tfhe_1.FheTypes.Uint32]: handle_1.handleTypes.euint32,
|
14
|
-
[node_tfhe_1.FheTypes.Uint64]: handle_1.handleTypes.euint64,
|
15
|
-
[node_tfhe_1.FheTypes.Uint128]: handle_1.handleTypes.euint128,
|
16
|
-
[node_tfhe_1.FheTypes.Uint160]: handle_1.handleTypes.euint160,
|
17
|
-
[node_tfhe_1.FheTypes.Uint256]: handle_1.handleTypes.euint256,
|
18
|
-
});
|
19
|
-
function getHandleTypeFromFheType(fheType) {
|
20
|
-
if (!fheType) {
|
21
|
-
throw new Error('FHE type is required');
|
22
|
-
}
|
23
|
-
const handleType = fheTypeToHandleType[fheType];
|
24
|
-
if (!handleType) {
|
25
|
-
throw new Error(`Inco SDK does not know how to map FHE type '${fheType}' to HandleType`);
|
26
|
-
}
|
27
|
-
return handleType;
|
28
|
-
}
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmhldm0vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsNERBU0M7QUExQkQseUNBQXFDO0FBQ3JDLHNDQUFpRDtBQUVqRCxnQkFBZ0I7QUFDaEIscUNBQXFDO0FBQ3JDLE1BQU0sbUJBQW1CLEdBQXVDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUUsQ0FBQyxvQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLG9CQUFXLENBQUMsS0FBSztJQUNsQyxDQUFDLG9CQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsb0JBQVcsQ0FBQyxNQUFNO0lBQ3BDLENBQUMsb0JBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBVyxDQUFDLE1BQU07SUFDcEMsQ0FBQyxvQkFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLG9CQUFXLENBQUMsT0FBTztJQUN0QyxDQUFDLG9CQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsb0JBQVcsQ0FBQyxPQUFPO0lBQ3RDLENBQUMsb0JBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxvQkFBVyxDQUFDLE9BQU87SUFDdEMsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLG9CQUFXLENBQUMsUUFBUTtJQUN4QyxDQUFDLG9CQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsb0JBQVcsQ0FBQyxRQUFRO0lBQ3hDLENBQUMsb0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxvQkFBVyxDQUFDLFFBQVE7Q0FDekMsQ0FBQyxDQUFDO0FBRUgsU0FBZ0Isd0JBQXdCLENBQUMsT0FBNkI7SUFDcEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIn0=
|
@@ -1,7 +0,0 @@
|
|
1
|
-
export declare const localNodeLightningConfig: {
|
2
|
-
readonly executorAddress: "0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd";
|
3
|
-
readonly eciesPublicKey: "0x02193a85dc0b5293ec128d61ac3dff49f2f8d527ff21801ea0ccc574749ee4b9a2";
|
4
|
-
readonly chainId: 31337;
|
5
|
-
readonly covalidatorUrl: "http://localhost:50055";
|
6
|
-
readonly senderPrivateKey: "0x0e766adcfb8171390d4eb049c9bd32f669ebbfcc82f182d3c0f2d1d25f52caa2";
|
7
|
-
};
|
@@ -1,11 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.localNodeLightningConfig = void 0;
|
4
|
-
exports.localNodeLightningConfig = {
|
5
|
-
"executorAddress": "0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd",
|
6
|
-
"eciesPublicKey": "0x02193a85dc0b5293ec128d61ac3dff49f2f8d527ff21801ea0ccc574749ee4b9a2",
|
7
|
-
"chainId": 31337,
|
8
|
-
"covalidatorUrl": "http://localhost:50055",
|
9
|
-
"senderPrivateKey": "0x0e766adcfb8171390d4eb049c9bd32f669ebbfcc82f182d3c0f2d1d25f52caa2"
|
10
|
-
};
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQvbG9jYWwtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLGlCQUFpQixFQUFFLDRDQUE0QztJQUMvRCxnQkFBZ0IsRUFBRSxzRUFBc0U7SUFDeEYsU0FBUyxFQUFFLEtBQUs7SUFDaEIsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBQzFDLGtCQUFrQixFQUFFLG9FQUFvRTtDQUNoRixDQUFDIn0=
|
@@ -1,108 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
3
|
-
// versions:
|
4
|
-
// protoc-gen-ts_proto v2.7.0
|
5
|
-
// protoc unknown
|
6
|
-
// source: cometbft/crypto/v1/keys.proto
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
8
|
-
exports.PublicKey = exports.protobufPackage = void 0;
|
9
|
-
/* eslint-disable */
|
10
|
-
const wire_1 = require("@bufbuild/protobuf/wire");
|
11
|
-
exports.protobufPackage = "cometbft.crypto.v1";
|
12
|
-
function createBasePublicKey() {
|
13
|
-
return { ed25519: undefined, secp256k1: undefined };
|
14
|
-
}
|
15
|
-
exports.PublicKey = {
|
16
|
-
encode(message, writer = new wire_1.BinaryWriter()) {
|
17
|
-
if (message.ed25519 !== undefined) {
|
18
|
-
writer.uint32(10).bytes(message.ed25519);
|
19
|
-
}
|
20
|
-
if (message.secp256k1 !== undefined) {
|
21
|
-
writer.uint32(18).bytes(message.secp256k1);
|
22
|
-
}
|
23
|
-
return writer;
|
24
|
-
},
|
25
|
-
decode(input, length) {
|
26
|
-
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
27
|
-
let end = length === undefined ? reader.len : reader.pos + length;
|
28
|
-
const message = createBasePublicKey();
|
29
|
-
while (reader.pos < end) {
|
30
|
-
const tag = reader.uint32();
|
31
|
-
switch (tag >>> 3) {
|
32
|
-
case 1: {
|
33
|
-
if (tag !== 10) {
|
34
|
-
break;
|
35
|
-
}
|
36
|
-
message.ed25519 = reader.bytes();
|
37
|
-
continue;
|
38
|
-
}
|
39
|
-
case 2: {
|
40
|
-
if (tag !== 18) {
|
41
|
-
break;
|
42
|
-
}
|
43
|
-
message.secp256k1 = reader.bytes();
|
44
|
-
continue;
|
45
|
-
}
|
46
|
-
}
|
47
|
-
if ((tag & 7) === 4 || tag === 0) {
|
48
|
-
break;
|
49
|
-
}
|
50
|
-
reader.skip(tag & 7);
|
51
|
-
}
|
52
|
-
return message;
|
53
|
-
},
|
54
|
-
fromJSON(object) {
|
55
|
-
return {
|
56
|
-
ed25519: isSet(object.ed25519) ? bytesFromBase64(object.ed25519) : undefined,
|
57
|
-
secp256k1: isSet(object.secp256k1) ? bytesFromBase64(object.secp256k1) : undefined,
|
58
|
-
};
|
59
|
-
},
|
60
|
-
toJSON(message) {
|
61
|
-
const obj = {};
|
62
|
-
if (message.ed25519 !== undefined) {
|
63
|
-
obj.ed25519 = base64FromBytes(message.ed25519);
|
64
|
-
}
|
65
|
-
if (message.secp256k1 !== undefined) {
|
66
|
-
obj.secp256k1 = base64FromBytes(message.secp256k1);
|
67
|
-
}
|
68
|
-
return obj;
|
69
|
-
},
|
70
|
-
create(base) {
|
71
|
-
return exports.PublicKey.fromPartial(base ?? {});
|
72
|
-
},
|
73
|
-
fromPartial(object) {
|
74
|
-
const message = createBasePublicKey();
|
75
|
-
message.ed25519 = object.ed25519 ?? undefined;
|
76
|
-
message.secp256k1 = object.secp256k1 ?? undefined;
|
77
|
-
return message;
|
78
|
-
},
|
79
|
-
};
|
80
|
-
function bytesFromBase64(b64) {
|
81
|
-
if (globalThis.Buffer) {
|
82
|
-
return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
|
83
|
-
}
|
84
|
-
else {
|
85
|
-
const bin = globalThis.atob(b64);
|
86
|
-
const arr = new Uint8Array(bin.length);
|
87
|
-
for (let i = 0; i < bin.length; ++i) {
|
88
|
-
arr[i] = bin.charCodeAt(i);
|
89
|
-
}
|
90
|
-
return arr;
|
91
|
-
}
|
92
|
-
}
|
93
|
-
function base64FromBytes(arr) {
|
94
|
-
if (globalThis.Buffer) {
|
95
|
-
return globalThis.Buffer.from(arr).toString("base64");
|
96
|
-
}
|
97
|
-
else {
|
98
|
-
const bin = [];
|
99
|
-
arr.forEach((byte) => {
|
100
|
-
bin.push(globalThis.String.fromCharCode(byte));
|
101
|
-
});
|
102
|
-
return globalThis.btoa(bin.join(""));
|
103
|
-
}
|
104
|
-
}
|
105
|
-
function isSet(value) {
|
106
|
-
return value !== null && value !== undefined;
|
107
|
-
}
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvdHMvY29tZXRiZnQvY3J5cHRvL3YxL2tleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osZ0NBQWdDO0FBQ2hDLGlDQUFpQztBQUNqQyx3Q0FBd0M7OztBQUV4QyxvQkFBb0I7QUFDcEIsa0RBQXFFO0FBRXhELFFBQUEsZUFBZSxHQUFHLG9CQUFvQixDQUFDO0FBUXBELFNBQVMsbUJBQW1CO0lBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRVksUUFBQSxTQUFTLEdBQTBCO0lBQzlDLE1BQU0sQ0FBQyxPQUFrQixFQUFFLFNBQXVCLElBQUksbUJBQVksRUFBRTtRQUNsRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdDLEVBQUUsTUFBZTtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksbUJBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxD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
|