mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 12:15:51 +00:00
* Update definitions.json * add new st types * add tests * add XChainClaim tx * add XChainCommit tx * add XChainCreateBridge tx * add XChainCreateClaimID tx * update definitions.json * rename Bridge -> XChainBridge in binary codec, fix tests * rename Bridge -> XChainBridge in models * add codec support for XChainAddAttestation * add XChainAddAttestation model * undo debugging change * fix linting issues * update definitions.json for new rippled code, add new tests/update old tests * add/update models * update history * update binary-codec * add XChainModifyBridge model * update RPCs * update to latest rippled * more fixes * fix definitions.json * fix spacing * update definitions.json to avoid conflict with amm * update definitions.json to resolve amm conflicts * audit code * more updates * update rpcs * switch to beta version * add destination tag to XChainClaim * rename IssuedCurrency -> Issue to match rippled * update Issue form * fix account object filters * fix issue from typing * fix LedgerEntry types * fix attestation destination type * Update definitions.json * rename XChainAddAttestation -> XChainAddAttestationBatch * add XChainAddClaimAttestation * add XChainAddAccountCreateAttestation * remove XChainAddAttestationBatch * update definitions * fix attestation txns * fix attestation object * add validate for new txs * add Bridge ledger object * add XChainOwnedClaimID ledger object * add XChainOwnedCreateAccountClaimID ledger object * update account_objects * update models to latest rippled * fix minor issues * fix bridge ledger_entry * add XChainModifyBridge flag * Update definitions.json * add rbc tests for the new txs * update validateXChainModifyBridge * add validate methods to other xchain txs * fix isXChainBridge * fix isIssue typing * fix model types * update changelog * switch prepare to prepublishOnly * add docs * fix AccountObjectsType filter * export common types * fix account_objects filter * update LedgerEntry * add sidechain faucet info * add snippet * improve snippet * fix spacing issues * update ledger_entry * remove AMMDelete tests for now * Update definitions.json * fix unit tests * convert createValidate script to JS * remove unneeded linter ignores * respond to comments * more snippet fixes * make validate functions more readable * add getXChainClaimID method to parse metadata * re-add linter rules * clean up common * fix getXChainClaimID test * return undefined for failed tx * test: add model tests for new sidechain transactions (#2059) * add XChainAddAttestation tests, fix model * add XChainClaim model tests * add XChainCommit model tests, fix typo * add XChainCreateBridge model tests * add XChainCreateClaimID model tests * add XChainModifyBridge tests * update to most recent version of code * remove XChainAddAttestationBatch tests * add more validation tests * switch createValidateTests to JS
162 lines
4.2 KiB
TypeScript
162 lines
4.2 KiB
TypeScript
import { assert } from 'chai'
|
|
|
|
import { validate, ValidationError } from '../../src'
|
|
import { validateXChainAccountCreateCommit } from '../../src/models/transactions/XChainAccountCreateCommit'
|
|
|
|
/**
|
|
* XChainAccountCreateCommit Transaction Verification Testing.
|
|
*
|
|
* Providing runtime verification testing for each specific transaction type.
|
|
*/
|
|
describe('XChainAccountCreateCommit', function () {
|
|
let tx
|
|
|
|
beforeEach(function () {
|
|
tx = {
|
|
Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh',
|
|
XChainBridge: {
|
|
LockingChainDoor: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL',
|
|
LockingChainIssue: {
|
|
currency: 'XRP',
|
|
},
|
|
IssuingChainDoor: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV',
|
|
IssuingChainIssue: {
|
|
currency: 'XRP',
|
|
},
|
|
},
|
|
Amount: '1000000',
|
|
Fee: '10',
|
|
Flags: 2147483648,
|
|
Destination: 'rGzx83BVoqTYbGn7tiVAnFw7cbxjin13jL',
|
|
Sequence: 1,
|
|
SignatureReward: '10000',
|
|
TransactionType: 'XChainAccountCreateCommit',
|
|
} as any
|
|
})
|
|
|
|
it('verifies valid XChainAccountCreateCommit', function () {
|
|
assert.doesNotThrow(() => validateXChainAccountCreateCommit(tx))
|
|
assert.doesNotThrow(() => validate(tx))
|
|
})
|
|
|
|
it('throws w/ missing XChainBridge', function () {
|
|
delete tx.XChainBridge
|
|
|
|
assert.throws(
|
|
() => validateXChainAccountCreateCommit(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: missing field XChainBridge',
|
|
)
|
|
assert.throws(
|
|
() => validate(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: missing field XChainBridge',
|
|
)
|
|
})
|
|
|
|
it('throws w/ invalid XChainBridge', function () {
|
|
tx.XChainBridge = { XChainDoor: 'test' }
|
|
|
|
assert.throws(
|
|
() => validateXChainAccountCreateCommit(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: invalid field XChainBridge',
|
|
)
|
|
assert.throws(
|
|
() => validate(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: invalid field XChainBridge',
|
|
)
|
|
})
|
|
|
|
it('throws w/ missing SignatureReward', function () {
|
|
delete tx.SignatureReward
|
|
|
|
assert.throws(
|
|
() => validateXChainAccountCreateCommit(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: missing field SignatureReward',
|
|
)
|
|
assert.throws(
|
|
() => validate(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: missing field SignatureReward',
|
|
)
|
|
})
|
|
|
|
it('throws w/ invalid SignatureReward', function () {
|
|
tx.SignatureReward = { currency: 'ETH' }
|
|
|
|
assert.throws(
|
|
() => validateXChainAccountCreateCommit(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: invalid field SignatureReward',
|
|
)
|
|
assert.throws(
|
|
() => validate(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: invalid field SignatureReward',
|
|
)
|
|
})
|
|
|
|
it('throws w/ missing Destination', function () {
|
|
delete tx.Destination
|
|
|
|
assert.throws(
|
|
() => validateXChainAccountCreateCommit(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: missing field Destination',
|
|
)
|
|
assert.throws(
|
|
() => validate(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: missing field Destination',
|
|
)
|
|
})
|
|
|
|
it('throws w/ invalid Destination', function () {
|
|
tx.Destination = 123
|
|
|
|
assert.throws(
|
|
() => validateXChainAccountCreateCommit(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: invalid field Destination',
|
|
)
|
|
assert.throws(
|
|
() => validate(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: invalid field Destination',
|
|
)
|
|
})
|
|
|
|
it('throws w/ missing Amount', function () {
|
|
delete tx.Amount
|
|
|
|
assert.throws(
|
|
() => validateXChainAccountCreateCommit(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: missing field Amount',
|
|
)
|
|
assert.throws(
|
|
() => validate(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: missing field Amount',
|
|
)
|
|
})
|
|
|
|
it('throws w/ invalid Amount', function () {
|
|
tx.Amount = { currency: 'ETH' }
|
|
|
|
assert.throws(
|
|
() => validateXChainAccountCreateCommit(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: invalid field Amount',
|
|
)
|
|
assert.throws(
|
|
() => validate(tx),
|
|
ValidationError,
|
|
'XChainAccountCreateCommit: invalid field Amount',
|
|
)
|
|
})
|
|
})
|