UNPKG

@phala/dstack-sdk

Version:
54 lines (51 loc) 2.96 kB
import * as abitype from 'abitype'; import * as viem from 'viem'; import * as viem_accounts from 'viem/accounts'; import { GetKeyResponse, GetTlsKeyResponse } from './index.js'; import './get-compose-hash.js'; import './verify-env-encrypt-public-key.js'; /** * @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 };