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/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
- let token_name = await inputSomething("token ticker");
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
- let token_name = await inputSomething("token ticker");
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 getTokenBalanceInEvm(account_address, token_address, chain_rpc_url);
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
- if (!amount) {
555
- return;
556
- }
557
-
558
- let transfer_amount = new BigNumber(amount).multipliedBy(Math.pow(10, token_decimals)).toFixed(0);
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-9A_F]{6}$/g;
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 = /^(?![-_]).*?[a-zA-Z0-9_-]{4,20}(?<![-_])$/g;
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();