@airgap/aeternity
Version:
The @airgap/aeternity is an Aeternity implementation of the ICoinProtocol interface from @airgap/coinlib-core.
53 lines (52 loc) • 4.42 kB
TypeScript
import { Address, AirGapProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, FeeDefaults, KeyPair, ProtocolMetadata, PublicKey, RecursivePartial, SecretKey, Signature, TransactionFullConfiguration, TransactionDetails, TransactionSimpleConfiguration } from '@airgap/module-kit';
import { AeternityCryptoConfiguration } from '../types/crypto';
import { AeternityProtocolNetwork, AeternityProtocolOptions, AeternityUnits } from '../types/protocol';
import { AeternitySignedTransaction, AeternityTransactionCursor, AeternityUnsignedTransaction } from '../types/transaction';
export interface AeternityProtocol extends AirGapProtocol<{
AddressResult: Address;
ProtocolNetwork: AeternityProtocolNetwork;
CryptoConfiguration: AeternityCryptoConfiguration;
SignedTransaction: AeternitySignedTransaction;
TransactionCursor: AeternityTransactionCursor;
Units: AeternityUnits;
FeeEstimation: FeeDefaults<AeternityUnits>;
UnsignedTransaction: AeternityUnsignedTransaction;
}, 'Crypto', 'FetchDataForAddress'> {
convertTransactionToBase58(preparedTx: AeternityUnsignedTransaction): Promise<AeternityUnsignedTransaction>;
}
export declare class AeternityProtocolImpl implements AeternityProtocol {
private readonly cryptoClient;
private readonly options;
constructor(options?: RecursivePartial<AeternityProtocolOptions>);
private readonly units;
private readonly feeDefaults;
private readonly metadata;
getMetadata(): Promise<ProtocolMetadata<AeternityUnits>>;
getAddressFromPublicKey(publicKey: PublicKey): Promise<string>;
getDetailsFromTransaction(transaction: AeternitySignedTransaction | AeternityUnsignedTransaction, _publicKey: PublicKey): Promise<AirGapTransaction<AeternityUnits>[]>;
private getDetailsFromEncodedTransaction;
verifyMessageWithPublicKey(message: string, signature: Signature, publicKey: PublicKey): Promise<boolean>;
encryptAsymmetricWithPublicKey(payload: string, publicKey: PublicKey): Promise<string>;
private readonly cryptoConfiguration;
getCryptoConfiguration(): Promise<AeternityCryptoConfiguration>;
getKeyPairFromDerivative(derivative: CryptoDerivative): Promise<KeyPair>;
signTransactionWithSecretKey(transaction: AeternityUnsignedTransaction, secretKey: SecretKey): Promise<AeternitySignedTransaction>;
signMessageWithKeyPair(message: string, keyPair: KeyPair): Promise<Signature>;
decryptAsymmetricWithKeyPair(payload: string, keyPair: KeyPair): Promise<string>;
encryptAESWithSecretKey(payload: string, secretKey: SecretKey): Promise<string>;
decryptAESWithSecretKey(payload: string, secretKey: SecretKey): Promise<string>;
getNetwork(): Promise<AeternityProtocolNetwork>;
getTransactionsForPublicKey(publicKey: PublicKey, limit: number, cursor?: AeternityTransactionCursor): Promise<AirGapTransactionsWithCursor<AeternityTransactionCursor, AeternityUnits>>;
getTransactionsForAddress(address: string, limit: number, cursor?: AeternityTransactionCursor): Promise<AirGapTransactionsWithCursor<AeternityTransactionCursor, AeternityUnits>>;
getBalanceOfPublicKey(publicKey: PublicKey): Promise<Balance<AeternityUnits>>;
getBalanceOfAddress(address: string): Promise<Balance<AeternityUnits>>;
getTransactionMaxAmountWithPublicKey(publicKey: PublicKey, to: string[], configuration?: TransactionFullConfiguration<AeternityUnits>): Promise<Amount<AeternityUnits>>;
getTransactionFeeWithPublicKey(_publicKey: PublicKey, _details: TransactionDetails<AeternityUnits>[], _configuration?: TransactionSimpleConfiguration): Promise<FeeDefaults<AeternityUnits>>;
prepareTransactionWithPublicKey(publicKey: PublicKey, details: TransactionDetails<AeternityUnits>[], configuration?: TransactionFullConfiguration<AeternityUnits>): Promise<AeternityUnsignedTransaction>;
private networkId;
broadcastTransaction(transaction: AeternitySignedTransaction): Promise<string>;
convertTransactionToBase58(preparedTx: AeternityUnsignedTransaction): Promise<AeternityUnsignedTransaction>;
}
export declare function createAeternityProtocol(options?: RecursivePartial<AeternityProtocolOptions>): AeternityProtocol;
export declare const AETERNITY_MAINNET_PROTOCOL_NETWORK: AeternityProtocolNetwork;
export declare function createAeternityProtocolOptions(network?: Partial<AeternityProtocolNetwork>): AeternityProtocolOptions;