diff --git a/lib/kraken_ruby_client/client.rb b/lib/kraken_ruby_client/client.rb index a846803..ce3fdde 100755 --- a/lib/kraken_ruby_client/client.rb +++ b/lib/kraken_ruby_client/client.rb @@ -518,7 +518,15 @@ def parse_response(http) # current Unix Time. # def generate_nonce - (Time.now.to_f * 1_000_000).to_i + ((high_bits | low_bits).to_s) + end + + def low_bits + @low_bits ||= (SecureRandom.random_number(2 ** 16) & 0xffff) + end + + def high_bits + @high_bits ||= ((Time.now.to_f * 10000).to_i << 16) end def auth_url(method, nonce, params) diff --git a/test/public_api_test.rb b/test/public_api_test.rb index ab3bf5b..07bee40 100644 --- a/test/public_api_test.rb +++ b/test/public_api_test.rb @@ -59,13 +59,14 @@ def test_get_server_time def test_get_assets assets = %w( - 1INCH AAVE ADA ADA.S ALGO ALGO.S ANKR ANT ATOM ATOM.S AVAX AXS BADGER BAL - BAND BAT BCH BNC BNT CHF CHZ COMP CQT CRV CTSI DAI DASH DOT DOT.P DOT.S - DYDX ENJ EOS ETH2 ETH2.S EUR.HOLD EUR.M EWT FIL FLOW FLOW.S FLOWH FLOWH.S - GHST GLMR GNO GRT ICX INJ KAR KAVA KAVA.S KEEP KFEE KILT KINT KNC KSM - KSM.P KSM.S LINK LPT LRC LSK LUNA MANA MATIC MINA MIR MKR MOVR NANO OCEAN - OGN OMG OXT OXY PAXG PERP PHA QTUM RARI RAY REN REPV2 SAND SC SDN SHIB SNX - SOL SOL.S SRM STORJ SUSHI TBTC TRX UNI USD.HOLD USD.M USDC USDT WAVES WBTC + 1INCH AAVE ACA ADA ADA.S AKT ALGO ALGO.S ANKR ANT ASTR ATLAS ATOM ATOM.S + AVAX AXS BADGER BAL BAND BAT BCH BNC BNT CHF CHZ COMP CQT CRV CTSI DAI + DASH DOT DOT.P DOT.S DYDX ENJ EOS ETH2 ETH2.S EUR.HOLD EUR.M EWT FIDA FIL + FLOW FLOW.S FLOWH FLOWH.S GHST GLMR GNO GRT ICX INJ KAR KAVA KAVA.S KEEP + KFEE KILT KIN KINT KNC KSM KSM.P KSM.S LINK LPT LRC LSK LUNA MANA MATIC + MINA MINA.S MIR MKR MNGO MOVR NANO OCEAN OGN OMG ORCA OXT OXY PAXG PERP + PHA POLIS QTUM RARI RAY REN REPV2 SAND SBR SC SDN SHIB SNX SOL SOL.S SRM + STEP STORJ SUSHI TBTC TRX TRX.S UNI USD.HOLD USD.M USDC USDT WAVES WBTC XBT.M XETC XETH XLTC XMLN XREP XTZ XTZ.S XXBT XXDG XXLM XXMR XXRP XZEC YFI ZAUD ZCAD ZEUR ZGBP ZJPY ZRX ZUSD )