@inco/js 0.3.0 → 0.3.1
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/advancedacl/index.d.ts +2 -0
- package/dist/cjs/advancedacl/index.js +19 -0
- package/dist/cjs/advancedacl/session-key.d.ts +28 -0
- package/dist/cjs/advancedacl/session-key.js +176 -0
- package/dist/cjs/advancedacl/types.d.ts +15 -0
- package/dist/cjs/advancedacl/types.js +3 -0
- package/dist/cjs/generated/abis/lightning-preview.d.ts +2265 -0
- package/dist/cjs/generated/abis/lightning-preview.js +1429 -0
- package/dist/cjs/lite/lightning.d.ts +55 -1
- package/dist/cjs/lite/lightning.js +73 -2
- package/dist/cjs/local/local-node.d.ts +1 -1
- package/dist/cjs/local/local-node.js +15 -15
- package/dist/esm/advancedacl/index.d.ts +2 -0
- package/dist/esm/advancedacl/index.js +3 -0
- package/dist/esm/advancedacl/session-key.d.ts +28 -0
- package/dist/esm/advancedacl/session-key.js +170 -0
- package/dist/esm/advancedacl/types.d.ts +15 -0
- package/dist/esm/advancedacl/types.js +2 -0
- package/dist/esm/generated/abis/lightning-preview.d.ts +2265 -0
- package/dist/esm/generated/abis/lightning-preview.js +1426 -0
- package/dist/esm/lite/lightning.d.ts +55 -1
- package/dist/esm/lite/lightning.js +73 -2
- package/dist/esm/local/local-node.d.ts +1 -1
- package/dist/esm/local/local-node.js +3 -3
- package/dist/types/advancedacl/index.d.ts +2 -0
- package/dist/types/advancedacl/session-key.d.ts +28 -0
- package/dist/types/advancedacl/types.d.ts +15 -0
- package/dist/types/generated/abis/lightning-preview.d.ts +2265 -0
- package/dist/types/lite/lightning.d.ts +55 -1
- package/dist/types/local/local-node.d.ts +1 -1
- package/package.json +1 -1
@@ -1,10 +1,12 @@
|
|
1
1
|
import { Account, Chain, Transport, WalletClient } from 'viem';
|
2
|
+
import { AllowanceVoucherWithSig } from '../advancedacl/types.js';
|
2
3
|
import { Address, HexString } from '../binary.js';
|
3
|
-
import { EciesScheme } from '../encryption/index.js';
|
4
|
+
import { EciesScheme, PlaintextOf } from '../encryption/index.js';
|
4
5
|
import { lightningDeployments } from '../generated/lightning.js';
|
5
6
|
import { localNodeLightningConfig } from '../generated/local-node.js';
|
6
7
|
import { LocalNodeEnv } from '../local/index.js';
|
7
8
|
import type { Reencryptor } from '../reencryption/index.js';
|
9
|
+
import { Secp256k1Keypair } from './ecies.js';
|
8
10
|
type TupleToUnion<T> = T extends readonly unknown[] ? T[number] : never;
|
9
11
|
type Deployment = TupleToUnion<typeof lightningDeployments>;
|
10
12
|
type DistributedPick<T, K> = T extends any ? Pick<T, Extract<keyof T, K>> : never;
|
@@ -120,6 +122,58 @@ export declare class Lightning<T extends DeploymentSlice = DeploymentSlice> {
|
|
120
122
|
* @param walletClient the wallet client to use for signing the reencrypt request.
|
121
123
|
*/
|
122
124
|
getReencryptor(walletClient: WalletClient<Transport, Chain, Account>): Promise<Reencryptor<EciesScheme>>;
|
125
|
+
/**
|
126
|
+
* Grants a session key allowance voucher for secure reencryption operations.
|
127
|
+
*
|
128
|
+
* This method creates a signed allowance voucher that authorizes a specific requester address
|
129
|
+
* to perform reencryption operations using session keys. The voucher includes an expiration time
|
130
|
+
* and can optionally specify a custom session verifier contract address.
|
131
|
+
*
|
132
|
+
* @param walletClient - The wallet client used for signing the allowance voucher
|
133
|
+
* @param granteeAddress - The address of the entity requesting the session key allowance
|
134
|
+
* @param expiresAt - The timestamp when the allowance voucher expires (as a bigint)
|
135
|
+
* @param sessionVerifierAddress - Optional custom session verifier contract address. If not provided, uses the executor address
|
136
|
+
* @returns A promise that resolves to an AllowanceVoucherWithSig containing the signed allowance voucher
|
137
|
+
*
|
138
|
+
* @example
|
139
|
+
* ```typescript
|
140
|
+
* const voucher = await lightning.grantSessionKeyAllowanceVoucher(
|
141
|
+
* walletClient,
|
142
|
+
* "0x1234...",
|
143
|
+
* BigInt(Date.now() + 3600000), // 1 hour from now
|
144
|
+
* "0x5678..." // optional custom verifier
|
145
|
+
* );
|
146
|
+
* ```
|
147
|
+
*/
|
148
|
+
grantSessionKeyAllowanceVoucher(walletClient: WalletClient<Transport, Chain, Account>, granteeAddress: string, expiresAt: Date, sessionVerifierAddress: string): Promise<AllowanceVoucherWithSig>;
|
149
|
+
/**
|
150
|
+
* Creates a session key reencryptor for secure data reencryption operations.
|
151
|
+
*
|
152
|
+
* This method returns a reencryptor instance that can be used to perform reencryption
|
153
|
+
* operations using session keys. The reencryptor is configured with the provided
|
154
|
+
* allowance voucher and ephemeral keypair for secure communication.
|
155
|
+
*
|
156
|
+
* @param allowanceVoucherWithSig - The signed allowance voucher obtained from grantSessionKeyAllowanceVoucher
|
157
|
+
* @param ephemeralKeypair - The ephemeral keypair used for secure communication with the KMS make sure it has allowance to voucher
|
158
|
+
* @returns A reencryptor instance configured for session key operations
|
159
|
+
*
|
160
|
+
* @example
|
161
|
+
* ```typescript
|
162
|
+
* const reencryptor = await lightning.getSessionKeyRencryptor(voucher, ephemeralKeypair);
|
163
|
+
* const decryptedValue = await reencryptor({handle: resultHandle});
|
164
|
+
* ```
|
165
|
+
*/
|
166
|
+
getSessionKeyRencryptor(allowanceVoucherWithSig: AllowanceVoucherWithSig, ephemeralKeypair: Secp256k1Keypair): Promise<(<T_1 extends import("../encryption/encryption.js").SupportedFheType>({ handle }: import("../reencryption/types.js").ReencryptFnArgs<EciesScheme, T_1>) => Promise<PlaintextOf<1, 0 | 5 | 7 | 8>>)>;
|
167
|
+
/**
|
168
|
+
* Updates the active session nonce for the given wallet client.
|
169
|
+
*
|
170
|
+
* This method updates the active session nonce for the given wallet client.
|
171
|
+
* It nullifies all the previous shared addresses accessing the voucher.
|
172
|
+
*
|
173
|
+
* @param walletClient - The wallet client used for updating the session nonce
|
174
|
+
* @returns The transaction hash of the updateActiveVouchersSessionNonce transaction
|
175
|
+
*/
|
176
|
+
updateActiveVouchersSessionNonce(walletClient: WalletClient<Transport, Chain, Account>): Promise<HexString>;
|
123
177
|
/**
|
124
178
|
* Get the GRPC endpoint for the covalidator that services this deployment.
|
125
179
|
*/
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import * as fs from 'fs/promises';
|
2
2
|
import { hexToBytes } from 'viem';
|
3
3
|
import { baseSepolia } from 'viem/chains';
|
4
|
+
import { grantSessionKey, sessionKeyReencryptor, updateActiveVouchersSessionNonce, } from '../advancedacl/session-key.js';
|
4
5
|
import { HexString, parseAddress } from '../binary.js';
|
5
6
|
import { encryptionSchemes } from '../encryption/index.js';
|
6
7
|
import { lightningDeployments } from '../generated/lightning.js';
|
@@ -70,7 +71,7 @@ export class Lightning {
|
|
70
71
|
return Lightning.custom({
|
71
72
|
// We assume that we always run a local node as the default anvil node
|
72
73
|
chainId: env.COVALIDATOR_HOST_CHAIN_ID ? Number(env.COVALIDATOR_HOST_CHAIN_ID) : conf.chainId,
|
73
|
-
covalidatorUrl: env.
|
74
|
+
covalidatorUrl: env.COVALIDATOR_URL ?? conf.covalidatorUrl,
|
74
75
|
hostChainRpcUrl: env.COVALIDATOR_HOST_CHAIN_RPC_URL ?? conf.hostChainRpcUrl ?? 'http://localhost:8545',
|
75
76
|
// These variables vary per environment
|
76
77
|
executorAddress: env.EXECUTOR_ADDRESS,
|
@@ -180,6 +181,76 @@ export class Lightning {
|
|
180
181
|
ephemeralKeypair: this.ephemeralKeypair,
|
181
182
|
});
|
182
183
|
}
|
184
|
+
/**
|
185
|
+
* Grants a session key allowance voucher for secure reencryption operations.
|
186
|
+
*
|
187
|
+
* This method creates a signed allowance voucher that authorizes a specific requester address
|
188
|
+
* to perform reencryption operations using session keys. The voucher includes an expiration time
|
189
|
+
* and can optionally specify a custom session verifier contract address.
|
190
|
+
*
|
191
|
+
* @param walletClient - The wallet client used for signing the allowance voucher
|
192
|
+
* @param granteeAddress - The address of the entity requesting the session key allowance
|
193
|
+
* @param expiresAt - The timestamp when the allowance voucher expires (as a bigint)
|
194
|
+
* @param sessionVerifierAddress - Optional custom session verifier contract address. If not provided, uses the executor address
|
195
|
+
* @returns A promise that resolves to an AllowanceVoucherWithSig containing the signed allowance voucher
|
196
|
+
*
|
197
|
+
* @example
|
198
|
+
* ```typescript
|
199
|
+
* const voucher = await lightning.grantSessionKeyAllowanceVoucher(
|
200
|
+
* walletClient,
|
201
|
+
* "0x1234...",
|
202
|
+
* BigInt(Date.now() + 3600000), // 1 hour from now
|
203
|
+
* "0x5678..." // optional custom verifier
|
204
|
+
* );
|
205
|
+
* ```
|
206
|
+
*/
|
207
|
+
grantSessionKeyAllowanceVoucher(walletClient, granteeAddress, expiresAt, sessionVerifierAddress) {
|
208
|
+
return grantSessionKey({
|
209
|
+
chainId: this.chainId,
|
210
|
+
incoLiteAddress: this.executorAddress,
|
211
|
+
sessionVerifierContractAddress: parseAddress(sessionVerifierAddress),
|
212
|
+
granteeAddress: parseAddress(granteeAddress),
|
213
|
+
sharerWalletClient: walletClient,
|
214
|
+
expiresAt,
|
215
|
+
});
|
216
|
+
}
|
217
|
+
/**
|
218
|
+
* Creates a session key reencryptor for secure data reencryption operations.
|
219
|
+
*
|
220
|
+
* This method returns a reencryptor instance that can be used to perform reencryption
|
221
|
+
* operations using session keys. The reencryptor is configured with the provided
|
222
|
+
* allowance voucher and ephemeral keypair for secure communication.
|
223
|
+
*
|
224
|
+
* @param allowanceVoucherWithSig - The signed allowance voucher obtained from grantSessionKeyAllowanceVoucher
|
225
|
+
* @param ephemeralKeypair - The ephemeral keypair used for secure communication with the KMS make sure it has allowance to voucher
|
226
|
+
* @returns A reencryptor instance configured for session key operations
|
227
|
+
*
|
228
|
+
* @example
|
229
|
+
* ```typescript
|
230
|
+
* const reencryptor = await lightning.getSessionKeyRencryptor(voucher, ephemeralKeypair);
|
231
|
+
* const decryptedValue = await reencryptor({handle: resultHandle});
|
232
|
+
* ```
|
233
|
+
*/
|
234
|
+
getSessionKeyRencryptor(allowanceVoucherWithSig, ephemeralKeypair) {
|
235
|
+
return sessionKeyReencryptor({
|
236
|
+
chainId: this.chainId,
|
237
|
+
kmsConnectRpcEndpointOrClient: this.kmsClient,
|
238
|
+
ephemeralKeypair,
|
239
|
+
allowanceVoucherWithSig,
|
240
|
+
});
|
241
|
+
}
|
242
|
+
/**
|
243
|
+
* Updates the active session nonce for the given wallet client.
|
244
|
+
*
|
245
|
+
* This method updates the active session nonce for the given wallet client.
|
246
|
+
* It nullifies all the previous shared addresses accessing the voucher.
|
247
|
+
*
|
248
|
+
* @param walletClient - The wallet client used for updating the session nonce
|
249
|
+
* @returns The transaction hash of the updateActiveVouchersSessionNonce transaction
|
250
|
+
*/
|
251
|
+
updateActiveVouchersSessionNonce(walletClient) {
|
252
|
+
return updateActiveVouchersSessionNonce(this.executorAddress, walletClient);
|
253
|
+
}
|
183
254
|
/**
|
184
255
|
* Get the GRPC endpoint for the covalidator that services this deployment.
|
185
256
|
*/
|
@@ -210,4 +281,4 @@ export class Lightning {
|
|
210
281
|
}
|
211
282
|
}
|
212
283
|
}
|
213
|
-
//# sourceMappingURL=data:application/json;base64,
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpdGUvbGlnaHRuaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sRUFBa0IsVUFBVSxFQUEyQixNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLGdDQUFnQyxHQUNqQyxNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFBVyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBZSxpQkFBaUIsRUFBMEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sWUFBWSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXdCbkUsTUFBTSxhQUFhLEdBQW9CLFNBQVMsQ0FBQztBQXVCakQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFVRDtJQUNEO0lBVkYsZUFBZSxDQUFVO0lBQ3pCLGNBQWMsQ0FBWTtJQUMxQixPQUFPLENBQVM7SUFFZixTQUFTLENBQXlCO0lBQ2xDLGdCQUFnQixDQUFt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
|
@@ -15,7 +15,7 @@ export declare const LocalNodeEnv: Schema.Struct<{
|
|
15
15
|
COVALIDATOR_INCO_EXECUTOR_ADDR: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
|
16
16
|
COVALIDATOR_DECRYPTION_HANDLER_ADDR: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
|
17
17
|
COVALIDATOR_HOST_CHAIN_ID: Schema.optional<typeof Schema.String>;
|
18
|
-
|
18
|
+
COVALIDATOR_URL: Schema.optional<typeof Schema.String>;
|
19
19
|
COVALIDATOR_HOST_CHAIN_RPC_URL: Schema.optional<typeof Schema.String>;
|
20
20
|
}>;
|
21
21
|
export type LocalNodeEnv = typeof LocalNodeEnv.Type;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as dotenv from '@dotenvx/dotenvx';
|
2
|
-
import { Address, HexString } from '@inco/pega/lib/hex';
|
3
2
|
import { Schema } from 'effect';
|
3
|
+
import { Address, HexString } from '../binary.js';
|
4
4
|
export const LocalNodeEnv = Schema.Struct({
|
5
5
|
DEPLOYER_ADDRESS: Address,
|
6
6
|
STATE_DUMP: Schema.String,
|
@@ -17,7 +17,7 @@ export const LocalNodeEnv = Schema.Struct({
|
|
17
17
|
COVALIDATOR_INCO_EXECUTOR_ADDR: Address,
|
18
18
|
COVALIDATOR_DECRYPTION_HANDLER_ADDR: Address,
|
19
19
|
COVALIDATOR_HOST_CHAIN_ID: Schema.optional(Schema.String),
|
20
|
-
|
20
|
+
COVALIDATOR_URL: Schema.optional(Schema.String),
|
21
21
|
COVALIDATOR_HOST_CHAIN_RPC_URL: Schema.optional(Schema.String),
|
22
22
|
});
|
23
23
|
// Parses a local environment file or object into a LocalNodeEnv type.
|
@@ -26,4 +26,4 @@ export function parseLocalEnv(envFileOrObj) {
|
|
26
26
|
const envObj = envFileOrObj ? dotenv.parse(envFileOrObj) : process.env;
|
27
27
|
return Schema.decodeUnknownSync(LocalNodeEnv)(envObj);
|
28
28
|
}
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2NhbC9sb2NhbC1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN4QyxnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTTtJQUN6QixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLGdCQUFnQixFQUFFLFNBQVM7SUFDM0IsZ0JBQWdCLEVBQUUsU0FBUztJQUMzQixjQUFjLEVBQUUsT0FBTztJQUN2QixrQkFBa0IsRUFBRSxTQUFTO0lBQzdCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtJQUNyQiw2QkFBNkIsRUFBRSxTQUFTO0lBQ3hDLHNDQUFzQyxFQUFFLFNBQVM7SUFDakQsZ0NBQWdDLEVBQUUsU0FBUztJQUMzQyxvQkFBb0IsRUFBRSxPQUFPO0lBQzdCLDhCQUE4QixFQUFFLE9BQU87SUFDdkMsbUNBQW1DLEVBQUUsT0FBTztJQUM1Qyx5QkFBeUIsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekQsZUFBZSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMvQyw4QkFBOEIsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Q0FDL0QsQ0FBQyxDQUFDO0FBSUgsc0VBQXNFO0FBQ3RFLGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsYUFBYSxDQUFDLFlBQThCO0lBQzFELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUN2RSxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RCxDQUFDIn0=
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import type { Client } from '@connectrpc/connect';
|
2
|
+
import { type Account, type Address, type Chain, type Hex, type Transport, type WalletClient } from 'viem';
|
3
|
+
import { type EciesScheme, SupportedFheType } from '../encryption/encryption.js';
|
4
|
+
import type { KmsService, Secp256k1Keypair } from '../lite/index.js';
|
5
|
+
import { type ReencryptFnArgs } from '../reencryption/index.js';
|
6
|
+
import type { AllowanceVoucher, AllowanceVoucherWithSig } from './types.js';
|
7
|
+
export interface Session {
|
8
|
+
decrypter: Address;
|
9
|
+
expiresAt: bigint;
|
10
|
+
}
|
11
|
+
export declare function createAllowanceVoucher(incoLiteAddress: Address, sharerWalletClient: WalletClient<Transport, Chain, Account>, verifyingContract: Address, callFunction: Hex, sharerArgData: Hex): Promise<AllowanceVoucher>;
|
12
|
+
export interface GrantSessionKeyArgs {
|
13
|
+
chainId: bigint;
|
14
|
+
incoLiteAddress: Address;
|
15
|
+
sessionVerifierContractAddress: Address;
|
16
|
+
granteeAddress: Address;
|
17
|
+
sharerWalletClient: WalletClient<Transport, Chain, Account>;
|
18
|
+
expiresAt: Date;
|
19
|
+
}
|
20
|
+
export declare function grantSessionKey({ chainId, incoLiteAddress, sessionVerifierContractAddress, granteeAddress, sharerWalletClient, expiresAt, }: GrantSessionKeyArgs): Promise<AllowanceVoucherWithSig>;
|
21
|
+
export interface SessionKeyReencryptorArgs {
|
22
|
+
chainId: bigint;
|
23
|
+
ephemeralKeypair: Secp256k1Keypair;
|
24
|
+
kmsConnectRpcEndpointOrClient: string | Client<typeof KmsService>;
|
25
|
+
allowanceVoucherWithSig: AllowanceVoucherWithSig;
|
26
|
+
}
|
27
|
+
export declare function sessionKeyReencryptor({ chainId, kmsConnectRpcEndpointOrClient, ephemeralKeypair, allowanceVoucherWithSig, }: SessionKeyReencryptorArgs): Promise<(<T extends SupportedFheType>({ handle }: ReencryptFnArgs<EciesScheme, T>) => Promise<import("../encryption/encryption.js").PlaintextOf<1, 0 | 5 | 7 | 8>>)>;
|
28
|
+
export declare function updateActiveVouchersSessionNonce(incoLiteAddress: Address, sharerWalletClient: WalletClient<Transport, Chain, Account>): Promise<`0x${string}`>;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { Address, Hex } from 'viem';
|
2
|
+
export type AllowanceVoucher = {
|
3
|
+
sessionNonce: Hex;
|
4
|
+
verifyingContract: Address;
|
5
|
+
callFunction: Hex;
|
6
|
+
sharerArgData: Hex;
|
7
|
+
};
|
8
|
+
export interface AllowanceVoucherWithSig {
|
9
|
+
sharer: Address;
|
10
|
+
voucher: AllowanceVoucher;
|
11
|
+
voucherSignature: Hex;
|
12
|
+
}
|
13
|
+
export interface AllowanceProof extends AllowanceVoucherWithSig {
|
14
|
+
requesterArgData: Uint8Array;
|
15
|
+
}
|