add XChainModifyBridge model

This commit is contained in:
Mayukha Vadari
2022-08-03 14:12:41 +02:00
parent ad4c952fbf
commit 50335554ab
3 changed files with 48 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
import { ValidationError } from '../../errors'
import { Amount, XChainBridge } from '../common'
import { BaseTransaction, validateBaseTransaction } from './common'
/**
*
* @category Transaction Models
*/
export interface XChainModifyBridge extends BaseTransaction {
TransactionType: 'XChainModifyBridge'
XChainBridge: XChainBridge
SignatureReward: Amount
MinAccountCreateAmount?: Amount
}
/**
* Verify the form and type of a XChainModifyBridge at runtime.
*
* @param tx - A XChainModifyBridge Transaction.
* @throws When the XChainModifyBridge is malformed.
*/
export function validateXChainModifyBridge(tx: Record<string, unknown>): void {
validateBaseTransaction(tx)
if (tx.XChainBridge == null) {
throw new ValidationError('XChainModifyBridge: missing field XChainBridge')
}
if (tx.SignatureReward == null) {
throw new ValidationError(
'XChainModifyBridge: missing field SignatureReward',
)
}
}

View File

@@ -51,3 +51,4 @@ export { XChainCommit } from './XChainCommit'
export { XChainCreateBridge } from './XChainCreateBridge'
export { XChainCreateClaimID } from './XChainCreateClaimID'
export { SidechainXChainAccountCreate } from './sidechainXChainAccountCreate'
export { XChainModifyBridge } from './XChainModifyBridge'

View File

@@ -68,6 +68,10 @@ import {
XChainCreateClaimID,
validateXChainCreateClaimID,
} from './XChainCreateClaimID'
import {
XChainModifyBridge,
validateXChainModifyBridge,
} from './XChainModifyBridge'
/**
* @category Transaction Models
@@ -103,6 +107,7 @@ export type Transaction =
| XChainCreateBridge
| XChainCreateClaimID
| SidechainXChainAccountCreate
| XChainModifyBridge
/**
* @category Transaction Models
@@ -251,6 +256,10 @@ export function validate(transaction: Record<string, unknown>): void {
validateSidechainXChainAccountCreate(tx)
break
case 'XChainModifyBridge':
validateXChainModifyBridge(tx)
break
default:
throw new ValidationError(
`Invalid field TransactionType: ${tx.TransactionType}`,