fix: for upcoming v0.53.1 (#731)
* fix: swap error caused by invalid id and batchcount * fix: enhance creation messages for admin drive and user drives (#238) * fix: enhance creation messages for admin drive and user drives * fix: update creation message to indicate longer processing time * fix: identity and wallet creation (#240) * fix: asset preview types * fix: fm search unicode text * fix: feed identity and stamp usage * fix: ui display changes (#239) * fix: ui layout changes * fix: stamp buy and dilute (#242) fix: vite polyfill warning for stream refactor: stamp depth and amount validation * fix: spdv-917 (#243) * fix: spdv-917 * refactor: spdv-917 * fix: add syncing message for Bee node and update page state handling spdv-955 (#244) * fix: spdv-1037 (#245) * fix: spdv-1038 (#246) * fix: spdv-1038 * refactor: spdv-1038 * fix: validate stamp before every upgrade click (#247) * fix: validate stamp before every upgrade click --------- Co-authored-by: Roland Seres <roland.seres90@gmail.com> * fix: use tochecksum() and toplurbigint() for ethers v6 compatibility (#248) --------- Co-authored-by: Balint Ujvari <balint.ujvari@solarpunk.buzz> Co-authored-by: Bálint Ujvári <58116288+bosi95@users.noreply.github.com> Co-authored-by: rolandlor <33499567+rolandlor@users.noreply.github.com> Co-authored-by: Roland Seres <roland.seres90@gmail.com>
This commit is contained in:
+52
-4
@@ -1,6 +1,6 @@
|
||||
import { BZZ } from '@ethersphere/bee-js'
|
||||
import { BZZ, DAI } from '@ethersphere/bee-js'
|
||||
|
||||
import { sendBzzTransaction } from '../../src/utils/rpc'
|
||||
import { sendBzzTransaction, sendNativeTransaction } from '../../src/utils/rpc'
|
||||
|
||||
interface MockProvider {
|
||||
getFeeData: jest.Mock
|
||||
@@ -11,12 +11,14 @@ const mockWait = jest.fn()
|
||||
const mockTransfer = jest.fn()
|
||||
const mockGetFeeData = jest.fn()
|
||||
const mockGetNetwork = jest.fn()
|
||||
const mockSendTransaction = jest.fn()
|
||||
const mockProvider: MockProvider = {
|
||||
getFeeData: mockGetFeeData,
|
||||
getNetwork: mockGetNetwork,
|
||||
}
|
||||
|
||||
const value = BZZ.fromDecimalString('1')
|
||||
const bzzValue = BZZ.fromDecimalString('1')
|
||||
const daiValue = DAI.fromDecimalString('1')
|
||||
const privateKey = 'FFFF000000000000000000000000000000000000000000000000000000000000'
|
||||
const jsonRpcProvider = 'http://mock-json-rpc-provider'
|
||||
|
||||
@@ -39,6 +41,7 @@ jest.mock('ethers', () => {
|
||||
|
||||
class Wallet {
|
||||
provider: MockProvider
|
||||
sendTransaction = mockSendTransaction
|
||||
|
||||
constructor(_privateKey: string, provider: MockProvider) {
|
||||
this.provider = provider
|
||||
@@ -64,8 +67,53 @@ describe('sendBzzTransaction', () => {
|
||||
})
|
||||
|
||||
it.each(addresses)('sendBzzTransaction to address: %s', async (address: string) => {
|
||||
await sendBzzTransaction(privateKey, address, value, jsonRpcProvider)
|
||||
await sendBzzTransaction(privateKey, address, bzzValue, jsonRpcProvider)
|
||||
const to = mockTransfer.mock.calls[0][0] as string
|
||||
expect(to.startsWith('0x')).toBe(true)
|
||||
})
|
||||
|
||||
it('passes BZZ value as bigint (not BZZ object)', async () => {
|
||||
await sendBzzTransaction(privateKey, '0x52908400098527886e0f7030069857d2e4169ee7', bzzValue, jsonRpcProvider)
|
||||
const transferredValue = mockTransfer.mock.calls[0][1]
|
||||
expect(typeof transferredValue).toBe('bigint')
|
||||
expect(transferredValue).toBe(bzzValue.toPLURBigInt())
|
||||
})
|
||||
})
|
||||
|
||||
describe('sendNativeTransaction', () => {
|
||||
const addresses = ['52908400098527886e0f7030069857d2e4169ee7', '0x52908400098527886e0f7030069857d2e4169ee7']
|
||||
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks()
|
||||
mockWait.mockResolvedValue({ status: 1 })
|
||||
mockSendTransaction.mockResolvedValue({ wait: mockWait })
|
||||
mockGetFeeData.mockResolvedValue({ gasPrice: BigInt(1) })
|
||||
mockGetNetwork.mockResolvedValue({ chainId: BigInt(100) })
|
||||
})
|
||||
|
||||
it.each(addresses)('sendNativeTransaction to address: %s passes 0x-prefixed address', async (address: string) => {
|
||||
await sendNativeTransaction(privateKey, address, daiValue, jsonRpcProvider)
|
||||
const tx = mockSendTransaction.mock.calls[0][0] as { to: string }
|
||||
expect(tx.to.startsWith('0x')).toBe(true)
|
||||
})
|
||||
|
||||
it('passes DAI value as bigint', async () => {
|
||||
await sendNativeTransaction(privateKey, '0x52908400098527886e0f7030069857d2e4169ee7', daiValue, jsonRpcProvider)
|
||||
const tx = mockSendTransaction.mock.calls[0][0] as { value: bigint }
|
||||
expect(typeof tx.value).toBe('bigint')
|
||||
expect(tx.value).toBe(BigInt(daiValue.toWeiString()))
|
||||
})
|
||||
|
||||
it('uses externalGasPrice when provided', async () => {
|
||||
const externalGasPrice = DAI.fromWei('9999')
|
||||
await sendNativeTransaction(
|
||||
privateKey,
|
||||
'0x52908400098527886e0f7030069857d2e4169ee7',
|
||||
daiValue,
|
||||
jsonRpcProvider,
|
||||
externalGasPrice,
|
||||
)
|
||||
const tx = mockSendTransaction.mock.calls[0][0] as { gasPrice: bigint }
|
||||
expect(tx.gasPrice).toBe(BigInt(externalGasPrice.toWeiString()))
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user