350 lines
11 KiB
TypeScript
350 lines
11 KiB
TypeScript
// 4NK SDK Client WASM TypeScript Declarations (flate2 compatible)
|
|
|
|
export interface ApiReturn<T = any> {
|
|
success: boolean;
|
|
data?: T;
|
|
error?: string;
|
|
new_tx_to_send?: any;
|
|
commit_to_send?: any;
|
|
partial_tx?: any;
|
|
secrets?: any;
|
|
updated_process?: any;
|
|
push_to_storage?: any;
|
|
ciphers_to_send?: any;
|
|
}
|
|
|
|
export interface Device {
|
|
id: string;
|
|
name: string;
|
|
description?: string;
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export interface Process {
|
|
id: string;
|
|
name: string;
|
|
description?: string;
|
|
device_id: string;
|
|
state: ProcessState;
|
|
states: ProcessState[]; // Added for compatibility
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export interface Member {
|
|
id: string;
|
|
name: string;
|
|
public_key: string;
|
|
process_id: string;
|
|
roles: string[];
|
|
sp_addresses?: string[]; // Added for compatibility
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export interface Role {
|
|
id: string;
|
|
name: string;
|
|
description?: string;
|
|
process_id: string;
|
|
members: string[];
|
|
validation_rules: ValidationRule[];
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export interface ValidationRule {
|
|
id: string;
|
|
field_name: string;
|
|
rule_type: ValidationRuleType;
|
|
parameters?: any;
|
|
role_id: string;
|
|
quorum?: number; // Added for compatibility
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export interface Commitment {
|
|
id: string;
|
|
hash: string;
|
|
data: any;
|
|
process_id: string;
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export interface Signature {
|
|
id: string;
|
|
signature: string;
|
|
commitment_id: string;
|
|
public_key: string;
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export interface HandshakeMessage {
|
|
id: string;
|
|
message_type: string;
|
|
data: any;
|
|
device_id: string;
|
|
sp_address?: string; // Added for compatibility
|
|
peers_list?: Record<string, any>; // Added for compatibility
|
|
processes_list?: Record<string, any>; // Added for compatibility
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
export interface ProcessState {
|
|
commited_in: any;
|
|
pcd_commitment: any;
|
|
state_id: string;
|
|
keys: Record<string, string>;
|
|
validation_tokens: any[];
|
|
public_data: any;
|
|
roles: Record<string, RoleDefinition>;
|
|
}
|
|
|
|
export interface RoleDefinition {
|
|
members: any[];
|
|
validation_rules: Record<string, ValidationRule>;
|
|
}
|
|
|
|
export interface OutPointProcessMap {
|
|
[key: string]: any;
|
|
}
|
|
|
|
export interface MerkleProofResult {
|
|
proof: any[];
|
|
root: string;
|
|
leaf: string;
|
|
}
|
|
|
|
export interface SecretsStore {
|
|
[key: string]: any;
|
|
}
|
|
|
|
export interface UserDiff {
|
|
added: any[];
|
|
removed: any[];
|
|
modified: any[];
|
|
}
|
|
|
|
// Enums
|
|
export const AnkFlag: {
|
|
VALIDATION_YES: "validation_yes";
|
|
VALIDATION_NO: "validation_no";
|
|
NEW_TX: "NewTx";
|
|
COMMIT: "Commit";
|
|
CIPHER: "Cipher";
|
|
FAUCET: "Faucet";
|
|
};
|
|
|
|
export const ProcessState: {
|
|
DRAFT: "draft";
|
|
ACTIVE: "active";
|
|
COMPLETED: "completed";
|
|
CANCELLED: "cancelled";
|
|
};
|
|
|
|
export const MemberRole: {
|
|
OWNER: "owner";
|
|
ADMIN: "admin";
|
|
MEMBER: "member";
|
|
GUEST: "guest";
|
|
};
|
|
|
|
export const ValidationRuleType: {
|
|
REQUIRED: "required";
|
|
MIN_LENGTH: "min_length";
|
|
MAX_LENGTH: "max_length";
|
|
PATTERN: "pattern";
|
|
CUSTOM: "custom";
|
|
};
|
|
|
|
// Function signatures
|
|
export function init(): Promise<void>;
|
|
export function setup(): void;
|
|
|
|
// Device functions
|
|
export function create_device(name: string, description?: string): ApiReturn<Device>;
|
|
export function create_new_device(network: number, name: string): ApiReturn<Device>;
|
|
export function get_device(id: string): ApiReturn<Device>;
|
|
export function list_devices(): ApiReturn<Device[]>;
|
|
export function delete_device(id: string): ApiReturn;
|
|
export function dump_device(): any;
|
|
export function restore_device(device: any): void;
|
|
export function get_address(): string;
|
|
export function pair_device(processId: string, addresses: string[]): void;
|
|
export function unpair_device(): void;
|
|
export function is_paired(): boolean;
|
|
export function get_pairing_process_id(): string;
|
|
|
|
// Process functions
|
|
export function create_process(device_id: string, name: string, description?: string): ApiReturn<Process>;
|
|
export function create_new_process(privateData: any, roles: any, publicData: any, relayAddress: string, feeRate: number, membersList: any): ApiReturn<Process>;
|
|
export function get_process(id: string): ApiReturn<Process>;
|
|
export function list_processes(): ApiReturn<Process[]>;
|
|
export function delete_process(id: string): ApiReturn;
|
|
export function update_process(process: any, newAttributes: any, newRoles: any, newPublicData: any, membersList: any): ApiReturn;
|
|
|
|
// Member functions
|
|
export function create_member(process_id: string, name: string, public_key: string): ApiReturn<Member>;
|
|
export function get_member(id: string): ApiReturn<Member>;
|
|
export function list_members(process_id: string): ApiReturn<Member[]>;
|
|
export function delete_member(id: string): ApiReturn;
|
|
|
|
// Role functions
|
|
export function create_role(process_id: string, name: string, description?: string): ApiReturn<Role>;
|
|
export function get_role(id: string): ApiReturn<Role>;
|
|
export function list_roles(process_id: string): ApiReturn<Role[]>;
|
|
export function delete_role(id: string): ApiReturn;
|
|
export function assign_member_to_role(member_id: string, role_id: string): ApiReturn;
|
|
export function remove_member_from_role(member_id: string, role_id: string): ApiReturn;
|
|
|
|
// Validation rule functions
|
|
export function create_validation_rule(role_id: string, field_name: string, rule_type: ValidationRuleType, parameters?: any): ApiReturn<ValidationRule>;
|
|
export function get_validation_rule(id: string): ApiReturn<ValidationRule>;
|
|
export function list_validation_rules(role_id: string): ApiReturn<ValidationRule[]>;
|
|
export function delete_validation_rule(id: string): ApiReturn;
|
|
|
|
// Commitment functions
|
|
export function create_commitment(process_id: string, data: any): ApiReturn<Commitment>;
|
|
export function get_commitment(id: string): ApiReturn<Commitment>;
|
|
export function list_commitments(process_id: string): ApiReturn<Commitment[]>;
|
|
export function delete_commitment(id: string): ApiReturn;
|
|
|
|
// Signature functions
|
|
export function create_signature(commitment_id: string, private_key: string): ApiReturn<Signature>;
|
|
export function verify_signature(commitment_id: string, signature: string, public_key: string): ApiReturn<{ valid: boolean }>;
|
|
export function list_signatures(commitment_id: string): ApiReturn<Signature[]>;
|
|
export function delete_signature(id: string): ApiReturn;
|
|
export function sign_transaction(partial_tx: any): ApiReturn;
|
|
|
|
// Transaction functions
|
|
export function create_transaction(addresses: any, amount: number): ApiReturn;
|
|
export function create_silent_payment_address(scan_key: string, spend_key: string): ApiReturn<string>;
|
|
export function create_silent_payment_transaction(scan_key: string, spend_key: string, outputs: any[]): ApiReturn;
|
|
export function get_available_amount(): bigint;
|
|
export function create_faucet_msg(): any;
|
|
|
|
// Message parsing functions
|
|
export function parse_cipher(message: any, membersList: any, processes: any): ApiReturn;
|
|
export function parse_new_tx(tx: any, network: number, membersList: any): ApiReturn;
|
|
export function create_update_message(process: any, stateId: string, membersList: any): ApiReturn;
|
|
export function validate_state(process: any, stateId: string, membersList: any): ApiReturn;
|
|
export function request_data(processId: string, stateIds: string[], roles: string[], membersList: any): ApiReturn;
|
|
|
|
// Encoding/Decoding functions
|
|
export function encode_json(data: any): any;
|
|
export function encode_binary(data: any): any;
|
|
export function decode_value(data: Uint8Array): any;
|
|
export function decrypt_data(key: Uint8Array, cipher: any): Uint8Array;
|
|
|
|
// Compression functions
|
|
export function compress_data(data: string): Promise<ApiReturn<string>>;
|
|
export function decompress_data(compressed_data: string): Promise<ApiReturn<string>>;
|
|
|
|
// Handshake functions
|
|
export function create_handshake_message(device_id: string, message_type: string, data: any): ApiReturn<HandshakeMessage>;
|
|
export function verify_handshake_message(message: HandshakeMessage, public_key: string): ApiReturn<{ valid: boolean }>;
|
|
|
|
// Encryption functions
|
|
export function create_encrypted_message(data: any, public_key: string): ApiReturn<{ encrypted: string }>;
|
|
export function decrypt_message(encrypted_data: string, private_key: string): ApiReturn<{ decrypted: string }>;
|
|
|
|
// Hash functions
|
|
export function create_hash(data: string): ApiReturn<{ hash: string }>;
|
|
export function verify_hash(data: string, hash: string): ApiReturn<{ valid: boolean }>;
|
|
|
|
// Utility functions
|
|
export function create_random_bytes(length: number): ApiReturn<{ bytes: string }>;
|
|
export function create_uuid(): ApiReturn<{ uuid: string }>;
|
|
export function get_timestamp(): ApiReturn<{ timestamp: number }>;
|
|
export function validate_input(input: any, validation_rules: ValidationRule[]): ApiReturn<{ valid: boolean; errors: string[] }>;
|
|
export function format_output(output: any, format_type: string): ApiReturn<{ formatted: string }>;
|
|
export function log_message(level: string, message: string): ApiReturn;
|
|
export function get_version(): ApiReturn<{ version: string }>;
|
|
export function get_health_status(): ApiReturn<{ status: string; uptime: number }>;
|
|
|
|
// Default export
|
|
export default {
|
|
init,
|
|
setup,
|
|
create_device,
|
|
create_new_device,
|
|
get_device,
|
|
list_devices,
|
|
delete_device,
|
|
dump_device,
|
|
restore_device,
|
|
get_address,
|
|
pair_device,
|
|
unpair_device,
|
|
is_paired,
|
|
get_pairing_process_id,
|
|
create_process,
|
|
create_new_process,
|
|
get_process,
|
|
list_processes,
|
|
delete_process,
|
|
update_process,
|
|
create_member,
|
|
get_member,
|
|
list_members,
|
|
delete_member,
|
|
create_role,
|
|
get_role,
|
|
list_roles,
|
|
delete_role,
|
|
assign_member_to_role,
|
|
remove_member_from_role,
|
|
create_validation_rule,
|
|
get_validation_rule,
|
|
list_validation_rules,
|
|
delete_validation_rule,
|
|
create_commitment,
|
|
get_commitment,
|
|
list_commitments,
|
|
delete_commitment,
|
|
create_signature,
|
|
verify_signature,
|
|
list_signatures,
|
|
delete_signature,
|
|
sign_transaction,
|
|
create_transaction,
|
|
create_silent_payment_address,
|
|
create_silent_payment_transaction,
|
|
get_available_amount,
|
|
create_faucet_msg,
|
|
parse_cipher,
|
|
parse_new_tx,
|
|
create_update_message,
|
|
validate_state,
|
|
request_data,
|
|
encode_json,
|
|
encode_binary,
|
|
decode_value,
|
|
decrypt_data,
|
|
compress_data,
|
|
decompress_data,
|
|
create_handshake_message,
|
|
verify_handshake_message,
|
|
create_encrypted_message,
|
|
decrypt_message,
|
|
create_hash,
|
|
verify_hash,
|
|
create_random_bytes,
|
|
create_uuid,
|
|
get_timestamp,
|
|
validate_input,
|
|
format_output,
|
|
log_message,
|
|
get_version,
|
|
get_health_status,
|
|
AnkFlag,
|
|
ProcessState,
|
|
MemberRole,
|
|
ValidationRuleType
|
|
};
|