@inco/js 0.2.17 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/attestedcompute/attested-compute.d.ts +38 -0
- package/dist/cjs/attestedcompute/attested-compute.js +98 -0
- package/dist/cjs/attestedcompute/types.d.ts +34 -0
- package/dist/cjs/attestedcompute/types.js +46 -0
- package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +6 -0
- package/dist/cjs/attesteddecrypt/attested-decrypt.js +3 -1
- package/dist/cjs/attesteddecrypt/types.d.ts +6 -4
- package/dist/cjs/chain.d.ts +3 -0
- package/dist/cjs/chain.js +5 -2
- package/dist/cjs/generated/abis/lightning.d.ts +4 -0
- package/dist/cjs/generated/abis/lightning.js +5 -2
- package/dist/cjs/generated/es/cosmos/msg/v1/msg_pb.d.ts +1 -1
- package/dist/cjs/generated/es/cosmos/msg/v1/msg_pb.js +5 -5
- package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.d.ts +1 -1
- package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.js +15 -15
- package/dist/cjs/generated/es/google/api/annotations_pb.d.ts +1 -1
- package/dist/cjs/generated/es/google/api/annotations_pb.js +3 -3
- package/dist/cjs/generated/es/google/api/http_pb.d.ts +1 -1
- package/dist/cjs/generated/es/google/api/http_pb.js +5 -5
- package/dist/cjs/generated/es/inco/fhe/v1/events_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/fhe/v1/events_pb.js +5 -5
- package/dist/cjs/generated/es/inco/fhe/v1/genesis_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/fhe/v1/genesis_pb.js +10 -10
- package/dist/cjs/generated/es/inco/fhe/v1/query_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/fhe/v1/query_pb.js +22 -22
- package/dist/cjs/generated/es/inco/fhe/v1/tx_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/fhe/v1/tx_pb.js +22 -22
- package/dist/cjs/generated/es/inco/fhe/v1/types_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/fhe/v1/types_pb.js +16 -16
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +194 -1
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +114 -14
- package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.js +10 -10
- package/dist/cjs/generated/es/inco/preflight/v1/genesis_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/preflight/v1/genesis_pb.js +5 -5
- package/dist/cjs/generated/es/inco/preflight/v1/query_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/preflight/v1/query_pb.js +8 -8
- package/dist/cjs/generated/es/inco/preflight/v1/tx_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/preflight/v1/tx_pb.js +10 -10
- package/dist/cjs/generated/es/inco/preflight/v1/types_pb.d.ts +1 -1
- package/dist/cjs/generated/es/inco/preflight/v1/types_pb.js +8 -8
- package/dist/cjs/generated/lightning.d.ts +42 -0
- package/dist/cjs/generated/lightning.js +45 -1
- package/dist/cjs/generated/local-node.d.ts +13 -2
- package/dist/cjs/generated/local-node.js +14 -3
- package/dist/cjs/generated/ts/amino/amino.js +1 -1
- package/dist/cjs/generated/ts/cometbft/abci/v1/types.js +49 -49
- package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.js +3 -3
- package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.js +7 -7
- package/dist/cjs/generated/ts/cometbft/types/v1/params.js +11 -11
- package/dist/cjs/generated/ts/cometbft/types/v1/validator.js +5 -5
- package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.js +5 -5
- package/dist/cjs/generated/ts/cosmos/msg/v1/msg.js +1 -1
- package/dist/cjs/generated/ts/cosmos_proto/cosmos.js +4 -4
- package/dist/cjs/generated/ts/gogoproto/gogo.js +1 -1
- package/dist/cjs/generated/ts/google/api/annotations.js +1 -1
- package/dist/cjs/generated/ts/google/api/http.js +5 -5
- package/dist/cjs/generated/ts/google/protobuf/descriptor.js +35 -35
- package/dist/cjs/generated/ts/google/protobuf/duration.js +3 -3
- package/dist/cjs/generated/ts/google/protobuf/timestamp.js +3 -3
- package/dist/cjs/generated/ts/google/protobuf/wrappers.js +11 -11
- package/dist/cjs/generated/ts/inco/abci/v1/types.js +3 -3
- package/dist/cjs/generated/ts/inco/fhe/module/v1/module.js +3 -3
- package/dist/cjs/generated/ts/inco/fhe/v1/events.js +4 -4
- package/dist/cjs/generated/ts/inco/fhe/v1/genesis.js +9 -9
- package/dist/cjs/generated/ts/inco/fhe/v1/query.d.ts +19 -19
- package/dist/cjs/generated/ts/inco/fhe/v1/query.js +20 -20
- package/dist/cjs/generated/ts/inco/fhe/v1/tx.d.ts +19 -19
- package/dist/cjs/generated/ts/inco/fhe/v1/tx.js +20 -20
- package/dist/cjs/generated/ts/inco/fhe/v1/types.js +14 -14
- package/dist/cjs/generated/ts/inco/originchain/module/v1/module.js +3 -3
- package/dist/cjs/generated/ts/inco/originchain/v1/abci.js +6 -6
- package/dist/cjs/generated/ts/inco/originchain/v1/events.js +4 -4
- package/dist/cjs/generated/ts/inco/originchain/v1/genesis.js +3 -3
- package/dist/cjs/generated/ts/inco/originchain/v1/query.d.ts +5 -5
- package/dist/cjs/generated/ts/inco/originchain/v1/query.js +6 -6
- package/dist/cjs/generated/ts/inco/originchain/v1/tx.d.ts +3 -3
- package/dist/cjs/generated/ts/inco/originchain/v1/tx.js +4 -4
- package/dist/cjs/generated/ts/inco/originchain/v1/types.js +4 -4
- package/dist/cjs/generated/ts/inco/preflight/module/v1/module.js +3 -3
- package/dist/cjs/generated/ts/inco/preflight/v1/genesis.js +4 -4
- package/dist/cjs/generated/ts/inco/preflight/v1/query.d.ts +5 -5
- package/dist/cjs/generated/ts/inco/preflight/v1/query.js +6 -6
- package/dist/cjs/generated/ts/inco/preflight/v1/tx.d.ts +7 -7
- package/dist/cjs/generated/ts/inco/preflight/v1/tx.js +8 -8
- package/dist/cjs/generated/ts/inco/preflight/v1/types.js +7 -7
- package/dist/cjs/lite/attested-compute.d.ts +4 -0
- package/dist/cjs/lite/attested-compute.js +6 -0
- package/dist/cjs/lite/ecies.js +2 -2
- package/dist/cjs/lite/lightning.d.ts +10 -2
- package/dist/cjs/lite/lightning.js +16 -3
- package/dist/cjs/local/local-node.d.ts +4 -1
- package/dist/cjs/local/local-node.js +9 -4
- package/dist/cjs/reencryption/eip712.js +5 -3
- package/dist/cjs/viem.d.ts +362 -0
- package/dist/cjs/viem.js +2 -2
- package/dist/esm/attestedcompute/attested-compute.d.ts +38 -0
- package/dist/esm/attestedcompute/attested-compute.js +95 -0
- package/dist/esm/attestedcompute/types.d.ts +34 -0
- package/dist/esm/attestedcompute/types.js +42 -0
- package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +6 -0
- package/dist/esm/attesteddecrypt/attested-decrypt.js +4 -3
- package/dist/esm/attesteddecrypt/types.d.ts +6 -4
- package/dist/esm/chain.d.ts +3 -0
- package/dist/esm/chain.js +5 -2
- package/dist/esm/generated/abis/lightning.d.ts +4 -0
- package/dist/esm/generated/abis/lightning.js +5 -2
- package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.d.ts +1 -1
- package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.js +2 -2
- package/dist/esm/generated/es/cosmos_proto/cosmos_pb.d.ts +1 -1
- package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +2 -2
- package/dist/esm/generated/es/google/api/annotations_pb.d.ts +1 -1
- package/dist/esm/generated/es/google/api/annotations_pb.js +1 -1
- package/dist/esm/generated/es/google/api/http_pb.d.ts +1 -1
- package/dist/esm/generated/es/google/api/http_pb.js +1 -1
- package/dist/esm/generated/es/inco/fhe/v1/events_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/fhe/v1/events_pb.js +2 -2
- package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.js +2 -2
- package/dist/esm/generated/es/inco/fhe/v1/query_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/fhe/v1/query_pb.js +2 -2
- package/dist/esm/generated/es/inco/fhe/v1/tx_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/fhe/v1/tx_pb.js +2 -2
- package/dist/esm/generated/es/inco/fhe/v1/types_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +2 -2
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +194 -1
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +106 -6
- package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +2 -2
- package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.js +2 -2
- package/dist/esm/generated/es/inco/preflight/v1/query_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/preflight/v1/query_pb.js +2 -2
- package/dist/esm/generated/es/inco/preflight/v1/tx_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/preflight/v1/tx_pb.js +2 -2
- package/dist/esm/generated/es/inco/preflight/v1/types_pb.d.ts +1 -1
- package/dist/esm/generated/es/inco/preflight/v1/types_pb.js +2 -2
- package/dist/esm/generated/lightning.d.ts +42 -0
- package/dist/esm/generated/lightning.js +45 -1
- package/dist/esm/generated/local-node.d.ts +13 -2
- package/dist/esm/generated/local-node.js +14 -3
- package/dist/esm/generated/ts/amino/amino.js +1 -1
- package/dist/esm/generated/ts/cometbft/abci/v1/types.js +49 -49
- package/dist/esm/generated/ts/cometbft/crypto/v1/keys.js +3 -3
- package/dist/esm/generated/ts/cometbft/crypto/v1/proof.js +7 -7
- package/dist/esm/generated/ts/cometbft/types/v1/params.js +11 -11
- package/dist/esm/generated/ts/cometbft/types/v1/validator.js +5 -5
- package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.js +5 -5
- package/dist/esm/generated/ts/cosmos/msg/v1/msg.js +1 -1
- package/dist/esm/generated/ts/cosmos_proto/cosmos.js +4 -4
- package/dist/esm/generated/ts/gogoproto/gogo.js +1 -1
- package/dist/esm/generated/ts/google/api/annotations.js +1 -1
- package/dist/esm/generated/ts/google/api/http.js +5 -5
- package/dist/esm/generated/ts/google/protobuf/descriptor.js +35 -35
- package/dist/esm/generated/ts/google/protobuf/duration.js +3 -3
- package/dist/esm/generated/ts/google/protobuf/timestamp.js +3 -3
- package/dist/esm/generated/ts/google/protobuf/wrappers.js +11 -11
- package/dist/esm/generated/ts/inco/abci/v1/types.js +3 -3
- package/dist/esm/generated/ts/inco/fhe/module/v1/module.js +3 -3
- package/dist/esm/generated/ts/inco/fhe/v1/events.js +4 -4
- package/dist/esm/generated/ts/inco/fhe/v1/genesis.js +9 -9
- package/dist/esm/generated/ts/inco/fhe/v1/query.d.ts +19 -19
- package/dist/esm/generated/ts/inco/fhe/v1/query.js +20 -20
- package/dist/esm/generated/ts/inco/fhe/v1/tx.d.ts +19 -19
- package/dist/esm/generated/ts/inco/fhe/v1/tx.js +20 -20
- package/dist/esm/generated/ts/inco/fhe/v1/types.js +14 -14
- package/dist/esm/generated/ts/inco/originchain/module/v1/module.js +3 -3
- package/dist/esm/generated/ts/inco/originchain/v1/abci.js +6 -6
- package/dist/esm/generated/ts/inco/originchain/v1/events.js +4 -4
- package/dist/esm/generated/ts/inco/originchain/v1/genesis.js +3 -3
- package/dist/esm/generated/ts/inco/originchain/v1/query.d.ts +5 -5
- package/dist/esm/generated/ts/inco/originchain/v1/query.js +6 -6
- package/dist/esm/generated/ts/inco/originchain/v1/tx.d.ts +3 -3
- package/dist/esm/generated/ts/inco/originchain/v1/tx.js +4 -4
- package/dist/esm/generated/ts/inco/originchain/v1/types.js +4 -4
- package/dist/esm/generated/ts/inco/preflight/module/v1/module.js +3 -3
- package/dist/esm/generated/ts/inco/preflight/v1/genesis.js +4 -4
- package/dist/esm/generated/ts/inco/preflight/v1/query.d.ts +5 -5
- package/dist/esm/generated/ts/inco/preflight/v1/query.js +6 -6
- package/dist/esm/generated/ts/inco/preflight/v1/tx.d.ts +7 -7
- package/dist/esm/generated/ts/inco/preflight/v1/tx.js +8 -8
- package/dist/esm/generated/ts/inco/preflight/v1/types.js +7 -7
- package/dist/esm/lite/attested-compute.d.ts +4 -0
- package/dist/esm/lite/attested-compute.js +3 -0
- package/dist/esm/lite/ecies.js +2 -2
- package/dist/esm/lite/lightning.d.ts +10 -2
- package/dist/esm/lite/lightning.js +16 -3
- package/dist/esm/local/local-node.d.ts +4 -1
- package/dist/esm/local/local-node.js +9 -4
- package/dist/esm/reencryption/eip712.js +5 -3
- package/dist/esm/viem.d.ts +362 -0
- package/dist/esm/viem.js +3 -3
- package/dist/types/attestedcompute/attested-compute.d.ts +38 -0
- package/dist/types/attestedcompute/types.d.ts +34 -0
- package/dist/types/attesteddecrypt/attested-decrypt.d.ts +6 -0
- package/dist/types/attesteddecrypt/types.d.ts +6 -4
- package/dist/types/chain.d.ts +3 -0
- package/dist/types/generated/abis/lightning.d.ts +4 -0
- package/dist/types/generated/es/cosmos/msg/v1/msg_pb.d.ts +1 -1
- package/dist/types/generated/es/cosmos_proto/cosmos_pb.d.ts +1 -1
- package/dist/types/generated/es/google/api/annotations_pb.d.ts +1 -1
- package/dist/types/generated/es/google/api/http_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/fhe/v1/events_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/fhe/v1/genesis_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/fhe/v1/query_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/fhe/v1/tx_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/fhe/v1/types_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +194 -1
- package/dist/types/generated/es/inco/kms/lite/v1/types_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/preflight/v1/genesis_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/preflight/v1/query_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/preflight/v1/tx_pb.d.ts +1 -1
- package/dist/types/generated/es/inco/preflight/v1/types_pb.d.ts +1 -1
- package/dist/types/generated/lightning.d.ts +42 -0
- package/dist/types/generated/local-node.d.ts +13 -2
- package/dist/types/generated/ts/inco/fhe/v1/query.d.ts +19 -19
- package/dist/types/generated/ts/inco/fhe/v1/tx.d.ts +19 -19
- package/dist/types/generated/ts/inco/originchain/v1/query.d.ts +5 -5
- package/dist/types/generated/ts/inco/originchain/v1/tx.d.ts +3 -3
- package/dist/types/generated/ts/inco/preflight/v1/query.d.ts +5 -5
- package/dist/types/generated/ts/inco/preflight/v1/tx.d.ts +7 -7
- package/dist/types/lite/attested-compute.d.ts +4 -0
- package/dist/types/lite/lightning.d.ts +10 -2
- package/dist/types/local/local-node.d.ts +4 -1
- package/dist/types/viem.d.ts +362 -0
- package/package.json +4 -1
- package/dist/cjs/generated/abis/index.d.ts +0 -2
- package/dist/cjs/generated/abis/index.js +0 -19
- package/dist/cjs/generated/es/cosmos/ics23/v1/proofs_pb.d.ts +0 -593
- package/dist/cjs/generated/es/cosmos/ics23/v1/proofs_pb.js +0 -201
- package/dist/cjs/generated/es/kms/base_pb.d.ts +0 -765
- package/dist/cjs/generated/es/kms/base_pb.js +0 -241
- package/dist/cjs/generated/es/sf/ethereum/type/v2/type_pb.d.ts +0 -1736
- package/dist/cjs/generated/es/sf/ethereum/type/v2/type_pb.js +0 -574
- package/dist/esm/generated/abis/index.d.ts +0 -2
- package/dist/esm/generated/abis/index.js +0 -3
- package/dist/esm/generated/es/cosmos/ics23/v1/proofs_pb.d.ts +0 -593
- package/dist/esm/generated/es/cosmos/ics23/v1/proofs_pb.js +0 -198
- package/dist/esm/generated/es/kms/base_pb.d.ts +0 -765
- package/dist/esm/generated/es/kms/base_pb.js +0 -238
- package/dist/esm/generated/es/sf/ethereum/type/v2/type_pb.d.ts +0 -1736
- package/dist/esm/generated/es/sf/ethereum/type/v2/type_pb.js +0 -571
- package/dist/types/generated/abis/index.d.ts +0 -2
- package/dist/types/generated/es/cosmos/ics23/v1/proofs_pb.d.ts +0 -593
- package/dist/types/generated/es/kms/base_pb.d.ts +0 -765
- package/dist/types/generated/es/sf/ethereum/type/v2/type_pb.d.ts +0 -1736
package/dist/cjs/viem.d.ts
CHANGED
@@ -8,6 +8,7 @@ export declare const chains: {
|
|
8
8
|
readonly apiUrl: "https://api-sepolia.etherscan.io/api";
|
9
9
|
};
|
10
10
|
};
|
11
|
+
blockTime?: number | undefined | undefined;
|
11
12
|
contracts: {
|
12
13
|
readonly multicall3: {
|
13
14
|
readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
|
@@ -21,6 +22,7 @@ export declare const chains: {
|
|
21
22
|
readonly blockCreated: 5317080;
|
22
23
|
};
|
23
24
|
};
|
25
|
+
ensTlds?: readonly string[] | undefined;
|
24
26
|
id: 11155111;
|
25
27
|
name: "Sepolia";
|
26
28
|
nativeCurrency: {
|
@@ -28,6 +30,7 @@ export declare const chains: {
|
|
28
30
|
readonly symbol: "ETH";
|
29
31
|
readonly decimals: 18;
|
30
32
|
};
|
33
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
31
34
|
rpcUrls: {
|
32
35
|
readonly default: {
|
33
36
|
readonly http: readonly ["https://sepolia.drpc.org"];
|
@@ -48,6 +51,7 @@ export declare const chains: {
|
|
48
51
|
readonly apiUrl: "https://api-sepolia.basescan.org/api";
|
49
52
|
};
|
50
53
|
};
|
54
|
+
blockTime: 2000;
|
51
55
|
contracts: {
|
52
56
|
readonly disputeGameFactory: {
|
53
57
|
readonly 11155111: {
|
@@ -94,6 +98,7 @@ export declare const chains: {
|
|
94
98
|
readonly address: "0x4200000000000000000000000000000000000016";
|
95
99
|
};
|
96
100
|
};
|
101
|
+
ensTlds?: readonly string[] | undefined;
|
97
102
|
id: 84532;
|
98
103
|
name: "Base Sepolia";
|
99
104
|
nativeCurrency: {
|
@@ -101,6 +106,7 @@ export declare const chains: {
|
|
101
106
|
readonly symbol: "ETH";
|
102
107
|
readonly decimals: 18;
|
103
108
|
};
|
109
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
104
110
|
rpcUrls: {
|
105
111
|
readonly default: {
|
106
112
|
readonly http: readonly ["https://sepolia.base.org"];
|
@@ -353,12 +359,14 @@ export declare const chains: {
|
|
353
359
|
readonly url: "https://testnet.monadexplorer.com";
|
354
360
|
};
|
355
361
|
};
|
362
|
+
blockTime?: number | undefined | undefined;
|
356
363
|
contracts: {
|
357
364
|
readonly multicall3: {
|
358
365
|
readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
|
359
366
|
readonly blockCreated: 251449;
|
360
367
|
};
|
361
368
|
};
|
369
|
+
ensTlds?: readonly string[] | undefined;
|
362
370
|
id: 10143;
|
363
371
|
name: "Monad Testnet";
|
364
372
|
nativeCurrency: {
|
@@ -366,6 +374,7 @@ export declare const chains: {
|
|
366
374
|
readonly symbol: "MON";
|
367
375
|
readonly decimals: 18;
|
368
376
|
};
|
377
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
369
378
|
rpcUrls: {
|
370
379
|
readonly default: {
|
371
380
|
readonly http: readonly ["https://testnet-rpc.monad.xyz"];
|
@@ -378,6 +387,44 @@ export declare const chains: {
|
|
378
387
|
formatters?: undefined;
|
379
388
|
serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
|
380
389
|
};
|
390
|
+
plasmaTestnet: {
|
391
|
+
blockExplorers: {
|
392
|
+
readonly default: {
|
393
|
+
readonly name: "RouteScan";
|
394
|
+
readonly url: "https://testnet.plasmaexplorer.io";
|
395
|
+
};
|
396
|
+
};
|
397
|
+
blockTime?: number | undefined | undefined;
|
398
|
+
contracts?: {
|
399
|
+
[x: string]: import("viem").ChainContract | {
|
400
|
+
[sourceId: number]: import("viem").ChainContract | undefined;
|
401
|
+
} | undefined;
|
402
|
+
ensRegistry?: import("viem").ChainContract | undefined;
|
403
|
+
ensUniversalResolver?: import("viem").ChainContract | undefined;
|
404
|
+
multicall3?: import("viem").ChainContract | undefined;
|
405
|
+
universalSignatureVerifier?: import("viem").ChainContract | undefined;
|
406
|
+
} | undefined;
|
407
|
+
ensTlds?: readonly string[] | undefined;
|
408
|
+
id: 9746;
|
409
|
+
name: "Plasma Testnet";
|
410
|
+
nativeCurrency: {
|
411
|
+
readonly name: "Testnet Plasma";
|
412
|
+
readonly symbol: "XPL";
|
413
|
+
readonly decimals: 18;
|
414
|
+
};
|
415
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
416
|
+
rpcUrls: {
|
417
|
+
readonly default: {
|
418
|
+
readonly http: readonly ["https://testnet-rpc.plasma.to"];
|
419
|
+
};
|
420
|
+
};
|
421
|
+
sourceId?: number | undefined | undefined;
|
422
|
+
testnet: true;
|
423
|
+
custom?: Record<string, unknown> | undefined;
|
424
|
+
fees?: import("viem").ChainFees<undefined> | undefined;
|
425
|
+
formatters?: undefined;
|
426
|
+
serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
|
427
|
+
};
|
381
428
|
anvil: {
|
382
429
|
blockExplorers?: {
|
383
430
|
[key: string]: {
|
@@ -391,6 +438,7 @@ export declare const chains: {
|
|
391
438
|
apiUrl?: string | undefined;
|
392
439
|
};
|
393
440
|
} | undefined | undefined;
|
441
|
+
blockTime?: number | undefined | undefined;
|
394
442
|
contracts?: {
|
395
443
|
[x: string]: import("viem").ChainContract | {
|
396
444
|
[sourceId: number]: import("viem").ChainContract | undefined;
|
@@ -400,6 +448,7 @@ export declare const chains: {
|
|
400
448
|
multicall3?: import("viem").ChainContract | undefined;
|
401
449
|
universalSignatureVerifier?: import("viem").ChainContract | undefined;
|
402
450
|
} | undefined;
|
451
|
+
ensTlds?: readonly string[] | undefined;
|
403
452
|
id: 31337;
|
404
453
|
name: "Anvil";
|
405
454
|
nativeCurrency: {
|
@@ -407,6 +456,7 @@ export declare const chains: {
|
|
407
456
|
readonly name: "Ether";
|
408
457
|
readonly symbol: "ETH";
|
409
458
|
};
|
459
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
410
460
|
rpcUrls: {
|
411
461
|
readonly default: {
|
412
462
|
readonly http: readonly ["http://127.0.0.1:8545"];
|
@@ -420,6 +470,318 @@ export declare const chains: {
|
|
420
470
|
formatters?: undefined;
|
421
471
|
serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
|
422
472
|
};
|
473
|
+
worldchainSepolia: {
|
474
|
+
blockExplorers: {
|
475
|
+
readonly default: {
|
476
|
+
readonly name: "Worldscan Sepolia";
|
477
|
+
readonly url: "https://sepolia.worldscan.org";
|
478
|
+
readonly apiUrl: "https://api-sepolia.worldscan.org/api";
|
479
|
+
};
|
480
|
+
readonly blockscout: {
|
481
|
+
readonly name: "Blockscout";
|
482
|
+
readonly url: "https://worldchain-sepolia.explorer.alchemy.com";
|
483
|
+
readonly apiUrl: "https://worldchain-sepolia.explorer.alchemy.com/api";
|
484
|
+
};
|
485
|
+
};
|
486
|
+
blockTime: 2000;
|
487
|
+
contracts: {
|
488
|
+
readonly multicall3: {
|
489
|
+
readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
|
490
|
+
readonly blockCreated: 0;
|
491
|
+
};
|
492
|
+
readonly disputeGameFactory: {
|
493
|
+
readonly 11155111: {
|
494
|
+
readonly address: "0x8Ec1111f67Dad6b6A93B3F42DfBC92D81c98449A";
|
495
|
+
};
|
496
|
+
};
|
497
|
+
readonly l2OutputOracle: {
|
498
|
+
readonly 11155111: {
|
499
|
+
readonly address: "0xc8886f8BAb6Eaeb215aDB5f1c686BF699248300e";
|
500
|
+
};
|
501
|
+
};
|
502
|
+
readonly portal: {
|
503
|
+
readonly 11155111: {
|
504
|
+
readonly address: "0xFf6EBa109271fe6d4237EeeD4bAb1dD9A77dD1A4";
|
505
|
+
};
|
506
|
+
};
|
507
|
+
readonly l1StandardBridge: {
|
508
|
+
readonly 11155111: {
|
509
|
+
readonly address: "0xd7DF54b3989855eb66497301a4aAEc33Dbb3F8DE";
|
510
|
+
};
|
511
|
+
};
|
512
|
+
readonly gasPriceOracle: {
|
513
|
+
readonly address: "0x420000000000000000000000000000000000000F";
|
514
|
+
};
|
515
|
+
readonly l1Block: {
|
516
|
+
readonly address: "0x4200000000000000000000000000000000000015";
|
517
|
+
};
|
518
|
+
readonly l2CrossDomainMessenger: {
|
519
|
+
readonly address: "0x4200000000000000000000000000000000000007";
|
520
|
+
};
|
521
|
+
readonly l2Erc721Bridge: {
|
522
|
+
readonly address: "0x4200000000000000000000000000000000000014";
|
523
|
+
};
|
524
|
+
readonly l2StandardBridge: {
|
525
|
+
readonly address: "0x4200000000000000000000000000000000000010";
|
526
|
+
};
|
527
|
+
readonly l2ToL1MessagePasser: {
|
528
|
+
readonly address: "0x4200000000000000000000000000000000000016";
|
529
|
+
};
|
530
|
+
};
|
531
|
+
ensTlds?: readonly string[] | undefined;
|
532
|
+
id: 4801;
|
533
|
+
name: "World Chain Sepolia";
|
534
|
+
nativeCurrency: {
|
535
|
+
readonly name: "Ether";
|
536
|
+
readonly symbol: "ETH";
|
537
|
+
readonly decimals: 18;
|
538
|
+
};
|
539
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
540
|
+
rpcUrls: {
|
541
|
+
readonly default: {
|
542
|
+
readonly http: readonly ["https://worldchain-sepolia.g.alchemy.com/public"];
|
543
|
+
};
|
544
|
+
};
|
545
|
+
sourceId: 11155111;
|
546
|
+
testnet: true;
|
547
|
+
custom?: Record<string, unknown> | undefined;
|
548
|
+
fees?: import("viem").ChainFees<undefined> | undefined;
|
549
|
+
formatters: {
|
550
|
+
readonly block: {
|
551
|
+
exclude: [] | undefined;
|
552
|
+
format: (args: import("viem/chains").OpStackRpcBlock) => {
|
553
|
+
baseFeePerGas: bigint | null;
|
554
|
+
blobGasUsed: bigint;
|
555
|
+
difficulty: bigint;
|
556
|
+
excessBlobGas: bigint;
|
557
|
+
extraData: import("viem").Hex;
|
558
|
+
gasLimit: bigint;
|
559
|
+
gasUsed: bigint;
|
560
|
+
hash: `0x${string}` | null;
|
561
|
+
logsBloom: `0x${string}` | null;
|
562
|
+
miner: import("abitype").Address;
|
563
|
+
mixHash: import("viem").Hash;
|
564
|
+
nonce: `0x${string}` | null;
|
565
|
+
number: bigint | null;
|
566
|
+
parentBeaconBlockRoot?: `0x${string}` | undefined;
|
567
|
+
parentHash: import("viem").Hash;
|
568
|
+
receiptsRoot: import("viem").Hex;
|
569
|
+
sealFields: import("viem").Hex[];
|
570
|
+
sha3Uncles: import("viem").Hash;
|
571
|
+
size: bigint;
|
572
|
+
stateRoot: import("viem").Hash;
|
573
|
+
timestamp: bigint;
|
574
|
+
totalDifficulty: bigint | null;
|
575
|
+
transactions: `0x${string}`[] | import("viem/chains").OpStackTransaction<boolean>[];
|
576
|
+
transactionsRoot: import("viem").Hash;
|
577
|
+
uncles: import("viem").Hash[];
|
578
|
+
withdrawals?: import("viem").Withdrawal[] | undefined | undefined;
|
579
|
+
withdrawalsRoot?: `0x${string}` | undefined;
|
580
|
+
} & {};
|
581
|
+
type: "block";
|
582
|
+
};
|
583
|
+
readonly transaction: {
|
584
|
+
exclude: [] | undefined;
|
585
|
+
format: (args: import("viem/chains").OpStackRpcTransaction) => ({
|
586
|
+
blockHash: `0x${string}` | null;
|
587
|
+
blockNumber: bigint | null;
|
588
|
+
from: import("abitype").Address;
|
589
|
+
gas: bigint;
|
590
|
+
hash: import("viem").Hash;
|
591
|
+
input: import("viem").Hex;
|
592
|
+
nonce: number;
|
593
|
+
r: import("viem").Hex;
|
594
|
+
s: import("viem").Hex;
|
595
|
+
to: import("abitype").Address | null;
|
596
|
+
transactionIndex: number | null;
|
597
|
+
typeHex: import("viem").Hex | null;
|
598
|
+
v: bigint;
|
599
|
+
value: bigint;
|
600
|
+
yParity: number;
|
601
|
+
gasPrice?: undefined | undefined;
|
602
|
+
maxFeePerBlobGas?: undefined | undefined;
|
603
|
+
maxFeePerGas: bigint;
|
604
|
+
maxPriorityFeePerGas: bigint;
|
605
|
+
isSystemTx?: boolean;
|
606
|
+
mint?: bigint | undefined | undefined;
|
607
|
+
sourceHash: import("viem").Hex;
|
608
|
+
type: "deposit";
|
609
|
+
} | {
|
610
|
+
r: import("viem").Hex;
|
611
|
+
s: import("viem").Hex;
|
612
|
+
v: bigint;
|
613
|
+
to: import("abitype").Address | null;
|
614
|
+
from: import("abitype").Address;
|
615
|
+
gas: bigint;
|
616
|
+
nonce: number;
|
617
|
+
value: bigint;
|
618
|
+
blockHash: `0x${string}` | null;
|
619
|
+
blockNumber: bigint | null;
|
620
|
+
hash: import("viem").Hash;
|
621
|
+
input: import("viem").Hex;
|
622
|
+
transactionIndex: number | null;
|
623
|
+
typeHex: import("viem").Hex | null;
|
624
|
+
accessList?: undefined | undefined;
|
625
|
+
authorizationList?: undefined | undefined;
|
626
|
+
blobVersionedHashes?: undefined | undefined;
|
627
|
+
chainId?: number | undefined;
|
628
|
+
yParity?: undefined | undefined;
|
629
|
+
type: "legacy";
|
630
|
+
gasPrice: bigint;
|
631
|
+
maxFeePerBlobGas?: undefined | undefined;
|
632
|
+
maxFeePerGas?: undefined | undefined;
|
633
|
+
maxPriorityFeePerGas?: undefined | undefined;
|
634
|
+
isSystemTx?: undefined | undefined;
|
635
|
+
mint?: undefined | undefined;
|
636
|
+
sourceHash?: undefined | undefined;
|
637
|
+
} | {
|
638
|
+
blockHash: `0x${string}` | null;
|
639
|
+
blockNumber: bigint | null;
|
640
|
+
from: import("abitype").Address;
|
641
|
+
gas: bigint;
|
642
|
+
hash: import("viem").Hash;
|
643
|
+
input: import("viem").Hex;
|
644
|
+
nonce: number;
|
645
|
+
r: import("viem").Hex;
|
646
|
+
s: import("viem").Hex;
|
647
|
+
to: import("abitype").Address | null;
|
648
|
+
transactionIndex: number | null;
|
649
|
+
typeHex: import("viem").Hex | null;
|
650
|
+
v: bigint;
|
651
|
+
value: bigint;
|
652
|
+
yParity: number;
|
653
|
+
accessList: import("viem").AccessList;
|
654
|
+
authorizationList?: undefined | undefined;
|
655
|
+
blobVersionedHashes?: undefined | undefined;
|
656
|
+
chainId: number;
|
657
|
+
type: "eip2930";
|
658
|
+
gasPrice: bigint;
|
659
|
+
maxFeePerBlobGas?: undefined | undefined;
|
660
|
+
maxFeePerGas?: undefined | undefined;
|
661
|
+
maxPriorityFeePerGas?: undefined | undefined;
|
662
|
+
isSystemTx?: undefined | undefined;
|
663
|
+
mint?: undefined | undefined;
|
664
|
+
sourceHash?: undefined | undefined;
|
665
|
+
} | {
|
666
|
+
blockHash: `0x${string}` | null;
|
667
|
+
blockNumber: bigint | null;
|
668
|
+
from: import("abitype").Address;
|
669
|
+
gas: bigint;
|
670
|
+
hash: import("viem").Hash;
|
671
|
+
input: import("viem").Hex;
|
672
|
+
nonce: number;
|
673
|
+
r: import("viem").Hex;
|
674
|
+
s: import("viem").Hex;
|
675
|
+
to: import("abitype").Address | null;
|
676
|
+
transactionIndex: number | null;
|
677
|
+
typeHex: import("viem").Hex | null;
|
678
|
+
v: bigint;
|
679
|
+
value: bigint;
|
680
|
+
yParity: number;
|
681
|
+
accessList: import("viem").AccessList;
|
682
|
+
authorizationList?: undefined | undefined;
|
683
|
+
blobVersionedHashes?: undefined | undefined;
|
684
|
+
chainId: number;
|
685
|
+
type: "eip1559";
|
686
|
+
gasPrice?: undefined | undefined;
|
687
|
+
maxFeePerBlobGas?: undefined | undefined;
|
688
|
+
maxFeePerGas: bigint;
|
689
|
+
maxPriorityFeePerGas: bigint;
|
690
|
+
isSystemTx?: undefined | undefined;
|
691
|
+
mint?: undefined | undefined;
|
692
|
+
sourceHash?: undefined | undefined;
|
693
|
+
} | {
|
694
|
+
blockHash: `0x${string}` | null;
|
695
|
+
blockNumber: bigint | null;
|
696
|
+
from: import("abitype").Address;
|
697
|
+
gas: bigint;
|
698
|
+
hash: import("viem").Hash;
|
699
|
+
input: import("viem").Hex;
|
700
|
+
nonce: number;
|
701
|
+
r: import("viem").Hex;
|
702
|
+
s: import("viem").Hex;
|
703
|
+
to: import("abitype").Address | null;
|
704
|
+
transactionIndex: number | null;
|
705
|
+
typeHex: import("viem").Hex | null;
|
706
|
+
v: bigint;
|
707
|
+
value: bigint;
|
708
|
+
yParity: number;
|
709
|
+
accessList: import("viem").AccessList;
|
710
|
+
authorizationList?: undefined | undefined;
|
711
|
+
blobVersionedHashes: readonly import("viem").Hex[];
|
712
|
+
chainId: number;
|
713
|
+
type: "eip4844";
|
714
|
+
gasPrice?: undefined | undefined;
|
715
|
+
maxFeePerBlobGas: bigint;
|
716
|
+
maxFeePerGas: bigint;
|
717
|
+
maxPriorityFeePerGas: bigint;
|
718
|
+
isSystemTx?: undefined | undefined;
|
719
|
+
mint?: undefined | undefined;
|
720
|
+
sourceHash?: undefined | undefined;
|
721
|
+
} | {
|
722
|
+
blockHash: `0x${string}` | null;
|
723
|
+
blockNumber: bigint | null;
|
724
|
+
from: import("abitype").Address;
|
725
|
+
gas: bigint;
|
726
|
+
hash: import("viem").Hash;
|
727
|
+
input: import("viem").Hex;
|
728
|
+
nonce: number;
|
729
|
+
r: import("viem").Hex;
|
730
|
+
s: import("viem").Hex;
|
731
|
+
to: import("abitype").Address | null;
|
732
|
+
transactionIndex: number | null;
|
733
|
+
typeHex: import("viem").Hex | null;
|
734
|
+
v: bigint;
|
735
|
+
value: bigint;
|
736
|
+
yParity: number;
|
737
|
+
accessList: import("viem").AccessList;
|
738
|
+
authorizationList: import("viem").SignedAuthorizationList;
|
739
|
+
blobVersionedHashes?: undefined | undefined;
|
740
|
+
chainId: number;
|
741
|
+
type: "eip7702";
|
742
|
+
gasPrice?: undefined | undefined;
|
743
|
+
maxFeePerBlobGas?: undefined | undefined;
|
744
|
+
maxFeePerGas: bigint;
|
745
|
+
maxPriorityFeePerGas: bigint;
|
746
|
+
isSystemTx?: undefined | undefined;
|
747
|
+
mint?: undefined | undefined;
|
748
|
+
sourceHash?: undefined | undefined;
|
749
|
+
}) & {};
|
750
|
+
type: "transaction";
|
751
|
+
};
|
752
|
+
readonly transactionReceipt: {
|
753
|
+
exclude: [] | undefined;
|
754
|
+
format: (args: import("viem/chains").OpStackRpcTransactionReceipt) => {
|
755
|
+
blobGasPrice?: bigint | undefined;
|
756
|
+
blobGasUsed?: bigint | undefined;
|
757
|
+
blockHash: import("viem").Hash;
|
758
|
+
blockNumber: bigint;
|
759
|
+
contractAddress: import("abitype").Address | null | undefined;
|
760
|
+
cumulativeGasUsed: bigint;
|
761
|
+
effectiveGasPrice: bigint;
|
762
|
+
from: import("abitype").Address;
|
763
|
+
gasUsed: bigint;
|
764
|
+
logs: import("viem").Log<bigint, number, false>[];
|
765
|
+
logsBloom: import("viem").Hex;
|
766
|
+
root?: `0x${string}` | undefined;
|
767
|
+
status: "success" | "reverted";
|
768
|
+
to: import("abitype").Address | null;
|
769
|
+
transactionHash: import("viem").Hash;
|
770
|
+
transactionIndex: number;
|
771
|
+
type: import("viem").TransactionType;
|
772
|
+
l1GasPrice: bigint | null;
|
773
|
+
l1GasUsed: bigint | null;
|
774
|
+
l1Fee: bigint | null;
|
775
|
+
l1FeeScalar: number | null;
|
776
|
+
} & {};
|
777
|
+
type: "transactionReceipt";
|
778
|
+
};
|
779
|
+
};
|
780
|
+
serializers: {
|
781
|
+
readonly transaction: typeof import("viem/chains").serializeTransactionOpStack;
|
782
|
+
};
|
783
|
+
readonly network: "worldchain-sepolia";
|
784
|
+
};
|
423
785
|
};
|
424
786
|
type ChainName = keyof typeof chains;
|
425
787
|
export type ViemChain = (typeof chains)[ChainName];
|
package/dist/cjs/viem.js
CHANGED
@@ -4,9 +4,9 @@ exports.chains = void 0;
|
|
4
4
|
exports.getViemChain = getViemChain;
|
5
5
|
const chains_1 = require("viem/chains");
|
6
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 };
|
7
|
+
exports.chains = { sepolia: chains_1.sepolia, baseSepolia: chains_1.baseSepolia, monadTestnet: chains_1.monadTestnet, plasmaTestnet: chains_1.plasmaTestnet, anvil: chains_1.anvil, worldchainSepolia: chains_1.worldchainSepolia };
|
8
8
|
function getViemChain(chainish) {
|
9
9
|
const { name } = (0, chain_js_1.getSupportedChain)(chainish);
|
10
10
|
return exports.chains[name];
|
11
11
|
}
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmllbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aWVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNBLG9DQUdDO0FBWkQsd0NBQTBHO0FBQzFHLHlDQUF5RDtBQUU1QyxRQUFBLE1BQU0sR0FBRyxFQUFFLE9BQU8sRUFBUCxnQkFBTyxFQUFFLFdBQVcsRUFBWCxvQkFBVyxFQUFFLFlBQVksRUFBWixxQkFBWSxFQUFFLGFBQWEsRUFBYixzQkFBYSxFQUFFLEtBQUssRUFBTCxjQUFLLEVBQUUsaUJBQWlCLEVBQWpCLDBCQUFpQixFQUFFLENBQUM7QUFNdEcsU0FBZ0IsWUFBWSxDQUFDLFFBQWtCO0lBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFBLDRCQUFpQixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sY0FBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RCLENBQUMifQ==
|
@@ -0,0 +1,38 @@
|
|
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 { AttestedCompute } from './types.js';
|
6
|
+
/**
|
7
|
+
* Arguments for creating an attested compute.
|
8
|
+
*/
|
9
|
+
export interface IncoLiteAttestedComputeArgs {
|
10
|
+
/** The wallet used to interact with the blockchain and sign the compute 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 compute function that can decrypt handles with an attached attestation from the covalidator.
|
19
|
+
* @param args - The arguments for creating the attested compute function
|
20
|
+
* @returns A function that can perform binary operation on a handle and return an attestation
|
21
|
+
* @throws {AttestedComputeError} If the creation fails
|
22
|
+
*
|
23
|
+
* @todo Support multiple operations in a single request.
|
24
|
+
*
|
25
|
+
* @example
|
26
|
+
* ```typescript
|
27
|
+
* const compute = await incoLiteAttestedCompute({
|
28
|
+
* walletClient,
|
29
|
+
* chainId: sepolia,
|
30
|
+
* });
|
31
|
+
* const decryptionAttestation = await compute({
|
32
|
+
* lhsHandle: '0x...',
|
33
|
+
* op: AttestedComputeSupportedOps.Eq,
|
34
|
+
* rhsPlaintext: 1337n,
|
35
|
+
* });
|
36
|
+
* ```
|
37
|
+
*/
|
38
|
+
export declare function incoLiteAttestedCompute({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }: IncoLiteAttestedComputeArgs): AttestedCompute<EciesScheme>;
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import { hexToBytes } from 'viem';
|
2
|
+
import { validateHandle } from '../attesteddecrypt/attested-decrypt.js';
|
3
|
+
import { bigintToBytes32, bytesToBigInt } from '../binary.js';
|
4
|
+
import { getSupportedChain } from '../chain.js';
|
5
|
+
import { bigintToPlaintext, encryptionSchemes } from '../encryption/encryption.js';
|
6
|
+
import { getHandleType } from '../handle.js';
|
7
|
+
import { defaultCovalidatorGrpc, getKmsClient } from '../kms/client.js';
|
8
|
+
import { createEIP712Payload } from '../reencryption/eip712.js';
|
9
|
+
import { retryWithBackoff } from '../retry.js';
|
10
|
+
import { AttestedComputeError } from './types.js';
|
11
|
+
const ATTESTED_COMPUTE_DOMAIN_NAME = 'IncoAttestedCompute';
|
12
|
+
const ATTESTED_COMPUTE_DOMAIN_VERSION = '0.1.0';
|
13
|
+
/**
|
14
|
+
* Creates an attested compute function that can decrypt handles with an attached attestation from the covalidator.
|
15
|
+
* @param args - The arguments for creating the attested compute function
|
16
|
+
* @returns A function that can perform binary operation on a handle and return an attestation
|
17
|
+
* @throws {AttestedComputeError} If the creation fails
|
18
|
+
*
|
19
|
+
* @todo Support multiple operations in a single request.
|
20
|
+
*
|
21
|
+
* @example
|
22
|
+
* ```typescript
|
23
|
+
* const compute = await incoLiteAttestedCompute({
|
24
|
+
* walletClient,
|
25
|
+
* chainId: sepolia,
|
26
|
+
* });
|
27
|
+
* const decryptionAttestation = await compute({
|
28
|
+
* lhsHandle: '0x...',
|
29
|
+
* op: AttestedComputeSupportedOps.Eq,
|
30
|
+
* rhsPlaintext: 1337n,
|
31
|
+
* });
|
32
|
+
* ```
|
33
|
+
*/
|
34
|
+
export function incoLiteAttestedCompute({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }) {
|
35
|
+
const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc(getSupportedChain(chainId)));
|
36
|
+
return async function attestedCompute({ lhsHandle, op, rhsPlaintext, backoffConfig, }) {
|
37
|
+
try {
|
38
|
+
validateHandle(lhsHandle);
|
39
|
+
const rhsPlaintextBig = BigInt(rhsPlaintext);
|
40
|
+
// Create the EIP712 payload for the handles to decrypt
|
41
|
+
const eip712Payload = createEIP712Payload({
|
42
|
+
chainId: BigInt(chainId),
|
43
|
+
primaryType: 'AttestedComputeRequest',
|
44
|
+
primaryTypeFields: [
|
45
|
+
{ name: 'op', type: 'uint8' },
|
46
|
+
{ name: 'lhsHandle', type: 'bytes32' },
|
47
|
+
{ name: 'rhsPlaintext', type: 'bytes32' },
|
48
|
+
],
|
49
|
+
message: {
|
50
|
+
op: op,
|
51
|
+
lhsHandle: lhsHandle,
|
52
|
+
rhsPlaintext: bigintToBytes32(rhsPlaintextBig),
|
53
|
+
},
|
54
|
+
domainName: ATTESTED_COMPUTE_DOMAIN_NAME,
|
55
|
+
domainVersion: ATTESTED_COMPUTE_DOMAIN_VERSION,
|
56
|
+
});
|
57
|
+
// Sign the EIP712 message
|
58
|
+
const eip712Signature = await walletClient.signTypedData(eip712Payload);
|
59
|
+
const rhsValueBytes = bigintToPlaintext(encryptionSchemes.ecies, getHandleType(lhsHandle), rhsPlaintextBig);
|
60
|
+
const attestedComputeRequest = {
|
61
|
+
$typeName: 'inco.kms.lite.v1.AttestedComputeRequest',
|
62
|
+
userAddress: walletClient.account.address,
|
63
|
+
op: op,
|
64
|
+
lhsHandle: lhsHandle,
|
65
|
+
rhsPlaintext: rhsValueBytes.value.toString(16),
|
66
|
+
eip712Signature: hexToBytes(eip712Signature),
|
67
|
+
};
|
68
|
+
const response = await retryWithBackoff(async () => {
|
69
|
+
return await kmsClient.attestedCompute(attestedComputeRequest);
|
70
|
+
}, backoffConfig);
|
71
|
+
const decryptionAttestation = response.decryptionAttestation;
|
72
|
+
if (decryptionAttestation?.plaintext === undefined) {
|
73
|
+
throw new AttestedComputeError('No plaintext in response');
|
74
|
+
}
|
75
|
+
const computeResultHandle = response.decryptionAttestation?.handle;
|
76
|
+
if (!computeResultHandle) {
|
77
|
+
throw new AttestedComputeError('No compute result handle in response');
|
78
|
+
}
|
79
|
+
const handleType = getHandleType(computeResultHandle);
|
80
|
+
const bigIntValue = bytesToBigInt(decryptionAttestation.plaintext);
|
81
|
+
return {
|
82
|
+
handle: computeResultHandle,
|
83
|
+
plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
|
84
|
+
covalidatorSignature: decryptionAttestation.signature,
|
85
|
+
};
|
86
|
+
}
|
87
|
+
catch (error) {
|
88
|
+
if (error instanceof AttestedComputeError) {
|
89
|
+
throw error;
|
90
|
+
}
|
91
|
+
throw new AttestedComputeError('Failed to perform attested compute', error);
|
92
|
+
}
|
93
|
+
};
|
94
|
+
}
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGNvbXB1dGUvYXR0ZXN0ZWQtY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxpQkFBaUIsRUFBb0IsTUFBTSw2QkFBNkIsQ0FBQztBQUVsSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFtQixvQkFBb0IsRUFBcUIsTUFBTSxZQUFZLENBQUM7QUFFdEYsTUFBTSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQztBQUMzRCxNQUFNLCtCQUErQixHQUFHLE9BQU8sQ0FBQztBQWNoRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsRUFDdEMsNkJBQTZCLEVBQzdCLE9BQU8sRUFDUCxZQUFZLEdBQ2dCO0lBQzVCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyw2QkFBNkIsSUFBSSxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEgsT0FBTyxLQUFLLFVBQVUsZUFBZSxDQUE2QixF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
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import type { DecryptionAttestation } from '../attesteddecrypt/types.js';
|
2
|
+
import { HexString } from '../binary.js';
|
3
|
+
import { EncryptionScheme, SupportedFheType } from '../encryption/encryption.js';
|
4
|
+
import { SupportedScalarBinaryOp } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
|
5
|
+
import type { BackoffConfig } from '../retry.js';
|
6
|
+
/**
|
7
|
+
* Supported attested compute operations.
|
8
|
+
*/
|
9
|
+
export declare const AttestedComputeSupportedOps: {
|
10
|
+
readonly Eq: SupportedScalarBinaryOp.FHE_EQ;
|
11
|
+
readonly Ne: SupportedScalarBinaryOp.FHE_NE;
|
12
|
+
readonly Ge: SupportedScalarBinaryOp.FHE_GE;
|
13
|
+
readonly Gt: SupportedScalarBinaryOp.FHE_GT;
|
14
|
+
readonly Le: SupportedScalarBinaryOp.FHE_LE;
|
15
|
+
readonly Lt: SupportedScalarBinaryOp.FHE_LT;
|
16
|
+
};
|
17
|
+
/**
|
18
|
+
* This type represents all the supported operations for attested compute.
|
19
|
+
*/
|
20
|
+
export type AttestedComputeOP = (typeof AttestedComputeSupportedOps)[keyof typeof AttestedComputeSupportedOps];
|
21
|
+
/**
|
22
|
+
* Custom error class for attested compute operations.
|
23
|
+
*/
|
24
|
+
export declare class AttestedComputeError extends Error {
|
25
|
+
readonly cause?: unknown | undefined;
|
26
|
+
constructor(message: string, cause?: unknown | undefined);
|
27
|
+
}
|
28
|
+
export type AttestedCompute<S extends EncryptionScheme> = <T extends SupportedFheType>(args: {
|
29
|
+
/** The handle to compute on */
|
30
|
+
lhsHandle: HexString;
|
31
|
+
op: AttestedComputeOP;
|
32
|
+
rhsPlaintext: bigint | boolean;
|
33
|
+
backoffConfig?: Partial<BackoffConfig>;
|
34
|
+
}) => Promise<DecryptionAttestation<S, T>>;
|