diff --git a/packages/ripple-binary-codec/src/binary.ts b/packages/ripple-binary-codec/src/binary.ts index f578f944..52f52a1f 100644 --- a/packages/ripple-binary-codec/src/binary.ts +++ b/packages/ripple-binary-codec/src/binary.ts @@ -15,6 +15,7 @@ import { STObject } from './types/st-object' import { JsonObject } from './types/serialized-type' import { Buffer } from 'buffer/' import bigInt = require('big-integer') +import { AmountObject } from './types/amount' /** * Construct a BinaryParser @@ -122,7 +123,7 @@ function signingData( */ interface ClaimObject extends JsonObject { channel: string - amount: string | number + amount: AmountObject } /** @@ -133,16 +134,19 @@ interface ClaimObject extends JsonObject { * @returns the serialized object with appropriate prefix */ function signingClaimData(claim: ClaimObject): Buffer { - const num = bigInt(String(claim.amount)) const prefix = HashPrefix.paymentChannelClaim const channel = coreTypes.Hash256.from(claim.channel).toBytes() - const amount = coreTypes.UInt64.from(num).toBytes() - const bytesList = new BytesList() - bytesList.put(prefix) bytesList.put(channel) - bytesList.put(amount) + if (typeof claim.amount === 'string') { + const num = bigInt(String(claim.amount)) + const amount = coreTypes.UInt64.from(num).toBytes() + bytesList.put(amount) + } else { + const amount = coreTypes.Amount.from(claim.amount).toBytes() + bytesList.put(amount) + } return bytesList.toBytes() } diff --git a/packages/ripple-binary-codec/test/signing-data-encoding.test.js b/packages/ripple-binary-codec/test/signing-data-encoding.test.js index 71a0c26c..ef4db5b0 100644 --- a/packages/ripple-binary-codec/test/signing-data-encoding.test.js +++ b/packages/ripple-binary-codec/test/signing-data-encoding.test.js @@ -170,59 +170,7 @@ describe('Signing data', function () { ].join(''), ) }) - - test('can create multi signing blobs with custom definitions', function () { - const customPaymentDefinitions = JSON.parse( - JSON.stringify(normalDefinitions), - ) - customPaymentDefinitions.TRANSACTION_TYPES.Payment = 31 - - const newDefs = new XrplDefinitions(customPaymentDefinitions) - const signingAccount = 'rJZdUusLDtY9NEsGea7ijqhVrXv98rYBYN' - const signingJson = { ...tx_json, SigningPubKey: '' } - const actual = encodeForMultisigning(signingJson, signingAccount, newDefs) - expect(actual).toBe( - [ - '534D5400', // signingPrefix - // TransactionType - '12', - '001F', - // Flags - '22', - '80000000', - // Sequence - '24', - '00000001', - // Amount - '61', - // native amount - '40000000000003E8', - // Fee - '68', - // native amount - '400000000000000A', - // SigningPubKey - '73', - // VLLength - '00', - // '', - // Account - '81', - // VLLength - '14', - '5B812C9D57731E27A2DA8B1830195F88EF32A3B6', - // Destination - '83', - // VLLength - '14', - 'B5F762798A53D543A014CAF8B297CFF8F2F937E8', - // signingAccount suffix - 'C0A5ABEF242802EFED4B041E8F2D4A8CC86AE3D1', - ].join(''), - ) - }) - - test('can create claim blob', function () { + test('can create native claim blob', function () { const channel = '43904CBFCDCEC530B4037871F86EE90BF799DF8D2E0EA564BC8A3F332E4F5FB1' const amount = '1000' @@ -239,4 +187,27 @@ describe('Signing data', function () { ].join(''), ) }) + test('can create ic claim blob', function () { + const channel = + '43904CBFCDCEC530B4037871F86EE90BF799DF8D2E0EA564BC8A3F332E4F5FB1' + const amount = { + issuer: 'rJZdUusLDtY9NEsGea7ijqhVrXv98rYBYN', + currency: 'USD', + value: '10', + } + const json = { channel, amount } + const actual = encodeForSigningClaim(json) + expect(actual).toBe( + [ + // hash prefix + '434C4D00', + // channel ID + '43904CBFCDCEC530B4037871F86EE90BF799DF8D2E0EA564BC8A3F332E4F5FB1', + // amount as a uint64 + 'D4C38D7EA4C680000000000000000000000000005553440000000000C0A5ABEF', + // amount as a uint64 + '242802EFED4B041E8F2D4A8CC86AE3D1', + ].join(''), + ) + }) }) diff --git a/packages/xrpl/src/models/ledger/Escrow.ts b/packages/xrpl/src/models/ledger/Escrow.ts index 1ddd446e..f56eee94 100644 --- a/packages/xrpl/src/models/ledger/Escrow.ts +++ b/packages/xrpl/src/models/ledger/Escrow.ts @@ -1,7 +1,9 @@ +import { Amount } from '../common' + import BaseLedgerEntry from './BaseLedgerEntry' /** - * The Escrow object type represents a held payment of XRP waiting to be + * The Escrow object type represents a held payment waiting to be * executed or canceled. * * @category Ledger Entries @@ -10,17 +12,17 @@ export default interface Escrow extends BaseLedgerEntry { LedgerEntryType: 'Escrow' /** * The address of the owner (sender) of this held payment. This is the - * account that provided the XRP, and gets it back if the held payment is + * account that provided the amounts, and gets it back if the held payment is * canceled. */ Account: string /** - * The destination address where the XRP is paid if the held payment is + * The destination address where the amounts are paid if the held payment is * successful. */ Destination: string - /** The amount of XRP, in drops, to be delivered by the held payment. */ - Amount: string + /** The amount to be delivered by the held payment. */ + Amount: Amount /** * A PREIMAGE-SHA-256 crypto-condition, as hexadecimal. If present, the * EscrowFinish transaction must contain a fulfillment that satisfies this @@ -71,4 +73,9 @@ export default interface Escrow extends BaseLedgerEntry { * modified this object. */ PreviousTxnLgrSeq: number + /** + * The fee to charge when users finish an escrow, initially set on the + * creation of an escrow contract, and updated on subsequent finish transactions + */ + TransferRate?: number } diff --git a/packages/xrpl/src/models/ledger/PayChannel.ts b/packages/xrpl/src/models/ledger/PayChannel.ts index 84080ac6..de7de227 100644 --- a/packages/xrpl/src/models/ledger/PayChannel.ts +++ b/packages/xrpl/src/models/ledger/PayChannel.ts @@ -1,9 +1,11 @@ +import { Amount } from '../common' + import BaseLedgerEntry from './BaseLedgerEntry' /** * The PayChannel object type represents a payment channel. Payment channels - * enable small, rapid off-ledger payments of XRP that can be later reconciled - * with the consensus ledger. A payment channel holds a balance of XRP that can + * enable small, rapid off-ledger payments that can be later reconciled + * with the consensus ledger. A payment channel holds a balance that can * only be paid out to a specific destination address until the channel is * closed. * @@ -18,37 +20,37 @@ export default interface PayChannel extends BaseLedgerEntry { Account: string /** * The destination address for this payment channel. While the payment - * channel is open, this address is the only one that can receive XRP from the + * channel is open, this address is the only one that can receive amounts from the * channel. This comes from the Destination field of the transaction that * created the channel. */ Destination: string /** - * Total XRP, in drops, that has been allocated to this channel. This - * includes XRP that has been paid to the destination address. This is - * initially set by the transaction that created the channel and can be - * increased if the source address sends a PaymentChannelFund transaction. + * Total amount that has been allocated to this channel. This includes amounts + * that have been paid to the destination address. This is initially set by the + * transaction that created the channel and can be increased if the source + * address sends a PaymentChannelFund transaction. */ - Amount: string + Amount: Amount /** - * Total XRP, in drops, already paid out by the channel. The difference - * between this value and the Amount field is how much XRP can still be paid - * to the destination address with PaymentChannelClaim transactions. If the - * channel closes, the remaining difference is returned to the source address. + * Total amount already paid out by the channel. The difference between this value + * and the Amount field is how much can still be paid to the destination address + * with PaymentChannelClaim transactions. If the channel closes, the remaining + * difference is returned to the source address. */ - Balance: string + Balance: Amount /** * Public key, in hexadecimal, of the key pair that can be used to sign * claims against this channel. This can be any valid secp256k1 or Ed25519 * public key. This is set by the transaction that created the channel and * must match the public key used in claims against the channel. The channel - * source address can also send XRP from this channel to the destination + * source address can also send amounts from this channel to the destination * without signed claims. */ PublicKey: string /** * Number of seconds the source address must wait to close the channel if - * it still has any XRP in it. Smaller values mean that the destination + * it still has any amount in it. Smaller values mean that the destination * address has less time to redeem any outstanding claims after the source * address requests to close the channel. Can be any value that fits in a * 32-bit unsigned integer (0 to 2^32-1). This is set by the transaction that @@ -104,4 +106,10 @@ export default interface PayChannel extends BaseLedgerEntry { * this object, in case the directory consists of multiple pages. */ DestinationNode?: string + /** + * The fee to charge when users make claims on a payment channel, initially + * set on the creation of a payment channel and updated on subsequent funding + * or claim transactions. + */ + TransferRate?: number } diff --git a/packages/xrpl/src/models/methods/accountChannels.ts b/packages/xrpl/src/models/methods/accountChannels.ts index ad2c51af..beb0e2a3 100644 --- a/packages/xrpl/src/models/methods/accountChannels.ts +++ b/packages/xrpl/src/models/methods/accountChannels.ts @@ -1,10 +1,10 @@ -import { LedgerIndex } from '../common' +import { Amount, LedgerIndex } from '../common' import { BaseRequest, BaseResponse } from './baseMethod' interface Channel { account: string - amount: string + amount: Amount balance: string channel_id: string destination_account: string @@ -15,6 +15,7 @@ interface Channel { cancel_after?: number source_tab?: number destination_tag?: number + transfer_rate?: number } /** diff --git a/packages/xrpl/src/models/methods/accountLines.ts b/packages/xrpl/src/models/methods/accountLines.ts index fb2e3c71..45e53ffc 100644 --- a/packages/xrpl/src/models/methods/accountLines.ts +++ b/packages/xrpl/src/models/methods/accountLines.ts @@ -1,4 +1,4 @@ -import { LedgerIndex } from '../common' +import { Amount, LedgerIndex } from '../common' import { BaseRequest, BaseResponse } from './baseMethod' @@ -64,6 +64,14 @@ export interface Trustline { * false. */ freeze_peer?: boolean + /** + * The total amount of FT, in drops/Amount locked in payment channels or escrow. + */ + locked_balance?: Amount + /** + * The total number of lock balances on a RippleState ledger object. + */ + lock_count?: number } /** diff --git a/packages/xrpl/src/models/methods/channelVerify.ts b/packages/xrpl/src/models/methods/channelVerify.ts index 0a53c544..0be6edc4 100644 --- a/packages/xrpl/src/models/methods/channelVerify.ts +++ b/packages/xrpl/src/models/methods/channelVerify.ts @@ -9,7 +9,7 @@ import { BaseRequest, BaseResponse } from './baseMethod' */ export interface ChannelVerifyRequest extends BaseRequest { command: 'channel_verify' - /** The amount of XRP, in drops, the provided signature authorizes. */ + /** The amount the provided signature authorizes. */ amount: string /** * The Channel ID of the channel that provides the XRP. This is a diff --git a/packages/xrpl/src/models/transactions/escrowCancel.ts b/packages/xrpl/src/models/transactions/escrowCancel.ts index 573d504f..91863913 100644 --- a/packages/xrpl/src/models/transactions/escrowCancel.ts +++ b/packages/xrpl/src/models/transactions/escrowCancel.ts @@ -3,7 +3,7 @@ import { ValidationError } from '../../errors' import { BaseTransaction, validateBaseTransaction } from './common' /** - * Return escrowed XRP to the sender. + * Return escrowed amount to the sender. * * @category Transaction Models */ diff --git a/packages/xrpl/src/models/transactions/escrowCreate.ts b/packages/xrpl/src/models/transactions/escrowCreate.ts index aeb2d88b..8c0a327f 100644 --- a/packages/xrpl/src/models/transactions/escrowCreate.ts +++ b/packages/xrpl/src/models/transactions/escrowCreate.ts @@ -1,22 +1,23 @@ /* eslint-disable complexity -- Necessary for validateEscrowCreate */ import { ValidationError } from '../../errors' +import { Amount } from '../common' -import { BaseTransaction, validateBaseTransaction } from './common' +import { BaseTransaction, isAmount, validateBaseTransaction } from './common' /** - * Sequester XRP until the escrow process either finishes or is canceled. + * Sequester amount until the escrow process either finishes or is canceled. * * @category Transaction Models */ export interface EscrowCreate extends BaseTransaction { TransactionType: 'EscrowCreate' /** - * Amount of XRP, in drops, to deduct from the sender's balance and escrow. - * Once escrowed, the XRP can either go to the Destination address (after the. - * FinishAfter time) or returned to the sender (after the CancelAfter time). + * Amount to deduct from the sender's balance and escrow. Once escrowed, the + * amount can either go to the Destination address (after the FinishAfter time) + * or returned to the sender (after the CancelAfter time). */ - Amount: string - /** Address to receive escrowed XRP. */ + Amount: Amount + /** Address to receive escrowed amount. */ Destination: string /** * The time, in seconds since the Ripple Epoch, when this escrow expires. @@ -25,7 +26,7 @@ export interface EscrowCreate extends BaseTransaction { */ CancelAfter?: number /** - * The time, in seconds since the Ripple Epoch, when the escrowed XRP can be + * The time, in seconds since the Ripple Epoch, when the escrowed amount can be * released to the recipient. This value is immutable; the funds cannot move. * until this time is reached. */ @@ -55,8 +56,8 @@ export function validateEscrowCreate(tx: Record): void { throw new ValidationError('EscrowCreate: missing field Amount') } - if (typeof tx.Amount !== 'string') { - throw new ValidationError('EscrowCreate: Amount must be a string') + if (typeof tx.Amount !== 'string' && !isAmount(tx.Amount)) { + throw new ValidationError('EscrowCreate: Amount must be an Amount') } if (tx.Destination === undefined) { diff --git a/packages/xrpl/src/models/transactions/escrowFinish.ts b/packages/xrpl/src/models/transactions/escrowFinish.ts index 7a362018..1382402c 100644 --- a/packages/xrpl/src/models/transactions/escrowFinish.ts +++ b/packages/xrpl/src/models/transactions/escrowFinish.ts @@ -3,7 +3,7 @@ import { ValidationError } from '../../errors' import { BaseTransaction, validateBaseTransaction } from './common' /** - * Deliver XRP from a held payment to the recipient. + * Deliver amount from a held payment to the recipient. * * @category Transaction Models */ diff --git a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts index 4aeda9ac..2d4e1535 100644 --- a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts +++ b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts @@ -1,7 +1,13 @@ /* eslint-disable complexity -- Necessary for validatePaymentChannelClaim */ import { ValidationError } from '../../errors' +import { Amount } from '../common' -import { BaseTransaction, GlobalFlags, validateBaseTransaction } from './common' +import { + BaseTransaction, + GlobalFlags, + validateBaseTransaction, + isAmount, +} from './common' /** * Enum representing values for PaymentChannelClaim transaction flags. @@ -18,15 +24,15 @@ export enum PaymentChannelClaimFlags { /** * Request to close the channel. Only the channel source and destination * addresses can use this flag. This flag closes the channel immediately if it - * has no more XRP allocated to it after processing the current claim, or if + * has no more funds allocated to it after processing the current claim, or if * the destination address uses it. If the source address uses this flag when - * the channel still holds XRP, this schedules the channel to close after + * the channel still holds an amount, this schedules the channel to close after * SettleDelay seconds have passed. (Specifically, this sets the Expiration of * the channel to the close time of the previous ledger plus the channel's * SettleDelay time, unless the channel already has an earlier Expiration * time.) If the destination address uses this flag when the channel still - * holds XRP, any XRP that remains after processing the claim is returned to - * the source address. + * holds an amount, any amount that remains after processing the claim is + * returned to the source address. */ tfClose = 0x00020000, } @@ -78,21 +84,21 @@ export interface PaymentChannelClaimFlagsInterface extends GlobalFlags { /** * Request to close the channel. Only the channel source and destination * addresses can use this flag. This flag closes the channel immediately if it - * has no more XRP allocated to it after processing the current claim, or if + * has no more funds allocated to it after processing the current claim, or if * the destination address uses it. If the source address uses this flag when - * the channel still holds XRP, this schedules the channel to close after + * the channel still holds an amount, this schedules the channel to close after * SettleDelay seconds have passed. (Specifically, this sets the Expiration of * the channel to the close time of the previous ledger plus the channel's * SettleDelay time, unless the channel already has an earlier Expiration * time.) If the destination address uses this flag when the channel still - * holds XRP, any XRP that remains after processing the claim is returned to - * the source address. + * holds an amount, any amount that remains after processing the claim is + * returned to the source address. */ tfClose?: boolean } /** - * Claim XRP from a payment channel, adjust the payment channel's expiration, + * Claim amount from a payment channel, adjust the payment channel's expiration, * or both. * * @category Transaction Models @@ -103,18 +109,18 @@ export interface PaymentChannelClaim extends BaseTransaction { /** The unique ID of the channel as a 64-character hexadecimal string. */ Channel: string /** - * Total amount of XRP, in drops, delivered by this channel after processing - * this claim. Required to deliver XRP. Must be more than the total amount - * delivered by the channel so far, but not greater than the Amount of the - * signed claim. Must be provided except when closing the channel. + * Total amount delivered by this channel after processing this claim. Required + * to deliver amount. Must be more than the total amount delivered by the channel + * so far, but not greater than the Amount of the signed claim. Must be provided + * except when closing the channel. */ - Balance?: string + Balance?: Amount /** - * The amount of XRP, in drops, authorized by the Signature. This must match - * the amount in the signed message. This is the cumulative amount of XRP that - * can be dispensed by the channel, including XRP previously redeemed. + * The amount authorized by the Signature. This must match the amount in the + * signed message. This is the cumulative amount that can be dispensed by the + * channel, including amounts previously redeemed. Required unless closing the channel. */ - Amount?: string + Amount?: Amount /** * The signature of this claim, as hexadecimal. The signed message contains * the channel ID and the amount of the claim. Required unless the sender of @@ -147,12 +153,12 @@ export function validatePaymentChannelClaim(tx: Record): void { throw new ValidationError('PaymentChannelClaim: Channel must be a string') } - if (tx.Balance !== undefined && typeof tx.Balance !== 'string') { - throw new ValidationError('PaymentChannelClaim: Balance must be a string') + if (tx.Balance !== undefined && !isAmount(tx.Balance)) { + throw new ValidationError('PaymentChannelClaim: Balance must be an Amount') } - if (tx.Amount !== undefined && typeof tx.Amount !== 'string') { - throw new ValidationError('PaymentChannelClaim: Amount must be a string') + if (tx.Amount !== undefined && !isAmount(tx.Amount)) { + throw new ValidationError('PaymentChannelClaim: Amount must be an Amount') } if (tx.Signature !== undefined && typeof tx.Signature !== 'string') { diff --git a/packages/xrpl/src/models/transactions/paymentChannelCreate.ts b/packages/xrpl/src/models/transactions/paymentChannelCreate.ts index 6bde2c20..90f98ea6 100644 --- a/packages/xrpl/src/models/transactions/paymentChannelCreate.ts +++ b/packages/xrpl/src/models/transactions/paymentChannelCreate.ts @@ -1,10 +1,11 @@ /* eslint-disable complexity -- Necessary for validatePaymentChannelCreate */ import { ValidationError } from '../../errors' +import { Amount } from '../common' -import { BaseTransaction, validateBaseTransaction } from './common' +import { BaseTransaction, validateBaseTransaction, isAmount } from './common' /** - * Create a unidirectional channel and fund it with XRP. The address sending + * Create a unidirectional channel and fund it. The address sending * this transaction becomes the "source address" of the payment channel. * * @category Transaction Models @@ -12,20 +13,20 @@ import { BaseTransaction, validateBaseTransaction } from './common' export interface PaymentChannelCreate extends BaseTransaction { TransactionType: 'PaymentChannelCreate' /** - * Amount of XRP, in drops, to deduct from the sender's balance and set aside - * in this channel. While the channel is open, the XRP can only go to the - * Destination address. When the channel closes, any unclaimed XRP is returned - * to the source address's balance. + * Amount to deduct from the sender's balance and set aside in this channel. + * While the channel is open, the amount can only go to the Destination + * address. When the channel closes, any unclaimed amount is returned to + * the source address's balance. */ - Amount: string + Amount: Amount /** - * Address to receive XRP claims against this channel. This is also known as + * Address to receive claims against this channel. This is also known as * the "destination address" for the channel. */ Destination: string /** * Amount of time the source address must wait before closing the channel if - * it has unclaimed XRP. + * it has unclaimed amount. */ SettleDelay: number /** @@ -65,8 +66,8 @@ export function validatePaymentChannelCreate( throw new ValidationError('PaymentChannelCreate: missing Amount') } - if (typeof tx.Amount !== 'string') { - throw new ValidationError('PaymentChannelCreate: Amount must be a string') + if (typeof tx.Amount !== 'string' && !isAmount(tx.Amount)) { + throw new ValidationError('PaymentChannelCreate: Amount must be an Amount') } if (tx.Destination === undefined) { diff --git a/packages/xrpl/src/models/transactions/paymentChannelFund.ts b/packages/xrpl/src/models/transactions/paymentChannelFund.ts index 8c46687a..5c381461 100644 --- a/packages/xrpl/src/models/transactions/paymentChannelFund.ts +++ b/packages/xrpl/src/models/transactions/paymentChannelFund.ts @@ -1,9 +1,10 @@ import { ValidationError } from '../../errors' +import { Amount } from '../common' -import { BaseTransaction, validateBaseTransaction } from './common' +import { BaseTransaction, validateBaseTransaction, isAmount } from './common' /** - * Add additional XRP to an open payment channel, and optionally update the + * Add additional amount to an open payment channel, and optionally update the * expiration time of the channel. Only the source address of the channel can * use this transaction. * @@ -17,16 +18,15 @@ export interface PaymentChannelFund extends BaseTransaction { */ Channel: string /** - * Amount of XRP in drops to add to the channel. Must be a positive amount - * of XRP. + * Amount to add to the channel. Must be a positive amount */ - Amount: string + Amount: Amount /** * New Expiration time to set for the channel in seconds since the Ripple * Epoch. This must be later than either the current time plus the SettleDelay * of the channel, or the existing Expiration of the channel. After the * Expiration time, any transaction that would access the channel closes the - * channel without taking its normal action. Any unspent XRP is returned to + * channel without taking its normal action. Any unspent amount is returned to * the source address when the channel closes. (Expiration is separate from * the channel's immutable CancelAfter time.) For more information, see the * PayChannel ledger object type. @@ -55,8 +55,8 @@ export function validatePaymentChannelFund(tx: Record): void { throw new ValidationError('PaymentChannelFund: missing Amount') } - if (typeof tx.Amount !== 'string') { - throw new ValidationError('PaymentChannelFund: Amount must be a string') + if (typeof tx.Amount !== 'string' && !isAmount(tx.Amount)) { + throw new ValidationError('PaymentChannelFund: Amount must be an Amount') } if (tx.Expiration !== undefined && typeof tx.Expiration !== 'number') { diff --git a/packages/xrpl/test/models/escrowCreate.test.ts b/packages/xrpl/test/models/escrowCreate.test.ts index 20ccf40f..1ec09612 100644 --- a/packages/xrpl/test/models/escrowCreate.test.ts +++ b/packages/xrpl/test/models/escrowCreate.test.ts @@ -82,12 +82,12 @@ describe('EscrowCreate', function () { assert.throws( () => validateEscrowCreate(escrow), ValidationError, - 'EscrowCreate: Amount must be a string', + 'EscrowCreate: Amount must be an Amount', ) assert.throws( () => validate(escrow), ValidationError, - 'EscrowCreate: Amount must be a string', + 'EscrowCreate: Amount must be an Amount', ) }) diff --git a/packages/xrpl/test/models/paymentChannelClaim.test.ts b/packages/xrpl/test/models/paymentChannelClaim.test.ts index af9c9735..f1958860 100644 --- a/packages/xrpl/test/models/paymentChannelClaim.test.ts +++ b/packages/xrpl/test/models/paymentChannelClaim.test.ts @@ -77,12 +77,12 @@ describe('PaymentChannelClaim', function () { assert.throws( () => validatePaymentChannelClaim(channel), ValidationError, - 'PaymentChannelClaim: Balance must be a string', + 'PaymentChannelClaim: Balance must be an Amount', ) assert.throws( () => validate(channel), ValidationError, - 'PaymentChannelClaim: Balance must be a string', + 'PaymentChannelClaim: Balance must be an Amount', ) }) @@ -92,12 +92,12 @@ describe('PaymentChannelClaim', function () { assert.throws( () => validatePaymentChannelClaim(channel), ValidationError, - 'PaymentChannelClaim: Amount must be a string', + 'PaymentChannelClaim: Amount must be an Amount', ) assert.throws( () => validate(channel), ValidationError, - 'PaymentChannelClaim: Amount must be a string', + 'PaymentChannelClaim: Amount must be an Amount', ) }) diff --git a/packages/xrpl/test/models/paymentChannelCreate.test.ts b/packages/xrpl/test/models/paymentChannelCreate.test.ts index 848132ad..8bf30ef3 100644 --- a/packages/xrpl/test/models/paymentChannelCreate.test.ts +++ b/packages/xrpl/test/models/paymentChannelCreate.test.ts @@ -106,12 +106,12 @@ describe('PaymentChannelCreate', function () { assert.throws( () => validatePaymentChannelCreate(channel), ValidationError, - 'PaymentChannelCreate: Amount must be a string', + 'PaymentChannelCreate: Amount must be an Amount', ) assert.throws( () => validate(channel), ValidationError, - 'PaymentChannelCreate: Amount must be a string', + 'PaymentChannelCreate: Amount must be an Amount', ) }) diff --git a/packages/xrpl/test/models/paymentChannelFund.test.ts b/packages/xrpl/test/models/paymentChannelFund.test.ts index 65c39c98..fd18f80f 100644 --- a/packages/xrpl/test/models/paymentChannelFund.test.ts +++ b/packages/xrpl/test/models/paymentChannelFund.test.ts @@ -70,12 +70,12 @@ describe('PaymentChannelFund', function () { assert.throws( () => validatePaymentChannelFund(channel), ValidationError, - 'PaymentChannelFund: Amount must be a string', + 'PaymentChannelFund: Amount must be an Amount', ) assert.throws( () => validate(channel), ValidationError, - 'PaymentChannelFund: Amount must be a string', + 'PaymentChannelFund: Amount must be an Amount', ) })