@astrox/connection 0.0.24 → 0.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -10
- package/lib/cjs/canisters/internet_identity_idl.d.ts +7 -0
- package/lib/cjs/canisters/internet_identity_idl.js +102 -0
- package/lib/cjs/canisters/internet_identity_idl.js.map +1 -0
- package/lib/cjs/canisters/ledger.idl.d.ts +7 -0
- package/lib/cjs/canisters/ledger.idl.js +82 -0
- package/lib/cjs/canisters/ledger.idl.js.map +1 -0
- package/lib/cjs/canisters/me.idl.d.ts +7 -0
- package/lib/cjs/canisters/me.idl.js +126 -0
- package/lib/cjs/canisters/me.idl.js.map +1 -0
- package/lib/cjs/canisters/nns-dapp-cert.idl.d.ts +7 -0
- package/lib/cjs/canisters/nns-dapp-cert.idl.js +87 -0
- package/lib/cjs/canisters/nns-dapp-cert.idl.js.map +1 -0
- package/lib/cjs/canisters/nns-dapp.idl.d.ts +7 -0
- package/lib/cjs/canisters/nns-dapp.idl.js +185 -0
- package/lib/cjs/canisters/nns-dapp.idl.js.map +1 -0
- package/lib/cjs/connections/baseConnection.d.ts +23 -0
- package/lib/cjs/connections/baseConnection.js +89 -0
- package/lib/cjs/connections/baseConnection.js.map +1 -0
- package/lib/cjs/connections/ledgerConnection.d.ts +53 -0
- package/lib/cjs/connections/ledgerConnection.js +137 -0
- package/lib/cjs/connections/ledgerConnection.js.map +1 -0
- package/lib/cjs/connections/nnsConnection.d.ts +63 -0
- package/lib/cjs/connections/nnsConnection.js +161 -0
- package/lib/cjs/connections/nnsConnection.js.map +1 -0
- package/lib/cjs/ic/icAuthClient.d.ts +31 -0
- package/lib/cjs/ic/icAuthClient.js +236 -0
- package/lib/cjs/ic/icAuthClient.js.map +1 -0
- package/lib/cjs/ic/icConnect.d.ts +36 -0
- package/lib/cjs/ic/icConnect.js +192 -0
- package/lib/cjs/ic/icConnect.js.map +1 -0
- package/lib/cjs/ic/icStorage.d.ts +16 -0
- package/lib/cjs/ic/icStorage.js +49 -0
- package/lib/cjs/ic/icStorage.js.map +1 -0
- package/lib/cjs/ic/icWindow.d.ts +8 -0
- package/lib/cjs/ic/icWindow.js +24 -0
- package/lib/cjs/ic/icWindow.js.map +1 -0
- package/lib/cjs/ic/index.d.ts +2 -0
- package/lib/cjs/ic/index.js +8 -0
- package/lib/cjs/ic/index.js.map +1 -0
- package/lib/cjs/index.d.ts +5 -0
- package/lib/cjs/index.js +18 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/types/index.d.ts +175 -0
- package/lib/cjs/types/index.js +17 -0
- package/lib/cjs/types/index.js.map +1 -0
- package/lib/cjs/utils/common/types.d.ts +15 -0
- package/lib/cjs/utils/common/types.js +12 -0
- package/lib/cjs/utils/common/types.js.map +1 -0
- package/lib/cjs/utils/constants.d.ts +6 -0
- package/lib/cjs/utils/constants.js +13 -0
- package/lib/cjs/utils/constants.js.map +1 -0
- package/lib/cjs/utils/converter.d.ts +32 -0
- package/lib/cjs/utils/converter.js +147 -0
- package/lib/cjs/utils/converter.js.map +1 -0
- package/lib/cjs/utils/index.d.ts +3 -0
- package/lib/cjs/utils/index.js +16 -0
- package/lib/cjs/utils/index.js.map +1 -0
- package/lib/esm/canisters/internet_identity_idl.d.ts +7 -0
- package/lib/esm/canisters/internet_identity_idl.js +98 -0
- package/lib/esm/canisters/internet_identity_idl.js.map +1 -0
- package/lib/esm/canisters/ledger.idl.d.ts +7 -0
- package/lib/esm/canisters/ledger.idl.js +78 -0
- package/lib/esm/canisters/ledger.idl.js.map +1 -0
- package/lib/esm/canisters/me.idl.d.ts +7 -0
- package/lib/esm/canisters/me.idl.js +122 -0
- package/lib/esm/canisters/me.idl.js.map +1 -0
- package/lib/esm/canisters/nns-dapp-cert.idl.d.ts +7 -0
- package/lib/esm/canisters/nns-dapp-cert.idl.js +83 -0
- package/lib/esm/canisters/nns-dapp-cert.idl.js.map +1 -0
- package/lib/esm/canisters/nns-dapp.idl.d.ts +7 -0
- package/lib/esm/canisters/nns-dapp.idl.js +181 -0
- package/lib/esm/canisters/nns-dapp.idl.js.map +1 -0
- package/lib/esm/connections/baseConnection.d.ts +23 -0
- package/lib/esm/connections/baseConnection.js +80 -0
- package/lib/esm/connections/baseConnection.js.map +1 -0
- package/lib/esm/connections/ledgerConnection.d.ts +53 -0
- package/lib/esm/connections/ledgerConnection.js +130 -0
- package/lib/esm/connections/ledgerConnection.js.map +1 -0
- package/lib/esm/connections/nnsConnection.d.ts +63 -0
- package/lib/esm/connections/nnsConnection.js +154 -0
- package/lib/esm/connections/nnsConnection.js.map +1 -0
- package/lib/esm/ic/icAuthClient.d.ts +31 -0
- package/lib/esm/ic/icAuthClient.js +232 -0
- package/lib/esm/ic/icAuthClient.js.map +1 -0
- package/lib/esm/ic/icConnect.d.ts +36 -0
- package/lib/esm/ic/icConnect.js +188 -0
- package/lib/esm/ic/icConnect.js.map +1 -0
- package/lib/esm/ic/icStorage.d.ts +16 -0
- package/lib/esm/ic/icStorage.js +44 -0
- package/lib/esm/ic/icStorage.js.map +1 -0
- package/lib/esm/ic/icWindow.d.ts +8 -0
- package/lib/esm/ic/icWindow.js +20 -0
- package/lib/esm/ic/icWindow.js.map +1 -0
- package/lib/esm/ic/index.d.ts +2 -0
- package/lib/esm/ic/index.js +3 -0
- package/lib/esm/ic/index.js.map +1 -0
- package/lib/esm/index.d.ts +5 -0
- package/lib/esm/index.js +6 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/types/index.d.ts +175 -0
- package/lib/esm/types/index.js +14 -0
- package/lib/esm/types/index.js.map +1 -0
- package/lib/esm/utils/common/types.d.ts +15 -0
- package/lib/esm/utils/common/types.js +9 -0
- package/lib/esm/utils/common/types.js.map +1 -0
- package/lib/esm/utils/constants.d.ts +6 -0
- package/lib/esm/utils/constants.js +10 -0
- package/lib/esm/utils/constants.js.map +1 -0
- package/lib/esm/utils/converter.d.ts +32 -0
- package/lib/esm/utils/converter.js +124 -0
- package/lib/esm/utils/converter.js.map +1 -0
- package/lib/esm/utils/index.d.ts +3 -0
- package/lib/esm/utils/index.js +4 -0
- package/lib/esm/utils/index.js.map +1 -0
- package/lib/tsconfig-cjs.tsbuildinfo +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
@@ -0,0 +1,192 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
7
|
+
};
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
12
|
+
};
|
13
|
+
var _IC_authClient, _IC_agent, _IC_localLedger, _IC_walletProvider;
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
exports.IC = void 0;
|
16
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
17
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
18
|
+
const agent_1 = require("@dfinity/agent");
|
19
|
+
const icAuthClient_1 = require("./icAuthClient");
|
20
|
+
const icStorage_1 = require("./icStorage");
|
21
|
+
const icWindow_1 = require("./icWindow");
|
22
|
+
const ledgerConnection_1 = require("../connections/ledgerConnection");
|
23
|
+
const types_1 = require("../types");
|
24
|
+
const days = BigInt(1);
|
25
|
+
const hours = BigInt(24);
|
26
|
+
const nanoseconds = BigInt(3600000000000);
|
27
|
+
const WALLET_PROVIDER_DEFAULT = 'https://63k2f-nyaaa-aaaah-aakla-cai.raw.ic0.app';
|
28
|
+
const WALLET_PROVIDER_ENDPOINT = '#transaction';
|
29
|
+
class IC extends icWindow_1.ICWindow {
|
30
|
+
constructor(authClient) {
|
31
|
+
super();
|
32
|
+
_IC_authClient.set(this, void 0);
|
33
|
+
_IC_agent.set(this, void 0);
|
34
|
+
_IC_localLedger.set(this, void 0);
|
35
|
+
_IC_walletProvider.set(this, void 0); // a local ledger to query balance only
|
36
|
+
this.disconnect = async (options = {}) => {
|
37
|
+
await this.getAuthClient().logout(options);
|
38
|
+
};
|
39
|
+
this.queryBalance = async () => {
|
40
|
+
var _a;
|
41
|
+
if (this.wallet === undefined) {
|
42
|
+
throw Error('Wallet address is not found');
|
43
|
+
}
|
44
|
+
if (__classPrivateFieldGet(this, _IC_localLedger, "f") === undefined) {
|
45
|
+
throw Error('Ledger connection faild');
|
46
|
+
}
|
47
|
+
const result = await ((_a = __classPrivateFieldGet(this, _IC_localLedger, "f")) === null || _a === void 0 ? void 0 : _a.getBalance(this.wallet));
|
48
|
+
return result;
|
49
|
+
};
|
50
|
+
this.handleAuthenticated = async (ic, { ledgerCanisterId }) => {
|
51
|
+
const identity = ic.getAuthClient().getIdentity();
|
52
|
+
__classPrivateFieldSet(this, _IC_agent, new agent_1.HttpAgent({ identity }), "f");
|
53
|
+
if (!process.env.isProduction) {
|
54
|
+
await __classPrivateFieldGet(this, _IC_agent, "f").fetchRootKey();
|
55
|
+
}
|
56
|
+
const actorResult = await ledgerConnection_1.LedgerConnection.createActor(ic.getAuthClient().getDelegationIdentity(), ledgerCanisterId);
|
57
|
+
__classPrivateFieldSet(this, _IC_localLedger, ledgerConnection_1.LedgerConnection.createConnection(ic.getAuthClient().getInnerKey(), ic.getAuthClient().getDelegationIdentity(), ledgerCanisterId, actorResult.actor, __classPrivateFieldGet(this, _IC_agent, "f")), "f");
|
58
|
+
this.injectWindow();
|
59
|
+
return new IC(ic.getAuthClient());
|
60
|
+
};
|
61
|
+
this.createActor = (idlFactory, canisterId) => {
|
62
|
+
return agent_1.Actor.createActor(idlFactory, {
|
63
|
+
agent: __classPrivateFieldGet(this, _IC_agent, "f"),
|
64
|
+
canisterId,
|
65
|
+
});
|
66
|
+
};
|
67
|
+
// requestTransfer
|
68
|
+
this.requestTransfer = async (options) => {
|
69
|
+
var _a;
|
70
|
+
const walletProviderUrl = new URL(((_a = options === null || options === void 0 ? void 0 : options.walletProvider) === null || _a === void 0 ? void 0 : _a.toString()) || __classPrivateFieldGet(this, _IC_walletProvider, "f") || WALLET_PROVIDER_DEFAULT);
|
71
|
+
walletProviderUrl.hash = WALLET_PROVIDER_ENDPOINT;
|
72
|
+
this._openWindow(walletProviderUrl.toString(), 'icWindow', 'height=600, width=480, top=0, right=0, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
|
73
|
+
return new Promise((resolve, reject) => {
|
74
|
+
this._eventHandler = this._getEventHandler(walletProviderUrl, resolve, reject, options);
|
75
|
+
window.addEventListener('message', this._eventHandler);
|
76
|
+
});
|
77
|
+
};
|
78
|
+
__classPrivateFieldSet(this, _IC_authClient, authClient, "f");
|
79
|
+
}
|
80
|
+
static async connect(connectOptions) {
|
81
|
+
var _a, _b, _c, _d;
|
82
|
+
const authClient = await icAuthClient_1.AuthClient.create(connectOptions);
|
83
|
+
const newIC = new this(authClient);
|
84
|
+
const provider = (_a = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.identityProvider) !== null && _a !== void 0 ? _a : icStorage_1.IDENTITY_PROVIDER_DEFAULT;
|
85
|
+
newIC._setWalletProvider(connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.walletProviderUrl);
|
86
|
+
if (await newIC.isAuthenticated()) {
|
87
|
+
await newIC.handleAuthenticated(newIC, { ledgerCanisterId: connectOptions.ledgerCanisterId });
|
88
|
+
await ((_b = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.onAuthenticated) === null || _b === void 0 ? void 0 : _b.call(connectOptions, newIC));
|
89
|
+
return newIC;
|
90
|
+
}
|
91
|
+
await newIC.getAuthClient().login({
|
92
|
+
identityProvider: provider,
|
93
|
+
// Maximum authorization expiration is 8 days
|
94
|
+
maxTimeToLive: (_c = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.maxTimeToLive) !== null && _c !== void 0 ? _c : days * hours * nanoseconds,
|
95
|
+
permissions: (_d = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.permissions) !== null && _d !== void 0 ? _d : [types_1.PermissionsType.identity],
|
96
|
+
onSuccess: async () => {
|
97
|
+
var _a, _b, _c;
|
98
|
+
await newIC.handleAuthenticated(newIC, {
|
99
|
+
ledgerCanisterId: connectOptions.ledgerCanisterId,
|
100
|
+
});
|
101
|
+
(_b = (await ((_a = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.onSuccess) === null || _a === void 0 ? void 0 : _a.call(connectOptions)))) !== null && _b !== void 0 ? _b : (await ((_c = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.onAuthenticated) === null || _c === void 0 ? void 0 : _c.call(connectOptions, newIC)));
|
102
|
+
},
|
103
|
+
onError: newIC.handleError,
|
104
|
+
});
|
105
|
+
return newIC;
|
106
|
+
}
|
107
|
+
async isAuthenticated() {
|
108
|
+
const result = await __classPrivateFieldGet(this, _IC_authClient, "f").isAuthenticated();
|
109
|
+
return result;
|
110
|
+
}
|
111
|
+
get identity() {
|
112
|
+
return __classPrivateFieldGet(this, _IC_authClient, "f").getIdentity();
|
113
|
+
}
|
114
|
+
get principal() {
|
115
|
+
return this.identity.getPrincipal();
|
116
|
+
}
|
117
|
+
get wallet() {
|
118
|
+
return __classPrivateFieldGet(this, _IC_authClient, "f").wallet;
|
119
|
+
}
|
120
|
+
_setWalletProvider(provider) {
|
121
|
+
__classPrivateFieldSet(this, _IC_walletProvider, provider, "f");
|
122
|
+
}
|
123
|
+
getAuthClient() {
|
124
|
+
return __classPrivateFieldGet(this, _IC_authClient, "f");
|
125
|
+
}
|
126
|
+
injectWindow(ic) {
|
127
|
+
if (window.ic !== undefined) {
|
128
|
+
let plug;
|
129
|
+
if (window.ic.plug !== undefined) {
|
130
|
+
plug = window.ic.plug;
|
131
|
+
}
|
132
|
+
window.ic = ic !== null && ic !== void 0 ? ic : this;
|
133
|
+
window.ic.plug = plug;
|
134
|
+
}
|
135
|
+
else {
|
136
|
+
window.ic = ic !== null && ic !== void 0 ? ic : this;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
handleError(error) {
|
140
|
+
throw new Error(error);
|
141
|
+
}
|
142
|
+
_getEventHandler(walletProviderUrl, resolve, reject, options) {
|
143
|
+
return async (event) => {
|
144
|
+
var _a;
|
145
|
+
if (event.origin !== walletProviderUrl.origin) {
|
146
|
+
return;
|
147
|
+
}
|
148
|
+
const message = event.data;
|
149
|
+
switch (message.kind) {
|
150
|
+
case types_1.TransactionMessageKind.ready: {
|
151
|
+
// IDP is ready. Send a message to request authorization.
|
152
|
+
const request = {
|
153
|
+
kind: types_1.TransactionMessageKind.client,
|
154
|
+
from: options.from,
|
155
|
+
to: options.to,
|
156
|
+
amount: options.amount,
|
157
|
+
sendOpts: options.sendOpts,
|
158
|
+
};
|
159
|
+
(_a = this._window) === null || _a === void 0 ? void 0 : _a.postMessage(request, walletProviderUrl.origin);
|
160
|
+
break;
|
161
|
+
}
|
162
|
+
case types_1.TransactionMessageKind.success:
|
163
|
+
// Create the delegation chain and store it.
|
164
|
+
try {
|
165
|
+
resolve(this._handleSuccess(message, options.onSuccess));
|
166
|
+
}
|
167
|
+
catch (err) {
|
168
|
+
reject(this._handleFailure(err.message, options.onError));
|
169
|
+
}
|
170
|
+
break;
|
171
|
+
case types_1.TransactionMessageKind.fail:
|
172
|
+
reject(this._handleFailure(message.text, options.onError));
|
173
|
+
break;
|
174
|
+
default:
|
175
|
+
break;
|
176
|
+
}
|
177
|
+
};
|
178
|
+
}
|
179
|
+
_handleFailure(errorMessage, onError) {
|
180
|
+
this._remove();
|
181
|
+
onError === null || onError === void 0 ? void 0 : onError(errorMessage);
|
182
|
+
return errorMessage;
|
183
|
+
}
|
184
|
+
_handleSuccess(value, onSuccess) {
|
185
|
+
this._remove();
|
186
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(value);
|
187
|
+
return value;
|
188
|
+
}
|
189
|
+
}
|
190
|
+
exports.IC = IC;
|
191
|
+
_IC_authClient = new WeakMap(), _IC_agent = new WeakMap(), _IC_localLedger = new WeakMap(), _IC_walletProvider = new WeakMap();
|
192
|
+
//# sourceMappingURL=icConnect.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"icConnect.js","sourceRoot":"","sources":["../../../src/ic/icConnect.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { AuthClientStorage } from '../types';
|
2
|
+
export declare const KEY_SESSIONSTORAGE_KEY = "identity";
|
3
|
+
export declare const KEY_SESSIONSTORAGE_DELEGATION = "delegation";
|
4
|
+
export declare const KEY_SESSIONSTORAGE_WALLET = "wallet";
|
5
|
+
export declare const IDENTITY_PROVIDER_DEFAULT = "https://identity.ic0.app";
|
6
|
+
export declare const IDENTITY_PROVIDER_ENDPOINT = "#authorize";
|
7
|
+
export declare function _deleteStorage(storage: AuthClientStorage): Promise<void>;
|
8
|
+
export declare class SessionStorage implements AuthClientStorage {
|
9
|
+
readonly prefix: string;
|
10
|
+
private readonly _sessionStorage?;
|
11
|
+
constructor(prefix?: string, _sessionStorage?: Storage | undefined);
|
12
|
+
get(key: string): Promise<string | null>;
|
13
|
+
set(key: string, value: string): Promise<void>;
|
14
|
+
remove(key: string): Promise<void>;
|
15
|
+
private _getSessionStorage;
|
16
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.SessionStorage = exports._deleteStorage = exports.IDENTITY_PROVIDER_ENDPOINT = exports.IDENTITY_PROVIDER_DEFAULT = exports.KEY_SESSIONSTORAGE_WALLET = exports.KEY_SESSIONSTORAGE_DELEGATION = exports.KEY_SESSIONSTORAGE_KEY = void 0;
|
4
|
+
exports.KEY_SESSIONSTORAGE_KEY = 'identity';
|
5
|
+
exports.KEY_SESSIONSTORAGE_DELEGATION = 'delegation';
|
6
|
+
exports.KEY_SESSIONSTORAGE_WALLET = 'wallet';
|
7
|
+
exports.IDENTITY_PROVIDER_DEFAULT = 'https://identity.ic0.app';
|
8
|
+
exports.IDENTITY_PROVIDER_ENDPOINT = '#authorize';
|
9
|
+
async function _deleteStorage(storage) {
|
10
|
+
await storage.remove(exports.KEY_SESSIONSTORAGE_KEY);
|
11
|
+
await storage.remove(exports.KEY_SESSIONSTORAGE_DELEGATION);
|
12
|
+
await storage.remove(exports.KEY_SESSIONSTORAGE_WALLET);
|
13
|
+
}
|
14
|
+
exports._deleteStorage = _deleteStorage;
|
15
|
+
class SessionStorage {
|
16
|
+
constructor(prefix = 'ic-', _sessionStorage) {
|
17
|
+
this.prefix = prefix;
|
18
|
+
this._sessionStorage = _sessionStorage;
|
19
|
+
}
|
20
|
+
get(key) {
|
21
|
+
return Promise.resolve(this._getSessionStorage().getItem(this.prefix + key));
|
22
|
+
}
|
23
|
+
set(key, value) {
|
24
|
+
this._getSessionStorage().setItem(this.prefix + key, value);
|
25
|
+
return Promise.resolve();
|
26
|
+
}
|
27
|
+
remove(key) {
|
28
|
+
this._getSessionStorage().removeItem(this.prefix + key);
|
29
|
+
return Promise.resolve();
|
30
|
+
}
|
31
|
+
_getSessionStorage() {
|
32
|
+
if (this._sessionStorage) {
|
33
|
+
return this._sessionStorage;
|
34
|
+
}
|
35
|
+
const ls = typeof window === 'undefined'
|
36
|
+
? typeof global === 'undefined'
|
37
|
+
? typeof self === 'undefined'
|
38
|
+
? undefined
|
39
|
+
: self.sessionStorage
|
40
|
+
: global.sessionStorage
|
41
|
+
: window.sessionStorage;
|
42
|
+
if (!ls) {
|
43
|
+
throw new Error('Could not find local storage.');
|
44
|
+
}
|
45
|
+
return ls;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
exports.SessionStorage = SessionStorage;
|
49
|
+
//# sourceMappingURL=icStorage.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"icStorage.js","sourceRoot":"","sources":["../../../src/ic/icStorage.ts"],"names":[],"mappings":";;;AAGa,QAAA,sBAAsB,GAAG,UAAU,CAAC;AACpC,QAAA,6BAA6B,GAAG,YAAY,CAAC;AAC7C,QAAA,yBAAyB,GAAG,QAAQ,CAAC;AACrC,QAAA,yBAAyB,GAAG,0BAA0B,CAAC;AACvD,QAAA,0BAA0B,GAAG,YAAY,CAAC;AAEhD,KAAK,UAAU,cAAc,CAAC,OAA0B;IAC7D,MAAM,OAAO,CAAC,MAAM,CAAC,8BAAsB,CAAC,CAAC;IAC7C,MAAM,OAAO,CAAC,MAAM,CAAC,qCAA6B,CAAC,CAAC;IACpD,MAAM,OAAO,CAAC,MAAM,CAAC,iCAAyB,CAAC,CAAC;AAClD,CAAC;AAJD,wCAIC;AAED,MAAa,cAAc;IACzB,YAA4B,SAAS,KAAK,EAAmB,eAAyB;QAA1D,WAAM,GAAN,MAAM,CAAQ;QAAmB,oBAAe,GAAf,eAAe,CAAU;IAAG,CAAC;IAEnF,GAAG,CAAC,GAAW;QACpB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAa;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,GAAW;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,IAAI,CAAC,eAAe,CAAC;SAC7B;QAED,MAAM,EAAE,GACN,OAAO,MAAM,KAAK,WAAW;YAC3B,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,IAAI,KAAK,WAAW;oBAC3B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAI,CAAC,cAAc;gBACvB,CAAC,CAAC,MAAM,CAAC,cAAc;YACzB,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QAE5B,IAAI,CAAC,EAAE,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AArCD,wCAqCC"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { EventHandler } from '../types';
|
2
|
+
export declare class ICWindow {
|
3
|
+
protected _window?: Window;
|
4
|
+
protected _eventHandler?: EventHandler;
|
5
|
+
protected _removeEventListener(): void;
|
6
|
+
protected _openWindow(url: string, target?: string, feature?: string): void;
|
7
|
+
protected _remove(): void;
|
8
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ICWindow = void 0;
|
4
|
+
class ICWindow {
|
5
|
+
_removeEventListener() {
|
6
|
+
if (this._eventHandler) {
|
7
|
+
window.removeEventListener('message', this._eventHandler);
|
8
|
+
}
|
9
|
+
this._eventHandler = undefined;
|
10
|
+
}
|
11
|
+
_openWindow(url, target, feature) {
|
12
|
+
var _a;
|
13
|
+
this._remove();
|
14
|
+
// Open a new window with the IDP provider.
|
15
|
+
this._window = (_a = window.open(url, target !== null && target !== void 0 ? target : 'icWindow', feature)) !== null && _a !== void 0 ? _a : undefined;
|
16
|
+
}
|
17
|
+
_remove() {
|
18
|
+
var _a;
|
19
|
+
(_a = this._window) === null || _a === void 0 ? void 0 : _a.close();
|
20
|
+
this._removeEventListener();
|
21
|
+
}
|
22
|
+
}
|
23
|
+
exports.ICWindow = ICWindow;
|
24
|
+
//# sourceMappingURL=icWindow.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"icWindow.js","sourceRoot":"","sources":["../../../src/ic/icWindow.ts"],"names":[],"mappings":";;;AAGA,MAAa,QAAQ;IAIT,oBAAoB;QAC5B,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAES,WAAW,CAAC,GAAW,EAAE,MAAe,EAAE,OAAgB;;QAClE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,2CAA2C;QAC3C,IAAI,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,UAAU,EAAE,OAAO,CAAC,mCAAI,SAAS,CAAC;IAC9E,CAAC;IAES,OAAO;;QACf,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;CACF;AArBD,4BAqBC"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.IC = exports.ICAuthClient = void 0;
|
4
|
+
var icAuthClient_1 = require("./icAuthClient");
|
5
|
+
Object.defineProperty(exports, "ICAuthClient", { enumerable: true, get: function () { return icAuthClient_1.AuthClient; } });
|
6
|
+
var icConnect_1 = require("./icConnect");
|
7
|
+
Object.defineProperty(exports, "IC", { enumerable: true, get: function () { return icConnect_1.IC; } });
|
8
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ic/index.ts"],"names":[],"mappings":";;;AAAA,+CAA4D;AAAnD,4GAAA,UAAU,OAAgB;AACnC,yCAAiC;AAAxB,+FAAA,EAAE,OAAA"}
|
package/lib/cjs/index.js
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
5
|
+
}) : (function(o, m, k, k2) {
|
6
|
+
if (k2 === undefined) k2 = k;
|
7
|
+
o[k2] = m[k];
|
8
|
+
}));
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
11
|
+
};
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
13
|
+
__exportStar(require("./connections/baseConnection"), exports);
|
14
|
+
__exportStar(require("./connections/ledgerConnection"), exports);
|
15
|
+
__exportStar(require("./connections/nnsConnection"), exports);
|
16
|
+
__exportStar(require("./utils"), exports);
|
17
|
+
__exportStar(require("./ic"), exports);
|
18
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAA6C;AAC7C,iEAA+C;AAC/C,8DAA4C;AAC5C,0CAAwB;AACxB,uCAAqB"}
|
@@ -0,0 +1,175 @@
|
|
1
|
+
import { ActorSubclass, HttpAgent, SignIdentity } from '@dfinity/agent';
|
2
|
+
import { Principal } from '@dfinity/principal';
|
3
|
+
import { AccountIdentifier, Memo } from '../utils/common/types';
|
4
|
+
import { DelegationChain, DelegationIdentity } from '@dfinity/identity';
|
5
|
+
import { IC } from 'src/ic';
|
6
|
+
export interface IIDelegationResult {
|
7
|
+
delegation: {
|
8
|
+
pubkey: Uint8Array;
|
9
|
+
expiration: bigint;
|
10
|
+
targets?: Principal[];
|
11
|
+
};
|
12
|
+
signature: Uint8Array;
|
13
|
+
}
|
14
|
+
export interface DelegationMessage {
|
15
|
+
kind: string;
|
16
|
+
delegations: IIDelegationResult[];
|
17
|
+
userPublicKey: Uint8Array;
|
18
|
+
}
|
19
|
+
export interface HandleDelegationResult {
|
20
|
+
delegationChain: DelegationChain;
|
21
|
+
delegationIdentity: DelegationIdentity;
|
22
|
+
}
|
23
|
+
export interface AbstractConnection<T> {
|
24
|
+
identity: SignIdentity;
|
25
|
+
delegationIdentity: DelegationIdentity;
|
26
|
+
actor?: ActorSubclass<T>;
|
27
|
+
agent?: HttpAgent;
|
28
|
+
canisterId?: string;
|
29
|
+
getActor(): Promise<ActorSubclass<T>>;
|
30
|
+
}
|
31
|
+
export interface CreateActorResult<T> {
|
32
|
+
actor: ActorSubclass<T>;
|
33
|
+
agent: HttpAgent;
|
34
|
+
}
|
35
|
+
export interface SendOpts {
|
36
|
+
fee?: bigint;
|
37
|
+
memo?: Memo;
|
38
|
+
from_subaccount?: number;
|
39
|
+
created_at_time?: Date;
|
40
|
+
}
|
41
|
+
/**
|
42
|
+
* List of options for creating an {@link AuthClient}.
|
43
|
+
*/
|
44
|
+
export interface AuthClientCreateOptions {
|
45
|
+
/**
|
46
|
+
* An identity to use as the base
|
47
|
+
*/
|
48
|
+
identity?: SignIdentity;
|
49
|
+
/**
|
50
|
+
* Optional storage with get, set, and remove. Uses SessionStorage by default
|
51
|
+
*/
|
52
|
+
storage?: AuthClientStorage;
|
53
|
+
appId?: string;
|
54
|
+
idpWindowOption?: string;
|
55
|
+
}
|
56
|
+
export interface AuthClientLoginOptions extends AuthClientCreateOptions {
|
57
|
+
/**
|
58
|
+
* Identity provider. By default, use the identity service.
|
59
|
+
*/
|
60
|
+
identityProvider?: string | URL;
|
61
|
+
permissions?: PermissionsType[];
|
62
|
+
/**
|
63
|
+
* Experiation of the authentication
|
64
|
+
*/
|
65
|
+
maxTimeToLive?: bigint;
|
66
|
+
/**
|
67
|
+
* Callback once login has completed
|
68
|
+
*/
|
69
|
+
onSuccess?: () => void | Promise<void>;
|
70
|
+
/**
|
71
|
+
* Callback in case authentication fails
|
72
|
+
*/
|
73
|
+
onError?: (error?: string) => void;
|
74
|
+
/**
|
75
|
+
* Callback once is authenticated
|
76
|
+
*/
|
77
|
+
onAuthenticated?: (ic: IC) => void | Promise<void>;
|
78
|
+
}
|
79
|
+
export interface ConnectOptions extends AuthClientLoginOptions {
|
80
|
+
ledgerCanisterId?: string;
|
81
|
+
walletProviderUrl?: string;
|
82
|
+
}
|
83
|
+
export interface TransactionOptions {
|
84
|
+
/**
|
85
|
+
* Identity provider. By default, use the identity service.
|
86
|
+
*/
|
87
|
+
walletProvider?: string | URL;
|
88
|
+
from: AccountIdentifier;
|
89
|
+
to: AccountIdentifier;
|
90
|
+
amount: bigint;
|
91
|
+
sendOpts: SendOpts;
|
92
|
+
/**
|
93
|
+
* Callback once login has completed
|
94
|
+
*/
|
95
|
+
onSuccess?: (value?: any) => void | Promise<void>;
|
96
|
+
/**
|
97
|
+
* Callback in case authentication fails
|
98
|
+
*/
|
99
|
+
onError?: (error?: string) => void;
|
100
|
+
}
|
101
|
+
/**
|
102
|
+
* Interface for persisting user authentication data
|
103
|
+
*/
|
104
|
+
export interface AuthClientStorage {
|
105
|
+
get(key: string): Promise<string | null>;
|
106
|
+
set(key: string, value: string): Promise<void>;
|
107
|
+
remove(key: string): Promise<void>;
|
108
|
+
}
|
109
|
+
export interface InternetIdentityAuthRequest {
|
110
|
+
kind: 'authorize-client';
|
111
|
+
sessionPublicKey: Uint8Array;
|
112
|
+
permissions?: PermissionsType[];
|
113
|
+
maxTimeToLive?: bigint;
|
114
|
+
appId?: string;
|
115
|
+
}
|
116
|
+
export interface DelegationResult {
|
117
|
+
delegations: {
|
118
|
+
delegation: {
|
119
|
+
pubkey: Uint8Array;
|
120
|
+
expiration: bigint;
|
121
|
+
targets?: Principal[];
|
122
|
+
};
|
123
|
+
signature: Uint8Array;
|
124
|
+
}[];
|
125
|
+
userPublicKey: Uint8Array;
|
126
|
+
}
|
127
|
+
export interface MeAuthResponseSuccess {
|
128
|
+
kind: 'authorize-client-success';
|
129
|
+
identity: DelegationResult;
|
130
|
+
wallet?: string;
|
131
|
+
}
|
132
|
+
export interface IIAuthResponseSuccess extends DelegationResult {
|
133
|
+
kind: 'authorize-client-success';
|
134
|
+
}
|
135
|
+
export declare type AuthResponseSuccess = MeAuthResponseSuccess | IIAuthResponseSuccess;
|
136
|
+
export declare type EventHandler = (event: MessageEvent) => Promise<void>;
|
137
|
+
export declare enum PermissionsType {
|
138
|
+
identity = "permissions-identity",
|
139
|
+
wallet = "permissions-wallet"
|
140
|
+
}
|
141
|
+
export declare enum TransactionMessageKind {
|
142
|
+
client = "transaction-client",
|
143
|
+
ready = "transaction-ready",
|
144
|
+
success = "transaction-client-success",
|
145
|
+
fail = "transaction-client-failure"
|
146
|
+
}
|
147
|
+
export interface TransactionReadyMessage {
|
148
|
+
kind: TransactionMessageKind.ready;
|
149
|
+
}
|
150
|
+
export interface TransactionResponseFailure {
|
151
|
+
kind: TransactionMessageKind.fail;
|
152
|
+
text: string;
|
153
|
+
}
|
154
|
+
export interface TransactionResponseSuccess {
|
155
|
+
kind: TransactionMessageKind.success;
|
156
|
+
payload?: {
|
157
|
+
blockHeight: bigint;
|
158
|
+
originPayload: {
|
159
|
+
to: AccountIdentifier;
|
160
|
+
amount: bigint;
|
161
|
+
sendOpts?: Partial<SendOpts>;
|
162
|
+
};
|
163
|
+
};
|
164
|
+
}
|
165
|
+
export declare type TransactionResponseMessage = TransactionReadyMessage | TransactionResponse;
|
166
|
+
export declare type TransactionResponse = TransactionResponseSuccess | TransactionResponseFailure;
|
167
|
+
export interface AuthReadyMessage {
|
168
|
+
kind: 'authorize-ready';
|
169
|
+
}
|
170
|
+
export interface AuthResponseFailure {
|
171
|
+
kind: 'authorize-client-failure';
|
172
|
+
text: string;
|
173
|
+
}
|
174
|
+
export declare type IdentityServiceResponseMessage = AuthReadyMessage | AuthResponse;
|
175
|
+
export declare type AuthResponse = AuthResponseSuccess | AuthResponseFailure;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.TransactionMessageKind = exports.PermissionsType = void 0;
|
4
|
+
var PermissionsType;
|
5
|
+
(function (PermissionsType) {
|
6
|
+
PermissionsType["identity"] = "permissions-identity";
|
7
|
+
PermissionsType["wallet"] = "permissions-wallet";
|
8
|
+
})(PermissionsType = exports.PermissionsType || (exports.PermissionsType = {}));
|
9
|
+
// Transaction Types
|
10
|
+
var TransactionMessageKind;
|
11
|
+
(function (TransactionMessageKind) {
|
12
|
+
TransactionMessageKind["client"] = "transaction-client";
|
13
|
+
TransactionMessageKind["ready"] = "transaction-ready";
|
14
|
+
TransactionMessageKind["success"] = "transaction-client-success";
|
15
|
+
TransactionMessageKind["fail"] = "transaction-client-failure";
|
16
|
+
})(TransactionMessageKind = exports.TransactionMessageKind || (exports.TransactionMessageKind = {}));
|
17
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAgKA,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;AAC/B,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAED,oBAAoB;AACpB,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,uDAA6B,CAAA;IAC7B,qDAA2B,CAAA;IAC3B,gEAAsC,CAAA;IACtC,6DAAmC,CAAA;AACrC,CAAC,EALW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAKjC"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
export declare type CanisterIdString = string;
|
2
|
+
export declare type NeuronId = bigint;
|
3
|
+
export declare type AccountIdentifier = string;
|
4
|
+
export declare type BlockHeight = bigint;
|
5
|
+
export declare type E8s = bigint;
|
6
|
+
export declare type Memo = bigint;
|
7
|
+
export declare type PrincipalString = string;
|
8
|
+
export declare type SubAccount = Uint8Array;
|
9
|
+
export declare enum WalletType {
|
10
|
+
nns = "nns",
|
11
|
+
plug = "plug",
|
12
|
+
stoic = "stoic",
|
13
|
+
me = "me",
|
14
|
+
unknown = "unknown"
|
15
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.WalletType = void 0;
|
4
|
+
var WalletType;
|
5
|
+
(function (WalletType) {
|
6
|
+
WalletType["nns"] = "nns";
|
7
|
+
WalletType["plug"] = "plug";
|
8
|
+
WalletType["stoic"] = "stoic";
|
9
|
+
WalletType["me"] = "me";
|
10
|
+
WalletType["unknown"] = "unknown";
|
11
|
+
})(WalletType = exports.WalletType || (exports.WalletType = {}));
|
12
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/common/types.ts"],"names":[],"mappings":";;;AAQA,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,6BAAe,CAAA;IACf,uBAAS,CAAA;IACT,iCAAmB,CAAA;AACrB,CAAC,EANW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAMrB"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
export declare const SUB_ACCOUNT_BYTE_LENGTH = 32;
|
2
|
+
export declare const CREATE_CANISTER_MEMO: bigint;
|
3
|
+
export declare const TOP_UP_CANISTER_MEMO: bigint;
|
4
|
+
export declare const TRANSACTION_FEE: bigint;
|
5
|
+
export declare const LEDGER_CANISTER_ID = "ryjl3-tyaaa-aaaaa-aaaba-cai";
|
6
|
+
export declare const NNS_CANISTER_ID = "qoctq-giaaa-aaaaa-aaaea-cai";
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.NNS_CANISTER_ID = exports.LEDGER_CANISTER_ID = exports.TRANSACTION_FEE = exports.TOP_UP_CANISTER_MEMO = exports.CREATE_CANISTER_MEMO = exports.SUB_ACCOUNT_BYTE_LENGTH = void 0;
|
4
|
+
exports.SUB_ACCOUNT_BYTE_LENGTH = 32;
|
5
|
+
exports.CREATE_CANISTER_MEMO = BigInt(0x41455243); // CREA,
|
6
|
+
exports.TOP_UP_CANISTER_MEMO = BigInt(0x50555054); // TPUP
|
7
|
+
exports.TRANSACTION_FEE = BigInt(10000);
|
8
|
+
exports.LEDGER_CANISTER_ID = 'ryjl3-tyaaa-aaaaa-aaaba-cai';
|
9
|
+
exports.NNS_CANISTER_ID = 'qoctq-giaaa-aaaaa-aaaea-cai';
|
10
|
+
// import config from "../config";
|
11
|
+
// // @ts-ignore
|
12
|
+
// export const HOST = "HOST" in config ? config["HOST"] : undefined;
|
13
|
+
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAC7B,QAAA,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;AACnD,QAAA,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;AAElD,QAAA,eAAe,GAAG,MAAM,CAAC,KAAM,CAAC,CAAC;AAEjC,QAAA,kBAAkB,GAAG,6BAA6B,CAAC;AACnD,QAAA,eAAe,GAAG,6BAA6B,CAAC;AAE7D,kCAAkC;AAElC,gBAAgB;AAChB,qEAAqE"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { Principal } from '@dfinity/principal';
|
2
|
+
import { AccountIdentifier, SubAccount } from './common/types';
|
3
|
+
export declare const uint8ArrayToBigInt: (array: Uint8Array) => bigint;
|
4
|
+
export declare const bigIntToUint8Array: (value: bigint) => Uint8Array;
|
5
|
+
export declare const arrayBufferToArrayOfNumber: (buffer: ArrayBuffer) => Array<number>;
|
6
|
+
export declare const arrayOfNumberToUint8Array: (numbers: Array<number>) => Uint8Array;
|
7
|
+
export declare const arrayOfNumberToArrayBuffer: (numbers: Array<number>) => ArrayBuffer;
|
8
|
+
export declare const arrayBufferToNumber: (buffer: ArrayBuffer) => number;
|
9
|
+
export declare const numberToArrayBuffer: (value: number, byteLength: number) => ArrayBuffer;
|
10
|
+
export declare const asciiStringToByteArray: (text: string) => Array<number>;
|
11
|
+
export declare const toSubAccountId: (subAccount: Array<number>) => number;
|
12
|
+
export declare const fromSubAccountId: (subAccountId: number) => Array<number>;
|
13
|
+
export declare const accountIdentifierToBytes: (accountIdentifier: AccountIdentifier) => Uint8Array;
|
14
|
+
export declare const accountIdentifierFromBytes: (accountIdentifier: Uint8Array) => AccountIdentifier;
|
15
|
+
export declare const principalToAccountIdentifier: (principal: Principal, subAccount?: Uint8Array | undefined) => string;
|
16
|
+
export declare const principalToSubAccount: (principal: Principal) => SubAccount;
|
17
|
+
export declare const stringToAccountIdentifier: (str: string) => AccountIdentifier | undefined;
|
18
|
+
export declare const calculateCrc32: (bytes: Uint8Array) => Uint8Array;
|
19
|
+
export declare const E8S_PER_ICP = 100000000;
|
20
|
+
export declare enum TokenSymbol {
|
21
|
+
ICP = "ICP"
|
22
|
+
}
|
23
|
+
export interface TokenMapItem {
|
24
|
+
[key: string]: {
|
25
|
+
amount: number;
|
26
|
+
symbol: string;
|
27
|
+
};
|
28
|
+
}
|
29
|
+
export declare const formatAssetBySymbol: (_amount: bigint, symbol: string) => {
|
30
|
+
amount: number;
|
31
|
+
symbol: string;
|
32
|
+
} | undefined;
|