@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
@@ -0,0 +1,142 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.reencryptEIP712 = reencryptEIP712;
|
4
|
+
exports.incoLiteReencryptor = incoLiteReencryptor;
|
5
|
+
exports.getKmsClient = getKmsClient;
|
6
|
+
exports.decryptGrpcResponse = decryptGrpcResponse;
|
7
|
+
exports.defaultCovalidatorGrpc = defaultCovalidatorGrpc;
|
8
|
+
exports.pulumiCovalidatorGrpc = pulumiCovalidatorGrpc;
|
9
|
+
exports.lightningDevnetCovalidatorGrpc = lightningDevnetCovalidatorGrpc;
|
10
|
+
exports.lightningTestnetCovalidatorGrpc = lightningTestnetCovalidatorGrpc;
|
11
|
+
const connect_1 = require("@connectrpc/connect");
|
12
|
+
const connect_web_1 = require("@connectrpc/connect-web");
|
13
|
+
const viem_1 = require("viem");
|
14
|
+
const binary_js_1 = require("../binary.js");
|
15
|
+
const chain_js_1 = require("../chain.js");
|
16
|
+
const encryption_js_1 = require("../encryption/encryption.js");
|
17
|
+
const kms_service_pb_js_1 = require("../generated/es/inco/kms/lite/v1/kms_service_pb.js");
|
18
|
+
const handle_js_1 = require("../handle.js");
|
19
|
+
const eip712_js_1 = require("../reencryption/eip712.js");
|
20
|
+
const retry_js_1 = require("../retry.js");
|
21
|
+
const ecies_js_1 = require("./ecies.js");
|
22
|
+
// The domain constants used for basic reencrypts.
|
23
|
+
// Note: for advanced ACL, since the signature is checked on-chain, the domain
|
24
|
+
// and version must match the ones used in the contract. For basic ones, we use
|
25
|
+
// a domain different than the one used on-chain
|
26
|
+
const BASIC_REENCRYPT_DOMAIN = {
|
27
|
+
name: 'IncoReencryption',
|
28
|
+
version: '0.1.0',
|
29
|
+
};
|
30
|
+
// Create an EIP712 payload for the Inco Lite basic reencrypt.
|
31
|
+
function reencryptEIP712(chainId, ephemeralPubKey) {
|
32
|
+
return (0, eip712_js_1.createEIP712Payload)({
|
33
|
+
chainId,
|
34
|
+
primaryType: 'ReencryptionRequest',
|
35
|
+
primaryTypeFields: [{ name: 'publicKey', type: 'bytes' }],
|
36
|
+
message: {
|
37
|
+
publicKey: (0, viem_1.bytesToHex)(ephemeralPubKey),
|
38
|
+
},
|
39
|
+
domainName: BASIC_REENCRYPT_DOMAIN.name,
|
40
|
+
domainVersion: BASIC_REENCRYPT_DOMAIN.version,
|
41
|
+
});
|
42
|
+
}
|
43
|
+
// Returns the Inco Lite Reencryptor, which can reencrypt a handle using the
|
44
|
+
// Basic ACL.
|
45
|
+
async function incoLiteReencryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, ephemeralKeypair, }) {
|
46
|
+
const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc((0, chain_js_1.getSupportedChain)(chainId)));
|
47
|
+
if (!ephemeralKeypair) {
|
48
|
+
ephemeralKeypair = await (0, ecies_js_1.generateSecp256k1Keypair)();
|
49
|
+
}
|
50
|
+
// Sign the EIP712 attesting that the user has access to the private key
|
51
|
+
// corresponding to the ephemeral public key.
|
52
|
+
const eip712Payload = reencryptEIP712(chainId, ephemeralKeypair.encodePublicKey());
|
53
|
+
// Using browser extensions, this step will prompt the user to sign the
|
54
|
+
// payload.
|
55
|
+
const eip712Signature = await walletClient.signTypedData(eip712Payload);
|
56
|
+
return async function reencrypt({ handle }, backoffConfig) {
|
57
|
+
const ephemeralPubKey = ephemeralKeypair.encodePublicKey();
|
58
|
+
const reencryptRequest = {
|
59
|
+
$typeName: 'inco.kms.lite.v1.ReencryptRequest',
|
60
|
+
userAddress: walletClient.account.address,
|
61
|
+
ephemeralPubKey,
|
62
|
+
eip712Signature: (0, viem_1.hexToBytes)(eip712Signature),
|
63
|
+
handlesWithProofs: [
|
64
|
+
{
|
65
|
+
$typeName: 'inco.kms.lite.v1.HandleWithProof',
|
66
|
+
handle,
|
67
|
+
aclProof: {
|
68
|
+
$typeName: 'inco.kms.lite.v1.ACLProof',
|
69
|
+
// See advancedacl/session-key.ts for an example of using
|
70
|
+
// Advanced ACL.
|
71
|
+
proof: {
|
72
|
+
case: 'incoLiteBasicAclProof',
|
73
|
+
value: {
|
74
|
+
$typeName: 'inco.kms.lite.v1.IncoLiteBasicACLProof',
|
75
|
+
},
|
76
|
+
},
|
77
|
+
},
|
78
|
+
},
|
79
|
+
],
|
80
|
+
};
|
81
|
+
try {
|
82
|
+
return await (0, retry_js_1.retryWithBackoff)(async () => {
|
83
|
+
const response = await kmsClient.reencrypt(reencryptRequest);
|
84
|
+
return decryptGrpcResponse(response, ephemeralKeypair, handle);
|
85
|
+
}, backoffConfig);
|
86
|
+
}
|
87
|
+
catch (error) {
|
88
|
+
console.log(error);
|
89
|
+
throw error;
|
90
|
+
}
|
91
|
+
};
|
92
|
+
}
|
93
|
+
// Helper function to get a KMS client from a string or a Client instance.
|
94
|
+
function getKmsClient(kmsConnectRpcEndpointOrClient) {
|
95
|
+
if (typeof kmsConnectRpcEndpointOrClient === 'string') {
|
96
|
+
const transport = (0, connect_web_1.createConnectTransport)({
|
97
|
+
baseUrl: kmsConnectRpcEndpointOrClient,
|
98
|
+
});
|
99
|
+
return (0, connect_1.createClient)(kms_service_pb_js_1.KmsService, transport);
|
100
|
+
}
|
101
|
+
return kmsConnectRpcEndpointOrClient;
|
102
|
+
}
|
103
|
+
// Decrypt using ECIES the ciphertext in the response.
|
104
|
+
// Even though the proto specifies a list of ciphertexts, our JS SDK
|
105
|
+
// currently only supports a single ciphertext.
|
106
|
+
async function decryptGrpcResponse(response, ephemeralKeypair, handle) {
|
107
|
+
const reencryptedCt = response.payload?.userCiphertexts[0];
|
108
|
+
if (!reencryptedCt) {
|
109
|
+
throw new Error('No reencrypted ciphertext in the response');
|
110
|
+
}
|
111
|
+
const plaintextBytes = await (0, ecies_js_1.decrypt)(ephemeralKeypair, reencryptedCt.ciphertext);
|
112
|
+
const plaintext = (0, binary_js_1.bytesToBigInt)(plaintextBytes);
|
113
|
+
return (0, encryption_js_1.bigintToPlaintext)(encryption_js_1.encryptionSchemes.ecies, (0, handle_js_1.getHandleType)(handle), plaintext);
|
114
|
+
}
|
115
|
+
// Helper function to return the default gRPC endpoint for the covalidator.
|
116
|
+
// Currently, this returns the covalidator for the Inco Lightning public testnet.
|
117
|
+
function defaultCovalidatorGrpc(chain) {
|
118
|
+
return lightningTestnetCovalidatorGrpc(chain);
|
119
|
+
}
|
120
|
+
// Helper function to get the gRPC endpoint for the Denver covalidator on the
|
121
|
+
// AWS (Pulumi) setup. This function is a convenience, and might disappear in
|
122
|
+
// the future, if the denver testnet is no longer supported.
|
123
|
+
function pulumiCovalidatorGrpc(chain) {
|
124
|
+
return `https://grpc.${chain.name.toLowerCase()}.covalidator.denver.inco.org`;
|
125
|
+
}
|
126
|
+
// Helper function to get the devnet gRPC endpoint for the Inco Lightning covalidator.
|
127
|
+
function lightningDevnetCovalidatorGrpc(chain) {
|
128
|
+
return getCovalidatorGrpcHelper(chain, 'devnet', 'lightning');
|
129
|
+
}
|
130
|
+
// Helper function to get the testnet gRPC endpoint for the Inco Lightning covalidator.
|
131
|
+
function lightningTestnetCovalidatorGrpc(chain) {
|
132
|
+
return getCovalidatorGrpcHelper(chain, 'testnet', 'lightning');
|
133
|
+
}
|
134
|
+
// Convert camelCase to dash-case.
|
135
|
+
function camelToDashCase(str) {
|
136
|
+
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
137
|
+
}
|
138
|
+
// Small helper, as our GCP covalidator URLs are in a specific format.
|
139
|
+
function getCovalidatorGrpcHelper(chain, network, cluster) {
|
140
|
+
return `https://grpc.${camelToDashCase(chain.name)}.${cluster}.${network}.inco.org`;
|
141
|
+
}
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVlbmNyeXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpdGUvcmVlbmNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBOENBLDBDQVdDO0FBSUQsa0RBeURDO0FBR0Qsb0NBV0M7QUFLRCxrREFhQztBQUlELHdEQUVDO0FBS0Qsc0RBRUM7QUFHRCx3RUFFQztBQUdELDBFQUVDO0FBN0tELGlEQUEyRDtBQUMzRCx5REFBaUU7QUFDakUsK0JBQTRGO0FBQzVGLDRDQUE2QztBQUM3QywwQ0FBZ0U7QUFDaEUsK0RBTXFDO0FBQ3JDLDBGQUFxSDtBQUNySCw0Q0FBcUQ7QUFFckQseURBQWdFO0FBR2hFLDBDQUErQztBQUMvQyx5Q0FBaUY7QUFpQmpGLGtEQUFrRDtBQUNsRCw4RUFBOEU7QUFDOUUsK0VBQStFO0FBQy9FLGdEQUFnRDtBQUNoRCxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQUVGLDhEQUE4RDtBQUM5RCxTQUFnQixlQUFlLENBQUMsT0FBZSxFQUFFLGVBQTJCO0lBQzFFLE9BQU8sSUFBQSwrQkFBbUIsRUFBQztRQUN6QixPQUFPO1FBQ1AsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDekQsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLElBQUEsaUJBQVUsRUFBQyxlQUFlLENBQUM7U0FDdkM7UUFDRCxVQUFVLEVBQUUsc0JBQXNCLENBQUMsSUFBSTtRQUN2QyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsT0FBTztLQUM5QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsNEVBQTRFO0FBQzVFLGFBQWE7QUFDTixLQUFLLFVBQVUsbUJBQW1CLENBQUMsRUFDeEMsNkJBQTZCLEVBQzdCLE9BQU8sRUFD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
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './local-node.js';
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
__exportStar(require("./local-node"), exports);
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
17
|
+
__exportStar(require("./local-node.js"), exports);
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9jYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQyJ9
|
@@ -25,4 +25,4 @@ function parseLocalEnv(envFileContents) {
|
|
25
25
|
const envObj = dotenv.parse(envFileContents);
|
26
26
|
return effect_1.Schema.decodeUnknownSync(exports.LocalNodeEnv)(envObj);
|
27
27
|
}
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2NhbC9sb2NhbC1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQSxzQ0FHQztBQTFCRCw0Q0FBd0Q7QUFDeEQsaUNBQWlDO0FBQ2pDLG1DQUFnQztBQUVuQixRQUFBLFlBQVksR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hDLGdCQUFnQixFQUFFLGFBQU87SUFDekIsVUFBVSxFQUFFLGVBQU0sQ0FBQyxNQUFNO0lBQ3pCLGdCQUFnQixFQUFFLGFBQU87SUFDekIsZ0JBQWdCLEVBQUUsZUFBUztJQUMzQixnQkFBZ0IsRUFBRSxlQUFTO0lBQzNCLGNBQWMsRUFBRSxhQUFPO0lBQ3ZCLGtCQUFrQixFQUFFLGVBQVM7SUFDN0IsTUFBTSxFQUFFLGVBQU0sQ0FBQyxNQUFNO0lBQ3JCLDZCQUE2QixFQUFFLGVBQVM7SUFDeEMsc0NBQXNDLEVBQUUsZUFBUztJQUNqRCxnQ0FBZ0MsRUFBRSxlQUFTO0lBQzNDLG9CQUFvQixFQUFFLGFBQU87SUFDN0IsOEJBQThCLEVBQUUsYUFBTztJQUN2QyxtQ0FBbUMsRUFBRSxhQUFPO0NBQzdDLENBQUMsQ0FBQztBQUlILFNBQWdCLGFBQWEsQ0FBQyxlQUFnQztJQUM1RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sZUFBTSxDQUFDLGlCQUFpQixDQUFDLG9CQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RCxDQUFDIn0=
|
@@ -2,8 +2,8 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.createEIP712Payload = createEIP712Payload;
|
4
4
|
const effect_1 = require("effect");
|
5
|
-
const
|
6
|
-
const
|
5
|
+
const binary_js_1 = require("../binary.js");
|
6
|
+
const deployments_js_1 = require("../lite/deployments.js");
|
7
7
|
// An effect Schema representing a base EIP712 typed message, without any
|
8
8
|
// custom message types, as defined in EIP-712.
|
9
9
|
const baseEIP712 = effect_1.Schema.Struct({
|
@@ -11,7 +11,7 @@ const baseEIP712 = effect_1.Schema.Struct({
|
|
11
11
|
chainId: effect_1.Schema.BigInt,
|
12
12
|
name: effect_1.Schema.String,
|
13
13
|
version: effect_1.Schema.String,
|
14
|
-
verifyingContract: effect_1.Schema.optional(
|
14
|
+
verifyingContract: effect_1.Schema.optional(binary_js_1.HexString),
|
15
15
|
// If salt is needed, it can be added here. Currently, none of the Incolite
|
16
16
|
// features need this.
|
17
17
|
}),
|
@@ -57,7 +57,7 @@ function createEIP712Payload({ chainId, primaryType, primaryTypeFields, message,
|
|
57
57
|
}
|
58
58
|
// TODO: We could also check that the types of the values are correct here.
|
59
59
|
if (!domainVersion) {
|
60
|
-
const incoLite = (0,
|
60
|
+
const incoLite = (0, deployments_js_1.getActiveLightningDeployment)(chainId);
|
61
61
|
// See Version.sol for the format of the version string.
|
62
62
|
domainVersion = `${incoLite.version.major}_${incoLite.version.minor}_${incoLite.version.patch}`;
|
63
63
|
}
|
@@ -81,4 +81,4 @@ function createEIP712Payload({ chainId, primaryType, primaryTypeFields, message,
|
|
81
81
|
};
|
82
82
|
return msgParams;
|
83
83
|
}
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwNzEyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlZW5jcnlwdGlvbi9laXA3MTIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5Q0Esa0RBdUVDO0FBaEhELG1DQUFnQztBQUVoQyw0Q0FBeUM7QUFDekMsMkRBQXNFO0FBRXRFLHlFQUF5RTtBQUN6RSwrQ0FBK0M7QUFDL0MsTUFBTSxVQUFVLEdBQUcsZUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMvQixNQUFNLEVBQUUsZUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNwQixPQUFPLEVBQUUsZUFBTSxDQUFDLE1BQU07UUFDdEIsSUFBSSxFQUFFLGVBQU0sQ0FBQyxNQUFNO1FBQ25CLE9BQU8sRUFBRSxlQUFNLENBQUMsTUFBTTtRQUN0QixpQkFBaUIsRUFBRSxlQUFNLENBQUMsUUFBUSxDQUFDLHFCQUFTLENBQUM7UUFDN0MsMkVBQTJFO1FBQzNFLHNCQUFzQjtLQUN2QixDQUFDO0lBQ0YsV0FBVyxFQUFFLGVBQU0sQ0FBQyxNQUFNO0lBQzFCLEtBQUssRUFBRSxlQUFNLENBQUMsTUFBTSxDQUFDO1FBQ25CLEdBQUcsRUFBRSxlQUFNLENBQUMsTUFBTTtRQUNsQixLQUFLLEVBQUUsZUFBTSxDQUFDLEtBQUssQ0FDakIsZUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNaLElBQUksRUFBRSxlQUFNLENBQUMsTUFBTTtZQUNuQixJQUFJLEVBQUUsZUFBTSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUNIO0tBQ0YsQ0FBQztDQUNILENBQUMsQ0FBQztBQVNILG1HQUFtRztBQUNuRyxrR0FBa0c7QUFDbEcsNkVBQTZFO0FBQzdFLEVBQUU7QUFDRiw4RUFBOEU7QUFDOUUsdUNBQXVDO0FBQ3ZDLFNBQWdCLG1CQUFtQixDQUFxRCxFQUN0RixPQUFPLEVBQ1AsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixhQUFhLEdBU2Q7SUFDQyxNQUFNLEtBQUssR0FBRztRQUNaLHVEQUF1RDtRQUN2RCxZQUFZLEVBQUU7WUFDWixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNoQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNuQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUNyQztRQUNELHdCQUF3QjtRQUN4QixDQUFDLFdBQVcsQ0FBQyxFQUFFLGlCQUFpQjtLQUNqQyxDQUFDO0lBRUYsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxxRUFBcUU7SUFDckUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNFLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELEtBQUssTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxHQUFHLHVDQUF1QyxDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNILENBQUM7SUFDRCwyRUFBMkU7SUFFM0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUEsNkNBQTRCLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsd0RBQXdEO1FBQ3hELGFBQWEsR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEcsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHO1FBQ2hCLEtBQUs7UUFDTCw2RkFBNkY7UUFDN0YsZ0dBQWdHO1FBQ2hHLHNCQUFzQjtRQUN0Qix5REFBeUQ7UUFDekQsV0FBVztRQUNYLE1BQU0sRUFBRTtZQUNOLHlFQUF5RTtZQUN6RSxJQUFJLEVBQUUsVUFBVSxJQUFJLFVBQVU7WUFDOUIsc0NBQXNDO1lBQ3RDLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLG1EQUFtRDtZQUNuRCxPQUFPO1lBQ1AsaUJBQWlCO1NBQ2xCO1FBQ0QsT0FBTztLQUNSLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIn0=
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./eip712.js"), exports);
|
18
|
+
__exportStar(require("./types.js"), exports);
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVlbmNyeXB0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEI7QUFDNUIsNkNBQTJCIn0=
|
@@ -1,15 +1,11 @@
|
|
1
1
|
import { Address } from 'viem';
|
2
|
-
import { HexString } from '../binary';
|
3
|
-
import { CiphertextOf, EncryptionScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption';
|
4
|
-
import type { EphemeralCryptoBoxKeypair } from '../fhevm/reencrypt';
|
5
|
-
import { Handle } from '../handle';
|
6
|
-
import type { Secp256k1Keypair } from '../lite/ecies';
|
2
|
+
import { HexString } from '../binary.js';
|
3
|
+
import { CiphertextOf, EncryptionScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption.js';
|
4
|
+
import type { EphemeralCryptoBoxKeypair } from '../fhevm/reencrypt.js';
|
5
|
+
import { Handle } from '../handle.js';
|
6
|
+
import type { Secp256k1Keypair } from '../lite/ecies.js';
|
7
|
+
import type { BackoffConfig } from '../retry.js';
|
7
8
|
export type Reencryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: ReencryptFnArgs<S, T>, backoffConfig?: Partial<BackoffConfig>) => Promise<PlaintextOf<S, T>>;
|
8
|
-
export type BackoffConfig = {
|
9
|
-
maxRetries: number;
|
10
|
-
baseDelayInMs: number;
|
11
|
-
backoffFactor: number;
|
12
|
-
};
|
13
9
|
export interface ReencryptorArgs {
|
14
10
|
chainId: bigint;
|
15
11
|
}
|
@@ -1,3 +1,3 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVlbmNyeXB0aW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/**
|
2
|
+
* Configuration for exponential backoff retry logic.
|
3
|
+
*/
|
4
|
+
export type BackoffConfig = {
|
5
|
+
maxRetries: number;
|
6
|
+
baseDelayInMs: number;
|
7
|
+
backoffFactor: number;
|
8
|
+
};
|
9
|
+
/**
|
10
|
+
* Helper function to implement exponential backoff retry logic.
|
11
|
+
* @param fn - The function to retry
|
12
|
+
* @param config - Optional backoff configuration
|
13
|
+
* @returns Promise that resolves with the result of the function
|
14
|
+
*/
|
15
|
+
export declare function retryWithBackoff<T>(fn: () => Promise<T>, { maxRetries, baseDelayInMs, backoffFactor }?: Partial<BackoffConfig>): Promise<T>;
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.retryWithBackoff = retryWithBackoff;
|
4
|
+
/**
|
5
|
+
* Helper function to implement exponential backoff retry logic.
|
6
|
+
* @param fn - The function to retry
|
7
|
+
* @param config - Optional backoff configuration
|
8
|
+
* @returns Promise that resolves with the result of the function
|
9
|
+
*/
|
10
|
+
async function retryWithBackoff(fn, { maxRetries = 10, baseDelayInMs = 1000, backoffFactor = 1.5 } = {}) {
|
11
|
+
let lastError;
|
12
|
+
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
13
|
+
try {
|
14
|
+
return await fn();
|
15
|
+
}
|
16
|
+
catch (error) {
|
17
|
+
lastError = error;
|
18
|
+
if (attempt === maxRetries - 1) {
|
19
|
+
break;
|
20
|
+
}
|
21
|
+
const delay = baseDelayInMs * Math.pow(backoffFactor, attempt);
|
22
|
+
const jitter = delay * (0.8 + Math.random() * 0.4); // random jitter, 80% to 120% of the delay
|
23
|
+
await new Promise((resolve) => setTimeout(resolve, jitter));
|
24
|
+
}
|
25
|
+
}
|
26
|
+
throw lastError;
|
27
|
+
}
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSw0Q0FxQkM7QUEzQkQ7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLEVBQW9CLEVBQ3BCLEVBQUUsVUFBVSxHQUFHLEVBQUUsRUFBRSxhQUFhLEdBQUcsSUFBSSxFQUFFLGFBQWEsR0FBRyxHQUFHLEtBQTZCLEVBQUU7SUFFM0YsSUFBSSxTQUE0QixDQUFDO0lBRWpDLEtBQUssSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDcEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixTQUFTLEdBQUcsS0FBYyxDQUFDO1lBQzNCLElBQUksT0FBTyxLQUFLLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLEtBQUssR0FBRyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztZQUM5RixNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFNBQVMsQ0FBQztBQUNsQixDQUFDIn0=
|
@@ -16,4 +16,4 @@ function parseJson(schema, json, options) {
|
|
16
16
|
}
|
17
17
|
return effect_1.Schema.decodeUnknownSync(effect_1.Schema.parseJson(schema))(json, options);
|
18
18
|
}
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLHNCQUVDO0FBSUQsOEJBS0M7QUFoQkQsbUNBQWdDO0FBR2hDLHdIQUF3SDtBQUN4SCw0RUFBNEU7QUFDNUUsU0FBZ0IsS0FBSyxDQUFPLE1BQTJCLEVBQUUsR0FBWSxFQUFFLE9BQXNCO0lBQzNGLE9BQU8sZUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQseUhBQXlIO0FBQ3pILDRFQUE0RTtBQUM1RSxTQUFnQixTQUFTLENBQU8sTUFBMkIsRUFBRSxJQUF5QixFQUFFLE9BQXNCO0lBQzVHLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsT0FBTyxlQUFNLENBQUMsaUJBQWlCLENBQUMsZUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRSxDQUFDIn0=
|
package/dist/cjs/viem.js
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.chains = void 0;
|
4
|
+
exports.getViemChain = getViemChain;
|
5
|
+
const chains_1 = require("viem/chains");
|
6
|
+
const chain_js_1 = require("./chain.js");
|
7
|
+
exports.chains = { sepolia: chains_1.sepolia, baseSepolia: chains_1.baseSepolia, monadTestnet: chains_1.monadTestnet, anvil: chains_1.anvil };
|
8
|
+
function getViemChain(chainish) {
|
9
|
+
const { name } = (0, chain_js_1.getSupportedChain)(chainish);
|
10
|
+
return exports.chains[name];
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmllbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aWVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNBLG9DQUdDO0FBWkQsd0NBQXdFO0FBQ3hFLHlDQUF5RDtBQUU1QyxRQUFBLE1BQU0sR0FBRyxFQUFFLE9BQU8sRUFBUCxnQkFBTyxFQUFFLFdBQVcsRUFBWCxvQkFBVyxFQUFFLFlBQVksRUFBWixxQkFBWSxFQUFFLEtBQUssRUFBTCxjQUFLLEVBQUUsQ0FBQztBQU1wRSxTQUFnQixZQUFZLENBQUMsUUFBa0I7SUFDN0MsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUEsNEJBQWlCLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsT0FBTyxjQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsQ0FBQyJ9
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import type { Account, Chain, Transport, WalletClient } from 'viem';
|
2
|
+
import { SupportedChainId } from '../chain.js';
|
3
|
+
import { EciesScheme } from '../encryption/encryption.js';
|
4
|
+
import type { KmsClient } from '../kms/client.js';
|
5
|
+
import { AttestedDecryptor } from './types.js';
|
6
|
+
/**
|
7
|
+
* Arguments for creating an attested decryptor.
|
8
|
+
*/
|
9
|
+
export interface IncoLiteAttestedDecryptorArgs {
|
10
|
+
/** The wallet used to interact with the blockchain and sign the decrypt request */
|
11
|
+
walletClient: WalletClient<Transport, Chain, Account>;
|
12
|
+
/** The KMS connect RPC endpoint or client instance */
|
13
|
+
kmsConnectRpcEndpointOrClient?: string | KmsClient;
|
14
|
+
/** The chain ID to use */
|
15
|
+
chainId: SupportedChainId;
|
16
|
+
}
|
17
|
+
/**
|
18
|
+
* Creates an attested decryptor that can decrypt handles with an attached attestation from the covalidator.
|
19
|
+
* @param args - The arguments for creating the decryptor
|
20
|
+
* @returns A function that can decrypt handles using attestation
|
21
|
+
* @throws {AttestedDecryptError} If the decryptor creation fails
|
22
|
+
*
|
23
|
+
* @todo Support multiple handles in a single request.
|
24
|
+
*
|
25
|
+
* @example
|
26
|
+
* ```typescript
|
27
|
+
* const decryptor = await incoLiteAttestedDecryptor({
|
28
|
+
* walletClient,
|
29
|
+
* chainId: sepolia,
|
30
|
+
* });
|
31
|
+
* const { plaintext, covalidatorSignature } = await decryptor({ handle: '0x...' });
|
32
|
+
* ```
|
33
|
+
*/
|
34
|
+
export declare function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }: IncoLiteAttestedDecryptorArgs): AttestedDecryptor<EciesScheme>;
|
@@ -0,0 +1,88 @@
|
|
1
|
+
import { hexToBytes } from 'viem';
|
2
|
+
import { bytesToBigInt } from '../binary.js';
|
3
|
+
import { getSupportedChain } from '../chain.js';
|
4
|
+
import { bigintToPlaintext, encryptionSchemes, } from '../encryption/encryption.js';
|
5
|
+
import { getHandleType } from '../handle.js';
|
6
|
+
import { defaultCovalidatorGrpc, getKmsClient } from '../kms/client.js';
|
7
|
+
import { createEIP712Payload } from '../reencryption/eip712.js';
|
8
|
+
import { retryWithBackoff } from '../retry.js';
|
9
|
+
import { AttestedDecryptError } from './types.js';
|
10
|
+
const ATTESTED_DECRYPT_DOMAIN_NAME = 'IncoAttestedDecrypt';
|
11
|
+
const ATTESTED_DECRYPT_DOMAIN_VERSION = '0.1.0';
|
12
|
+
/**
|
13
|
+
* Validates a handle format.
|
14
|
+
* @param handle - The handle to validate
|
15
|
+
* @throws {AttestedDecryptError} If the handle format is invalid
|
16
|
+
*/
|
17
|
+
function validateHandle(handle) {
|
18
|
+
if (!handle.startsWith('0x') || handle.length !== 66) {
|
19
|
+
throw new AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
|
20
|
+
}
|
21
|
+
}
|
22
|
+
/**
|
23
|
+
* Creates an attested decryptor that can decrypt handles with an attached attestation from the covalidator.
|
24
|
+
* @param args - The arguments for creating the decryptor
|
25
|
+
* @returns A function that can decrypt handles using attestation
|
26
|
+
* @throws {AttestedDecryptError} If the decryptor creation fails
|
27
|
+
*
|
28
|
+
* @todo Support multiple handles in a single request.
|
29
|
+
*
|
30
|
+
* @example
|
31
|
+
* ```typescript
|
32
|
+
* const decryptor = await incoLiteAttestedDecryptor({
|
33
|
+
* walletClient,
|
34
|
+
* chainId: sepolia,
|
35
|
+
* });
|
36
|
+
* const { plaintext, covalidatorSignature } = await decryptor({ handle: '0x...' });
|
37
|
+
* ```
|
38
|
+
*/
|
39
|
+
export function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }) {
|
40
|
+
const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc(getSupportedChain(chainId)));
|
41
|
+
return async function attestedDecrypt({ handle, backoffConfig, }) {
|
42
|
+
try {
|
43
|
+
validateHandle(handle);
|
44
|
+
// Create the EIP712 payload for the handles to decrypt
|
45
|
+
const eip712Payload = createEIP712Payload({
|
46
|
+
chainId: BigInt(chainId),
|
47
|
+
primaryType: 'AttestedDecryptRequest',
|
48
|
+
primaryTypeFields: [{ name: 'handles', type: 'bytes32[]' }],
|
49
|
+
message: {
|
50
|
+
handles: [handle],
|
51
|
+
},
|
52
|
+
domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
|
53
|
+
domainVersion: ATTESTED_DECRYPT_DOMAIN_VERSION,
|
54
|
+
});
|
55
|
+
// Sign the EIP712 message
|
56
|
+
const eip712Signature = await walletClient.signTypedData(eip712Payload);
|
57
|
+
const attestedDecryptRequest = {
|
58
|
+
$typeName: 'inco.kms.lite.v1.AttestedDecryptRequest',
|
59
|
+
userAddress: walletClient.account.address,
|
60
|
+
handles: [handle],
|
61
|
+
eip712Signature: hexToBytes(eip712Signature),
|
62
|
+
};
|
63
|
+
const response = await retryWithBackoff(async () => {
|
64
|
+
return await kmsClient.attestedDecrypt(attestedDecryptRequest);
|
65
|
+
}, backoffConfig);
|
66
|
+
if (response.decryptionAttestations.length !== 1) {
|
67
|
+
throw new AttestedDecryptError('Expected 1 decryption attestation in response');
|
68
|
+
}
|
69
|
+
const decryptionAttestation = response.decryptionAttestations[0];
|
70
|
+
if (decryptionAttestation.plaintext === undefined) {
|
71
|
+
throw new AttestedDecryptError('No plaintext in response');
|
72
|
+
}
|
73
|
+
const handleType = getHandleType(handle);
|
74
|
+
const bigIntValue = bytesToBigInt(decryptionAttestation.plaintext);
|
75
|
+
return {
|
76
|
+
plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
|
77
|
+
covalidatorSignature: decryptionAttestation.signature,
|
78
|
+
};
|
79
|
+
}
|
80
|
+
catch (error) {
|
81
|
+
if (error instanceof AttestedDecryptError) {
|
82
|
+
throw error;
|
83
|
+
}
|
84
|
+
throw new AttestedDecryptError('Failed to decrypt handle', error);
|
85
|
+
}
|
86
|
+
};
|
87
|
+
}
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsaUJBQWlCLEVBRWpCLGlCQUFpQixHQUdsQixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQXFCLE1BQU0sWUFBWSxDQUFDO0FBRXJFLE1BQU0sNEJBQTRCLEdBQUcscUJBQXFCLENBQUM7QUFDM0QsTUFBTSwrQkFBK0IsR0FBRyxPQUFPLENBQUM7QUFFaEQ7Ozs7R0FJRztBQUNILFNBQVMsY0FBYyxDQUFDLE1BQWM7SUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNyRCxNQUFNLElBQUksb0JBQW9CLENBQUMsb0VBQW9FLENBQUMsQ0FBQztJQUN2RyxDQUFDO0FBQ0gsQ0FBQztBQWNEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEVBQ3hDLDZCQUE2QixFQUM3QixPQUFPLEVBQ1AsWUFB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
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './attested-decrypt.js';
|
2
|
+
export * from './types.js';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxZQUFZLENBQUMifQ==
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { HexString } from '../binary.js';
|
2
|
+
import { EncryptionScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption.js';
|
3
|
+
import type { BackoffConfig } from '../retry.js';
|
4
|
+
/**
|
5
|
+
* Custom error class for attested decrypt operations.
|
6
|
+
*/
|
7
|
+
export declare class AttestedDecryptError extends Error {
|
8
|
+
readonly cause?: unknown | undefined;
|
9
|
+
constructor(message: string, cause?: unknown | undefined);
|
10
|
+
}
|
11
|
+
export type AttestedDecryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: {
|
12
|
+
/** The handle to decrypt */
|
13
|
+
handle: HexString;
|
14
|
+
backoffConfig?: Partial<BackoffConfig>;
|
15
|
+
}) => Promise<{
|
16
|
+
plaintext: PlaintextOf<S, T>;
|
17
|
+
covalidatorSignature: Uint8Array;
|
18
|
+
}>;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**
|
2
|
+
* Custom error class for attested decrypt operations.
|
3
|
+
*/
|
4
|
+
export class AttestedDecryptError extends Error {
|
5
|
+
cause;
|
6
|
+
constructor(message, cause) {
|
7
|
+
super(message);
|
8
|
+
this.cause = cause;
|
9
|
+
this.name = 'AttestedDecryptError';
|
10
|
+
}
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLEtBQUs7SUFHM0I7SUFGbEIsWUFDRSxPQUFlLEVBQ0MsS0FBZTtRQUUvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGQyxVQUFLLEdBQUwsS0FBSyxDQUFVO1FBRy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Schema } from 'effect';
|
2
|
+
import { Hex } from 'viem';
|
3
|
+
export declare const HexString: Schema.TemplateLiteral<`0x${string}`>;
|
4
|
+
export type HexString = typeof HexString.Type;
|
5
|
+
export type BytesIsh = string | Uint8Array;
|
6
|
+
export declare function bytesToBigInt(byteArray: Uint8Array): bigint;
|
7
|
+
export declare function bufferToBigInt(buffer: Buffer): bigint;
|
8
|
+
export declare function bigintToBytes32(value: bigint): Bytes32;
|
9
|
+
export declare function padLeft(bs: Uint8Array, n: number): Buffer;
|
10
|
+
export declare function bytes32ToBigint(bs: BytesIsh): bigint;
|
11
|
+
export declare function bytesFromHexString(hexString: string): Buffer;
|
12
|
+
export declare function mustBeHex(value: string): Hex;
|
13
|
+
export declare function normaliseToHex(value: string): Hex;
|
14
|
+
export declare function bytesToHex(bs: Uint8Array): Hex;
|
15
|
+
export declare const Bytes32: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
|
16
|
+
export declare function asBytes32(x: BytesIsh): Bytes32;
|
17
|
+
export type Bytes32 = typeof Bytes32.Type;
|
18
|
+
export type Address = typeof Address.Type;
|
19
|
+
export declare const Address: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
|
20
|
+
export declare function parseAddress(address: string): Address;
|
21
|
+
export declare function parseHex(hex: string): HexString;
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import { ParseResult, Schema } from 'effect';
|
2
|
+
import { isHex } from 'viem';
|
3
|
+
import { parse } from './schema.js';
|
4
|
+
export const HexString = Schema.TemplateLiteral('0x', Schema.String);
|
5
|
+
export function bytesToBigInt(byteArray) {
|
6
|
+
// Ugly but better than bigint-buffer that insists on writing junk to stderr if it doesn't have native bindings
|
7
|
+
return !byteArray?.length ? BigInt(0) : BigInt('0x' + Buffer.from(byteArray).toString('hex'));
|
8
|
+
}
|
9
|
+
export function bufferToBigInt(buffer) {
|
10
|
+
return bytesToBigInt(Uint8Array.from(buffer));
|
11
|
+
}
|
12
|
+
// Convert a bigint to a 32-byte array, left-padded if necessary. Note: it is
|
13
|
+
// caller's responsibility to ensure that the bigint is not too large to fit in
|
14
|
+
// 32 bytes, or else the result will be truncated.
|
15
|
+
export function bigintToBytes32(value) {
|
16
|
+
return parse(Bytes32, Buffer.from(value.toString(16).padStart(64, '0'), 'hex').toString('hex'));
|
17
|
+
}
|
18
|
+
export function padLeft(bs, n) {
|
19
|
+
if (bs.length > n) {
|
20
|
+
throw new Error(`Cannot pad ${bs.length} bytes to ${n} - would truncate`);
|
21
|
+
}
|
22
|
+
const buf = Buffer.alloc(n);
|
23
|
+
buf.set(bs, n - bs.length);
|
24
|
+
return buf;
|
25
|
+
}
|
26
|
+
export function bytes32ToBigint(bs) {
|
27
|
+
const bytes32 = asBytes32(bs);
|
28
|
+
return BigInt(bytes32);
|
29
|
+
}
|
30
|
+
export function bytesFromHexString(hexString) {
|
31
|
+
return Buffer.from(hexString.startsWith('0x') ? hexString.slice(2) : hexString, 'hex');
|
32
|
+
}
|
33
|
+
export function mustBeHex(value) {
|
34
|
+
if (!isHex(value)) {
|
35
|
+
throw new Error(`Expected hex string, got: ${value}`);
|
36
|
+
}
|
37
|
+
return value;
|
38
|
+
}
|
39
|
+
export function normaliseToHex(value) {
|
40
|
+
return mustBeHex(value.startsWith('0x') ? value : `0x${value}`);
|
41
|
+
}
|
42
|
+
export function bytesToHex(bs) {
|
43
|
+
return ('0x' + Buffer.from(bs).toString('hex'));
|
44
|
+
}
|
45
|
+
const ByteArray = Schema.Object.pipe(Schema.filter((x) => x instanceof Uint8Array));
|
46
|
+
const BytesToHex = Schema.transformOrFail(Schema.Union(Schema.String, ByteArray), HexString, {
|
47
|
+
strict: true,
|
48
|
+
encode: ParseResult.succeed,
|
49
|
+
decode: (x) => x instanceof Uint8Array
|
50
|
+
? ParseResult.succeed(bytesToHex(x))
|
51
|
+
: ((y) => isHex(y)
|
52
|
+
? ParseResult.succeed(y)
|
53
|
+
: ParseResult.fail(new ParseResult.Unexpected(y, `'${y}' is not a hex string`)))(normaliseToHex(x)),
|
54
|
+
});
|
55
|
+
export const Bytes32 = BytesToHex.pipe(Schema.filter((x) => x.length === 66 ||
|
56
|
+
`Expected 32-byte hex string (66 characters with 0x prefix) but got ${x.length} character string`), Schema.brand('Bytes32'));
|
57
|
+
export function asBytes32(x) {
|
58
|
+
return parse(Bytes32, x);
|
59
|
+
}
|
60
|
+
export const Address = HexString.pipe(Schema.filter((s) => s.length === 42 || `Address must be a 20-byte '0x'-prefixed hex string, but got: ${s}`), Schema.brand('Address'));
|
61
|
+
export function parseAddress(address) {
|
62
|
+
return parse(Address, address);
|
63
|
+
}
|
64
|
+
export function parseHex(hex) {
|
65
|
+
return parse(HexString, hex);
|
66
|
+
}
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQU1yRSxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQXFCO0lBQ2pELCtHQUErRztJQUMvRyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBYztJQUMzQyxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELDZFQUE2RTtBQUM3RSwrRUFBK0U7QUFDL0Usa0RBQWtEO0FBQ2xELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBYTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEcsQ0FBQztBQUVELE1B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
|