@astrox/connection 0.0.28 → 0.0.32
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/lib/cjs/canisters/internet_identity_idl.js +1 -2
- package/lib/cjs/canisters/internet_identity_idl.js.map +1 -1
- package/lib/cjs/canisters/ledger.idl.js +1 -2
- package/lib/cjs/canisters/ledger.idl.js.map +1 -1
- package/lib/cjs/canisters/me.idl.js +1 -2
- package/lib/cjs/canisters/me.idl.js.map +1 -1
- package/lib/cjs/canisters/nns-dapp-cert.idl.js +1 -2
- package/lib/cjs/canisters/nns-dapp-cert.idl.js.map +1 -1
- package/lib/cjs/canisters/nns-dapp.idl.js +1 -2
- package/lib/cjs/canisters/nns-dapp.idl.js.map +1 -1
- package/lib/cjs/connections/baseConnection.js +3 -5
- package/lib/cjs/connections/baseConnection.js.map +1 -1
- package/lib/cjs/connections/ledgerConnection.js +7 -7
- package/lib/cjs/connections/ledgerConnection.js.map +1 -1
- package/lib/cjs/connections/nnsConnection.js +3 -3
- package/lib/cjs/connections/nnsConnection.js.map +1 -1
- package/lib/cjs/ic/icAuthClient.js +7 -8
- package/lib/cjs/ic/icAuthClient.js.map +1 -1
- package/lib/cjs/ic/icConnect.d.ts +1 -0
- package/lib/cjs/ic/icConnect.js +53 -35
- package/lib/cjs/ic/icConnect.js.map +1 -1
- package/lib/cjs/ic/icWindow.js.map +1 -1
- package/lib/cjs/ic/index.js +0 -1
- package/lib/cjs/ic/index.js.map +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/types/index.d.ts +3 -0
- package/lib/cjs/types/index.js.map +1 -1
- package/lib/cjs/utils/common/types.d.ts +4 -0
- package/lib/cjs/utils/constants.d.ts +11 -0
- package/lib/cjs/utils/constants.js +12 -4
- package/lib/cjs/utils/constants.js.map +1 -1
- package/lib/cjs/utils/converter.d.ts +24 -1
- package/lib/cjs/utils/converter.js +111 -46
- package/lib/cjs/utils/converter.js.map +1 -1
- package/lib/cjs/utils/index.js +1 -1
- package/lib/esm/connections/baseConnection.js.map +1 -1
- package/lib/esm/connections/ledgerConnection.js.map +1 -1
- package/lib/esm/ic/icAuthClient.js +3 -4
- package/lib/esm/ic/icAuthClient.js.map +1 -1
- package/lib/esm/ic/icConnect.d.ts +1 -0
- package/lib/esm/ic/icConnect.js +53 -35
- package/lib/esm/ic/icConnect.js.map +1 -1
- package/lib/esm/ic/icWindow.js.map +1 -1
- package/lib/esm/types/index.d.ts +3 -0
- package/lib/esm/types/index.js.map +1 -1
- package/lib/esm/utils/common/types.d.ts +4 -0
- package/lib/esm/utils/constants.d.ts +11 -0
- package/lib/esm/utils/constants.js +11 -3
- package/lib/esm/utils/constants.js.map +1 -1
- package/lib/esm/utils/converter.d.ts +24 -1
- package/lib/esm/utils/converter.js +86 -4
- package/lib/esm/utils/converter.js.map +1 -1
- package/lib/tsconfig-cjs.tsbuildinfo +2813 -1
- package/lib/tsconfig.tsbuildinfo +2812 -1
- package/package.json +2 -2
package/lib/cjs/ic/icConnect.js
CHANGED
@@ -1,16 +1,18 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver,
|
3
|
-
if (
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {
|
3
|
+
if (!privateMap.has(receiver)) {
|
4
|
+
throw new TypeError("attempted to set private field on non-instance");
|
5
|
+
}
|
6
|
+
privateMap.set(receiver, value);
|
7
|
+
return value;
|
7
8
|
};
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver,
|
9
|
-
if (
|
10
|
-
|
11
|
-
|
9
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {
|
10
|
+
if (!privateMap.has(receiver)) {
|
11
|
+
throw new TypeError("attempted to get private field on non-instance");
|
12
|
+
}
|
13
|
+
return privateMap.get(receiver);
|
12
14
|
};
|
13
|
-
var
|
15
|
+
var _authClient, _agent, _localLedger, _walletProvider, _useFrame;
|
14
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
17
|
exports.IC = void 0;
|
16
18
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
@@ -26,13 +28,16 @@ const hours = BigInt(24);
|
|
26
28
|
const nanoseconds = BigInt(3600000000000);
|
27
29
|
const WALLET_PROVIDER_DEFAULT = 'https://63k2f-nyaaa-aaaah-aakla-cai.raw.ic0.app';
|
28
30
|
const WALLET_PROVIDER_ENDPOINT = '#transaction';
|
31
|
+
const FRAME_SETTING = 'height=600, width=800, top=0, right=0, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no';
|
32
|
+
const FRAME_SETTING_PAYMENT = 'height=600, width=480, top=0, right=0, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no';
|
29
33
|
class IC extends icWindow_1.ICWindow {
|
30
34
|
constructor(authClient) {
|
31
35
|
super();
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
+
_authClient.set(this, void 0);
|
37
|
+
_agent.set(this, void 0);
|
38
|
+
_localLedger.set(this, void 0);
|
39
|
+
_walletProvider.set(this, void 0);
|
40
|
+
_useFrame.set(this, false); // a local ledger to query balance only
|
36
41
|
this.disconnect = async (options = {}) => {
|
37
42
|
await this.getAuthClient().logout(options);
|
38
43
|
};
|
@@ -41,48 +46,51 @@ class IC extends icWindow_1.ICWindow {
|
|
41
46
|
if (this.wallet === undefined) {
|
42
47
|
throw Error('Wallet address is not found');
|
43
48
|
}
|
44
|
-
if (__classPrivateFieldGet(this,
|
49
|
+
if (__classPrivateFieldGet(this, _localLedger) === undefined) {
|
45
50
|
throw Error('Ledger connection faild');
|
46
51
|
}
|
47
|
-
const result = await ((_a = __classPrivateFieldGet(this,
|
52
|
+
const result = await ((_a = __classPrivateFieldGet(this, _localLedger)) === null || _a === void 0 ? void 0 : _a.getBalance(this.wallet));
|
48
53
|
return result;
|
49
54
|
};
|
50
55
|
this.handleAuthenticated = async (ic, { ledgerCanisterId }) => {
|
51
56
|
const identity = ic.getAuthClient().getIdentity();
|
52
|
-
__classPrivateFieldSet(this,
|
57
|
+
__classPrivateFieldSet(this, _agent, new agent_1.HttpAgent({ identity }));
|
53
58
|
if (!process.env.isProduction) {
|
54
|
-
await __classPrivateFieldGet(this,
|
59
|
+
await __classPrivateFieldGet(this, _agent).fetchRootKey();
|
55
60
|
}
|
56
61
|
const actorResult = await ledgerConnection_1.LedgerConnection.createActor(ic.getAuthClient().getDelegationIdentity(), ledgerCanisterId);
|
57
|
-
__classPrivateFieldSet(this,
|
62
|
+
__classPrivateFieldSet(this, _localLedger, ledgerConnection_1.LedgerConnection.createConnection(ic.getAuthClient().getInnerKey(), ic.getAuthClient().getDelegationIdentity(), ledgerCanisterId, actorResult.actor, __classPrivateFieldGet(this, _agent)));
|
58
63
|
this.injectWindow();
|
59
64
|
return new IC(ic.getAuthClient());
|
60
65
|
};
|
61
66
|
this.createActor = (idlFactory, canisterId) => {
|
62
67
|
return agent_1.Actor.createActor(idlFactory, {
|
63
|
-
agent: __classPrivateFieldGet(this,
|
68
|
+
agent: __classPrivateFieldGet(this, _agent),
|
64
69
|
canisterId,
|
65
70
|
});
|
66
71
|
};
|
67
72
|
// requestTransfer
|
68
73
|
this.requestTransfer = async (options) => {
|
69
74
|
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,
|
75
|
+
const walletProviderUrl = new URL(((_a = options === null || options === void 0 ? void 0 : options.walletProvider) === null || _a === void 0 ? void 0 : _a.toString()) || __classPrivateFieldGet(this, _walletProvider) || WALLET_PROVIDER_DEFAULT);
|
71
76
|
walletProviderUrl.hash = WALLET_PROVIDER_ENDPOINT;
|
72
|
-
this._openWindow(walletProviderUrl.toString(), 'icWindow',
|
77
|
+
this._openWindow(walletProviderUrl.toString(), 'icWindow', __classPrivateFieldGet(this, _useFrame) ? FRAME_SETTING_PAYMENT : undefined);
|
73
78
|
return new Promise((resolve, reject) => {
|
74
79
|
this._eventHandler = this._getEventHandler(walletProviderUrl, resolve, reject, options);
|
75
80
|
window.addEventListener('message', this._eventHandler);
|
76
81
|
});
|
77
82
|
};
|
78
|
-
__classPrivateFieldSet(this,
|
83
|
+
__classPrivateFieldSet(this, _authClient, authClient);
|
79
84
|
}
|
80
85
|
static async connect(connectOptions) {
|
81
86
|
var _a, _b, _c, _d;
|
82
|
-
const authClient = await icAuthClient_1.AuthClient.create(connectOptions)
|
87
|
+
const authClient = await icAuthClient_1.AuthClient.create(Object.assign(Object.assign({}, connectOptions), { idpWindowOption: connectOptions.useFrame === true
|
88
|
+
? FRAME_SETTING
|
89
|
+
: undefined }));
|
83
90
|
const newIC = new this(authClient);
|
84
91
|
const provider = (_a = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.identityProvider) !== null && _a !== void 0 ? _a : icStorage_1.IDENTITY_PROVIDER_DEFAULT;
|
85
92
|
newIC._setWalletProvider(connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.walletProviderUrl);
|
93
|
+
newIC._setUseFrame(connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.useFrame);
|
86
94
|
if (await newIC.isAuthenticated()) {
|
87
95
|
await newIC.handleAuthenticated(newIC, { ledgerCanisterId: connectOptions.ledgerCanisterId });
|
88
96
|
await ((_b = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.onAuthenticated) === null || _b === void 0 ? void 0 : _b.call(connectOptions, newIC));
|
@@ -105,23 +113,26 @@ class IC extends icWindow_1.ICWindow {
|
|
105
113
|
return newIC;
|
106
114
|
}
|
107
115
|
async isAuthenticated() {
|
108
|
-
const result = await __classPrivateFieldGet(this,
|
116
|
+
const result = await __classPrivateFieldGet(this, _authClient).isAuthenticated();
|
109
117
|
return result;
|
110
118
|
}
|
111
119
|
get identity() {
|
112
|
-
return __classPrivateFieldGet(this,
|
120
|
+
return __classPrivateFieldGet(this, _authClient).getIdentity();
|
113
121
|
}
|
114
122
|
get principal() {
|
115
123
|
return this.identity.getPrincipal();
|
116
124
|
}
|
117
125
|
get wallet() {
|
118
|
-
return __classPrivateFieldGet(this,
|
126
|
+
return __classPrivateFieldGet(this, _authClient).wallet;
|
119
127
|
}
|
120
128
|
_setWalletProvider(provider) {
|
121
|
-
__classPrivateFieldSet(this,
|
129
|
+
__classPrivateFieldSet(this, _walletProvider, provider);
|
130
|
+
}
|
131
|
+
_setUseFrame(useFrame) {
|
132
|
+
__classPrivateFieldSet(this, _useFrame, useFrame);
|
122
133
|
}
|
123
134
|
getAuthClient() {
|
124
|
-
return __classPrivateFieldGet(this,
|
135
|
+
return __classPrivateFieldGet(this, _authClient);
|
125
136
|
}
|
126
137
|
injectWindow(ic) {
|
127
138
|
if (window.ic !== undefined) {
|
@@ -141,7 +152,7 @@ class IC extends icWindow_1.ICWindow {
|
|
141
152
|
}
|
142
153
|
_getEventHandler(walletProviderUrl, resolve, reject, options) {
|
143
154
|
return async (event) => {
|
144
|
-
var _a;
|
155
|
+
var _a, _b, _c, _d;
|
145
156
|
if (event.origin !== walletProviderUrl.origin) {
|
146
157
|
return;
|
147
158
|
}
|
@@ -155,14 +166,16 @@ class IC extends icWindow_1.ICWindow {
|
|
155
166
|
to: options.to,
|
156
167
|
amount: options.amount,
|
157
168
|
sendOpts: options.sendOpts,
|
169
|
+
maxTimeout: (_a = options.maxTimeout) !== null && _a !== void 0 ? _a : 90,
|
170
|
+
successTimeout: (_b = options.successTimeout) !== null && _b !== void 0 ? _b : 10
|
158
171
|
};
|
159
|
-
(
|
172
|
+
(_c = this._window) === null || _c === void 0 ? void 0 : _c.postMessage(request, walletProviderUrl.origin);
|
160
173
|
break;
|
161
174
|
}
|
162
175
|
case types_1.TransactionMessageKind.success:
|
163
176
|
// Create the delegation chain and store it.
|
164
177
|
try {
|
165
|
-
resolve(this._handleSuccess(message, options.onSuccess));
|
178
|
+
resolve(this._handleSuccess(message, options.onSuccess, (_d = options.successTimeout) !== null && _d !== void 0 ? _d : 10));
|
166
179
|
}
|
167
180
|
catch (err) {
|
168
181
|
reject(this._handleFailure(err.message, options.onError));
|
@@ -181,12 +194,17 @@ class IC extends icWindow_1.ICWindow {
|
|
181
194
|
onError === null || onError === void 0 ? void 0 : onError(errorMessage);
|
182
195
|
return errorMessage;
|
183
196
|
}
|
184
|
-
_handleSuccess(value, onSuccess) {
|
185
|
-
|
197
|
+
_handleSuccess(value, onSuccess, delay) {
|
198
|
+
if (delay) {
|
199
|
+
setTimeout(() => this._remove(), delay * 1000);
|
200
|
+
}
|
201
|
+
else {
|
202
|
+
this._remove();
|
203
|
+
}
|
186
204
|
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(value);
|
187
205
|
return value;
|
188
206
|
}
|
189
207
|
}
|
190
208
|
exports.IC = IC;
|
191
|
-
|
209
|
+
_authClient = new WeakMap(), _agent = new WeakMap(), _localLedger = new WeakMap(), _walletProvider = new WeakMap(), _useFrame = new WeakMap();
|
192
210
|
//# sourceMappingURL=icConnect.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"icConnect.js","sourceRoot":"","sources":["../../../src/ic/icConnect.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"icConnect.js","sourceRoot":"","sources":["../../../src/ic/icConnect.ts"],"names":[],"mappings":"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"}
|
@@ -1 +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,
|
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,SAAG,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,GAAG;QACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;CACF;AArBD,4BAqBC"}
|
package/lib/cjs/ic/index.js
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.IC = exports.ICAuthClient = void 0;
|
4
3
|
var icAuthClient_1 = require("./icAuthClient");
|
5
4
|
Object.defineProperty(exports, "ICAuthClient", { enumerable: true, get: function () { return icAuthClient_1.AuthClient; } });
|
6
5
|
var icConnect_1 = require("./icConnect");
|
package/lib/cjs/ic/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ic/index.ts"],"names":[],"mappings":"
|
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
CHANGED
@@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
7
7
|
o[k2] = m[k];
|
8
8
|
}));
|
9
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
10
|
-
for (var p in m) if (p !== "default" && !
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
11
11
|
};
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
13
13
|
__exportStar(require("./connections/baseConnection"), exports);
|
package/lib/cjs/types/index.d.ts
CHANGED
@@ -79,6 +79,7 @@ export interface AuthClientLoginOptions extends AuthClientCreateOptions {
|
|
79
79
|
export interface ConnectOptions extends AuthClientLoginOptions {
|
80
80
|
ledgerCanisterId?: string;
|
81
81
|
walletProviderUrl?: string;
|
82
|
+
useFrame: boolean;
|
82
83
|
}
|
83
84
|
export interface TransactionOptions {
|
84
85
|
/**
|
@@ -89,6 +90,8 @@ export interface TransactionOptions {
|
|
89
90
|
to: AccountIdentifier;
|
90
91
|
amount: bigint;
|
91
92
|
sendOpts: SendOpts;
|
93
|
+
maxTimeout?: number;
|
94
|
+
successTimeout?: number;
|
92
95
|
/**
|
93
96
|
* Callback once login has completed
|
94
97
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAmKA,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"}
|
@@ -4,3 +4,14 @@ export declare const TOP_UP_CANISTER_MEMO: bigint;
|
|
4
4
|
export declare const TRANSACTION_FEE: bigint;
|
5
5
|
export declare const LEDGER_CANISTER_ID = "ryjl3-tyaaa-aaaaa-aaaba-cai";
|
6
6
|
export declare const NNS_CANISTER_ID = "qoctq-giaaa-aaaaa-aaaea-cai";
|
7
|
+
export declare const PRINCIPAL_REGEX: RegExp;
|
8
|
+
export declare const ALPHANUM_REGEX: RegExp;
|
9
|
+
export declare const CANISTER_REGEX: RegExp;
|
10
|
+
export declare const CANISTER_MAX_LENGTH = 27;
|
11
|
+
export declare const ADDRESS_TYPES: {
|
12
|
+
PRINCIPAL: string;
|
13
|
+
ACCOUNT: string;
|
14
|
+
CANISTER: string;
|
15
|
+
ERC20: string;
|
16
|
+
UNKNOWN: string;
|
17
|
+
};
|
@@ -1,13 +1,21 @@
|
|
1
1
|
"use strict";
|
2
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;
|
3
|
+
exports.ADDRESS_TYPES = exports.CANISTER_MAX_LENGTH = exports.CANISTER_REGEX = exports.ALPHANUM_REGEX = exports.PRINCIPAL_REGEX = 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
4
|
exports.SUB_ACCOUNT_BYTE_LENGTH = 32;
|
5
5
|
exports.CREATE_CANISTER_MEMO = BigInt(0x41455243); // CREA,
|
6
6
|
exports.TOP_UP_CANISTER_MEMO = BigInt(0x50555054); // TPUP
|
7
7
|
exports.TRANSACTION_FEE = BigInt(10000);
|
8
8
|
exports.LEDGER_CANISTER_ID = 'ryjl3-tyaaa-aaaaa-aaaba-cai';
|
9
9
|
exports.NNS_CANISTER_ID = 'qoctq-giaaa-aaaaa-aaaea-cai';
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
exports.PRINCIPAL_REGEX = /(\w{5}-){10}\w{3}/;
|
11
|
+
exports.ALPHANUM_REGEX = /^[a-zA-Z0-9]+$/;
|
12
|
+
exports.CANISTER_REGEX = /(\w{5}-){4}\w{3}/;
|
13
|
+
exports.CANISTER_MAX_LENGTH = 27;
|
14
|
+
exports.ADDRESS_TYPES = {
|
15
|
+
PRINCIPAL: 'principal',
|
16
|
+
ACCOUNT: 'accountId',
|
17
|
+
CANISTER: 'canister',
|
18
|
+
ERC20: 'erc20',
|
19
|
+
UNKNOWN: 'unknown',
|
20
|
+
};
|
13
21
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +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;
|
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;AAIhD,QAAA,eAAe,GAAG,mBAAmB,CAAC;AACtC,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAClC,QAAA,cAAc,GAAG,kBAAkB,CAAC;AACpC,QAAA,mBAAmB,GAAG,EAAE,CAAC;AAEzB,QAAA,aAAa,GAAG;IACzB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACrB,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Principal } from '@dfinity/principal';
|
2
|
-
import { AccountIdentifier, SubAccount } from './common/types';
|
2
|
+
import { AccountIdentifier, Balance, SubAccount } from './common/types';
|
3
3
|
export declare const uint8ArrayToBigInt: (array: Uint8Array) => bigint;
|
4
4
|
export declare const bigIntToUint8Array: (value: bigint) => Uint8Array;
|
5
5
|
export declare const arrayBufferToArrayOfNumber: (buffer: ArrayBuffer) => Array<number>;
|
@@ -20,13 +20,36 @@ export declare const E8S_PER_ICP = 100000000;
|
|
20
20
|
export declare enum TokenSymbol {
|
21
21
|
ICP = "ICP"
|
22
22
|
}
|
23
|
+
export declare const getDecimalFromSymbol: (sym: string) => number;
|
23
24
|
export interface TokenMapItem {
|
24
25
|
[key: string]: {
|
25
26
|
amount: number;
|
26
27
|
symbol: string;
|
28
|
+
balanceString: BalanceString;
|
27
29
|
};
|
28
30
|
}
|
29
31
|
export declare const formatAssetBySymbol: (_amount: bigint, symbol: string) => {
|
30
32
|
amount: number;
|
31
33
|
symbol: string;
|
34
|
+
balanceString: BalanceString;
|
32
35
|
} | undefined;
|
36
|
+
export declare const parseBalance: (balance: Balance) => string;
|
37
|
+
export declare const balanceFromString: (balance: string, decimal?: number) => bigint;
|
38
|
+
export interface BalanceString {
|
39
|
+
total: string;
|
40
|
+
aboveZero: string;
|
41
|
+
belowZero: string;
|
42
|
+
formatAboveZero: string;
|
43
|
+
}
|
44
|
+
export declare const balanceToString: (balance: bigint, decimal?: number) => BalanceString;
|
45
|
+
export declare const validateAccountId: (text: string) => boolean;
|
46
|
+
export declare const validatePrincipalId: (text: string) => boolean;
|
47
|
+
export declare const validateCanisterId: (text: string) => boolean;
|
48
|
+
export declare enum AddressType {
|
49
|
+
PRINCIPAL = "principal",
|
50
|
+
ACCOUNT = "accountId",
|
51
|
+
CANISTER = "canister",
|
52
|
+
ERC20 = "erc20",
|
53
|
+
INVALID = "invalid"
|
54
|
+
}
|
55
|
+
export declare const getAddressType: (text: string) => AddressType.PRINCIPAL | AddressType.ACCOUNT | AddressType.CANISTER | AddressType.INVALID;
|
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.formatAssetBySymbol = exports.TokenSymbol = exports.E8S_PER_ICP = exports.calculateCrc32 = exports.stringToAccountIdentifier = exports.principalToSubAccount = exports.principalToAccountIdentifier = exports.accountIdentifierFromBytes = exports.accountIdentifierToBytes = exports.fromSubAccountId = exports.toSubAccountId = exports.asciiStringToByteArray = exports.numberToArrayBuffer = exports.arrayBufferToNumber = exports.arrayOfNumberToArrayBuffer = exports.arrayOfNumberToUint8Array = exports.arrayBufferToArrayOfNumber = exports.bigIntToUint8Array = exports.uint8ArrayToBigInt = void 0;
|
6
|
+
exports.getAddressType = exports.AddressType = exports.validateCanisterId = exports.validatePrincipalId = exports.validateAccountId = exports.balanceToString = exports.balanceFromString = exports.parseBalance = exports.formatAssetBySymbol = exports.getDecimalFromSymbol = exports.TokenSymbol = exports.E8S_PER_ICP = exports.calculateCrc32 = exports.stringToAccountIdentifier = exports.principalToSubAccount = exports.principalToAccountIdentifier = exports.accountIdentifierFromBytes = exports.accountIdentifierToBytes = exports.fromSubAccountId = exports.toSubAccountId = exports.asciiStringToByteArray = exports.numberToArrayBuffer = exports.arrayBufferToNumber = exports.arrayOfNumberToArrayBuffer = exports.arrayOfNumberToUint8Array = exports.arrayBufferToArrayOfNumber = exports.bigIntToUint8Array = exports.uint8ArrayToBigInt = void 0;
|
7
|
+
/* eslint-disable no-useless-catch */
|
7
8
|
const principal_1 = require("@dfinity/principal");
|
8
9
|
const js_sha256_1 = require("js-sha256");
|
9
10
|
const buffer_1 = require("buffer");
|
10
11
|
const crc_1 = __importDefault(require("crc"));
|
11
12
|
const constants_1 = require("./constants");
|
12
|
-
|
13
|
+
exports.uint8ArrayToBigInt = (array) => {
|
13
14
|
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
|
14
15
|
if (typeof view.getBigUint64 === 'function') {
|
15
16
|
return view.getBigUint64(0);
|
@@ -20,9 +21,8 @@ const uint8ArrayToBigInt = (array) => {
|
|
20
21
|
return (high << BigInt(32)) + low;
|
21
22
|
}
|
22
23
|
};
|
23
|
-
exports.uint8ArrayToBigInt = uint8ArrayToBigInt;
|
24
24
|
const TWO_TO_THE_32 = BigInt(1) << BigInt(32);
|
25
|
-
|
25
|
+
exports.bigIntToUint8Array = (value) => {
|
26
26
|
const array = new Uint8Array(8);
|
27
27
|
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
|
28
28
|
if (typeof view.setBigUint64 === 'function') {
|
@@ -34,80 +34,67 @@ const bigIntToUint8Array = (value) => {
|
|
34
34
|
}
|
35
35
|
return array;
|
36
36
|
};
|
37
|
-
exports.
|
38
|
-
const arrayBufferToArrayOfNumber = (buffer) => {
|
37
|
+
exports.arrayBufferToArrayOfNumber = (buffer) => {
|
39
38
|
const typedArray = new Uint8Array(buffer);
|
40
39
|
return Array.from(typedArray);
|
41
40
|
};
|
42
|
-
exports.
|
43
|
-
const arrayOfNumberToUint8Array = (numbers) => {
|
41
|
+
exports.arrayOfNumberToUint8Array = (numbers) => {
|
44
42
|
return new Uint8Array(numbers);
|
45
43
|
};
|
46
|
-
exports.
|
47
|
-
|
48
|
-
return (0, exports.arrayOfNumberToUint8Array)(numbers).buffer;
|
44
|
+
exports.arrayOfNumberToArrayBuffer = (numbers) => {
|
45
|
+
return exports.arrayOfNumberToUint8Array(numbers).buffer;
|
49
46
|
};
|
50
|
-
exports.
|
51
|
-
const arrayBufferToNumber = (buffer) => {
|
47
|
+
exports.arrayBufferToNumber = (buffer) => {
|
52
48
|
const view = new DataView(buffer);
|
53
49
|
return view.getUint32(view.byteLength - 4);
|
54
50
|
};
|
55
|
-
exports.
|
56
|
-
const numberToArrayBuffer = (value, byteLength) => {
|
51
|
+
exports.numberToArrayBuffer = (value, byteLength) => {
|
57
52
|
const buffer = new ArrayBuffer(byteLength);
|
58
53
|
new DataView(buffer).setUint32(byteLength - 4, value);
|
59
54
|
return buffer;
|
60
55
|
};
|
61
|
-
exports.
|
62
|
-
const asciiStringToByteArray = (text) => {
|
56
|
+
exports.asciiStringToByteArray = (text) => {
|
63
57
|
return Array.from(text).map(c => c.charCodeAt(0));
|
64
58
|
};
|
65
|
-
exports.
|
66
|
-
const
|
67
|
-
|
68
|
-
return (0, exports.arrayBufferToNumber)(bytes);
|
59
|
+
exports.toSubAccountId = (subAccount) => {
|
60
|
+
const bytes = exports.arrayOfNumberToArrayBuffer(subAccount);
|
61
|
+
return exports.arrayBufferToNumber(bytes);
|
69
62
|
};
|
70
|
-
exports.
|
71
|
-
const
|
72
|
-
|
73
|
-
return (0, exports.arrayBufferToArrayOfNumber)(buffer);
|
63
|
+
exports.fromSubAccountId = (subAccountId) => {
|
64
|
+
const buffer = exports.numberToArrayBuffer(subAccountId, constants_1.SUB_ACCOUNT_BYTE_LENGTH);
|
65
|
+
return exports.arrayBufferToArrayOfNumber(buffer);
|
74
66
|
};
|
75
|
-
exports.
|
76
|
-
const accountIdentifierToBytes = (accountIdentifier) => {
|
67
|
+
exports.accountIdentifierToBytes = (accountIdentifier) => {
|
77
68
|
return Uint8Array.from(buffer_1.Buffer.from(accountIdentifier, 'hex')).subarray(4);
|
78
69
|
};
|
79
|
-
exports.
|
80
|
-
const accountIdentifierFromBytes = (accountIdentifier) => {
|
70
|
+
exports.accountIdentifierFromBytes = (accountIdentifier) => {
|
81
71
|
return buffer_1.Buffer.from(accountIdentifier).toString('hex');
|
82
72
|
};
|
83
|
-
exports.
|
84
|
-
const principalToAccountIdentifier = (principal, subAccount) => {
|
73
|
+
exports.principalToAccountIdentifier = (principal, subAccount) => {
|
85
74
|
// Hash (sha224) the principal, the subAccount and some padding
|
86
|
-
const padding =
|
75
|
+
const padding = exports.asciiStringToByteArray('\x0Aaccount-id');
|
87
76
|
const shaObj = js_sha256_1.sha224.create();
|
88
77
|
shaObj.update([...padding, ...principal.toUint8Array(), ...(subAccount !== null && subAccount !== void 0 ? subAccount : Array(32).fill(0))]);
|
89
78
|
const hash = new Uint8Array(shaObj.array());
|
90
79
|
// Prepend the checksum of the hash and convert to a hex string
|
91
|
-
const checksum =
|
80
|
+
const checksum = exports.calculateCrc32(hash);
|
92
81
|
const bytes = new Uint8Array([...checksum, ...hash]);
|
93
82
|
return toHexString(bytes);
|
94
83
|
};
|
95
|
-
exports.
|
96
|
-
const principalToSubAccount = (principal) => {
|
84
|
+
exports.principalToSubAccount = (principal) => {
|
97
85
|
const bytes = principal.toUint8Array();
|
98
86
|
const subAccount = new Uint8Array(32);
|
99
87
|
subAccount[0] = bytes.length;
|
100
88
|
subAccount.set(bytes, 1);
|
101
89
|
return subAccount;
|
102
90
|
};
|
103
|
-
exports.
|
104
|
-
const stringToAccountIdentifier = (str) => {
|
91
|
+
exports.stringToAccountIdentifier = (str) => {
|
105
92
|
try {
|
106
93
|
if (str.length === 64) {
|
107
94
|
return str;
|
108
95
|
}
|
109
96
|
if (str.length === 63) {
|
110
|
-
return
|
97
|
+
return exports.principalToAccountIdentifier(principal_1.Principal.fromText(str));
|
111
98
|
}
|
112
99
|
return undefined;
|
113
100
|
}
|
@@ -115,33 +102,111 @@ const stringToAccountIdentifier = (str) => {
|
|
115
102
|
return undefined;
|
116
103
|
}
|
117
104
|
};
|
118
|
-
exports.stringToAccountIdentifier = stringToAccountIdentifier;
|
119
105
|
const toHexString = (bytes) => bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');
|
120
106
|
// 4 bytes
|
121
|
-
|
107
|
+
exports.calculateCrc32 = (bytes) => {
|
122
108
|
const checksumArrayBuf = new ArrayBuffer(4);
|
123
109
|
const view = new DataView(checksumArrayBuf);
|
124
110
|
view.setUint32(0, crc_1.default.crc32(buffer_1.Buffer.from(bytes)), false);
|
125
111
|
return buffer_1.Buffer.from(checksumArrayBuf);
|
126
112
|
};
|
127
|
-
exports.calculateCrc32 = calculateCrc32;
|
128
113
|
exports.E8S_PER_ICP = 100000000;
|
129
114
|
var TokenSymbol;
|
130
115
|
(function (TokenSymbol) {
|
131
116
|
TokenSymbol["ICP"] = "ICP";
|
132
117
|
})(TokenSymbol = exports.TokenSymbol || (exports.TokenSymbol = {}));
|
133
|
-
|
134
|
-
|
118
|
+
exports.getDecimalFromSymbol = (sym) => {
|
119
|
+
switch (sym) {
|
120
|
+
case TokenSymbol.ICP:
|
121
|
+
return 8;
|
122
|
+
default:
|
123
|
+
return 8;
|
124
|
+
}
|
125
|
+
};
|
126
|
+
exports.formatAssetBySymbol = (_amount, symbol) => {
|
127
|
+
const balanceString = exports.balanceToString(_amount, exports.getDecimalFromSymbol(symbol));
|
128
|
+
const amount = Number(balanceString.total);
|
135
129
|
const tokenMap = [
|
136
130
|
{
|
137
131
|
ICP: {
|
138
|
-
amount: amount
|
132
|
+
amount: amount,
|
133
|
+
balanceString,
|
139
134
|
symbol: 'ICP',
|
140
135
|
},
|
141
136
|
},
|
142
137
|
];
|
143
|
-
const found = tokenMap.find(v => v[symbol] !== undefined);
|
138
|
+
const found = tokenMap.find((v) => v[symbol] !== undefined);
|
144
139
|
return found === null || found === void 0 ? void 0 : found[symbol];
|
145
140
|
};
|
146
|
-
exports.
|
141
|
+
exports.parseBalance = (balance) => {
|
142
|
+
return (parseInt(balance.value, 10) / 10 ** balance.decimals).toString();
|
143
|
+
};
|
144
|
+
exports.balanceFromString = (balance, decimal = 8) => {
|
145
|
+
const list = balance.split('.');
|
146
|
+
const aboveZero = list[0];
|
147
|
+
const aboveZeroBigInt = BigInt(aboveZero) * BigInt(1 * 10 ** decimal);
|
148
|
+
let belowZeroBigInt = BigInt(0);
|
149
|
+
const belowZero = list[1];
|
150
|
+
if (belowZero !== undefined) {
|
151
|
+
belowZeroBigInt = BigInt(belowZero.substring(0, decimal).padEnd(decimal, '0'));
|
152
|
+
}
|
153
|
+
return aboveZeroBigInt + belowZeroBigInt;
|
154
|
+
};
|
155
|
+
exports.balanceToString = (balance, decimal = 8) => {
|
156
|
+
const balanceString = balance.toString(10);
|
157
|
+
const balanceStringLength = balanceString.length;
|
158
|
+
let aboveZero = '0';
|
159
|
+
let belowZero = '0'.padEnd(decimal, '0');
|
160
|
+
if (balanceStringLength > decimal) {
|
161
|
+
belowZero = balanceString.substring(balanceStringLength - decimal, balanceStringLength);
|
162
|
+
aboveZero = balanceString.substring(0, balanceStringLength - decimal);
|
163
|
+
}
|
164
|
+
else {
|
165
|
+
belowZero = balanceString.padStart(decimal, '0');
|
166
|
+
}
|
167
|
+
const formatAboveZero = String(aboveZero).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
168
|
+
return { total: aboveZero + '.' + belowZero, aboveZero, belowZero, formatAboveZero };
|
169
|
+
};
|
170
|
+
exports.validateAccountId = (text) => text.length === 64 && constants_1.ALPHANUM_REGEX.test(text);
|
171
|
+
exports.validatePrincipalId = (text) => {
|
172
|
+
try {
|
173
|
+
return text === principal_1.Principal.fromText(text).toString();
|
174
|
+
}
|
175
|
+
catch (e) {
|
176
|
+
return false;
|
177
|
+
}
|
178
|
+
};
|
179
|
+
exports.validateCanisterId = (text) => {
|
180
|
+
try {
|
181
|
+
return text.length <= constants_1.CANISTER_MAX_LENGTH && exports.validatePrincipalId(text);
|
182
|
+
}
|
183
|
+
catch (e) {
|
184
|
+
return false;
|
185
|
+
}
|
186
|
+
};
|
187
|
+
var AddressType;
|
188
|
+
(function (AddressType) {
|
189
|
+
AddressType["PRINCIPAL"] = "principal";
|
190
|
+
AddressType["ACCOUNT"] = "accountId";
|
191
|
+
AddressType["CANISTER"] = "canister";
|
192
|
+
AddressType["ERC20"] = "erc20";
|
193
|
+
AddressType["INVALID"] = "invalid";
|
194
|
+
})(AddressType = exports.AddressType || (exports.AddressType = {}));
|
195
|
+
exports.getAddressType = (text) => {
|
196
|
+
try {
|
197
|
+
if (exports.validateAccountId(text)) {
|
198
|
+
return AddressType.ACCOUNT;
|
199
|
+
}
|
200
|
+
else if (exports.validatePrincipalId(text)) {
|
201
|
+
return AddressType.PRINCIPAL;
|
202
|
+
}
|
203
|
+
else if (exports.validateCanisterId(text)) {
|
204
|
+
return AddressType.CANISTER;
|
205
|
+
}
|
206
|
+
return AddressType.INVALID;
|
207
|
+
}
|
208
|
+
catch (error) {
|
209
|
+
throw error;
|
210
|
+
}
|
211
|
+
};
|
147
212
|
//# sourceMappingURL=converter.js.map
|