@astrox/connection 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE +201 -0
- package/README.md +23 -0
- package/lib/cjs/canisters/internet_identity_idl.d.ts +7 -0
- package/lib/cjs/canisters/internet_identity_idl.js +101 -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 +81 -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 +125 -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 +86 -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 +184 -0
- package/lib/cjs/canisters/nns-dapp.idl.js.map +1 -0
- package/lib/cjs/connections/baseConnection.d.ts +52 -0
- package/lib/cjs/connections/baseConnection.js +87 -0
- package/lib/cjs/connections/baseConnection.js.map +1 -0
- package/lib/cjs/connections/ledgerConnection.d.ts +57 -0
- package/lib/cjs/connections/ledgerConnection.js +135 -0
- package/lib/cjs/connections/ledgerConnection.js.map +1 -0
- package/lib/cjs/connections/nnsConnection.d.ts +62 -0
- package/lib/cjs/connections/nnsConnection.js +166 -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 +233 -0
- package/lib/cjs/ic/icAuthClient.js.map +1 -0
- package/lib/cjs/ic/icConnect.d.ts +32 -0
- package/lib/cjs/ic/icConnect.js +181 -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 +7 -0
- package/lib/cjs/ic/icWindow.js +20 -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 +7 -0
- package/lib/cjs/ic/index.js.map +1 -0
- package/lib/cjs/ic/types.d.ts +129 -0
- package/lib/cjs/ic/types.js +17 -0
- package/lib/cjs/ic/types.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/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 +130 -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 +52 -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 +57 -0
- package/lib/esm/connections/ledgerConnection.js +128 -0
- package/lib/esm/connections/ledgerConnection.js.map +1 -0
- package/lib/esm/connections/nnsConnection.d.ts +62 -0
- package/lib/esm/connections/nnsConnection.js +159 -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 +229 -0
- package/lib/esm/ic/icAuthClient.js.map +1 -0
- package/lib/esm/ic/icConnect.d.ts +32 -0
- package/lib/esm/ic/icConnect.js +177 -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 +7 -0
- package/lib/esm/ic/icWindow.js +16 -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/ic/types.d.ts +129 -0
- package/lib/esm/ic/types.js +14 -0
- package/lib/esm/ic/types.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/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 +2834 -0
- package/lib/tsconfig.tsbuildinfo +2833 -0
- package/package.json +53 -0
@@ -0,0 +1,181 @@
|
|
1
|
+
"use strict";
|
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;
|
8
|
+
};
|
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);
|
14
|
+
};
|
15
|
+
var _authClient, _agent, _localLedger;
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
exports.IC = void 0;
|
18
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
19
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
20
|
+
const agent_1 = require("@dfinity/agent");
|
21
|
+
const icAuthClient_1 = require("./icAuthClient");
|
22
|
+
const icStorage_1 = require("./icStorage");
|
23
|
+
const icWindow_1 = require("./icWindow");
|
24
|
+
const ledgerConnection_1 = require("../connections/ledgerConnection");
|
25
|
+
const types_1 = require("./types");
|
26
|
+
const days = BigInt(1);
|
27
|
+
const hours = BigInt(24);
|
28
|
+
const nanoseconds = BigInt(3600000000000);
|
29
|
+
const WALLET_PROVIDER_DEFAULT = 'http://localhost:8080/transaction';
|
30
|
+
const WALLET_PROVIDER_ENDPOINT = '#transaction';
|
31
|
+
class IC extends icWindow_1.ICWindow {
|
32
|
+
constructor(authClient) {
|
33
|
+
super();
|
34
|
+
_authClient.set(this, void 0);
|
35
|
+
_agent.set(this, void 0);
|
36
|
+
_localLedger.set(this, void 0); // a local ledger to query balance only
|
37
|
+
this.disconnect = async (options = {}) => {
|
38
|
+
await this.getAuthClient().logout(options);
|
39
|
+
};
|
40
|
+
this.queryBalance = async () => {
|
41
|
+
var _a;
|
42
|
+
if (this.wallet === undefined) {
|
43
|
+
throw Error('Wallet address is not found');
|
44
|
+
}
|
45
|
+
if (__classPrivateFieldGet(this, _localLedger) === undefined) {
|
46
|
+
throw Error('Ledger connection faild');
|
47
|
+
}
|
48
|
+
const result = await ((_a = __classPrivateFieldGet(this, _localLedger)) === null || _a === void 0 ? void 0 : _a.getBalance(this.wallet));
|
49
|
+
return result;
|
50
|
+
};
|
51
|
+
this.handleAuthenticated = async (ic) => {
|
52
|
+
const identity = ic.getAuthClient().getIdentity();
|
53
|
+
__classPrivateFieldSet(this, _agent, new agent_1.HttpAgent({ identity }));
|
54
|
+
if (!process.env.isProduction) {
|
55
|
+
await __classPrivateFieldGet(this, _agent).fetchRootKey();
|
56
|
+
}
|
57
|
+
__classPrivateFieldSet(this, _localLedger, ledgerConnection_1.LedgerConnection.createConnection(ic.getAuthClient().getInnerKey(), ic.getAuthClient().getDelegationIdentity()));
|
58
|
+
this.injectWindow(ic);
|
59
|
+
return new IC(ic.getAuthClient());
|
60
|
+
};
|
61
|
+
this.createActor = (idlFactory, canisterId) => {
|
62
|
+
return agent_1.Actor.createActor(idlFactory, {
|
63
|
+
agent: __classPrivateFieldGet(this, _agent),
|
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()) || 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, _authClient, authClient);
|
79
|
+
this.injectWindow();
|
80
|
+
}
|
81
|
+
static async connect(connectOptions) {
|
82
|
+
var _a, _b, _c, _d;
|
83
|
+
const authClient = await icAuthClient_1.AuthClient.create(connectOptions);
|
84
|
+
const newIC = new this(authClient);
|
85
|
+
const provider = (_a = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.identityProvider) !== null && _a !== void 0 ? _a : icStorage_1.IDENTITY_PROVIDER_DEFAULT;
|
86
|
+
if (await newIC.isAuthenticated()) {
|
87
|
+
await newIC.handleAuthenticated(newIC);
|
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
|
+
(_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)));
|
100
|
+
},
|
101
|
+
onError: newIC.handleError,
|
102
|
+
});
|
103
|
+
return newIC;
|
104
|
+
}
|
105
|
+
async isAuthenticated() {
|
106
|
+
const result = await __classPrivateFieldGet(this, _authClient).isAuthenticated();
|
107
|
+
return result;
|
108
|
+
}
|
109
|
+
get identity() {
|
110
|
+
return __classPrivateFieldGet(this, _authClient).getIdentity();
|
111
|
+
}
|
112
|
+
get principal() {
|
113
|
+
return this.identity.getPrincipal();
|
114
|
+
}
|
115
|
+
get wallet() {
|
116
|
+
return __classPrivateFieldGet(this, _authClient).wallet;
|
117
|
+
}
|
118
|
+
getAuthClient() {
|
119
|
+
return __classPrivateFieldGet(this, _authClient);
|
120
|
+
}
|
121
|
+
injectWindow(ic) {
|
122
|
+
if (window.ic !== undefined) {
|
123
|
+
let plug;
|
124
|
+
if (window.ic.plug !== undefined) {
|
125
|
+
plug = window.ic.plug;
|
126
|
+
}
|
127
|
+
window.ic = ic !== null && ic !== void 0 ? ic : this;
|
128
|
+
window.ic.plug = plug;
|
129
|
+
}
|
130
|
+
else {
|
131
|
+
window.ic = ic !== null && ic !== void 0 ? ic : this;
|
132
|
+
}
|
133
|
+
}
|
134
|
+
handleError(error) {
|
135
|
+
throw new Error(error);
|
136
|
+
}
|
137
|
+
_getEventHandler(walletProviderUrl, resolve, reject, options) {
|
138
|
+
return async (event) => {
|
139
|
+
var _a;
|
140
|
+
if (event.origin !== walletProviderUrl.origin) {
|
141
|
+
return;
|
142
|
+
}
|
143
|
+
const message = event.data;
|
144
|
+
switch (message.kind) {
|
145
|
+
case types_1.TransactionMessageKind.ready: {
|
146
|
+
// IDP is ready. Send a message to request authorization.
|
147
|
+
const request = Object.assign({ kind: types_1.TransactionMessageKind.client }, options);
|
148
|
+
(_a = this._window) === null || _a === void 0 ? void 0 : _a.postMessage(request, walletProviderUrl.origin);
|
149
|
+
break;
|
150
|
+
}
|
151
|
+
case types_1.TransactionMessageKind.success:
|
152
|
+
// Create the delegation chain and store it.
|
153
|
+
try {
|
154
|
+
resolve(null);
|
155
|
+
// Setting the storage is moved out of _handleSuccess to make
|
156
|
+
// it a sync function. Having _handleSuccess as an async function
|
157
|
+
// messes up the jest tests for some reason.
|
158
|
+
}
|
159
|
+
catch (err) {
|
160
|
+
reject(this._handleFailure(err.message, options === null || options === void 0 ? void 0 : options.onError));
|
161
|
+
}
|
162
|
+
break;
|
163
|
+
case types_1.TransactionMessageKind.fail:
|
164
|
+
reject(this._handleFailure(message.text, options === null || options === void 0 ? void 0 : options.onError));
|
165
|
+
break;
|
166
|
+
default:
|
167
|
+
break;
|
168
|
+
}
|
169
|
+
};
|
170
|
+
}
|
171
|
+
_handleFailure(errorMessage, onError) {
|
172
|
+
var _a;
|
173
|
+
(_a = this._window) === null || _a === void 0 ? void 0 : _a.close();
|
174
|
+
onError === null || onError === void 0 ? void 0 : onError(errorMessage);
|
175
|
+
this._removeEventListener();
|
176
|
+
return errorMessage;
|
177
|
+
}
|
178
|
+
}
|
179
|
+
exports.IC = IC;
|
180
|
+
_authClient = new WeakMap(), _agent = new WeakMap(), _localLedger = new WeakMap();
|
181
|
+
//# sourceMappingURL=icConnect.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"icConnect.js","sourceRoot":"","sources":["../../../src/ic/icConnect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,6DAA6D;AAC7D,0CAA2E;AAG3E,iDAA4C;AAC5C,2CAAwD;AACxD,yCAAsC;AACtC,sEAAmE;AACnE,mCAQiB;AAEjB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AACzB,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC1C,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AACpE,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAQhD,MAAa,EAAG,SAAQ,mBAAQ;IA6B9B,YAAsB,UAAsB;QAC1C,KAAK,EAAE,CAAC;QAJV,8BAAwB;QACxB,yBAAmB;QACnB,+BAAgC,CAAC,uCAAuC;QA4BjE,eAAU,GAAG,KAAK,EAAE,UAAiC,EAAE,EAAiB,EAAE;YAC/E,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEK,iBAAY,GAAG,KAAK,IAAqB,EAAE;;YAChD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC7B,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;aAC5C;YACD,IAAI,+CAAsB,SAAS,EAAE;gBACnC,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAC;aACxC;YACD,MAAM,MAAM,GAAG,iGAAyB,UAAU,CAAC,IAAI,CAAC,MAAO,EAAC,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEK,wBAAmB,GAAG,KAAK,EAAE,EAAM,EAAe,EAAE;YACzD,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,CAAC;YAElD,uBAAA,IAAI,UAAU,IAAI,iBAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAC;YAE1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;gBAC7B,MAAM,qCAAY,YAAY,EAAE,CAAC;aAClC;YACD,uBAAA,IAAI,gBAAgB,mCAAgB,CAAC,gBAAgB,CACnD,EAAE,CAAC,aAAa,EAAE,CAAC,WAAW,EAAG,EACjC,EAAE,CAAC,aAAa,EAAE,CAAC,qBAAqB,EAAG,CAC5C,EAAC;YAEF,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC;QAmBK,gBAAW,GAAG,CAAI,UAA4B,EAAE,UAAkB,EAAoB,EAAE;YAC7F,OAAO,aAAK,CAAC,WAAW,CAAI,UAAU,EAAE;gBACtC,KAAK,sCAAa;gBAClB,UAAU;aACX,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,kBAAkB;QACX,oBAAe,GAAG,KAAK,EAAE,OAA2B,EAAiB,EAAE;;YAC5E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,OAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,0CAAE,QAAQ,OAAM,uBAAuB,CAC/D,CAAC;YACF,iBAAiB,CAAC,IAAI,GAAG,wBAAwB,CAAC;YAClD,IAAI,CAAC,WAAW,CACd,iBAAiB,CAAC,QAAQ,EAAE,EAC5B,UAAU,EACV,oHAAoH,CACrH,CAAC;YAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAjGA,uBAAA,IAAI,eAAe,UAAU,EAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAhCM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAA8B;;QACxD,MAAM,UAAU,GAAG,MAAM,yBAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,QAAQ,SAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,gBAAgB,mCAAI,qCAAyB,CAAC;QAE/E,IAAI,MAAM,KAAK,CAAC,eAAe,EAAE,EAAE;YACjC,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACvC,aAAM,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,+CAA/B,cAAc,EAAoB,KAAK,EAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;SACd;QACD,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC;YAChC,gBAAgB,EAAE,QAAQ;YAC1B,6CAA6C;YAC7C,aAAa,QAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,aAAa,mCAAI,IAAI,GAAG,KAAK,GAAG,WAAW;YAC1E,WAAW,QAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,mCAAI,CAAC,uBAAe,CAAC,QAAQ,CAAC;YACtE,SAAS,EAAE,KAAK,IAAI,EAAE;;gBACpB,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAA,CAAC,aAAM,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,+CAAzB,cAAc,EAAe,CAAC,mCAAI,CAAC,aAAM,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,+CAA/B,cAAc,EAAoB,KAAK,EAAC,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,EAAE,KAAK,CAAC,WAAW;SAC3B,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAUM,KAAK,CAAC,eAAe;QAC1B,MAAM,MAAM,GAAG,MAAM,0CAAiB,eAAe,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,0CAAiB,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAED,IAAW,MAAM;QACf,OAAO,0CAAiB,MAAM,CAAC;IACjC,CAAC;IAES,aAAa;QACrB,iDAAwB;IAC1B,CAAC;IAkCO,YAAY,CAAC,EAAO;QAC1B,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE;YAC3B,IAAI,IAAI,CAAC;YACT,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gBAChC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;aACvB;YACD,MAAM,CAAC,EAAE,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,IAAI,CAAC;YACvB,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;SACvB;aAAM;YACL,MAAM,CAAC,EAAE,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,IAAI,CAAC;SACxB;IACH,CAAC;IAEM,WAAW,CAAC,KAAc;QAC/B,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IA2BO,gBAAgB,CACtB,iBAAsB,EACtB,OAA6B,EAC7B,MAA8B,EAC9B,OAA4B;QAE5B,OAAO,KAAK,EAAE,KAAmB,EAAE,EAAE;;YACnC,IAAI,KAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE;gBAC7C,OAAO;aACR;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAkC,CAAC;YAEzD,QAAQ,OAAO,CAAC,IAAI,EAAE;gBACpB,KAAK,8BAAsB,CAAC,KAAK,CAAC,CAAC;oBACjC,yDAAyD;oBAEzD,MAAM,OAAO,mBACX,IAAI,EAAE,8BAAsB,CAAC,MAAM,IAChC,OAAQ,CACZ,CAAC;oBACF,MAAA,IAAI,CAAC,OAAO,0CAAE,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE;oBAC7D,MAAM;iBACP;gBACD,KAAK,8BAAsB,CAAC,OAAO;oBACjC,4CAA4C;oBAC5C,IAAI;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC;wBAEd,6DAA6D;wBAC7D,iEAAiE;wBACjE,4CAA4C;qBAC7C;oBAAC,OAAO,GAAG,EAAE;wBACZ,MAAM,CAAC,IAAI,CAAC,cAAc,CAAE,GAAa,CAAC,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,CAAC;qBACvE;oBACD,MAAM;gBACR,KAAK,8BAAsB,CAAC,IAAI;oBAC9B,MAAM,CACJ,IAAI,CAAC,cAAc,CAChB,OAAiD,CAAC,IAAI,EACvD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CACjB,CACF,CAAC;oBACF,MAAM;gBACR;oBACE,MAAM;aACT;QACH,CAAC,CAAC;IACJ,CAAC;IACO,cAAc,CACpB,YAAqB,EACrB,OAAkC;;QAElC,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,GAAG;QACtB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,YAAY,EAAE;QACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA5LD,gBA4LC"}
|
@@ -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,7 @@
|
|
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
|
+
}
|
@@ -0,0 +1,20 @@
|
|
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, _b;
|
13
|
+
(_a = this._window) === null || _a === void 0 ? void 0 : _a.close();
|
14
|
+
this._removeEventListener();
|
15
|
+
// Open a new window with the IDP provider.
|
16
|
+
this._window = (_b = window.open(url, target !== null && target !== void 0 ? target : 'icWindow', feature)) !== null && _b !== void 0 ? _b : undefined;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
exports.ICWindow = ICWindow;
|
20
|
+
//# 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,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,GAAG;QACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,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;CACF;AAjBD,4BAiBC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var icAuthClient_1 = require("./icAuthClient");
|
4
|
+
Object.defineProperty(exports, "ICAuthClient", { enumerable: true, get: function () { return icAuthClient_1.AuthClient; } });
|
5
|
+
var icConnect_1 = require("./icConnect");
|
6
|
+
Object.defineProperty(exports, "IC", { enumerable: true, get: function () { return icConnect_1.IC; } });
|
7
|
+
//# 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"}
|
@@ -0,0 +1,129 @@
|
|
1
|
+
import { SignIdentity } from '@dfinity/agent';
|
2
|
+
import { Principal } from '@dfinity/principal';
|
3
|
+
import { IC } from './icConnect';
|
4
|
+
import { AccountIdentifier } from '../utils/common/types';
|
5
|
+
import { SendOpts } from '../connections/ledgerConnection';
|
6
|
+
/**
|
7
|
+
* List of options for creating an {@link AuthClient}.
|
8
|
+
*/
|
9
|
+
export interface AuthClientCreateOptions {
|
10
|
+
/**
|
11
|
+
* An identity to use as the base
|
12
|
+
*/
|
13
|
+
identity?: SignIdentity;
|
14
|
+
/**
|
15
|
+
* Optional storage with get, set, and remove. Uses SessionStorage by default
|
16
|
+
*/
|
17
|
+
storage?: AuthClientStorage;
|
18
|
+
appId?: string;
|
19
|
+
idpWindowOption?: string;
|
20
|
+
}
|
21
|
+
export interface AuthClientLoginOptions extends AuthClientCreateOptions {
|
22
|
+
/**
|
23
|
+
* Identity provider. By default, use the identity service.
|
24
|
+
*/
|
25
|
+
identityProvider?: string | URL;
|
26
|
+
permissions?: PermissionsType[];
|
27
|
+
/**
|
28
|
+
* Experiation of the authentication
|
29
|
+
*/
|
30
|
+
maxTimeToLive?: bigint;
|
31
|
+
/**
|
32
|
+
* Callback once login has completed
|
33
|
+
*/
|
34
|
+
onSuccess?: () => void | Promise<void>;
|
35
|
+
/**
|
36
|
+
* Callback in case authentication fails
|
37
|
+
*/
|
38
|
+
onError?: (error?: string) => void;
|
39
|
+
/**
|
40
|
+
* Callback once is authenticated
|
41
|
+
*/
|
42
|
+
onAuthenticated?: (ic: IC) => void | Promise<void>;
|
43
|
+
}
|
44
|
+
export interface TransactionOptions {
|
45
|
+
/**
|
46
|
+
* Identity provider. By default, use the identity service.
|
47
|
+
*/
|
48
|
+
walletProvider?: string | URL;
|
49
|
+
from: AccountIdentifier;
|
50
|
+
to: AccountIdentifier;
|
51
|
+
amount: bigint;
|
52
|
+
sendOpts: SendOpts;
|
53
|
+
/**
|
54
|
+
* Callback once login has completed
|
55
|
+
*/
|
56
|
+
onSuccess?: () => void | Promise<void>;
|
57
|
+
/**
|
58
|
+
* Callback in case authentication fails
|
59
|
+
*/
|
60
|
+
onError?: (error?: string) => void;
|
61
|
+
}
|
62
|
+
/**
|
63
|
+
* Interface for persisting user authentication data
|
64
|
+
*/
|
65
|
+
export interface AuthClientStorage {
|
66
|
+
get(key: string): Promise<string | null>;
|
67
|
+
set(key: string, value: string): Promise<void>;
|
68
|
+
remove(key: string): Promise<void>;
|
69
|
+
}
|
70
|
+
export interface InternetIdentityAuthRequest {
|
71
|
+
kind: 'authorize-client';
|
72
|
+
sessionPublicKey: Uint8Array;
|
73
|
+
permissions?: PermissionsType[];
|
74
|
+
maxTimeToLive?: bigint;
|
75
|
+
appId?: string;
|
76
|
+
}
|
77
|
+
export interface DelegationResult {
|
78
|
+
delegations: {
|
79
|
+
delegation: {
|
80
|
+
pubkey: Uint8Array;
|
81
|
+
expiration: bigint;
|
82
|
+
targets?: Principal[];
|
83
|
+
};
|
84
|
+
signature: Uint8Array;
|
85
|
+
}[];
|
86
|
+
userPublicKey: Uint8Array;
|
87
|
+
}
|
88
|
+
export interface MeAuthResponseSuccess {
|
89
|
+
kind: 'authorize-client-success';
|
90
|
+
identity: DelegationResult;
|
91
|
+
wallet?: string;
|
92
|
+
}
|
93
|
+
export interface IIAuthResponseSuccess extends DelegationResult {
|
94
|
+
kind: 'authorize-client-success';
|
95
|
+
}
|
96
|
+
export declare type AuthResponseSuccess = MeAuthResponseSuccess | IIAuthResponseSuccess;
|
97
|
+
export declare type EventHandler = (event: MessageEvent) => Promise<void>;
|
98
|
+
export declare enum PermissionsType {
|
99
|
+
identity = "permissions-identity",
|
100
|
+
wallet = "permissions-wallet"
|
101
|
+
}
|
102
|
+
export declare type ConnectOptions = AuthClientLoginOptions;
|
103
|
+
export declare enum TransactionMessageKind {
|
104
|
+
client = "transaction-client",
|
105
|
+
ready = "transaction-ready",
|
106
|
+
success = "transaction-client-success",
|
107
|
+
fail = "transaction-client-failure"
|
108
|
+
}
|
109
|
+
export interface TransactionReadyMessage {
|
110
|
+
kind: TransactionMessageKind.ready;
|
111
|
+
}
|
112
|
+
export interface TransactionResponseFailure {
|
113
|
+
kind: TransactionMessageKind.fail;
|
114
|
+
text: string;
|
115
|
+
}
|
116
|
+
export interface TransactionResponseSuccess {
|
117
|
+
kind: TransactionMessageKind.success;
|
118
|
+
}
|
119
|
+
export declare type TransactionResponseMessage = TransactionReadyMessage | TransactionResponse;
|
120
|
+
export declare type TransactionResponse = TransactionResponseSuccess | TransactionResponseFailure;
|
121
|
+
export interface AuthReadyMessage {
|
122
|
+
kind: 'authorize-ready';
|
123
|
+
}
|
124
|
+
export interface AuthResponseFailure {
|
125
|
+
kind: 'authorize-client-failure';
|
126
|
+
text: string;
|
127
|
+
}
|
128
|
+
export declare type IdentityServiceResponseMessage = AuthReadyMessage | AuthResponse;
|
129
|
+
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=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ic/types.ts"],"names":[],"mappings":";;;AAkHA,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;AAC/B,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAID,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"}
|
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" && !exports.hasOwnProperty(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,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;
|