@stacks/stacking
Version:
Library for Stacking.
55 lines (54 loc) • 3.01 kB
TypeScript
import { IntegerType, PrivateKey } from '@stacks/common';
import { StacksNetwork, StacksNetworkName } from '@stacks/network';
import { BufferCV, ClarityValue, OptionalCV, TupleCV } from '@stacks/transactions';
import { PoXAddressVersion, StackingErrors } from './constants';
export declare class InvalidAddressError extends Error {
innerError?: Error;
constructor(address: string, innerError?: Error);
}
export declare function btcAddressVersionToLegacyHashMode(btcAddressVersion: number): PoXAddressVersion;
export declare function decodeBtcAddress(btcAddress: string): {
version: PoXAddressVersion;
data: string;
};
export declare function decodeBtcAddressBytes(btcAddress: string): {
version: PoXAddressVersion;
data: Uint8Array;
};
export declare function extractPoxAddressFromClarityValue(poxAddrClarityValue: ClarityValue): {
version: number;
hashBytes: Uint8Array;
};
export declare function getErrorString(error: StackingErrors): string;
export declare function poxAddressToTuple(poxAddress: string): TupleCV<import("@stacks/transactions").TupleData<BufferCV>>;
export declare function poxAddressToBtcAddress(version: number, hash: string | Uint8Array, network: StacksNetworkName): string;
export declare function poxAddressToBtcAddress(poxAddrClarityValue: ClarityValue, network: StacksNetworkName): string;
export declare function unwrap<T extends ClarityValue>(optional: OptionalCV<T>): T | undefined;
export declare function unwrapMap<T extends ClarityValue, U>(optional: OptionalCV<T>, map: (t: T) => U): U | undefined;
export declare enum Pox4SignatureTopic {
StackStx = "stack-stx",
AggregateCommit = "agg-commit",
AggregateIncrease = "agg-increase",
StackExtend = "stack-extend",
StackIncrease = "stack-increase"
}
export interface Pox4SignatureOptions {
topic: `${Pox4SignatureTopic}` | Pox4SignatureTopic;
poxAddress: string;
rewardCycle: number;
period: number;
network: StacksNetworkName | StacksNetwork;
maxAmount: IntegerType;
authId: IntegerType;
}
export declare function signPox4SignatureHash({ topic, poxAddress, rewardCycle, period, network, privateKey, maxAmount, authId, }: Pox4SignatureOptions & {
privateKey: PrivateKey;
}): string;
export declare function verifyPox4SignatureHash({ topic, poxAddress, rewardCycle, period, network, publicKey, signature, maxAmount, authId, }: Pox4SignatureOptions & {
publicKey: string;
signature: string;
}): boolean;
export declare function pox4SignatureMessage({ topic, poxAddress, rewardCycle, period: lockPeriod, network: networkOrName, maxAmount, authId, }: Pox4SignatureOptions): {
message: TupleCV<import("@stacks/transactions").TupleData<import("@stacks/transactions").UIntCV | import("@stacks/transactions").StringAsciiCV | TupleCV<import("@stacks/transactions").TupleData<BufferCV>>>>;
domain: TupleCV<import("@stacks/transactions").TupleData<import("@stacks/transactions").UIntCV | import("@stacks/transactions").StringAsciiCV>>;
};