mirror of
				https://github.com/Xahau/xahau.js.git
				synced 2025-11-04 04:55:48 +00:00 
			
		
		
		
	* add apiVersion support to requests and AccountInfoResponse v1/v2 types * fix submitAndWait signature * update docker container README * update tests * fix apiVersion param in wrong position of Client.request * add integ tests * update HISTORY.md * fix request.api_version * update RIPPLED_DOCKER_IMAGE to use v2.1.0 * refactor Client.request signature * update rippled docker image * fix Client.requestAll * update rippled docker image to use v2.1.1 * update README * use import type * fix faucet; unrelated to PR * add api_version v2 support and set as default while providing support for v1 * refactor: add apiVersion to Client * resolve errors * use DeliverMax for isPartialPayment check * update fixtures * resolve lint errors * add API v1 support for isPartialPayment * update CONTRIBUTING * update accountTx JSDoc * revert deleted JSDoc comments in accountTx * update JSDoc for account_info response * only use client.apiVersion in Client.request() * add ledger_hash * remove API v1 comment from v2 model * update meta_blob JSDoc * delete second AccountTxRequest matching * add close_time_iso * set close_time_iso as optional field * add meta_blob to BaseResponse * Revert "add meta_blob to BaseResponse" This reverts commit 89794c629dc515915e28752d7c2552bfeab266a3. * use DEFAULT_API_VERSION throughout call stack * improve JSDoc explanation of ledger_index * remove this.apiVersion from getLedgerIndex * refactor Client.request() * refactor RequestManger.resolve() * add TODO to fix TxResponse type assertion * use @category ResponsesV1 for API v1 types * refactor accountTxHasPartialPayment() * remove TODO
		
			
				
	
	
		
			124 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { assert } from 'chai'
 | 
						|
 | 
						|
import {
 | 
						|
  AccountSet,
 | 
						|
  hashes,
 | 
						|
  SubmitResponse,
 | 
						|
  TxRequest,
 | 
						|
  TxResponse,
 | 
						|
  TxV1Response,
 | 
						|
} from '../../../src'
 | 
						|
import { convertStringToHex } from '../../../src/utils'
 | 
						|
import serverUrl from '../serverUrl'
 | 
						|
import {
 | 
						|
  setupClient,
 | 
						|
  teardownClient,
 | 
						|
  type XrplIntegrationTestContext,
 | 
						|
} from '../setup'
 | 
						|
 | 
						|
// how long before each test case times out
 | 
						|
const TIMEOUT = 20000
 | 
						|
const { hashSignedTx } = hashes
 | 
						|
 | 
						|
describe('tx', function () {
 | 
						|
  let testContext: XrplIntegrationTestContext
 | 
						|
 | 
						|
  beforeEach(async () => {
 | 
						|
    testContext = await setupClient(serverUrl)
 | 
						|
  })
 | 
						|
  afterEach(async () => teardownClient(testContext))
 | 
						|
 | 
						|
  it(
 | 
						|
    'base',
 | 
						|
    async () => {
 | 
						|
      const account = testContext.wallet.classicAddress
 | 
						|
      const accountSet: AccountSet = {
 | 
						|
        TransactionType: 'AccountSet',
 | 
						|
        Account: account,
 | 
						|
        Domain: convertStringToHex('example.com'),
 | 
						|
      }
 | 
						|
 | 
						|
      const response: SubmitResponse = await testContext.client.submit(
 | 
						|
        accountSet,
 | 
						|
        {
 | 
						|
          wallet: testContext.wallet,
 | 
						|
        },
 | 
						|
      )
 | 
						|
 | 
						|
      const hash = hashSignedTx(response.result.tx_blob)
 | 
						|
      const txResponse = await testContext.client.request({
 | 
						|
        command: 'tx',
 | 
						|
        transaction: hash,
 | 
						|
      })
 | 
						|
 | 
						|
      const expectedResponse: TxResponse = {
 | 
						|
        api_version: 2,
 | 
						|
        id: txResponse.id,
 | 
						|
        type: 'response',
 | 
						|
        result: {
 | 
						|
          hash: hashSignedTx(response.result.tx_blob),
 | 
						|
          tx_json: {
 | 
						|
            ...accountSet,
 | 
						|
            Fee: txResponse.result.tx_json.Fee,
 | 
						|
            Flags: 0,
 | 
						|
            LastLedgerSequence: txResponse.result.tx_json.LastLedgerSequence,
 | 
						|
            Sequence: txResponse.result.tx_json.Sequence,
 | 
						|
            SigningPubKey: testContext.wallet.publicKey,
 | 
						|
            TxnSignature: txResponse.result.tx_json.TxnSignature,
 | 
						|
          },
 | 
						|
          validated: false,
 | 
						|
        },
 | 
						|
      }
 | 
						|
 | 
						|
      assert.deepEqual(txResponse, expectedResponse)
 | 
						|
    },
 | 
						|
    TIMEOUT,
 | 
						|
  )
 | 
						|
 | 
						|
  it(
 | 
						|
    'uses api_version 1',
 | 
						|
    async () => {
 | 
						|
      const account = testContext.wallet.classicAddress
 | 
						|
      const accountSet: AccountSet = {
 | 
						|
        TransactionType: 'AccountSet',
 | 
						|
        Account: account,
 | 
						|
        Domain: convertStringToHex('example.com'),
 | 
						|
      }
 | 
						|
 | 
						|
      const response: SubmitResponse = await testContext.client.submit(
 | 
						|
        accountSet,
 | 
						|
        {
 | 
						|
          wallet: testContext.wallet,
 | 
						|
        },
 | 
						|
      )
 | 
						|
 | 
						|
      const hash = hashSignedTx(response.result.tx_blob)
 | 
						|
      const txV1Response = await testContext.client.request<TxRequest, 1>({
 | 
						|
        command: 'tx',
 | 
						|
        transaction: hash,
 | 
						|
        api_version: 1,
 | 
						|
      })
 | 
						|
 | 
						|
      const expectedResponse: TxV1Response = {
 | 
						|
        api_version: 1,
 | 
						|
        id: txV1Response.id,
 | 
						|
        type: 'response',
 | 
						|
        result: {
 | 
						|
          ...accountSet,
 | 
						|
          Fee: txV1Response.result.Fee,
 | 
						|
          Flags: 0,
 | 
						|
          LastLedgerSequence: txV1Response.result.LastLedgerSequence,
 | 
						|
          Sequence: txV1Response.result.Sequence,
 | 
						|
          SigningPubKey: testContext.wallet.publicKey,
 | 
						|
          TxnSignature: txV1Response.result.TxnSignature,
 | 
						|
          hash: hashSignedTx(response.result.tx_blob),
 | 
						|
          validated: false,
 | 
						|
        },
 | 
						|
      }
 | 
						|
 | 
						|
      assert.deepEqual(txV1Response, expectedResponse)
 | 
						|
    },
 | 
						|
    TIMEOUT,
 | 
						|
  )
 | 
						|
})
 |