@@ -10,7 +10,8 @@ import { updateNervosDaoData, clearNervosDaoData } from 'states/stateProvider/ac
1010import calculateGlobalAPY from 'utils/calculateGlobalAPY'
1111import calculateFee from 'utils/calculateFee'
1212import { shannonToCKBFormatter , CKBToShannonFormatter } from 'utils/formatters'
13- import { MIN_DEPOSIT_AMOUNT , MEDIUM_FEE_RATE , CapacityUnit } from 'utils/const'
13+ import { MIN_DEPOSIT_AMOUNT , MEDIUM_FEE_RATE , SHANNON_CKB_RATIO , CapacityUnit } from 'utils/const'
14+ import { verifyAmount } from 'utils/validators'
1415
1516import { generateDepositTx , generateWithdrawTx , generateClaimTx } from 'services/remote'
1617import { ckbCore } from 'services/chain'
@@ -59,27 +60,34 @@ const NervosDAO = ({
5960 }
6061 clearTimeout ( timer )
6162 timer = setTimeout ( ( ) => {
62- if ( + value < MIN_DEPOSIT_AMOUNT ) {
63+ setErrorMessage ( '' )
64+ clearGeneratedTx ( )
65+
66+ const verifyRes = verifyAmount ( value )
67+ if ( verifyRes !== true ) {
68+ setErrorMessage ( t ( `messages.codes.${ verifyRes . code } ` , { fieldName : 'deposit' } ) )
69+ return
70+ }
71+
72+ if ( BigInt ( CKBToShannonFormatter ( value ) ) < BigInt ( MIN_DEPOSIT_AMOUNT * SHANNON_CKB_RATIO ) ) {
6373 setErrorMessage ( t ( 'nervos-dao.minimal-fee-required' , { minimal : MIN_DEPOSIT_AMOUNT } ) )
64- clearGeneratedTx ( )
65- } else {
66- setErrorMessage ( '' )
67- generateDepositTx ( {
68- feeRate : `${ MEDIUM_FEE_RATE } ` ,
69- capacity : CKBToShannonFormatter ( value , CapacityUnit . CKB ) ,
70- walletID : wallet . id ,
71- } ) . then ( res => {
72- if ( res . status === 1 ) {
73- dispatch ( {
74- type : AppActions . UpdateGeneratedTx ,
75- payload : res . result ,
76- } )
77- } else {
78- clearGeneratedTx ( )
79- setErrorMessage ( `${ typeof res . message === 'string' ? res . message : res . message . content } ` )
80- }
81- } )
74+ return
8275 }
76+
77+ generateDepositTx ( {
78+ feeRate : `${ MEDIUM_FEE_RATE } ` ,
79+ capacity : CKBToShannonFormatter ( value , CapacityUnit . CKB ) ,
80+ walletID : wallet . id ,
81+ } ) . then ( res => {
82+ if ( res . status === 1 ) {
83+ dispatch ( {
84+ type : AppActions . UpdateGeneratedTx ,
85+ payload : res . result ,
86+ } )
87+ } else {
88+ setErrorMessage ( `${ typeof res . message === 'string' ? res . message : res . message . content } ` )
89+ }
90+ } )
8391 } , 500 )
8492 setDepositValue ( value )
8593 } ,
0 commit comments