@astrox/connection 0.0.31 → 0.0.36
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 +104 -36
- 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 -1
- 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 +105 -37
- 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 -1
- 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 +2848 -1
- package/lib/tsconfig.tsbuildinfo +2847 -1
- package/package.json +4 -3
@@ -0,0 +1,236 @@
|
|
1
|
+
import fetch from 'cross-fetch';
|
2
|
+
// import {
|
3
|
+
// GetTransactionsResponse,
|
4
|
+
// Send,
|
5
|
+
// Timestamp,
|
6
|
+
// } from 'src/frontend/generated/nns-dapp';
|
7
|
+
import { NET_ID, ROSETTA_URL } from '../../utils/constants';
|
8
|
+
import { formatAssetBySymbol, parseBalance, TokenSymbol, } from '../../utils/converter';
|
9
|
+
import { NNSConnection as nns } from '../../connections/nnsConnection';
|
10
|
+
export const MILI_PER_SECOND = 1000000;
|
11
|
+
export var RosettaTransactionStatus;
|
12
|
+
(function (RosettaTransactionStatus) {
|
13
|
+
RosettaTransactionStatus["COMPLETED"] = "COMPLETED";
|
14
|
+
RosettaTransactionStatus["REVERTED"] = "REVERTED";
|
15
|
+
RosettaTransactionStatus["PENDING"] = "PENDING";
|
16
|
+
})(RosettaTransactionStatus || (RosettaTransactionStatus = {}));
|
17
|
+
export var RosettaTransactionType;
|
18
|
+
(function (RosettaTransactionType) {
|
19
|
+
RosettaTransactionType["TRANSACTION"] = "TRANSACTION";
|
20
|
+
RosettaTransactionType["FEE"] = "FEE";
|
21
|
+
RosettaTransactionType["RECEIVE"] = "RECEIVE";
|
22
|
+
RosettaTransactionType["SEND"] = "SEND";
|
23
|
+
})(RosettaTransactionType || (RosettaTransactionType = {}));
|
24
|
+
const getTransactionInfo = (accountId, rosettaTransaction) => {
|
25
|
+
const { operations, metadata: { timestamp: ts, block_height: bh, memo: mm, lockTime: lt }, transaction_identifier: { hash }, } = rosettaTransaction;
|
26
|
+
// console.log('------ getting rosetta transaction start -------');
|
27
|
+
// console.log({ rosettaTransaction });
|
28
|
+
// console.log('------ getting rosetta transaction end -------');
|
29
|
+
const transaction = {
|
30
|
+
type: RosettaTransactionType.SEND,
|
31
|
+
details: {
|
32
|
+
status: RosettaTransactionStatus.COMPLETED,
|
33
|
+
fee: {},
|
34
|
+
from: accountId,
|
35
|
+
},
|
36
|
+
};
|
37
|
+
operations.forEach((operation) => {
|
38
|
+
const value = BigInt(operation.amount.value);
|
39
|
+
const { decimals } = operation.amount.currency;
|
40
|
+
const amount = parseBalance({ value: value.toString(), decimals });
|
41
|
+
if (operation.type === RosettaTransactionType.FEE) {
|
42
|
+
transaction.details.fee.amount = amount;
|
43
|
+
transaction.details.fee.currency = operation.amount.currency;
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
if (value >= 0)
|
47
|
+
transaction.details.to = operation.account.address;
|
48
|
+
if (value <= 0)
|
49
|
+
transaction.details.from = operation.account.address;
|
50
|
+
if (transaction.details.status === RosettaTransactionStatus.COMPLETED &&
|
51
|
+
operation.status !== RosettaTransactionStatus.COMPLETED)
|
52
|
+
transaction.details.status = operation.status;
|
53
|
+
transaction.type =
|
54
|
+
transaction.details.to === accountId
|
55
|
+
? RosettaTransactionType.RECEIVE
|
56
|
+
: RosettaTransactionType.SEND;
|
57
|
+
transaction.details.amount = amount;
|
58
|
+
transaction.details.currency = operation.amount.currency;
|
59
|
+
});
|
60
|
+
return Object.assign(Object.assign({}, transaction), { caller: transaction.details.from, hash, timestamp: ts !== undefined ? (BigInt(ts) / BigInt(MILI_PER_SECOND)).toString() : '', block_height: bh !== undefined ? BigInt(bh).toString() : '', memo: mm !== undefined ? BigInt(mm).toString() : '', lockTime: lt !== undefined ? BigInt(lt).toString() : '' });
|
61
|
+
};
|
62
|
+
export const getICPTransactions = async (accountId) => {
|
63
|
+
const response = await fetch(`${ROSETTA_URL}/search/transactions`, {
|
64
|
+
method: 'POST',
|
65
|
+
body: JSON.stringify({
|
66
|
+
network_identifier: NET_ID,
|
67
|
+
account_identifier: {
|
68
|
+
address: accountId,
|
69
|
+
},
|
70
|
+
}),
|
71
|
+
headers: {
|
72
|
+
'Content-Type': 'application/json',
|
73
|
+
Accept: '*/*',
|
74
|
+
},
|
75
|
+
});
|
76
|
+
if (!response.ok)
|
77
|
+
throw Error(`GET_TRANSACTIONS_FAILS: ${response.statusText}`);
|
78
|
+
const { transactions, total_count } = await response.json();
|
79
|
+
const transactionsInfo = transactions.map(({ transaction }) => getTransactionInfo(accountId, transaction));
|
80
|
+
return {
|
81
|
+
total: total_count,
|
82
|
+
transactions: transactionsInfo,
|
83
|
+
};
|
84
|
+
};
|
85
|
+
export const getTransactions = async (localDelegationIdentity, fromAccount) => {
|
86
|
+
const result = await nns.getTransactions({ delegationIdentity: localDelegationIdentity }, { page_size: 10, offset: 0, account_identifier: fromAccount });
|
87
|
+
return result;
|
88
|
+
};
|
89
|
+
export const getICPTransactionsByBlock = async (fromAccount, blockHeight) => {
|
90
|
+
try {
|
91
|
+
const response = await fetch(`${ROSETTA_URL}/block`, {
|
92
|
+
method: 'POST',
|
93
|
+
body: JSON.stringify({
|
94
|
+
network_identifier: NET_ID,
|
95
|
+
block_identifier: { index: parseInt(blockHeight.toString()) },
|
96
|
+
}),
|
97
|
+
headers: {
|
98
|
+
'Content-Type': 'application/json',
|
99
|
+
Accept: '*/*',
|
100
|
+
},
|
101
|
+
});
|
102
|
+
if (!response.ok)
|
103
|
+
throw Error(`GET_TRANSACTIONS_FAILS: ${response.statusText}`);
|
104
|
+
const { block } = await response.json();
|
105
|
+
const { transactions } = block;
|
106
|
+
if (transactions === undefined || block === undefined) {
|
107
|
+
return {
|
108
|
+
total: transactions.length,
|
109
|
+
transactions: [],
|
110
|
+
};
|
111
|
+
}
|
112
|
+
const transactionsInfo = transactions.map((transaction) => getTransactionInfo(fromAccount, transaction));
|
113
|
+
return {
|
114
|
+
total: transactions.length,
|
115
|
+
transactions: transactionsInfo,
|
116
|
+
};
|
117
|
+
}
|
118
|
+
catch (error) {
|
119
|
+
throw error;
|
120
|
+
}
|
121
|
+
};
|
122
|
+
export const getExactTransaction = (fromAccount, singleResponse, txns) => {
|
123
|
+
const { sendArgs } = singleResponse;
|
124
|
+
const { amount, created_at_time, memo, to } = sendArgs;
|
125
|
+
const { blockHeight } = singleResponse;
|
126
|
+
const { transactions } = txns;
|
127
|
+
console.log({ singleResponse, txns });
|
128
|
+
const found = transactions.find((val) => {
|
129
|
+
return created_at_time[0] !== undefined
|
130
|
+
? val.timestamp.timestamp_nanos >
|
131
|
+
created_at_time[0].timestamp_nanos
|
132
|
+
: true &&
|
133
|
+
val.block_height === blockHeight &&
|
134
|
+
val.memo === memo &&
|
135
|
+
JSON.stringify(val.transaction_type[0]) ===
|
136
|
+
JSON.stringify({ Send: null }) &&
|
137
|
+
val.transfer.Send.amount.e8s === amount.e8s &&
|
138
|
+
val.transfer.Send.to === to;
|
139
|
+
});
|
140
|
+
if (found) {
|
141
|
+
const res = {
|
142
|
+
hash: '',
|
143
|
+
timestamp: (BigInt(found.timestamp.timestamp_nanos) / BigInt(1000000)).toString(),
|
144
|
+
type: RosettaTransactionType.SEND,
|
145
|
+
details: {
|
146
|
+
to,
|
147
|
+
from: fromAccount,
|
148
|
+
status: RosettaTransactionStatus.COMPLETED,
|
149
|
+
amount: amount.e8s.toString(),
|
150
|
+
currency: {
|
151
|
+
symbol: TokenSymbol.ICP,
|
152
|
+
decimals: 10,
|
153
|
+
},
|
154
|
+
fee: {
|
155
|
+
amount: found.transfer.Send.fee.e8s.toString(),
|
156
|
+
currency: {
|
157
|
+
symbol: TokenSymbol.ICP,
|
158
|
+
decimals: 10,
|
159
|
+
},
|
160
|
+
},
|
161
|
+
},
|
162
|
+
caller: fromAccount,
|
163
|
+
block_height: blockHeight.toString(),
|
164
|
+
memo: memo.toString(),
|
165
|
+
lockTime: '',
|
166
|
+
};
|
167
|
+
return res;
|
168
|
+
}
|
169
|
+
return undefined;
|
170
|
+
};
|
171
|
+
// use Rosseta API to fetch transaction list, and return
|
172
|
+
// This API works on mainnet, however not in local testnet
|
173
|
+
export const getTransactionFromRosseta = (fromAccount, singleResponse, txns) => {
|
174
|
+
const { sendArgs } = singleResponse;
|
175
|
+
const { amount, created_at_time, memo, to } = sendArgs;
|
176
|
+
const { blockHeight } = singleResponse;
|
177
|
+
const { transactions } = txns;
|
178
|
+
console.log({ singleResponse, transactions });
|
179
|
+
const found = transactions.find((val) => {
|
180
|
+
var _a;
|
181
|
+
return created_at_time[0] !== undefined
|
182
|
+
? val.timestamp.length <
|
183
|
+
created_at_time[0].timestamp_nanos.toString().length
|
184
|
+
? BigInt(val.timestamp) * BigInt(1000000) >
|
185
|
+
created_at_time[0].timestamp_nanos
|
186
|
+
: BigInt(val.timestamp) >
|
187
|
+
created_at_time[0].timestamp_nanos
|
188
|
+
: true &&
|
189
|
+
BigInt(val.block_height) === blockHeight &&
|
190
|
+
BigInt(val.memo) === memo &&
|
191
|
+
val.details.to === to &&
|
192
|
+
val.details.amount === ((_a = formatAssetBySymbol(amount.e8s, val.details.currency.symbol)) === null || _a === void 0 ? void 0 : _a.amount.toString()) &&
|
193
|
+
val.caller === fromAccount;
|
194
|
+
});
|
195
|
+
return found;
|
196
|
+
};
|
197
|
+
const aaa = {
|
198
|
+
transaction_identifier: {
|
199
|
+
hash: 'df8576aa9be05b561dae1b7f706d109789cf25b895d29b3a1d7da2df92247d97',
|
200
|
+
},
|
201
|
+
operations: [
|
202
|
+
{
|
203
|
+
type: 'TRANSACTION',
|
204
|
+
operation_identifier: { index: 0 },
|
205
|
+
status: 'COMPLETED',
|
206
|
+
account: {
|
207
|
+
address: 'da5fd722e22c4970b4347d41873ba86c51f87ee32f271d6762fc49627eeecb71',
|
208
|
+
},
|
209
|
+
amount: { value: -100000, currency: { symbol: 'ICP', decimals: 8 } },
|
210
|
+
},
|
211
|
+
{
|
212
|
+
type: 'TRANSACTION',
|
213
|
+
operation_identifier: { index: 1 },
|
214
|
+
status: 'COMPLETED',
|
215
|
+
account: {
|
216
|
+
address: '848753b6fac50019dffc34ead1af095863405b3cce463352c1ecf3109ada4b23',
|
217
|
+
},
|
218
|
+
amount: { value: 100000, currency: { symbol: 'ICP', decimals: 8 } },
|
219
|
+
},
|
220
|
+
{
|
221
|
+
type: 'FEE',
|
222
|
+
operation_identifier: { index: 2 },
|
223
|
+
status: 'COMPLETED',
|
224
|
+
account: {
|
225
|
+
address: 'da5fd722e22c4970b4347d41873ba86c51f87ee32f271d6762fc49627eeecb71',
|
226
|
+
},
|
227
|
+
amount: { value: -10000, currency: { symbol: 'ICP', decimals: 8 } },
|
228
|
+
},
|
229
|
+
],
|
230
|
+
metadata: {
|
231
|
+
block_height: 1680083,
|
232
|
+
memo: 22380256,
|
233
|
+
timestamp: 1639810289340003912,
|
234
|
+
},
|
235
|
+
};
|
236
|
+
//# 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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"}
|
package/lib/esm/types/index.d.ts
CHANGED
@@ -79,13 +79,15 @@ export interface AuthClientLoginOptions extends AuthClientCreateOptions {
|
|
79
79
|
export interface ConnectOptions extends AuthClientLoginOptions {
|
80
80
|
ledgerCanisterId?: string;
|
81
81
|
walletProviderUrl?: string;
|
82
|
+
signerProviderUrl?: string;
|
83
|
+
useFrame: boolean;
|
82
84
|
}
|
83
85
|
export interface TransactionOptions {
|
84
86
|
/**
|
85
87
|
* Identity provider. By default, use the identity service.
|
86
88
|
*/
|
87
89
|
walletProvider?: string | URL;
|
88
|
-
from
|
90
|
+
from?: AccountIdentifier;
|
89
91
|
to: AccountIdentifier;
|
90
92
|
amount: bigint;
|
91
93
|
sendOpts: SendOpts;
|
@@ -100,6 +102,24 @@ export interface TransactionOptions {
|
|
100
102
|
*/
|
101
103
|
onError?: (error?: string) => void;
|
102
104
|
}
|
105
|
+
export interface SignerOptions {
|
106
|
+
/**
|
107
|
+
* Identity provider. By default, use the identity service.
|
108
|
+
*/
|
109
|
+
signerProvider?: string | URL;
|
110
|
+
from?: AccountIdentifier;
|
111
|
+
message: Uint8Array | string;
|
112
|
+
maxTimeout?: number;
|
113
|
+
successTimeout?: number;
|
114
|
+
/**
|
115
|
+
* Callback once login has completed
|
116
|
+
*/
|
117
|
+
onSuccess?: (value?: any) => void | Promise<void>;
|
118
|
+
/**
|
119
|
+
* Callback in case authentication fails
|
120
|
+
*/
|
121
|
+
onError?: (error?: string) => void;
|
122
|
+
}
|
103
123
|
/**
|
104
124
|
* Interface for persisting user authentication data
|
105
125
|
*/
|
@@ -140,6 +160,35 @@ export declare enum PermissionsType {
|
|
140
160
|
identity = "permissions-identity",
|
141
161
|
wallet = "permissions-wallet"
|
142
162
|
}
|
163
|
+
export declare enum SignerMessageKind {
|
164
|
+
client = "signer-client",
|
165
|
+
ready = "signer-ready",
|
166
|
+
success = "signer-client-success",
|
167
|
+
fail = "signer-client-failure"
|
168
|
+
}
|
169
|
+
export interface SignerReadyMessage {
|
170
|
+
kind: SignerMessageKind.ready;
|
171
|
+
}
|
172
|
+
export interface SignerResponseFailure {
|
173
|
+
kind: SignerMessageKind.fail;
|
174
|
+
text: string;
|
175
|
+
}
|
176
|
+
export interface SignerResponseFailure {
|
177
|
+
kind: SignerMessageKind.fail;
|
178
|
+
text: string;
|
179
|
+
}
|
180
|
+
export interface SignerResponseSuccess {
|
181
|
+
kind: SignerMessageKind.success;
|
182
|
+
payload?: {
|
183
|
+
publicKey: string;
|
184
|
+
signature: string;
|
185
|
+
originPayload: {
|
186
|
+
message: Uint8Array;
|
187
|
+
};
|
188
|
+
};
|
189
|
+
}
|
190
|
+
export declare type SignerResponseMessage = SignerReadyMessage | SignerResponse;
|
191
|
+
export declare type SignerResponse = SignerResponseSuccess | SignerResponseFailure;
|
143
192
|
export declare enum TransactionMessageKind {
|
144
193
|
client = "transaction-client",
|
145
194
|
ready = "transaction-ready",
|
package/lib/esm/types/index.js
CHANGED
@@ -3,6 +3,13 @@ export var PermissionsType;
|
|
3
3
|
PermissionsType["identity"] = "permissions-identity";
|
4
4
|
PermissionsType["wallet"] = "permissions-wallet";
|
5
5
|
})(PermissionsType || (PermissionsType = {}));
|
6
|
+
export var SignerMessageKind;
|
7
|
+
(function (SignerMessageKind) {
|
8
|
+
SignerMessageKind["client"] = "signer-client";
|
9
|
+
SignerMessageKind["ready"] = "signer-ready";
|
10
|
+
SignerMessageKind["success"] = "signer-client-success";
|
11
|
+
SignerMessageKind["fail"] = "signer-client-failure";
|
12
|
+
})(SignerMessageKind || (SignerMessageKind = {}));
|
6
13
|
// Transaction Types
|
7
14
|
export var TransactionMessageKind;
|
8
15
|
(function (TransactionMessageKind) {
|
@@ -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":"AAwLA,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;AAC/B,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,6CAAwB,CAAA;IACxB,2CAAsB,CAAA;IACtB,sDAAiC,CAAA;IACjC,mDAA8B,CAAA;AAChC,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AA+BD,oBAAoB;AACpB,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,uDAA6B,CAAA;IAC7B,qDAA2B,CAAA;IAC3B,gEAAsC,CAAA;IACtC,6DAAmC,CAAA;AACrC,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC"}
|
@@ -1,6 +1,25 @@
|
|
1
|
+
export declare const LEDGER_CANISTER_ID = "ryjl3-tyaaa-aaaaa-aaaba-cai";
|
2
|
+
export declare const NNS_CANISTER_ID = "qoctq-giaaa-aaaaa-aaaea-cai";
|
1
3
|
export declare const SUB_ACCOUNT_BYTE_LENGTH = 32;
|
2
4
|
export declare const CREATE_CANISTER_MEMO: bigint;
|
3
5
|
export declare const TOP_UP_CANISTER_MEMO: bigint;
|
4
6
|
export declare const TRANSACTION_FEE: bigint;
|
5
|
-
export declare const
|
6
|
-
|
7
|
+
export declare const NET_ID: {
|
8
|
+
blockchain: string;
|
9
|
+
network: string;
|
10
|
+
};
|
11
|
+
export declare const ROSETTA_URL = "https://rosetta-api.internetcomputer.org";
|
12
|
+
export declare const IC_EXPLORER = "https://dashboard.internetcomputer.org";
|
13
|
+
export declare const IC_ROCKS = "https://ic.rocks";
|
14
|
+
export declare const MAX_TRANSACTION_DECISION_MILSECONDS = 120000;
|
15
|
+
export declare const PRINCIPAL_REGEX: RegExp;
|
16
|
+
export declare const ALPHANUM_REGEX: RegExp;
|
17
|
+
export declare const CANISTER_REGEX: RegExp;
|
18
|
+
export declare const CANISTER_MAX_LENGTH = 27;
|
19
|
+
export declare const ADDRESS_TYPES: {
|
20
|
+
PRINCIPAL: string;
|
21
|
+
ACCOUNT: string;
|
22
|
+
CANISTER: string;
|
23
|
+
ERC20: string;
|
24
|
+
UNKNOWN: string;
|
25
|
+
};
|
@@ -1,10 +1,26 @@
|
|
1
|
+
export const LEDGER_CANISTER_ID = 'ryjl3-tyaaa-aaaaa-aaaba-cai';
|
2
|
+
export const NNS_CANISTER_ID = 'qoctq-giaaa-aaaaa-aaaea-cai';
|
1
3
|
export const SUB_ACCOUNT_BYTE_LENGTH = 32;
|
2
4
|
export const CREATE_CANISTER_MEMO = BigInt(0x41455243); // CREA,
|
3
5
|
export const TOP_UP_CANISTER_MEMO = BigInt(0x50555054); // TPUP
|
4
6
|
export const TRANSACTION_FEE = BigInt(10000);
|
5
|
-
export const
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
export const NET_ID = {
|
8
|
+
blockchain: 'Internet Computer',
|
9
|
+
network: '00000000000000020101',
|
10
|
+
};
|
11
|
+
export const ROSETTA_URL = 'https://rosetta-api.internetcomputer.org';
|
12
|
+
export const IC_EXPLORER = 'https://dashboard.internetcomputer.org';
|
13
|
+
export const IC_ROCKS = 'https://ic.rocks';
|
14
|
+
export const MAX_TRANSACTION_DECISION_MILSECONDS = 120000;
|
15
|
+
export const PRINCIPAL_REGEX = /(\w{5}-){10}\w{3}/;
|
16
|
+
export const ALPHANUM_REGEX = /^[a-zA-Z0-9]+$/;
|
17
|
+
export const CANISTER_REGEX = /(\w{5}-){4}\w{3}/;
|
18
|
+
export const CANISTER_MAX_LENGTH = 27;
|
19
|
+
export const ADDRESS_TYPES = {
|
20
|
+
PRINCIPAL: 'principal',
|
21
|
+
ACCOUNT: 'accountId',
|
22
|
+
CANISTER: 'canister',
|
23
|
+
ERC20: 'erc20',
|
24
|
+
UNKNOWN: 'unknown',
|
25
|
+
};
|
10
26
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;AAE/D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAI7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;AAE/D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,UAAU,EAAE,mBAAmB;IAC/B,OAAO,EAAE,sBAAsB;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,0CAA0C,CAAC;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,wCAAwC,CAAC;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,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;
|
@@ -1,8 +1,9 @@
|
|
1
|
+
/* eslint-disable no-useless-catch */
|
1
2
|
import { Principal } from '@dfinity/principal';
|
2
3
|
import { sha224 } from 'js-sha256';
|
3
4
|
import { Buffer } from 'buffer';
|
4
5
|
import crc from 'crc';
|
5
|
-
import { SUB_ACCOUNT_BYTE_LENGTH } from './constants';
|
6
|
+
import { ALPHANUM_REGEX, CANISTER_MAX_LENGTH, SUB_ACCOUNT_BYTE_LENGTH } from './constants';
|
6
7
|
export const uint8ArrayToBigInt = (array) => {
|
7
8
|
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
|
8
9
|
if (typeof view.getBigUint64 === 'function') {
|
@@ -108,17 +109,98 @@ export var TokenSymbol;
|
|
108
109
|
(function (TokenSymbol) {
|
109
110
|
TokenSymbol["ICP"] = "ICP";
|
110
111
|
})(TokenSymbol || (TokenSymbol = {}));
|
112
|
+
export const getDecimalFromSymbol = (sym) => {
|
113
|
+
switch (sym) {
|
114
|
+
case TokenSymbol.ICP:
|
115
|
+
return 8;
|
116
|
+
default:
|
117
|
+
return 8;
|
118
|
+
}
|
119
|
+
};
|
111
120
|
export const formatAssetBySymbol = (_amount, symbol) => {
|
112
|
-
const
|
121
|
+
const balanceString = balanceToString(_amount, getDecimalFromSymbol(symbol));
|
122
|
+
const amount = Number(balanceString.total);
|
113
123
|
const tokenMap = [
|
114
124
|
{
|
115
125
|
ICP: {
|
116
|
-
amount: amount
|
126
|
+
amount: amount,
|
127
|
+
balanceString,
|
117
128
|
symbol: 'ICP',
|
118
129
|
},
|
119
130
|
},
|
120
131
|
];
|
121
|
-
const found = tokenMap.find(v => v[symbol] !== undefined);
|
132
|
+
const found = tokenMap.find((v) => v[symbol] !== undefined);
|
122
133
|
return found === null || found === void 0 ? void 0 : found[symbol];
|
123
134
|
};
|
135
|
+
export const parseBalance = (balance) => {
|
136
|
+
return (parseInt(balance.value, 10) / 10 ** balance.decimals).toString();
|
137
|
+
};
|
138
|
+
export const balanceFromString = (balance, decimal = 8) => {
|
139
|
+
const list = balance.split('.');
|
140
|
+
const aboveZero = list[0];
|
141
|
+
const aboveZeroBigInt = BigInt(aboveZero) * BigInt(1 * 10 ** decimal);
|
142
|
+
let belowZeroBigInt = BigInt(0);
|
143
|
+
const belowZero = list[1];
|
144
|
+
if (belowZero !== undefined) {
|
145
|
+
belowZeroBigInt = BigInt(belowZero.substring(0, decimal).padEnd(decimal, '0'));
|
146
|
+
}
|
147
|
+
return aboveZeroBigInt + belowZeroBigInt;
|
148
|
+
};
|
149
|
+
export const balanceToString = (balance, decimal = 8) => {
|
150
|
+
const balanceString = balance.toString(10);
|
151
|
+
const balanceStringLength = balanceString.length;
|
152
|
+
let aboveZero = '0';
|
153
|
+
let belowZero = '0'.padEnd(decimal, '0');
|
154
|
+
if (balanceStringLength > decimal) {
|
155
|
+
belowZero = balanceString.substring(balanceStringLength - decimal, balanceStringLength);
|
156
|
+
aboveZero = balanceString.substring(0, balanceStringLength - decimal);
|
157
|
+
}
|
158
|
+
else {
|
159
|
+
belowZero = balanceString.padStart(decimal, '0');
|
160
|
+
}
|
161
|
+
const formatAboveZero = String(aboveZero).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
162
|
+
return { total: aboveZero + '.' + belowZero, aboveZero, belowZero, formatAboveZero };
|
163
|
+
};
|
164
|
+
export const validateAccountId = (text) => text.length === 64 && ALPHANUM_REGEX.test(text);
|
165
|
+
export const validatePrincipalId = (text) => {
|
166
|
+
try {
|
167
|
+
return text === Principal.fromText(text).toString();
|
168
|
+
}
|
169
|
+
catch (e) {
|
170
|
+
return false;
|
171
|
+
}
|
172
|
+
};
|
173
|
+
export const validateCanisterId = (text) => {
|
174
|
+
try {
|
175
|
+
return text.length <= CANISTER_MAX_LENGTH && validatePrincipalId(text);
|
176
|
+
}
|
177
|
+
catch (e) {
|
178
|
+
return false;
|
179
|
+
}
|
180
|
+
};
|
181
|
+
export var AddressType;
|
182
|
+
(function (AddressType) {
|
183
|
+
AddressType["PRINCIPAL"] = "principal";
|
184
|
+
AddressType["ACCOUNT"] = "accountId";
|
185
|
+
AddressType["CANISTER"] = "canister";
|
186
|
+
AddressType["ERC20"] = "erc20";
|
187
|
+
AddressType["INVALID"] = "invalid";
|
188
|
+
})(AddressType || (AddressType = {}));
|
189
|
+
export const getAddressType = (text) => {
|
190
|
+
try {
|
191
|
+
if (validateAccountId(text)) {
|
192
|
+
return AddressType.ACCOUNT;
|
193
|
+
}
|
194
|
+
else if (validatePrincipalId(text)) {
|
195
|
+
return AddressType.PRINCIPAL;
|
196
|
+
}
|
197
|
+
else if (validateCanisterId(text)) {
|
198
|
+
return AddressType.CANISTER;
|
199
|
+
}
|
200
|
+
return AddressType.INVALID;
|
201
|
+
}
|
202
|
+
catch (error) {
|
203
|
+
throw error;
|
204
|
+
}
|
205
|
+
};
|
124
206
|
//# sourceMappingURL=converter.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/utils/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/utils/converter.ts"],"names":[],"mappings":"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"}
|