@safik/fk-plug-controller
Version:
Internet Computer Plug wallet's controller
62 lines (61 loc) • 1.91 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = void 0;
/* eslint-disable @typescript-eslint/camelcase */
exports.default = ({ IDL }) => {
const TransactionId = IDL.Nat64;
const BurnError = IDL.Variant({
InsufficientBalance: IDL.Null,
InvalidTokenContract: IDL.Null,
NotSufficientLiquidity: IDL.Null,
});
const TxReceipt = IDL.Variant({
Err: IDL.Variant({
InsufficientAllowance: IDL.Null,
InsufficientBalance: IDL.Null,
}),
Ok: IDL.Nat,
});
const BurnResult = IDL.Variant({
Ok: TransactionId,
Err: BurnError,
});
const TokenMetaData = IDL.Record({
features: IDL.Vec(IDL.Text),
name: IDL.Text,
decimal: IDL.Nat8,
symbol: IDL.Text,
});
const NotifyArgs = IDL.Record({
canister_id: IDL.Principal,
method_name: IDL.Text,
});
const TransferError = IDL.Variant({
CallFailed: IDL.Null,
InsufficientBalance: IDL.Null,
Unknown: IDL.Null,
AmountTooLarge: IDL.Null,
});
const TransferResult = IDL.Variant({
Ok: TransactionId,
Err: TransferError,
});
return IDL.Service({
meta: IDL.Func([], [TokenMetaData], ['query']),
meta_certified: IDL.Func([], [TokenMetaData], []),
balance: IDL.Func([IDL.Opt(IDL.Principal)], [IDL.Nat64], []),
burn: IDL.Func([IDL.Record({ canister_id: IDL.Principal, amount: IDL.Nat64 })], [BurnResult], []),
transfer: IDL.Func([
IDL.Record({
to: IDL.Principal,
from: IDL.Opt(IDL.Principal),
amount: IDL.Nat64,
}),
], [TransferResult], []),
transferErc20: IDL.Func([IDL.Principal, IDL.Nat], [TxReceipt], []),
});
};
const init = () => {
return [];
};
exports.init = init;