Compare commits

...

14 Commits

Author SHA1 Message Date
Denis Angell
bbfd0ff242 Publish
- @transia/xrpl@2.7.3-alpha.10
2023-08-25 17:36:37 +02:00
Denis Angell
b1b33794e0 fix set hook flags 2023-08-25 17:33:45 +02:00
Denis Angell
7ef8b696f8 add asfTshCollect flag 2023-08-05 23:23:14 -04:00
Denis Angell
184ef89ea5 Publish
- @transia/xrpl@2.7.3-alpha.9
2023-07-19 06:33:24 +02:00
Denis Angell
3182671df5 fixup 2023-07-19 06:32:57 +02:00
Denis Angell
5ad3d963f6 Publish
- @transia/xrpl@2.7.3-alpha.8
2023-07-19 06:29:02 +02:00
Wo Jake
2a35ac24c9 fix: enable the removal of a signer list (#2377)
`SignerQuorum` field has to be 0 and the `SignerEntrys` field has to be `undefined`

Co-authored-by: Caleb Kniffen <ckniffen@ripple.com>
2023-07-19 06:28:22 +02:00
Denis Angell
be156c9091 Publish
- @transia/xrpl@2.7.3-alpha.7
2023-07-17 20:25:11 +02:00
Denis Angell
cb3e24a497 fix bad interface 2023-07-17 20:23:51 +02:00
Denis Angell
cfbc46ee25 Publish
- @transia/xrpl@2.7.3-alpha.6
2023-07-12 22:43:35 +02:00
Denis Angell
54681cf821 add Issuer field to Import 2023-07-12 22:43:18 +02:00
Denis Angell
701d1fb209 Update package-lock.json 2023-07-12 22:41:39 +02:00
Denis Angell
57f1168d8c Publish
- @transia/xrpl@2.7.3-alpha.5
2023-07-07 17:47:15 +02:00
Denis Angell
63b01812b6 Update ledgerEntry.ts 2023-07-07 17:46:49 +02:00
9 changed files with 44 additions and 9 deletions

2
package-lock.json generated
View File

@@ -17188,7 +17188,7 @@
},
"packages/xrpl": {
"name": "@transia/xrpl",
"version": "2.7.3-alpha.3",
"version": "2.7.3-alpha.5",
"license": "ISC",
"dependencies": {
"@transia/ripple-address-codec": "^4.2.8-alpha.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@transia/xrpl",
"version": "2.7.3-alpha.4",
"version": "2.7.3-alpha.10",
"license": "ISC",
"description": "A TypeScript/JavaScript API for interacting with the XRP Ledger in Node.js and the browser",
"files": [

View File

@@ -3,11 +3,11 @@ import { Amount } from '../common'
import BaseLedgerEntry from './BaseLedgerEntry'
/**
* The HookState object type contains the
* The URIToken object type contains the
*
* @category Ledger Entries
*/
export default interface HookState extends BaseLedgerEntry {
export default interface URIToken extends BaseLedgerEntry {
LedgerEntryType: 'URIToken'
/**

View File

@@ -178,7 +178,7 @@ export interface LedgerEntryRequest extends BaseRequest {
* URIToken, as hexadecimal. If an object, the `issuer` and `uri`
* sub-fields are required to uniquely specify the URIToken entry.
*/
uritoken?:
uri_token?:
| {
/** The issuer of the URIToken object. */
issuer: string

View File

@@ -48,6 +48,7 @@ export enum AccountSetAsfFlags {
*/
asfAuthorizedNFTokenMinter = 10,
/** asf 11 is reserved for Hooks amendment */
asfTshCollect = 11,
/** Disallow other accounts from creating incoming NFTOffers */
asfDisallowIncomingNFTokenOffer = 12,
/** Disallow other accounts from creating incoming Checks */

View File

@@ -1,3 +1,5 @@
import { ValidationError } from '../../errors'
import { BaseTransaction, validateBaseTransaction } from './common'
/**
@@ -7,6 +9,10 @@ import { BaseTransaction, validateBaseTransaction } from './common'
*/
export interface Import extends BaseTransaction {
TransactionType: 'Import'
/**
*
*/
Issuer?: string
/**
* Hex value representing a VL Blob.
*/
@@ -21,4 +27,12 @@ export interface Import extends BaseTransaction {
*/
export function validateImport(tx: Record<string, unknown>): void {
validateBaseTransaction(tx)
if (tx.Issuer !== undefined && typeof tx.Issuer !== 'string') {
throw new ValidationError('Import: Issuer must be a string')
}
if (tx.Account === tx.Issuer) {
throw new ValidationError('Import: Issuer and Account must not be equal')
}
}

View File

@@ -14,10 +14,10 @@ export enum SetHookFlags {
hsfOverride = 0x00000001,
/**
*/
hsfNSDelete = 0x00000010,
hsfNSDelete = 0x0000002,
/**
*/
hsfCollect = 0x00000100,
hsfCollect = 0x00000004,
}
export interface SetHookFlagsInterface extends GlobalFlags {

View File

@@ -23,7 +23,7 @@ export interface SignerListSet extends BaseTransaction {
* more than 32 members. No address may appear more than once in the list, nor
* may the Account submitting the transaction appear in the list.
*/
SignerEntries: SignerEntry[]
SignerEntries?: SignerEntry[]
}
const MAX_SIGNERS = 32
@@ -36,6 +36,7 @@ const HEX_WALLET_LOCATOR_REGEX = /^[0-9A-Fa-f]{64}$/u
* @param tx - An SignerListSet Transaction.
* @throws When the SignerListSet is Malformed.
*/
// eslint-disable-next-line complexity -- validation can be complex
export function validateSignerListSet(tx: Record<string, unknown>): void {
validateBaseTransaction(tx)
@@ -47,6 +48,10 @@ export function validateSignerListSet(tx: Record<string, unknown>): void {
throw new ValidationError('SignerListSet: invalid SignerQuorum')
}
if (tx.SignerQuorum === 0) {
return
}
if (tx.SignerEntries === undefined) {
throw new ValidationError('SignerListSet: missing field SignerEntries')
}

View File

@@ -18,8 +18,9 @@ describe('SignerListSet', function () {
})
afterEach(async () => teardownClient(testContext))
// Add signerlist
it(
'base',
'add',
async () => {
const tx: SignerListSet = {
TransactionType: 'SignerListSet',
@@ -44,4 +45,18 @@ describe('SignerListSet', function () {
},
TIMEOUT,
)
// Remove signerlist
it(
'remove',
async () => {
const tx: SignerListSet = {
TransactionType: 'SignerListSet',
Account: testContext.wallet.classicAddress,
SignerQuorum: 0,
}
await testTransaction(testContext.client, tx, testContext.wallet)
},
TIMEOUT,
)
})