wative 1.0.32 → 1.0.33
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/index.esm.js +1 -1
- package/lib/index.umd.js +1 -1
- package/package.json +1 -1
- package/src/account.ts +5 -2
- package/src/tools.ts +56 -31
- package/src/utils.ts +2 -2
package/src/tools.ts
CHANGED
|
@@ -334,9 +334,10 @@ const sendEvmTokenTransaction = async (keystore_path: string, chain_rpc_url: str
|
|
|
334
334
|
|
|
335
335
|
let token_address: any;
|
|
336
336
|
let token_decimals: any;
|
|
337
|
+
let token_name: any;
|
|
337
338
|
switch (selected_token_address) {
|
|
338
339
|
case '> Input token ticker':
|
|
339
|
-
|
|
340
|
+
token_name = await inputSomething("token ticker");
|
|
340
341
|
|
|
341
342
|
let token_address_list = await getAssetListByTokenName(keystore_path, chain_id, token_name);
|
|
342
343
|
if (token_address_list.length === 0) {
|
|
@@ -381,6 +382,7 @@ const sendEvmTokenTransaction = async (keystore_path: string, chain_rpc_url: str
|
|
|
381
382
|
return;
|
|
382
383
|
}
|
|
383
384
|
token_decimals = Number(token_info.output.decimals);
|
|
385
|
+
token_name = token_info.output.name;
|
|
384
386
|
break;
|
|
385
387
|
}
|
|
386
388
|
|
|
@@ -390,19 +392,6 @@ const sendEvmTokenTransaction = async (keystore_path: string, chain_rpc_url: str
|
|
|
390
392
|
console.log(chalk.red(token_balance_result.output));
|
|
391
393
|
return;
|
|
392
394
|
}
|
|
393
|
-
let amount: any;
|
|
394
|
-
for (let i = 0; i < 5; i++) {
|
|
395
|
-
let input_amount = await inputSomething("Amount", numberValidator);
|
|
396
|
-
if ((new BigNumber(input_amount).multipliedBy(Math.pow(10, Number(token_decimals)))).isLessThanOrEqualTo(new BigNumber(token_balance_result.output))) {
|
|
397
|
-
amount = input_amount;
|
|
398
|
-
break;
|
|
399
|
-
}
|
|
400
|
-
console.log(chalk.red("Not enough balance"));
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
if (!amount) {
|
|
404
|
-
return;
|
|
405
|
-
}
|
|
406
395
|
|
|
407
396
|
const gasUtil = new GasUtil(chain_rpc_url);
|
|
408
397
|
const estimateGasPrice = await gasUtil.getGasPrice();
|
|
@@ -411,8 +400,12 @@ const sendEvmTokenTransaction = async (keystore_path: string, chain_rpc_url: str
|
|
|
411
400
|
const inputGasPrice = await inputSomething(`Gas price (${_estimateGasPrice}), agree or enter`, gasValidator);
|
|
412
401
|
let gasPrice = inputGasPrice ? inputGasPrice : _estimateGasPrice;
|
|
413
402
|
gasPrice = (new BigNumber(gasPrice)).multipliedBy(1e9).toFixed(0);
|
|
403
|
+
let transfer_amount = await getTransferTokenAmount(
|
|
404
|
+
token_balance_result.output,
|
|
405
|
+
token_name,
|
|
406
|
+
token_decimals
|
|
407
|
+
);
|
|
414
408
|
|
|
415
|
-
let transfer_amount = new BigNumber(amount).multipliedBy(Math.pow(10, token_decimals)).toFixed(0);
|
|
416
409
|
const data = await getTransferTokenData(receipt, transfer_amount, chain_rpc_url);
|
|
417
410
|
|
|
418
411
|
const estimateNonce = await gasUtil.getTransactionCount(account_address);
|
|
@@ -485,9 +478,10 @@ const sendSolanaTokenTransaction = async (keystore_path: string, chain_rpc_url:
|
|
|
485
478
|
|
|
486
479
|
let token_address: any;
|
|
487
480
|
let token_decimals: any;
|
|
481
|
+
let token_name: any;
|
|
488
482
|
switch (selected_token_address) {
|
|
489
483
|
case '> Input token ticker':
|
|
490
|
-
|
|
484
|
+
token_name = await inputSomething("token ticker");
|
|
491
485
|
|
|
492
486
|
let token_address_list = await getAssetListByTokenName(keystore_path, chain_id, token_name);
|
|
493
487
|
if (token_address_list.length === 0) {
|
|
@@ -532,30 +526,36 @@ const sendSolanaTokenTransaction = async (keystore_path: string, chain_rpc_url:
|
|
|
532
526
|
return;
|
|
533
527
|
}
|
|
534
528
|
token_decimals = Number(token_info.output.decimals);
|
|
529
|
+
token_name = token_info.output.name;
|
|
535
530
|
break;
|
|
536
531
|
}
|
|
537
532
|
|
|
538
533
|
const receipt = await inputSomething("Receipt", chainAddressValidator);
|
|
539
|
-
const token_balance_result = await
|
|
534
|
+
const token_balance_result = await getTokenBalanceInSolana(account_address, token_address, chain_rpc_url);
|
|
540
535
|
if (!token_balance_result.status) {
|
|
541
536
|
console.log(chalk.red(token_balance_result.output));
|
|
542
537
|
return;
|
|
543
538
|
}
|
|
544
|
-
let amount: any;
|
|
545
|
-
for (let i = 0; i < 5; i++) {
|
|
546
|
-
let input_amount = await inputSomething("Amount", numberValidator);
|
|
547
|
-
if ((new BigNumber(input_amount).multipliedBy(Math.pow(10, Number(token_decimals)))).isLessThanOrEqualTo(new BigNumber(token_balance_result.output))) {
|
|
548
|
-
amount = input_amount;
|
|
549
|
-
break;
|
|
550
|
-
}
|
|
551
|
-
console.log(chalk.red("Not enough balance"));
|
|
552
|
-
}
|
|
553
539
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
540
|
+
// let amount: any;
|
|
541
|
+
// for (let i = 0; i < 5; i++) {
|
|
542
|
+
// let input_amount = await inputSomething("Amount", numberValidator);
|
|
543
|
+
// if ((new BigNumber(input_amount).multipliedBy(Math.pow(10, Number(token_decimals)))).isLessThanOrEqualTo(new BigNumber(token_balance_result.output))) {
|
|
544
|
+
// amount = input_amount;
|
|
545
|
+
// break;
|
|
546
|
+
// }
|
|
547
|
+
// console.log(chalk.red("Not enough balance"));
|
|
548
|
+
// }
|
|
549
|
+
|
|
550
|
+
// if (!amount) {
|
|
551
|
+
// return;
|
|
552
|
+
// }
|
|
553
|
+
|
|
554
|
+
let transfer_amount = await getTransferTokenAmount(
|
|
555
|
+
token_balance_result.output,
|
|
556
|
+
token_name,
|
|
557
|
+
token_decimals
|
|
558
|
+
);
|
|
559
559
|
let from_token_account = getAssociatedTokenAddressSync(
|
|
560
560
|
new PublicKey(token_address),
|
|
561
561
|
new PublicKey(account_address),
|
|
@@ -709,6 +709,31 @@ const sendSolanaTokenTransaction = async (keystore_path: string, chain_rpc_url:
|
|
|
709
709
|
}
|
|
710
710
|
|
|
711
711
|
|
|
712
|
+
const getTransferTokenAmount = async (max_value: string, token_symbols: string, decimals: number): Promise<string> => {
|
|
713
|
+
let total_balance = (new BigNumber(max_value)).dividedBy(10 ** decimals).toFixed(4, BigNumber.ROUND_FLOOR);
|
|
714
|
+
|
|
715
|
+
let option_select_value_list: any = [
|
|
716
|
+
'> Input value',
|
|
717
|
+
`> Total Balance (${total_balance} ${token_symbols})`
|
|
718
|
+
]
|
|
719
|
+
let selected_value = await selectSomething(option_select_value_list);
|
|
720
|
+
let value_id = option_select_value_list.indexOf(selected_value);
|
|
721
|
+
let value = "0";
|
|
722
|
+
if (value_id === 0) {
|
|
723
|
+
let input_value = await inputSomething("value", numberValidator);
|
|
724
|
+
value = new BigNumber(input_value).multipliedBy(10 ** decimals).toFixed(0, BigNumber.ROUND_FLOOR);
|
|
725
|
+
} else if (value_id === 1) {
|
|
726
|
+
value = max_value;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
if ((new BigNumber(value)).isLessThanOrEqualTo(new BigNumber(max_value))) {
|
|
730
|
+
return value;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
console.log(chalk.red("Not enough balance"));
|
|
734
|
+
return getTransferTokenAmount(max_value, token_symbols, decimals);
|
|
735
|
+
}
|
|
736
|
+
|
|
712
737
|
const excuteTools = async (keystore_path: string, account_label: string, account_address: string, wative_core: typeof WativeCore) => {
|
|
713
738
|
let default_network = getDefaultNetworkByAddress(keystore_path, account_label, account_address);
|
|
714
739
|
let network_type = getNetworkTypeByName(keystore_path, default_network);
|
package/src/utils.ts
CHANGED
|
@@ -317,7 +317,7 @@ export const getSymbol = async (text: string) => {
|
|
|
317
317
|
}
|
|
318
318
|
|
|
319
319
|
export const getColor = async (text: string) => {
|
|
320
|
-
let reg = /^#[0-
|
|
320
|
+
let reg = /^#[0-9A-Fa-f]{6}$/g;
|
|
321
321
|
for (let i = 0; i < 5; i++) {
|
|
322
322
|
let color = await inputSomething(text);
|
|
323
323
|
if (color === "") {
|
|
@@ -332,7 +332,7 @@ export const getColor = async (text: string) => {
|
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
export const getAccountLabel = async (text: string, account_label_list: string[]) => {
|
|
335
|
-
let reg = /^(?![-_])
|
|
335
|
+
let reg = /^(?![-_])[a-zA-Z0-9_-]{4,20}(?<![-_])$/g;
|
|
336
336
|
for (let i = 0; i < 5; i++) {
|
|
337
337
|
let account_label = await inputSomething(text);
|
|
338
338
|
account_label = account_label.trim();
|