@spectratools/tx-shared 0.4.2 → 0.5.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/README.md +6 -2
- package/dist/chunk-HFRJBEDT.js +1144 -0
- package/dist/errors.d.ts +1 -1
- package/dist/execute-tx-DO8p_9dP.d.ts +160 -0
- package/dist/execute-tx.d.ts +4 -63
- package/dist/execute-tx.js +1 -1
- package/dist/index.d.ts +54 -47
- package/dist/index.js +25 -381
- package/package.json +1 -1
- package/dist/chunk-4XI6TBKX.js +0 -130
package/dist/errors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type TxErrorCode = 'INSUFFICIENT_FUNDS' | 'NONCE_CONFLICT' | 'TX_REVERTED' | 'GAS_ESTIMATION_FAILED' | 'SIGNER_NOT_CONFIGURED' | 'KEYSTORE_DECRYPT_FAILED' | 'PRIVY_AUTH_FAILED' | 'PRIVY_TRANSPORT_FAILED';
|
|
1
|
+
type TxErrorCode = 'INSUFFICIENT_FUNDS' | 'NONCE_CONFLICT' | 'TX_REVERTED' | 'GAS_ESTIMATION_FAILED' | 'SIGNER_NOT_CONFIGURED' | 'KEYSTORE_DECRYPT_FAILED' | 'PRIVY_AUTH_FAILED' | 'PRIVY_TRANSPORT_FAILED' | 'PRIVY_POLICY_BLOCKED';
|
|
2
2
|
declare class TxError extends Error {
|
|
3
3
|
readonly code: TxErrorCode;
|
|
4
4
|
constructor(code: TxErrorCode, message: string, cause?: unknown);
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Address, PublicClient, WalletClient, Account, Abi, Chain } from 'viem';
|
|
2
|
+
import { TxError } from './errors.js';
|
|
3
|
+
import { TxResult } from './types.js';
|
|
4
|
+
|
|
5
|
+
interface PrivyRpcIntentRequest {
|
|
6
|
+
method: string;
|
|
7
|
+
params: Record<string, unknown>;
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
type PrivyIntentStatus = 'pending' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed' | string;
|
|
11
|
+
interface PrivyRpcIntentResponse {
|
|
12
|
+
intent_id: string;
|
|
13
|
+
status: PrivyIntentStatus;
|
|
14
|
+
resource_id?: string;
|
|
15
|
+
request_details?: Record<string, unknown>;
|
|
16
|
+
dismissal_reason?: string;
|
|
17
|
+
action_result?: {
|
|
18
|
+
response_body?: Record<string, unknown>;
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
};
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
interface PrivyWalletResponse {
|
|
24
|
+
id: string;
|
|
25
|
+
address: string;
|
|
26
|
+
owner_id: string | null;
|
|
27
|
+
policy_ids: string[];
|
|
28
|
+
[key: string]: unknown;
|
|
29
|
+
}
|
|
30
|
+
interface PrivyPolicyResponse {
|
|
31
|
+
id: string;
|
|
32
|
+
owner_id: string | null;
|
|
33
|
+
rules: unknown[];
|
|
34
|
+
[key: string]: unknown;
|
|
35
|
+
}
|
|
36
|
+
interface PrivyNormalizedPolicy {
|
|
37
|
+
id: string;
|
|
38
|
+
ownerId: string | null;
|
|
39
|
+
ruleCount: number;
|
|
40
|
+
allowlistedContracts: Address[];
|
|
41
|
+
maxValueWei?: bigint;
|
|
42
|
+
}
|
|
43
|
+
interface PrivyPolicyVisibility {
|
|
44
|
+
walletId: string;
|
|
45
|
+
policyIds: string[];
|
|
46
|
+
policies: PrivyNormalizedPolicy[];
|
|
47
|
+
contractAllowlist: Address[];
|
|
48
|
+
maxValueWei?: bigint;
|
|
49
|
+
}
|
|
50
|
+
type PrivyPolicyViolationType = 'contract-allowlist' | 'native-value-cap';
|
|
51
|
+
interface PrivyPolicyViolation {
|
|
52
|
+
type: PrivyPolicyViolationType;
|
|
53
|
+
message: string;
|
|
54
|
+
policyIds: string[];
|
|
55
|
+
actual: string;
|
|
56
|
+
expected: string;
|
|
57
|
+
}
|
|
58
|
+
interface PrivyPolicyPreflightRequest {
|
|
59
|
+
to?: Address;
|
|
60
|
+
value?: bigint;
|
|
61
|
+
}
|
|
62
|
+
interface PrivyPolicyPreflightResult {
|
|
63
|
+
status: 'allowed' | 'blocked';
|
|
64
|
+
visibility: PrivyPolicyVisibility;
|
|
65
|
+
violations: PrivyPolicyViolation[];
|
|
66
|
+
}
|
|
67
|
+
interface CreatePrivyClientOptions {
|
|
68
|
+
appId: string;
|
|
69
|
+
walletId: string;
|
|
70
|
+
authorizationKey: string;
|
|
71
|
+
apiUrl?: string;
|
|
72
|
+
fetchImplementation?: typeof fetch;
|
|
73
|
+
}
|
|
74
|
+
interface PrivyRequestOptions {
|
|
75
|
+
idempotencyKey?: string;
|
|
76
|
+
}
|
|
77
|
+
interface PrivyClient {
|
|
78
|
+
readonly appId: string;
|
|
79
|
+
readonly walletId: string;
|
|
80
|
+
readonly apiUrl: string;
|
|
81
|
+
createRpcIntent(request: PrivyRpcIntentRequest, options?: PrivyRequestOptions): Promise<PrivyRpcIntentResponse>;
|
|
82
|
+
getWallet(): Promise<PrivyWalletResponse>;
|
|
83
|
+
getPolicy(policyId: string): Promise<PrivyPolicyResponse>;
|
|
84
|
+
}
|
|
85
|
+
declare function createPrivyClient(options: CreatePrivyClientOptions): PrivyClient;
|
|
86
|
+
/** Normalize a raw Privy policy object into tx-shared's policy model. */
|
|
87
|
+
declare function normalizePrivyPolicy(policy: PrivyPolicyResponse): PrivyNormalizedPolicy;
|
|
88
|
+
/** Fetch wallet policies and return normalized visibility data for callers. */
|
|
89
|
+
declare function fetchPrivyPolicyVisibility(client: PrivyClient): Promise<PrivyPolicyVisibility>;
|
|
90
|
+
/**
|
|
91
|
+
* Evaluate immediately-deterministic Privy constraints (contract allowlists + native value caps).
|
|
92
|
+
*/
|
|
93
|
+
declare function preflightPrivyTransactionPolicy(client: PrivyClient, request: PrivyPolicyPreflightRequest): Promise<PrivyPolicyPreflightResult>;
|
|
94
|
+
/** Convert blocked preflight output into a deterministic structured TxError. */
|
|
95
|
+
declare function toPrivyPolicyViolationError(result: PrivyPolicyPreflightResult): TxError;
|
|
96
|
+
|
|
97
|
+
/** Options for the {@link executeTx} lifecycle. */
|
|
98
|
+
interface ExecuteTxOptions {
|
|
99
|
+
/** Viem public client used for gas estimation, simulation, and receipt retrieval. */
|
|
100
|
+
publicClient: PublicClient;
|
|
101
|
+
/** Viem wallet client used to submit the transaction. */
|
|
102
|
+
walletClient: WalletClient;
|
|
103
|
+
/** Signer account. */
|
|
104
|
+
account: Account;
|
|
105
|
+
/** Target contract address. */
|
|
106
|
+
address: Address;
|
|
107
|
+
/** Contract ABI (must include the target function). */
|
|
108
|
+
abi: Abi;
|
|
109
|
+
/** Name of the contract function to call. */
|
|
110
|
+
functionName: string;
|
|
111
|
+
/** Optional chain to use for the transaction. */
|
|
112
|
+
chain?: Chain;
|
|
113
|
+
/** Arguments passed to the contract function. */
|
|
114
|
+
args?: unknown[];
|
|
115
|
+
/** Native value (in wei) to send with the transaction. */
|
|
116
|
+
value?: bigint;
|
|
117
|
+
/** Gas limit override. When provided the estimate is still performed but this value is used for submission. */
|
|
118
|
+
gasLimit?: bigint;
|
|
119
|
+
/** Max fee per gas override (EIP-1559). */
|
|
120
|
+
maxFeePerGas?: bigint;
|
|
121
|
+
/** Nonce override. */
|
|
122
|
+
nonce?: number;
|
|
123
|
+
/**
|
|
124
|
+
* When `true` the transaction is simulated but **not** broadcast.
|
|
125
|
+
* Returns a {@link DryRunResult} instead of a {@link TxResult}.
|
|
126
|
+
*/
|
|
127
|
+
dryRun?: boolean;
|
|
128
|
+
}
|
|
129
|
+
/** Result returned when `dryRun` is `true`. */
|
|
130
|
+
interface DryRunResult {
|
|
131
|
+
/** Discriminator — always `'dry-run'` for dry-run results. */
|
|
132
|
+
status: 'dry-run';
|
|
133
|
+
/** Estimated gas units for the call. */
|
|
134
|
+
estimatedGas: bigint;
|
|
135
|
+
/** Simulated return value from `simulateContract`. */
|
|
136
|
+
simulationResult: unknown;
|
|
137
|
+
/** Optional Privy policy visibility for Privy-backed accounts. */
|
|
138
|
+
privyPolicy?: PrivyPolicyPreflightResult;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Execute a full transaction lifecycle:
|
|
142
|
+
*
|
|
143
|
+
* 1. **Estimate** gas via `publicClient.estimateContractGas`.
|
|
144
|
+
* 2. **Simulate** contract call via `publicClient.simulateContract`.
|
|
145
|
+
* 3. **Preflight** Privy policies when a Privy-backed account is used.
|
|
146
|
+
* - If `dryRun` is `true`, return a {@link DryRunResult} without broadcasting.
|
|
147
|
+
* 4. **Submit** the transaction via `walletClient.writeContract`.
|
|
148
|
+
* 5. **Wait** for the receipt via `publicClient.waitForTransactionReceipt`.
|
|
149
|
+
* 6. **Normalize** the receipt into a {@link TxResult}.
|
|
150
|
+
*
|
|
151
|
+
* Errors thrown by viem are mapped to structured {@link TxError} codes:
|
|
152
|
+
* - `INSUFFICIENT_FUNDS` — sender lacks balance for value + gas.
|
|
153
|
+
* - `NONCE_CONFLICT` — nonce already used or too low.
|
|
154
|
+
* - `GAS_ESTIMATION_FAILED` — gas estimation or simulation reverted.
|
|
155
|
+
* - `TX_REVERTED` — on-chain revert (includes reason when available).
|
|
156
|
+
* - `PRIVY_POLICY_BLOCKED` — Privy policy preflight determined the tx is not allowed.
|
|
157
|
+
*/
|
|
158
|
+
declare function executeTx(options: ExecuteTxOptions): Promise<TxResult | DryRunResult>;
|
|
159
|
+
|
|
160
|
+
export { type DryRunResult as D, type ExecuteTxOptions as E, type PrivyClient as P, type PrivyNormalizedPolicy as a, type PrivyPolicyPreflightRequest as b, type PrivyPolicyPreflightResult as c, type PrivyPolicyViolation as d, type PrivyPolicyVisibility as e, createPrivyClient as f, executeTx as g, fetchPrivyPolicyVisibility as h, normalizePrivyPolicy as n, preflightPrivyTransactionPolicy as p, toPrivyPolicyViolationError as t };
|
package/dist/execute-tx.d.ts
CHANGED
|
@@ -1,63 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
interface ExecuteTxOptions {
|
|
6
|
-
/** Viem public client used for gas estimation, simulation, and receipt retrieval. */
|
|
7
|
-
publicClient: PublicClient;
|
|
8
|
-
/** Viem wallet client used to submit the transaction. */
|
|
9
|
-
walletClient: WalletClient;
|
|
10
|
-
/** Signer account. */
|
|
11
|
-
account: Account;
|
|
12
|
-
/** Target contract address. */
|
|
13
|
-
address: Address;
|
|
14
|
-
/** Contract ABI (must include the target function). */
|
|
15
|
-
abi: Abi;
|
|
16
|
-
/** Name of the contract function to call. */
|
|
17
|
-
functionName: string;
|
|
18
|
-
/** Optional chain to use for the transaction. */
|
|
19
|
-
chain?: Chain;
|
|
20
|
-
/** Arguments passed to the contract function. */
|
|
21
|
-
args?: unknown[];
|
|
22
|
-
/** Native value (in wei) to send with the transaction. */
|
|
23
|
-
value?: bigint;
|
|
24
|
-
/** Gas limit override. When provided the estimate is still performed but this value is used for submission. */
|
|
25
|
-
gasLimit?: bigint;
|
|
26
|
-
/** Max fee per gas override (EIP-1559). */
|
|
27
|
-
maxFeePerGas?: bigint;
|
|
28
|
-
/** Nonce override. */
|
|
29
|
-
nonce?: number;
|
|
30
|
-
/**
|
|
31
|
-
* When `true` the transaction is simulated but **not** broadcast.
|
|
32
|
-
* Returns a {@link DryRunResult} instead of a {@link TxResult}.
|
|
33
|
-
*/
|
|
34
|
-
dryRun?: boolean;
|
|
35
|
-
}
|
|
36
|
-
/** Result returned when `dryRun` is `true`. */
|
|
37
|
-
interface DryRunResult {
|
|
38
|
-
/** Discriminator — always `'dry-run'` for dry-run results. */
|
|
39
|
-
status: 'dry-run';
|
|
40
|
-
/** Estimated gas units for the call. */
|
|
41
|
-
estimatedGas: bigint;
|
|
42
|
-
/** Simulated return value from `simulateContract`. */
|
|
43
|
-
simulationResult: unknown;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Execute a full transaction lifecycle:
|
|
47
|
-
*
|
|
48
|
-
* 1. **Estimate** gas via `publicClient.estimateContractGas`.
|
|
49
|
-
* 2. **Simulate** contract call via `publicClient.simulateContract`.
|
|
50
|
-
* - If `dryRun` is `true`, return a {@link DryRunResult} without broadcasting.
|
|
51
|
-
* 3. **Submit** the transaction via `walletClient.writeContract`.
|
|
52
|
-
* 4. **Wait** for the receipt via `publicClient.waitForTransactionReceipt`.
|
|
53
|
-
* 5. **Normalize** the receipt into a {@link TxResult}.
|
|
54
|
-
*
|
|
55
|
-
* Errors thrown by viem are mapped to structured {@link TxError} codes:
|
|
56
|
-
* - `INSUFFICIENT_FUNDS` — sender lacks balance for value + gas.
|
|
57
|
-
* - `NONCE_CONFLICT` — nonce already used or too low.
|
|
58
|
-
* - `GAS_ESTIMATION_FAILED` — gas estimation or simulation reverted.
|
|
59
|
-
* - `TX_REVERTED` — on-chain revert (includes reason when available).
|
|
60
|
-
*/
|
|
61
|
-
declare function executeTx(options: ExecuteTxOptions): Promise<TxResult | DryRunResult>;
|
|
62
|
-
|
|
63
|
-
export { type DryRunResult, type ExecuteTxOptions, executeTx };
|
|
1
|
+
import 'viem';
|
|
2
|
+
export { D as DryRunResult, E as ExecuteTxOptions, g as executeTx } from './execute-tx-DO8p_9dP.js';
|
|
3
|
+
import './types.js';
|
|
4
|
+
import './errors.js';
|
package/dist/execute-tx.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,11 @@ import { SignerOptions, TxSigner } from './types.js';
|
|
|
2
2
|
export { SignerProvider, TxResult } from './types.js';
|
|
3
3
|
export { TxError, TxErrorCode, toTxError } from './errors.js';
|
|
4
4
|
export { abstractMainnet, createAbstractClient } from './chain.js';
|
|
5
|
-
|
|
5
|
+
import { P as PrivyClient } from './execute-tx-DO8p_9dP.js';
|
|
6
|
+
export { D as DryRunResult, E as ExecuteTxOptions, a as PrivyNormalizedPolicy, b as PrivyPolicyPreflightRequest, c as PrivyPolicyPreflightResult, d as PrivyPolicyViolation, e as PrivyPolicyVisibility, f as createPrivyClient, g as executeTx, h as fetchPrivyPolicyVisibility, n as normalizePrivyPolicy, p as preflightPrivyTransactionPolicy, t as toPrivyPolicyViolationError } from './execute-tx-DO8p_9dP.js';
|
|
6
7
|
import { z } from 'incur';
|
|
8
|
+
import { Address, Hex, Hash, SignableMessage, TypedData, TypedDataDefinition, SerializeTransactionFn, TransactionSerializable } from 'viem';
|
|
7
9
|
import { KeyObject } from 'node:crypto';
|
|
8
|
-
import 'viem';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Resolve the active signer provider using deterministic precedence:
|
|
@@ -60,50 +61,39 @@ interface KeystoreSignerOptions {
|
|
|
60
61
|
*/
|
|
61
62
|
declare function createKeystoreSigner(options: KeystoreSignerOptions): TxSigner;
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
type PrivyNumberish = bigint | number | string;
|
|
65
|
+
interface PrivySendTransactionRequest {
|
|
66
|
+
from?: Address;
|
|
67
|
+
to?: Address;
|
|
68
|
+
data?: Hex;
|
|
69
|
+
value?: PrivyNumberish;
|
|
70
|
+
nonce?: PrivyNumberish;
|
|
71
|
+
gas?: PrivyNumberish;
|
|
72
|
+
gasPrice?: PrivyNumberish;
|
|
73
|
+
maxFeePerGas?: PrivyNumberish;
|
|
74
|
+
maxPriorityFeePerGas?: PrivyNumberish;
|
|
75
|
+
chainId?: PrivyNumberish;
|
|
76
|
+
type?: number;
|
|
67
77
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
78
|
+
type PrivySignTransactionRequest = PrivySendTransactionRequest;
|
|
79
|
+
type PrivySignTypedDataRequest<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData> = TypedDataDefinition<typedData, primaryType>;
|
|
80
|
+
interface PrivyAccount {
|
|
81
|
+
address: Address;
|
|
82
|
+
type: 'json-rpc';
|
|
83
|
+
sendTransaction: (request: PrivySendTransactionRequest) => Promise<Hash>;
|
|
84
|
+
signMessage: ({ message }: {
|
|
85
|
+
message: SignableMessage;
|
|
86
|
+
}) => Promise<Hex>;
|
|
87
|
+
signTypedData: <const typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: PrivySignTypedDataRequest<typedData, primaryType>) => Promise<Hex>;
|
|
88
|
+
signTransaction: <serializer extends SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
|
|
89
|
+
serializer?: serializer;
|
|
90
|
+
}) => Promise<Hex>;
|
|
74
91
|
}
|
|
75
|
-
interface
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
owner_id: string | null;
|
|
79
|
-
policy_ids: string[];
|
|
80
|
-
[key: string]: unknown;
|
|
92
|
+
interface CreatePrivyAccountOptions {
|
|
93
|
+
client: PrivyClient;
|
|
94
|
+
chainId?: number;
|
|
81
95
|
}
|
|
82
|
-
|
|
83
|
-
id: string;
|
|
84
|
-
owner_id: string | null;
|
|
85
|
-
rules: unknown[];
|
|
86
|
-
[key: string]: unknown;
|
|
87
|
-
}
|
|
88
|
-
interface CreatePrivyClientOptions {
|
|
89
|
-
appId: string;
|
|
90
|
-
walletId: string;
|
|
91
|
-
authorizationKey: string;
|
|
92
|
-
apiUrl?: string;
|
|
93
|
-
fetchImplementation?: typeof fetch;
|
|
94
|
-
}
|
|
95
|
-
interface PrivyRequestOptions {
|
|
96
|
-
idempotencyKey?: string;
|
|
97
|
-
}
|
|
98
|
-
interface PrivyClient {
|
|
99
|
-
readonly appId: string;
|
|
100
|
-
readonly walletId: string;
|
|
101
|
-
readonly apiUrl: string;
|
|
102
|
-
createRpcIntent(request: PrivyRpcIntentRequest, options?: PrivyRequestOptions): Promise<PrivyRpcIntentResponse>;
|
|
103
|
-
getWallet(): Promise<PrivyWalletResponse>;
|
|
104
|
-
getPolicy(policyId: string): Promise<PrivyPolicyResponse>;
|
|
105
|
-
}
|
|
106
|
-
declare function createPrivyClient(options: CreatePrivyClientOptions): PrivyClient;
|
|
96
|
+
declare function createPrivyAccount(options: CreatePrivyAccountOptions): Promise<PrivyAccount>;
|
|
107
97
|
|
|
108
98
|
type PrivyAuthorizationMethod = 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
109
99
|
interface PrivyAuthorizationPayloadHeaders {
|
|
@@ -136,7 +126,15 @@ interface PrivySignerOptions {
|
|
|
136
126
|
privyAuthorizationKey?: string;
|
|
137
127
|
privyApiUrl?: string;
|
|
138
128
|
}
|
|
139
|
-
interface
|
|
129
|
+
interface PrivyPolicyContext {
|
|
130
|
+
appId: string;
|
|
131
|
+
walletId: string;
|
|
132
|
+
apiUrl: string;
|
|
133
|
+
client: PrivyClient;
|
|
134
|
+
}
|
|
135
|
+
interface PrivySigner {
|
|
136
|
+
account: PrivyAccount;
|
|
137
|
+
address: Address;
|
|
140
138
|
provider: 'privy';
|
|
141
139
|
privy: {
|
|
142
140
|
appId: string;
|
|
@@ -145,12 +143,21 @@ interface PrivySigner extends TxSigner {
|
|
|
145
143
|
client: PrivyClient;
|
|
146
144
|
};
|
|
147
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Attach Privy policy context to any account-like object so executeTx can run policy preflight checks.
|
|
148
|
+
*/
|
|
149
|
+
declare function attachPrivyPolicyContext<TAccount extends object>(account: TAccount, context: PrivyPolicyContext): TAccount;
|
|
150
|
+
/** Read Privy policy context from an account when present. */
|
|
151
|
+
declare function getPrivyPolicyContext(account: unknown): PrivyPolicyContext | undefined;
|
|
148
152
|
/**
|
|
149
153
|
* Create a Privy signer envelope with reusable transport and request-signing primitives.
|
|
150
154
|
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
155
|
+
* The resolved account is backed by Privy RPC intents and supports:
|
|
156
|
+
* - `sendTransaction` via `eth_sendTransaction`
|
|
157
|
+
* - `signMessage` via `personal_sign`
|
|
158
|
+
* - `signTypedData` via `eth_signTypedData_v4`
|
|
159
|
+
* - `signTransaction` via `eth_signTransaction` (returns serialized tx hex; caller is responsible for broadcast)
|
|
153
160
|
*/
|
|
154
161
|
declare function createPrivySigner(options: PrivySignerOptions): Promise<PrivySigner>;
|
|
155
162
|
|
|
156
|
-
export { type KeystoreSignerOptions, type PrivyAuthorizationPayload, type PrivyAuthorizationPayloadHeaders, type
|
|
163
|
+
export { type KeystoreSignerOptions, type PrivyAccount, type PrivyAuthorizationPayload, type PrivyAuthorizationPayloadHeaders, PrivyClient, type PrivyPolicyContext, type PrivySendTransactionRequest, type PrivySignTransactionRequest, type PrivySignTypedDataRequest, type PrivySigner, type PrivySignerOptions, type SignerEnv, type SignerFlags, SignerOptions, TxSigner, attachPrivyPolicyContext, createKeystoreSigner, createPrivateKeySigner, createPrivyAccount, createPrivyAuthorizationPayload, createPrivySigner, generatePrivyAuthorizationSignature, getPrivyPolicyContext, normalizePrivyApiUrl, parsePrivyAuthorizationKey, resolveSigner, serializePrivyAuthorizationPayload, signerEnvSchema, signerFlagSchema, toSignerOptions };
|