@phala/dstack-sdk
Version:
54 lines (51 loc) • 2.96 kB
text/typescript
import * as abitype from 'abitype';
import * as viem from 'viem';
import * as viem_accounts from 'viem/accounts';
import { GetKeyResponse, GetTlsKeyResponse } from './index.mjs';
import './get-compose-hash.mjs';
import './verify-env-encrypt-public-key.mjs';
/**
* @deprecated use toViemAccountSecure instead. This method has security concerns.
* Current implementation uses raw key material without proper hashing.
*/
declare function toViemAccount(keyResponse: GetKeyResponse | GetTlsKeyResponse): {
address: viem_accounts.Address;
nonceManager?: viem_accounts.NonceManager | undefined;
sign: (parameters: {
hash: viem.Hash;
}) => Promise<viem.Hex>;
signAuthorization: (parameters: viem.AuthorizationRequest) => Promise<viem_accounts.SignAuthorizationReturnType>;
signMessage: ({ message }: {
message: viem.SignableMessage;
}) => Promise<viem.Hex>;
signTransaction: <serializer extends viem.SerializeTransactionFn<viem.TransactionSerializable> = viem.SerializeTransactionFn<viem.TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
serializer?: serializer | undefined;
} | undefined) => Promise<viem.Hex>;
signTypedData: <const typedData extends abitype.TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(parameters: viem.TypedDataDefinition<typedData, primaryType>) => Promise<viem.Hex>;
publicKey: viem.Hex;
source: "privateKey";
type: "local";
};
/**
* Creates a Viem account from DeriveKeyResponse using secure key derivation.
* This method applies SHA256 hashing to the complete key material for enhanced security.
*/
declare function toViemAccountSecure(keyResponse: GetKeyResponse | GetTlsKeyResponse): {
address: viem_accounts.Address;
nonceManager?: viem_accounts.NonceManager | undefined;
sign: (parameters: {
hash: viem.Hash;
}) => Promise<viem.Hex>;
signAuthorization: (parameters: viem.AuthorizationRequest) => Promise<viem_accounts.SignAuthorizationReturnType>;
signMessage: ({ message }: {
message: viem.SignableMessage;
}) => Promise<viem.Hex>;
signTransaction: <serializer extends viem.SerializeTransactionFn<viem.TransactionSerializable> = viem.SerializeTransactionFn<viem.TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
serializer?: serializer | undefined;
} | undefined) => Promise<viem.Hex>;
signTypedData: <const typedData extends abitype.TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(parameters: viem.TypedDataDefinition<typedData, primaryType>) => Promise<viem.Hex>;
publicKey: viem.Hex;
source: "privateKey";
type: "local";
};
export { toViemAccount, toViemAccountSecure };