@jagad/icsi
Version:
Internet Computer Subaccount Indexer Library - TypeScript SDK for ICP multi-token subaccount management, transaction tracking, and automated sweeping with webhook support
131 lines (130 loc) • 5.57 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = exports.idlFactory = void 0;
const idlFactory = ({ IDL }) => {
const Network = IDL.Variant({ Mainnet: IDL.Null, Local: IDL.Null });
const Error = IDL.Record({ message: IDL.Text });
const Result = IDL.Variant({ Ok: IDL.Text, Err: Error });
const Result_1 = IDL.Variant({ Ok: IDL.Text, Err: IDL.Text });
const Timestamp = IDL.Record({ timestamp_nanos: IDL.Nat64 });
const SweepStatus = IDL.Variant({
Swept: IDL.Null,
FailedToSweep: IDL.Null,
NotSwept: IDL.Null,
});
const E8s = IDL.Record({ e8s: IDL.Nat64 });
const Approve = IDL.Record({
fee: E8s,
from: IDL.Vec(IDL.Nat8),
allowance_e8s: IDL.Int64,
allowance: E8s,
expected_allowance: IDL.Opt(E8s),
expires_at: IDL.Opt(Timestamp),
spender: IDL.Vec(IDL.Nat8),
});
const Burn = IDL.Record({
from: IDL.Vec(IDL.Nat8),
amount: E8s,
spender: IDL.Opt(IDL.Vec(IDL.Nat8)),
});
const Mint = IDL.Record({ to: IDL.Vec(IDL.Nat8), amount: E8s });
const Transfer = IDL.Record({
to: IDL.Vec(IDL.Nat8),
fee: E8s,
from: IDL.Vec(IDL.Nat8),
amount: E8s,
spender: IDL.Opt(IDL.Vec(IDL.Nat8)),
});
const Operation = IDL.Variant({
Approve: Approve,
Burn: Burn,
Mint: Mint,
Transfer: Transfer,
});
const TokenType = IDL.Variant({
ICP: IDL.Null,
CKUSDC: IDL.Null,
CKUSDT: IDL.Null,
CKBTC: IDL.Null,
});
const StoredTransactions = IDL.Record({
sweep_status: SweepStatus,
memo: IDL.Nat64,
token_ledger_canister_id: IDL.Opt(IDL.Principal),
icrc1_memo: IDL.Opt(IDL.Vec(IDL.Nat8)),
operation: IDL.Opt(Operation),
index: IDL.Nat64,
created_at_time: Timestamp,
tx_hash: IDL.Text,
token_type: TokenType,
});
const Result_2 = IDL.Variant({
Ok: IDL.Vec(StoredTransactions),
Err: Error,
});
const Result_3 = IDL.Variant({ Ok: IDL.Nat64, Err: IDL.Text });
const Result_4 = IDL.Variant({ Ok: Network, Err: IDL.Text });
const Result_5 = IDL.Variant({ Ok: IDL.Nat32, Err: IDL.Text });
const Result_6 = IDL.Variant({ Ok: IDL.Opt(IDL.Nat64), Err: IDL.Text });
const Result_7 = IDL.Variant({
Ok: IDL.Vec(IDL.Tuple(TokenType, IDL.Text)),
Err: IDL.Text,
});
const Result_8 = IDL.Variant({ Ok: TokenType, Err: IDL.Text });
const Result_9 = IDL.Variant({
Ok: IDL.Vec(StoredTransactions),
Err: IDL.Text,
});
const Result_10 = IDL.Variant({ Ok: IDL.Null, Err: Error });
const Result_11 = IDL.Variant({ Ok: IDL.Nat64, Err: Error });
const Result_12 = IDL.Variant({ Ok: IDL.Vec(IDL.Text), Err: Error });
const Result_13 = IDL.Variant({ Ok: IDL.Bool, Err: Error });
const HttpHeader = IDL.Record({ value: IDL.Text, name: IDL.Text });
const HttpResponse = IDL.Record({
status: IDL.Nat,
body: IDL.Vec(IDL.Nat8),
headers: IDL.Vec(HttpHeader),
});
const TransformArgs = IDL.Record({
context: IDL.Vec(IDL.Nat8),
response: HttpResponse,
});
return IDL.Service({
add_subaccount: IDL.Func([IDL.Opt(TokenType)], [Result], []),
canister_status: IDL.Func([], [Result_1], ['query']),
clear_transactions: IDL.Func([IDL.Opt(IDL.Nat64), IDL.Opt(Timestamp)], [Result_2], []),
convert_to_icrc_account: IDL.Func([IDL.Text], [Result], []),
get_canister_principal: IDL.Func([], [Result_1], ['query']),
get_icrc_account: IDL.Func([IDL.Nat32], [Result], ['query']),
get_interval: IDL.Func([], [Result_3], ['query']),
get_network: IDL.Func([], [Result_4], ['query']),
get_next_block: IDL.Func([], [Result_3], ['query']),
get_nonce: IDL.Func([], [Result_5], ['query']),
get_oldest_block: IDL.Func([], [Result_6], ['query']),
get_registered_tokens: IDL.Func([], [Result_7], ['query']),
get_subaccount_count: IDL.Func([], [Result_5], ['query']),
get_subaccountid: IDL.Func([IDL.Nat32, IDL.Opt(TokenType)], [Result], ['query']),
get_transaction_token_type: IDL.Func([IDL.Text], [Result_8], ['query']),
get_transactions_count: IDL.Func([], [Result_5], ['query']),
get_webhook_url: IDL.Func([], [Result_1], ['query']),
list_transactions: IDL.Func([IDL.Opt(IDL.Nat64)], [Result_9], ['query']),
refund: IDL.Func([IDL.Nat64], [Result], []),
register_token: IDL.Func([TokenType, IDL.Text], [Result_10], []),
set_interval: IDL.Func([IDL.Nat64], [Result_11], []),
set_next_block: IDL.Func([IDL.Nat64], [Result_11], []),
set_sweep_failed: IDL.Func([IDL.Text], [Result_12], []),
set_webhook_url: IDL.Func([IDL.Text], [Result], []),
single_sweep: IDL.Func([IDL.Text], [Result_12], []),
sweep: IDL.Func([], [Result_12], []),
sweep_by_token_type: IDL.Func([TokenType], [Result_12], []),
sweep_subaccount: IDL.Func([IDL.Text, IDL.Float64, IDL.Opt(TokenType)], [Result_11], []),
transform: IDL.Func([TransformArgs], [HttpResponse], ['query']),
validate_icrc_account: IDL.Func([IDL.Text], [Result_13], ['query']),
});
};
exports.idlFactory = idlFactory;
const init = ({ IDL }) => {
const Network = IDL.Variant({ Mainnet: IDL.Null, Local: IDL.Null });
return [Network, IDL.Nat64, IDL.Nat32, IDL.Text, IDL.Text];
};
exports.init = init;