@astrox/connection 0.0.30 → 0.0.35
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.d.ts +5 -1
- package/lib/cjs/connections/ledgerConnection.js +7 -8
- package/lib/cjs/connections/ledgerConnection.js.map +1 -1
- package/lib/cjs/connections/nnsConnection.d.ts +9 -1
- package/lib/cjs/connections/nnsConnection.js +12 -59
- package/lib/cjs/connections/nnsConnection.js.map +1 -1
- package/lib/cjs/ic/icAuthClient.js +7 -9
- package/lib/cjs/ic/icAuthClient.js.map +1 -1
- package/lib/cjs/ic/icConnect.d.ts +5 -1
- package/lib/cjs/ic/icConnect.js +106 -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/services/history/rosseta.d.ts +62 -0
- package/lib/cjs/services/history/rosseta.js +242 -0
- package/lib/cjs/services/history/rosseta.js.map +1 -0
- package/lib/cjs/types/index.d.ts +50 -0
- package/lib/cjs/types/index.js +8 -1
- 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 +21 -2
- package/lib/cjs/utils/constants.js +22 -6
- 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.d.ts +5 -1
- package/lib/esm/connections/ledgerConnection.js +0 -1
- package/lib/esm/connections/ledgerConnection.js.map +1 -1
- package/lib/esm/connections/nnsConnection.d.ts +9 -1
- package/lib/esm/connections/nnsConnection.js +9 -56
- package/lib/esm/connections/nnsConnection.js.map +1 -1
- package/lib/esm/ic/icAuthClient.js +3 -5
- package/lib/esm/ic/icAuthClient.js.map +1 -1
- package/lib/esm/ic/icConnect.d.ts +5 -1
- package/lib/esm/ic/icConnect.js +107 -36
- package/lib/esm/ic/icConnect.js.map +1 -1
- package/lib/esm/ic/icWindow.js.map +1 -1
- package/lib/esm/services/history/rosseta.d.ts +62 -0
- package/lib/esm/services/history/rosseta.js +236 -0
- package/lib/esm/services/history/rosseta.js.map +1 -0
- package/lib/esm/types/index.d.ts +50 -0
- package/lib/esm/types/index.js +7 -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 +21 -2
- package/lib/esm/utils/constants.js +21 -5
- 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 +2847 -1
- package/lib/tsconfig.tsbuildinfo +2846 -1
- package/package.json +4 -3
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, _signerProvider, _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,19 @@ 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 SIGNER_PROVIDER_DEFAULT = 'https://63k2f-nyaaa-aaaah-aakla-cai.raw.ic0.app';
|
32
|
+
const SIGNER_PROVIDER_ENDPOINT = '#signer';
|
33
|
+
const FRAME_SETTING = 'height=600, width=800, top=0, right=0, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no';
|
34
|
+
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
35
|
class IC extends icWindow_1.ICWindow {
|
30
36
|
constructor(authClient) {
|
31
37
|
super();
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
38
|
+
_authClient.set(this, void 0);
|
39
|
+
_agent.set(this, void 0);
|
40
|
+
_localLedger.set(this, void 0);
|
41
|
+
_walletProvider.set(this, void 0);
|
42
|
+
_signerProvider.set(this, void 0);
|
43
|
+
_useFrame.set(this, false); // a local ledger to query balance only
|
36
44
|
this.disconnect = async (options = {}) => {
|
37
45
|
await this.getAuthClient().logout(options);
|
38
46
|
};
|
@@ -41,48 +49,62 @@ class IC extends icWindow_1.ICWindow {
|
|
41
49
|
if (this.wallet === undefined) {
|
42
50
|
throw Error('Wallet address is not found');
|
43
51
|
}
|
44
|
-
if (__classPrivateFieldGet(this,
|
52
|
+
if (__classPrivateFieldGet(this, _localLedger) === undefined) {
|
45
53
|
throw Error('Ledger connection faild');
|
46
54
|
}
|
47
|
-
const result = await ((_a = __classPrivateFieldGet(this,
|
55
|
+
const result = await ((_a = __classPrivateFieldGet(this, _localLedger)) === null || _a === void 0 ? void 0 : _a.getBalance(this.wallet));
|
48
56
|
return result;
|
49
57
|
};
|
50
58
|
this.handleAuthenticated = async (ic, { ledgerCanisterId }) => {
|
51
59
|
const identity = ic.getAuthClient().getIdentity();
|
52
|
-
__classPrivateFieldSet(this,
|
60
|
+
__classPrivateFieldSet(this, _agent, new agent_1.HttpAgent({ identity }));
|
53
61
|
if (!process.env.isProduction) {
|
54
|
-
await __classPrivateFieldGet(this,
|
62
|
+
await __classPrivateFieldGet(this, _agent).fetchRootKey();
|
55
63
|
}
|
56
64
|
const actorResult = await ledgerConnection_1.LedgerConnection.createActor(ic.getAuthClient().getDelegationIdentity(), ledgerCanisterId);
|
57
|
-
__classPrivateFieldSet(this,
|
65
|
+
__classPrivateFieldSet(this, _localLedger, ledgerConnection_1.LedgerConnection.createConnection(ic.getAuthClient().getInnerKey(), ic.getAuthClient().getDelegationIdentity(), ledgerCanisterId, actorResult.actor, __classPrivateFieldGet(this, _agent)));
|
58
66
|
this.injectWindow();
|
59
67
|
return new IC(ic.getAuthClient());
|
60
68
|
};
|
61
69
|
this.createActor = (idlFactory, canisterId) => {
|
62
70
|
return agent_1.Actor.createActor(idlFactory, {
|
63
|
-
agent: __classPrivateFieldGet(this,
|
71
|
+
agent: __classPrivateFieldGet(this, _agent),
|
64
72
|
canisterId,
|
65
73
|
});
|
66
74
|
};
|
67
75
|
// requestTransfer
|
68
76
|
this.requestTransfer = async (options) => {
|
69
77
|
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,
|
78
|
+
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
79
|
walletProviderUrl.hash = WALLET_PROVIDER_ENDPOINT;
|
72
|
-
this._openWindow(walletProviderUrl.toString(), 'icWindow',
|
80
|
+
this._openWindow(walletProviderUrl.toString(), 'icWindow', __classPrivateFieldGet(this, _useFrame) ? FRAME_SETTING_PAYMENT : undefined);
|
73
81
|
return new Promise((resolve, reject) => {
|
74
82
|
this._eventHandler = this._getEventHandler(walletProviderUrl, resolve, reject, options);
|
75
83
|
window.addEventListener('message', this._eventHandler);
|
76
84
|
});
|
77
85
|
};
|
78
|
-
|
86
|
+
this.signMessage = async (options) => {
|
87
|
+
var _a;
|
88
|
+
const signerProviderUrl = new URL(((_a = options === null || options === void 0 ? void 0 : options.signerProvider) === null || _a === void 0 ? void 0 : _a.toString()) || __classPrivateFieldGet(this, _signerProvider) || SIGNER_PROVIDER_DEFAULT);
|
89
|
+
signerProviderUrl.hash = SIGNER_PROVIDER_ENDPOINT;
|
90
|
+
this._openWindow(signerProviderUrl.toString(), 'icWindow', __classPrivateFieldGet(this, _useFrame) ? FRAME_SETTING_PAYMENT : undefined);
|
91
|
+
return new Promise((resolve, reject) => {
|
92
|
+
this._eventHandler = this._getSignerHandler(signerProviderUrl, resolve, reject, options);
|
93
|
+
window.addEventListener('message', this._eventHandler);
|
94
|
+
});
|
95
|
+
};
|
96
|
+
__classPrivateFieldSet(this, _authClient, authClient);
|
79
97
|
}
|
80
98
|
static async connect(connectOptions) {
|
81
99
|
var _a, _b, _c, _d;
|
82
|
-
const authClient = await icAuthClient_1.AuthClient.create(connectOptions)
|
100
|
+
const authClient = await icAuthClient_1.AuthClient.create(Object.assign(Object.assign({}, connectOptions), { idpWindowOption: connectOptions.useFrame === true
|
101
|
+
? FRAME_SETTING
|
102
|
+
: undefined }));
|
83
103
|
const newIC = new this(authClient);
|
84
104
|
const provider = (_a = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.identityProvider) !== null && _a !== void 0 ? _a : icStorage_1.IDENTITY_PROVIDER_DEFAULT;
|
85
105
|
newIC._setWalletProvider(connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.walletProviderUrl);
|
106
|
+
newIC._setSignerProvider(connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.signerProviderUrl);
|
107
|
+
newIC._setUseFrame(connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.useFrame);
|
86
108
|
if (await newIC.isAuthenticated()) {
|
87
109
|
await newIC.handleAuthenticated(newIC, { ledgerCanisterId: connectOptions.ledgerCanisterId });
|
88
110
|
await ((_b = connectOptions === null || connectOptions === void 0 ? void 0 : connectOptions.onAuthenticated) === null || _b === void 0 ? void 0 : _b.call(connectOptions, newIC));
|
@@ -105,23 +127,29 @@ class IC extends icWindow_1.ICWindow {
|
|
105
127
|
return newIC;
|
106
128
|
}
|
107
129
|
async isAuthenticated() {
|
108
|
-
const result = await __classPrivateFieldGet(this,
|
130
|
+
const result = await __classPrivateFieldGet(this, _authClient).isAuthenticated();
|
109
131
|
return result;
|
110
132
|
}
|
111
133
|
get identity() {
|
112
|
-
return __classPrivateFieldGet(this,
|
134
|
+
return __classPrivateFieldGet(this, _authClient).getIdentity();
|
113
135
|
}
|
114
136
|
get principal() {
|
115
137
|
return this.identity.getPrincipal();
|
116
138
|
}
|
117
139
|
get wallet() {
|
118
|
-
return __classPrivateFieldGet(this,
|
140
|
+
return __classPrivateFieldGet(this, _authClient).wallet;
|
119
141
|
}
|
120
142
|
_setWalletProvider(provider) {
|
121
|
-
__classPrivateFieldSet(this,
|
143
|
+
__classPrivateFieldSet(this, _walletProvider, provider);
|
144
|
+
}
|
145
|
+
_setSignerProvider(provider) {
|
146
|
+
__classPrivateFieldSet(this, _signerProvider, provider);
|
147
|
+
}
|
148
|
+
_setUseFrame(useFrame) {
|
149
|
+
__classPrivateFieldSet(this, _useFrame, useFrame);
|
122
150
|
}
|
123
151
|
getAuthClient() {
|
124
|
-
return __classPrivateFieldGet(this,
|
152
|
+
return __classPrivateFieldGet(this, _authClient);
|
125
153
|
}
|
126
154
|
injectWindow(ic) {
|
127
155
|
if (window.ic !== undefined) {
|
@@ -139,9 +167,45 @@ class IC extends icWindow_1.ICWindow {
|
|
139
167
|
handleError(error) {
|
140
168
|
throw new Error(error);
|
141
169
|
}
|
170
|
+
_getSignerHandler(walletProviderUrl, resolve, reject, options) {
|
171
|
+
return async (event) => {
|
172
|
+
var _a, _b, _c, _d;
|
173
|
+
if (event.origin !== walletProviderUrl.origin) {
|
174
|
+
return;
|
175
|
+
}
|
176
|
+
const message = event.data;
|
177
|
+
switch (message.kind) {
|
178
|
+
case types_1.SignerMessageKind.ready: {
|
179
|
+
// IDP is ready. Send a message to request authorization.
|
180
|
+
const request = {
|
181
|
+
kind: types_1.SignerMessageKind.client,
|
182
|
+
message: options.message,
|
183
|
+
maxTimeout: (_a = options.maxTimeout) !== null && _a !== void 0 ? _a : 90,
|
184
|
+
successTimeout: (_b = options.successTimeout) !== null && _b !== void 0 ? _b : 10
|
185
|
+
};
|
186
|
+
(_c = this._window) === null || _c === void 0 ? void 0 : _c.postMessage(request, walletProviderUrl.origin);
|
187
|
+
break;
|
188
|
+
}
|
189
|
+
case types_1.SignerMessageKind.success:
|
190
|
+
// Create the delegation chain and store it.
|
191
|
+
try {
|
192
|
+
resolve(this._handleSuccess(message, options.onSuccess, (_d = options.successTimeout) !== null && _d !== void 0 ? _d : 10));
|
193
|
+
}
|
194
|
+
catch (err) {
|
195
|
+
reject(this._handleFailure(err.message, options.onError));
|
196
|
+
}
|
197
|
+
break;
|
198
|
+
case types_1.SignerMessageKind.fail:
|
199
|
+
reject(this._handleFailure(message.text, options.onError));
|
200
|
+
break;
|
201
|
+
default:
|
202
|
+
break;
|
203
|
+
}
|
204
|
+
};
|
205
|
+
}
|
142
206
|
_getEventHandler(walletProviderUrl, resolve, reject, options) {
|
143
207
|
return async (event) => {
|
144
|
-
var _a;
|
208
|
+
var _a, _b, _c, _d;
|
145
209
|
if (event.origin !== walletProviderUrl.origin) {
|
146
210
|
return;
|
147
211
|
}
|
@@ -155,14 +219,16 @@ class IC extends icWindow_1.ICWindow {
|
|
155
219
|
to: options.to,
|
156
220
|
amount: options.amount,
|
157
221
|
sendOpts: options.sendOpts,
|
222
|
+
maxTimeout: (_a = options.maxTimeout) !== null && _a !== void 0 ? _a : 90,
|
223
|
+
successTimeout: (_b = options.successTimeout) !== null && _b !== void 0 ? _b : 10
|
158
224
|
};
|
159
|
-
(
|
225
|
+
(_c = this._window) === null || _c === void 0 ? void 0 : _c.postMessage(request, walletProviderUrl.origin);
|
160
226
|
break;
|
161
227
|
}
|
162
228
|
case types_1.TransactionMessageKind.success:
|
163
229
|
// Create the delegation chain and store it.
|
164
230
|
try {
|
165
|
-
resolve(this._handleSuccess(message, options.onSuccess));
|
231
|
+
resolve(this._handleSuccess(message, options.onSuccess, (_d = options.successTimeout) !== null && _d !== void 0 ? _d : 10));
|
166
232
|
}
|
167
233
|
catch (err) {
|
168
234
|
reject(this._handleFailure(err.message, options.onError));
|
@@ -181,12 +247,17 @@ class IC extends icWindow_1.ICWindow {
|
|
181
247
|
onError === null || onError === void 0 ? void 0 : onError(errorMessage);
|
182
248
|
return errorMessage;
|
183
249
|
}
|
184
|
-
_handleSuccess(value, onSuccess) {
|
185
|
-
|
250
|
+
_handleSuccess(value, onSuccess, delay) {
|
251
|
+
if (delay) {
|
252
|
+
setTimeout(() => this._remove(), delay * 1000);
|
253
|
+
}
|
254
|
+
else {
|
255
|
+
this._remove();
|
256
|
+
}
|
186
257
|
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(value);
|
187
258
|
return value;
|
188
259
|
}
|
189
260
|
}
|
190
261
|
exports.IC = IC;
|
191
|
-
|
262
|
+
_authClient = new WeakMap(), _agent = new WeakMap(), _localLedger = new WeakMap(), _walletProvider = new WeakMap(), _signerProvider = new WeakMap(), _useFrame = new WeakMap();
|
192
263
|
//# 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);
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import { DelegationIdentity } from '@dfinity/identity';
|
2
|
+
import { TransactionResponse } from '../../connections/ledgerConnection';
|
3
|
+
import { GetTransactionsResponse } from 'src/canisters/nns-dapp';
|
4
|
+
export declare const MILI_PER_SECOND = 1000000;
|
5
|
+
export declare enum RosettaTransactionStatus {
|
6
|
+
COMPLETED = "COMPLETED",
|
7
|
+
REVERTED = "REVERTED",
|
8
|
+
PENDING = "PENDING"
|
9
|
+
}
|
10
|
+
export declare enum RosettaTransactionType {
|
11
|
+
TRANSACTION = "TRANSACTION",
|
12
|
+
FEE = "FEE",
|
13
|
+
RECEIVE = "RECEIVE",
|
14
|
+
SEND = "SEND"
|
15
|
+
}
|
16
|
+
export interface Currency {
|
17
|
+
symbol: string;
|
18
|
+
decimals: number;
|
19
|
+
}
|
20
|
+
export interface InnerUsedTransactionDetail {
|
21
|
+
to?: string;
|
22
|
+
from: string;
|
23
|
+
status?: RosettaTransactionStatus;
|
24
|
+
amount?: string;
|
25
|
+
currency?: {
|
26
|
+
symbol: string;
|
27
|
+
decimals: number;
|
28
|
+
};
|
29
|
+
fee: {
|
30
|
+
amount?: string;
|
31
|
+
currency?: {
|
32
|
+
symbol: string;
|
33
|
+
decimals: number;
|
34
|
+
};
|
35
|
+
};
|
36
|
+
}
|
37
|
+
export interface InnerUsedTransaction {
|
38
|
+
type: RosettaTransactionType;
|
39
|
+
details: InnerUsedTransactionDetail;
|
40
|
+
}
|
41
|
+
export interface InferredTransaction {
|
42
|
+
hash: string;
|
43
|
+
timestamp: string;
|
44
|
+
type: RosettaTransactionType;
|
45
|
+
details: InnerUsedTransactionDetail;
|
46
|
+
caller: string;
|
47
|
+
block_height: string;
|
48
|
+
memo: string;
|
49
|
+
lockTime: string;
|
50
|
+
}
|
51
|
+
export interface GetRossetaTransactionsResponse {
|
52
|
+
total: number;
|
53
|
+
transactions: InferredTransaction[];
|
54
|
+
}
|
55
|
+
export declare const getICPTransactions: (accountId: string) => Promise<GetRossetaTransactionsResponse>;
|
56
|
+
export declare const getTransactions: (localDelegationIdentity: DelegationIdentity, fromAccount: string) => Promise<GetTransactionsResponse>;
|
57
|
+
export declare const getICPTransactionsByBlock: (fromAccount: string, blockHeight: bigint) => Promise<{
|
58
|
+
total: any;
|
59
|
+
transactions: any;
|
60
|
+
}>;
|
61
|
+
export declare const getExactTransaction: (fromAccount: string, singleResponse: TransactionResponse, txns: GetTransactionsResponse) => InferredTransaction | undefined;
|
62
|
+
export declare const getTransactionFromRosseta: (fromAccount: string, singleResponse: TransactionResponse, txns: GetRossetaTransactionsResponse) => InferredTransaction | undefined;
|
@@ -0,0 +1,242 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.getTransactionFromRosseta = exports.getExactTransaction = exports.getICPTransactionsByBlock = exports.getTransactions = exports.getICPTransactions = exports.RosettaTransactionType = exports.RosettaTransactionStatus = exports.MILI_PER_SECOND = void 0;
|
7
|
+
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
8
|
+
// import {
|
9
|
+
// GetTransactionsResponse,
|
10
|
+
// Send,
|
11
|
+
// Timestamp,
|
12
|
+
// } from 'src/frontend/generated/nns-dapp';
|
13
|
+
const constants_1 = require("../../utils/constants");
|
14
|
+
const converter_1 = require("../../utils/converter");
|
15
|
+
const nnsConnection_1 = require("../../connections/nnsConnection");
|
16
|
+
exports.MILI_PER_SECOND = 1000000;
|
17
|
+
var RosettaTransactionStatus;
|
18
|
+
(function (RosettaTransactionStatus) {
|
19
|
+
RosettaTransactionStatus["COMPLETED"] = "COMPLETED";
|
20
|
+
RosettaTransactionStatus["REVERTED"] = "REVERTED";
|
21
|
+
RosettaTransactionStatus["PENDING"] = "PENDING";
|
22
|
+
})(RosettaTransactionStatus = exports.RosettaTransactionStatus || (exports.RosettaTransactionStatus = {}));
|
23
|
+
var RosettaTransactionType;
|
24
|
+
(function (RosettaTransactionType) {
|
25
|
+
RosettaTransactionType["TRANSACTION"] = "TRANSACTION";
|
26
|
+
RosettaTransactionType["FEE"] = "FEE";
|
27
|
+
RosettaTransactionType["RECEIVE"] = "RECEIVE";
|
28
|
+
RosettaTransactionType["SEND"] = "SEND";
|
29
|
+
})(RosettaTransactionType = exports.RosettaTransactionType || (exports.RosettaTransactionType = {}));
|
30
|
+
const getTransactionInfo = (accountId, rosettaTransaction) => {
|
31
|
+
const { operations, metadata: { timestamp: ts, block_height: bh, memo: mm, lockTime: lt }, transaction_identifier: { hash }, } = rosettaTransaction;
|
32
|
+
// console.log('------ getting rosetta transaction start -------');
|
33
|
+
// console.log({ rosettaTransaction });
|
34
|
+
// console.log('------ getting rosetta transaction end -------');
|
35
|
+
const transaction = {
|
36
|
+
type: RosettaTransactionType.SEND,
|
37
|
+
details: {
|
38
|
+
status: RosettaTransactionStatus.COMPLETED,
|
39
|
+
fee: {},
|
40
|
+
from: accountId,
|
41
|
+
},
|
42
|
+
};
|
43
|
+
operations.forEach((operation) => {
|
44
|
+
const value = BigInt(operation.amount.value);
|
45
|
+
const { decimals } = operation.amount.currency;
|
46
|
+
const amount = converter_1.parseBalance({ value: value.toString(), decimals });
|
47
|
+
if (operation.type === RosettaTransactionType.FEE) {
|
48
|
+
transaction.details.fee.amount = amount;
|
49
|
+
transaction.details.fee.currency = operation.amount.currency;
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
if (value >= 0)
|
53
|
+
transaction.details.to = operation.account.address;
|
54
|
+
if (value <= 0)
|
55
|
+
transaction.details.from = operation.account.address;
|
56
|
+
if (transaction.details.status === RosettaTransactionStatus.COMPLETED &&
|
57
|
+
operation.status !== RosettaTransactionStatus.COMPLETED)
|
58
|
+
transaction.details.status = operation.status;
|
59
|
+
transaction.type =
|
60
|
+
transaction.details.to === accountId
|
61
|
+
? RosettaTransactionType.RECEIVE
|
62
|
+
: RosettaTransactionType.SEND;
|
63
|
+
transaction.details.amount = amount;
|
64
|
+
transaction.details.currency = operation.amount.currency;
|
65
|
+
});
|
66
|
+
return Object.assign(Object.assign({}, transaction), { caller: transaction.details.from, hash, timestamp: ts !== undefined ? (BigInt(ts) / BigInt(exports.MILI_PER_SECOND)).toString() : '', block_height: bh !== undefined ? BigInt(bh).toString() : '', memo: mm !== undefined ? BigInt(mm).toString() : '', lockTime: lt !== undefined ? BigInt(lt).toString() : '' });
|
67
|
+
};
|
68
|
+
exports.getICPTransactions = async (accountId) => {
|
69
|
+
const response = await cross_fetch_1.default(`${constants_1.ROSETTA_URL}/search/transactions`, {
|
70
|
+
method: 'POST',
|
71
|
+
body: JSON.stringify({
|
72
|
+
network_identifier: constants_1.NET_ID,
|
73
|
+
account_identifier: {
|
74
|
+
address: accountId,
|
75
|
+
},
|
76
|
+
}),
|
77
|
+
headers: {
|
78
|
+
'Content-Type': 'application/json',
|
79
|
+
Accept: '*/*',
|
80
|
+
},
|
81
|
+
});
|
82
|
+
if (!response.ok)
|
83
|
+
throw Error(`GET_TRANSACTIONS_FAILS: ${response.statusText}`);
|
84
|
+
const { transactions, total_count } = await response.json();
|
85
|
+
const transactionsInfo = transactions.map(({ transaction }) => getTransactionInfo(accountId, transaction));
|
86
|
+
return {
|
87
|
+
total: total_count,
|
88
|
+
transactions: transactionsInfo,
|
89
|
+
};
|
90
|
+
};
|
91
|
+
exports.getTransactions = async (localDelegationIdentity, fromAccount) => {
|
92
|
+
const result = await nnsConnection_1.NNSConnection.getTransactions({ delegationIdentity: localDelegationIdentity }, { page_size: 10, offset: 0, account_identifier: fromAccount });
|
93
|
+
return result;
|
94
|
+
};
|
95
|
+
exports.getICPTransactionsByBlock = async (fromAccount, blockHeight) => {
|
96
|
+
try {
|
97
|
+
const response = await cross_fetch_1.default(`${constants_1.ROSETTA_URL}/block`, {
|
98
|
+
method: 'POST',
|
99
|
+
body: JSON.stringify({
|
100
|
+
network_identifier: constants_1.NET_ID,
|
101
|
+
block_identifier: { index: parseInt(blockHeight.toString()) },
|
102
|
+
}),
|
103
|
+
headers: {
|
104
|
+
'Content-Type': 'application/json',
|
105
|
+
Accept: '*/*',
|
106
|
+
},
|
107
|
+
});
|
108
|
+
if (!response.ok)
|
109
|
+
throw Error(`GET_TRANSACTIONS_FAILS: ${response.statusText}`);
|
110
|
+
const { block } = await response.json();
|
111
|
+
const { transactions } = block;
|
112
|
+
if (transactions === undefined || block === undefined) {
|
113
|
+
return {
|
114
|
+
total: transactions.length,
|
115
|
+
transactions: [],
|
116
|
+
};
|
117
|
+
}
|
118
|
+
const transactionsInfo = transactions.map((transaction) => getTransactionInfo(fromAccount, transaction));
|
119
|
+
return {
|
120
|
+
total: transactions.length,
|
121
|
+
transactions: transactionsInfo,
|
122
|
+
};
|
123
|
+
}
|
124
|
+
catch (error) {
|
125
|
+
throw error;
|
126
|
+
}
|
127
|
+
};
|
128
|
+
exports.getExactTransaction = (fromAccount, singleResponse, txns) => {
|
129
|
+
const { sendArgs } = singleResponse;
|
130
|
+
const { amount, created_at_time, memo, to } = sendArgs;
|
131
|
+
const { blockHeight } = singleResponse;
|
132
|
+
const { transactions } = txns;
|
133
|
+
console.log({ singleResponse, txns });
|
134
|
+
const found = transactions.find((val) => {
|
135
|
+
return created_at_time[0] !== undefined
|
136
|
+
? val.timestamp.timestamp_nanos >
|
137
|
+
created_at_time[0].timestamp_nanos
|
138
|
+
: true &&
|
139
|
+
val.block_height === blockHeight &&
|
140
|
+
val.memo === memo &&
|
141
|
+
JSON.stringify(val.transaction_type[0]) ===
|
142
|
+
JSON.stringify({ Send: null }) &&
|
143
|
+
val.transfer.Send.amount.e8s === amount.e8s &&
|
144
|
+
val.transfer.Send.to === to;
|
145
|
+
});
|
146
|
+
if (found) {
|
147
|
+
const res = {
|
148
|
+
hash: '',
|
149
|
+
timestamp: (BigInt(found.timestamp.timestamp_nanos) / BigInt(1000000)).toString(),
|
150
|
+
type: RosettaTransactionType.SEND,
|
151
|
+
details: {
|
152
|
+
to,
|
153
|
+
from: fromAccount,
|
154
|
+
status: RosettaTransactionStatus.COMPLETED,
|
155
|
+
amount: amount.e8s.toString(),
|
156
|
+
currency: {
|
157
|
+
symbol: converter_1.TokenSymbol.ICP,
|
158
|
+
decimals: 10,
|
159
|
+
},
|
160
|
+
fee: {
|
161
|
+
amount: found.transfer.Send.fee.e8s.toString(),
|
162
|
+
currency: {
|
163
|
+
symbol: converter_1.TokenSymbol.ICP,
|
164
|
+
decimals: 10,
|
165
|
+
},
|
166
|
+
},
|
167
|
+
},
|
168
|
+
caller: fromAccount,
|
169
|
+
block_height: blockHeight.toString(),
|
170
|
+
memo: memo.toString(),
|
171
|
+
lockTime: '',
|
172
|
+
};
|
173
|
+
return res;
|
174
|
+
}
|
175
|
+
return undefined;
|
176
|
+
};
|
177
|
+
// use Rosseta API to fetch transaction list, and return
|
178
|
+
// This API works on mainnet, however not in local testnet
|
179
|
+
exports.getTransactionFromRosseta = (fromAccount, singleResponse, txns) => {
|
180
|
+
const { sendArgs } = singleResponse;
|
181
|
+
const { amount, created_at_time, memo, to } = sendArgs;
|
182
|
+
const { blockHeight } = singleResponse;
|
183
|
+
const { transactions } = txns;
|
184
|
+
console.log({ singleResponse, transactions });
|
185
|
+
const found = transactions.find((val) => {
|
186
|
+
var _a;
|
187
|
+
return created_at_time[0] !== undefined
|
188
|
+
? val.timestamp.length <
|
189
|
+
created_at_time[0].timestamp_nanos.toString().length
|
190
|
+
? BigInt(val.timestamp) * BigInt(1000000) >
|
191
|
+
created_at_time[0].timestamp_nanos
|
192
|
+
: BigInt(val.timestamp) >
|
193
|
+
created_at_time[0].timestamp_nanos
|
194
|
+
: true &&
|
195
|
+
BigInt(val.block_height) === blockHeight &&
|
196
|
+
BigInt(val.memo) === memo &&
|
197
|
+
val.details.to === to &&
|
198
|
+
val.details.amount === ((_a = converter_1.formatAssetBySymbol(amount.e8s, val.details.currency.symbol)) === null || _a === void 0 ? void 0 : _a.amount.toString()) &&
|
199
|
+
val.caller === fromAccount;
|
200
|
+
});
|
201
|
+
return found;
|
202
|
+
};
|
203
|
+
const aaa = {
|
204
|
+
transaction_identifier: {
|
205
|
+
hash: 'df8576aa9be05b561dae1b7f706d109789cf25b895d29b3a1d7da2df92247d97',
|
206
|
+
},
|
207
|
+
operations: [
|
208
|
+
{
|
209
|
+
type: 'TRANSACTION',
|
210
|
+
operation_identifier: { index: 0 },
|
211
|
+
status: 'COMPLETED',
|
212
|
+
account: {
|
213
|
+
address: 'da5fd722e22c4970b4347d41873ba86c51f87ee32f271d6762fc49627eeecb71',
|
214
|
+
},
|
215
|
+
amount: { value: -100000, currency: { symbol: 'ICP', decimals: 8 } },
|
216
|
+
},
|
217
|
+
{
|
218
|
+
type: 'TRANSACTION',
|
219
|
+
operation_identifier: { index: 1 },
|
220
|
+
status: 'COMPLETED',
|
221
|
+
account: {
|
222
|
+
address: '848753b6fac50019dffc34ead1af095863405b3cce463352c1ecf3109ada4b23',
|
223
|
+
},
|
224
|
+
amount: { value: 100000, currency: { symbol: 'ICP', decimals: 8 } },
|
225
|
+
},
|
226
|
+
{
|
227
|
+
type: 'FEE',
|
228
|
+
operation_identifier: { index: 2 },
|
229
|
+
status: 'COMPLETED',
|
230
|
+
account: {
|
231
|
+
address: 'da5fd722e22c4970b4347d41873ba86c51f87ee32f271d6762fc49627eeecb71',
|
232
|
+
},
|
233
|
+
amount: { value: -10000, currency: { symbol: 'ICP', decimals: 8 } },
|
234
|
+
},
|
235
|
+
],
|
236
|
+
metadata: {
|
237
|
+
block_height: 1680083,
|
238
|
+
memo: 22380256,
|
239
|
+
timestamp: 1639810289340003912,
|
240
|
+
},
|
241
|
+
};
|
242
|
+
//# sourceMappingURL=rosseta.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rosseta.js","sourceRoot":"","sources":["../../../../src/services/history/rosseta.ts"],"names":[],"mappings":"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"}
|