Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
2d1756a
add basic support
mvadari Mar 10, 2025
2727e2b
reorg escrow tests
mvadari Mar 11, 2025
6987461
fix rbc ignoring unknown fields
mvadari Mar 11, 2025
168c08d
add tests, fix issues
mvadari Mar 11, 2025
93cf7d5
fix test
mvadari Mar 11, 2025
d6e84d8
update FeeSettings
mvadari Mar 25, 2025
da1a30e
bump versions
mvadari Mar 26, 2025
4934ad3
update package-lock
mvadari Mar 26, 2025
670d99e
add faucet
mvadari Mar 28, 2025
735bb6b
fix faucet
mvadari Mar 28, 2025
57cb6b2
remove console
mvadari Mar 28, 2025
9b383a0
Merge branch 'main' into smart-escrows
mvadari Mar 28, 2025
bfae078
update beta version
mvadari Mar 28, 2025
377a693
Merge branch 'main' into smart-escrows
mvadari Apr 23, 2025
2412156
update for Devnet 2
mvadari Apr 29, 2025
836aaa0
Merge branch 'main' into smart-escrows
mvadari Apr 29, 2025
169e5f4
update definitions
mvadari May 2, 2025
3e422a0
bump versions
mvadari May 2, 2025
a5e2e34
npm i
mvadari May 2, 2025
b0a58b6
Merge branch 'main' into smart-escrows
mvadari May 29, 2025
da1d820
fix integration test
mvadari May 29, 2025
d866d66
update versions
mvadari May 29, 2025
0bb80b0
Merge branch 'main' into smart-escrows
mvadari Jun 5, 2025
64ad891
Merge branch 'main' into smart-escrows
mvadari Jun 8, 2025
69d74c6
Merge branch 'main' into smart-escrows
mvadari Jul 3, 2025
8c10cb5
Merge branch 'main' into smart-escrows
mvadari Jul 8, 2025
dc2c789
bump version
mvadari Jul 10, 2025
f16a41f
Update CONTRIBUTING.md
mvadari Jul 10, 2025
9356310
update contributing
mvadari Jul 10, 2025
3955258
Merge branch 'main' into smart-escrows
mvadari Jul 30, 2025
038048a
fix tests
mvadari Jul 30, 2025
bfdbae1
fix tests
mvadari Jul 30, 2025
ef575cc
add metadata fields
mvadari Aug 4, 2025
b986b1d
bump version
mvadari Aug 4, 2025
d3fde69
fix nvmrc
mvadari Aug 4, 2025
e70528e
update fee
mvadari Sep 12, 2025
e491978
Merge branch 'main' into smart-escrows
mvadari Sep 12, 2025
09e7df1
fix tests
mvadari Sep 12, 2025
f9f0f21
fix linter
mvadari Sep 12, 2025
b691db9
update FeeSettings/SetFee
mvadari Sep 12, 2025
b253346
make changes to binary codec
mvadari Sep 15, 2025
7cf28e0
add more tests
mvadari Sep 15, 2025
d93eff4
bump versions
mvadari Sep 15, 2025
8222105
fix int32
mvadari Sep 15, 2025
2176863
bump version
mvadari Sep 15, 2025
9472384
Update definitions.json
mvadari Oct 8, 2025
472bc75
Merge branch 'main' into smart-escrows
mvadari Oct 8, 2025
11a2b0a
Update package-lock.json
mvadari Oct 24, 2025
e6ec6fb
bump versions
mvadari Oct 28, 2025
8e98257
fix faucet tests
mvadari Oct 28, 2025
851abaf
remove run_tests as a blocker
mvadari Oct 28, 2025
5c5980d
bump versions
mvadari Oct 29, 2025
32c29ba
Merge branch 'main' into smart-escrows
mvadari Oct 29, 2025
86c1ec0
Merge branch 'main' into smart-escrows
mvadari Dec 24, 2025
dd05235
Merge branch 'main' into smart-escrows
mvadari Jan 23, 2026
d49039a
Update definitions.json
mvadari Jan 23, 2026
207ae06
fix unit tests
mvadari Jan 23, 2026
9a8471a
fix freal
mvadari Jan 23, 2026
2b46cd5
Merge branch 'main' into smart-escrows
mvadari Feb 11, 2026
ef6b649
fix definitions
mvadari Feb 11, 2026
2880447
fix tests
mvadari Feb 11, 2026
feac5ae
bump version
mvadari Feb 11, 2026
fd1e6aa
remove console.log
mvadari Feb 11, 2026
9b40a8c
Merge branch 'main' into smart-escrows
mvadari Feb 12, 2026
46d03b8
Merge remote-tracking branch 'origin/main' into smart-escrows
mvadari Feb 12, 2026
0534c55
Merge branch 'main' into smart-escrows
mvadari Feb 18, 2026
f99d72d
Merge branch 'main' into smart-escrows
mvadari Feb 27, 2026
3fcd86b
Merge branch 'main' into smart-escrows
mvadari Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .github/workflows/faucet_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
workflow_call:
inputs:
git_ref:
description: 'Git ref to checkout (branch, tag, or commit SHA)'
description: "Git ref to checkout (branch, tag, or commit SHA)"
required: true
type: string
run_faucet_tests:
Expand All @@ -16,7 +16,6 @@ on:
type: boolean
default: true


jobs:
faucet-test:
if: ${{ github.event_name != 'workflow_dispatch' || inputs.run_faucet_tests != false }}
Expand All @@ -26,7 +25,7 @@ jobs:
strategy:
max-parallel: 1
matrix:
node-version: [18.x]
node-version: [20.x]

steps:
- uses: actions/checkout@v4
Expand Down
29 changes: 14 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
description: "Package folder (Name of the package directory under packages/ folder. e.g., xrpl, ripple-address-codec)"
required: true
release_branch_name:
description: 'Name of the release branch to be used'
description: "Name of the release branch to be used"
required: true
npmjs_dist_tag:
description: "npm distribution tag(Read more https://docs.npmjs.com/adding-dist-tags-to-packages)"
Expand Down Expand Up @@ -124,7 +124,6 @@ jobs:
echo "dist_tag=$NPM_DIST_TAG"
} >> "$GITHUB_OUTPUT"


- name: Get package version from package.json
id: get_version
env:
Expand Down Expand Up @@ -497,14 +496,14 @@ jobs:
if: always()
shell: bash
env:
SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }}
CHANNEL: "#xrpl-js"
EXECUTOR: ${{ github.triggering_actor || github.actor }}
RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
REPO: ${{ github.repository }}
RUN_ID: ${{ github.run_id }}
DEV_REVIEWERS: ${{ steps.get_reviewers.outputs.reviewers_dev }}
PR_URL: ${{ needs.pre_release.outputs.release_pr_url }}
SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }}
CHANNEL: "#xrpl-js"
EXECUTOR: ${{ github.triggering_actor || github.actor }}
RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
REPO: ${{ github.repository }}
RUN_ID: ${{ github.run_id }}
DEV_REVIEWERS: ${{ steps.get_reviewers.outputs.reviewers_dev }}
PR_URL: ${{ needs.pre_release.outputs.release_pr_url }}
run: |
set -euo pipefail
RUN_URL="https://github.com/${REPO}/actions/runs/${RUN_ID}"
Expand All @@ -531,7 +530,7 @@ jobs:
run_faucet_test,
run_tests,
pre_release,
ask_for_dev_team_review
ask_for_dev_team_review,
]
name: First approval (dev team)
environment:
Expand All @@ -551,7 +550,7 @@ jobs:
run_tests,
pre_release,
ask_for_dev_team_review,
first_review
first_review,
]
name: Invite sec team to review
steps:
Expand Down Expand Up @@ -592,7 +591,7 @@ jobs:
pre_release,
ask_for_dev_team_review,
first_review,
ask_for_sec_team_review
ask_for_sec_team_review,
]

name: Release for ${{ needs.get_version.outputs.package_version }}
Expand All @@ -614,7 +613,7 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org/'
registry-url: "https://registry.npmjs.org/"
- name: Checkout release branch
uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -732,7 +731,7 @@ jobs:
first_review,
ask_for_sec_team_review,
release,
generate-documentation
generate-documentation,
]
if: >-
${{ always() && (
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -254,9 +254,9 @@ Note: The same updated config can be used to update xrpl-py's CI as well.
10. Checkout `main` and `git pull` (you can skip this step for a beta since you already have the latest version of the beta branch).
11. Actually publish the packages with one of the following:

- Stable release: Run `npx lerna publish from-package --yes`
- Beta release: Run `npx lerna publish from-package --dist-tag beta --yes`
Notice this allows developers to install the package with `npm add xrpl@beta`
- Stable release: Run `npx lerna publish from-package --yes --registry=https://registry.npmjs.org`
- Beta release: Run `npx lerna publish from-package --dist-tag beta --yes --registry=https://registry.npmjs.org`
Notice this allows developers to install the package with `npm add xrpl@beta`. Custom tags are also supported and are recommended for amendment betas.

12. If requested, enter your [npmjs.com](https://npmjs.com) OTP (one-time password) to complete publication.

Expand Down
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/ripple-binary-codec/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ripple-binary-codec",
"version": "2.7.0",
"version": "2.7.0-smartescrow.0",
"description": "XRP Ledger binary codec",
"files": [
"dist/*",
Expand Down
75 changes: 75 additions & 0 deletions packages/ripple-binary-codec/src/enums/definitions.json
Original file line number Diff line number Diff line change
Expand Up @@ -850,6 +850,56 @@
"type": "UInt32"
}
],
[
"ExtensionComputeLimit",
{
"isSerialized": true,
"isSigningField": true,
"isVLEncoded": false,
"nth": 69,
"type": "UInt32"
}
],
[
"ExtensionSizeLimit",
{
"isSerialized": true,
"isSigningField": true,
"isVLEncoded": false,
"nth": 70,
"type": "UInt32"
}
],
[
"GasPrice",
{
"isSerialized": true,
"isSigningField": true,
"isVLEncoded": false,
"nth": 71,
"type": "UInt32"
}
],
[
"ComputationAllowance",
{
"isSerialized": true,
"isSigningField": true,
"isVLEncoded": false,
"nth": 72,
"type": "UInt32"
}
],
[
"GasUsed",
{
"isSerialized": true,
"isSigningField": true,
"isVLEncoded": false,
"nth": 73,
"type": "UInt32"
}
],
[
"IndexNext",
{
Expand Down Expand Up @@ -2100,6 +2150,16 @@
"type": "Blob"
}
],
[
"FinishFunction",
{
"isSerialized": true,
"isSigningField": true,
"isVLEncoded": true,
"nth": 32,
"type": "Blob"
}
],
[
"Account",
{
Expand Down Expand Up @@ -2490,6 +2550,16 @@
"type": "Int32"
}
],
[
"WasmReturnCode",
{
"isSerialized": true,
"isSigningField": true,
"isVLEncoded": false,
"nth": 2,
"type": "Int32"
}
],
[
"TransactionMetaData",
{
Expand Down Expand Up @@ -3531,6 +3601,7 @@
"tecUNFUNDED_AMM": 162,
"tecUNFUNDED_OFFER": 103,
"tecUNFUNDED_PAYMENT": 104,
"tecWASM_REJECTED": 199,
"tecWRONG_ASSET": 194,
"tecXCHAIN_ACCOUNT_CREATE_PAST": 181,
"tecXCHAIN_ACCOUNT_CREATE_TOO_MANY": 182,
Expand Down Expand Up @@ -3569,8 +3640,10 @@
"tefNOT_MULTI_SIGNING": -184,
"tefNO_AUTH_REQUIRED": -191,
"tefNO_TICKET": -180,
"tefNO_WASM": -177,
"tefPAST_SEQ": -190,
"tefTOO_BIG": -181,
"tefWASM_FIELD_NOT_INCLUDED": -176,
"tefWRONG_PRIOR": -189,

"telBAD_DOMAIN": -398,
Expand Down Expand Up @@ -3618,6 +3691,7 @@
"temBAD_TICK_SIZE": -269,
"temBAD_TRANSFER_FEE": -251,
"temBAD_TRANSFER_RATE": -280,
"temBAD_WASM": -249,
"temBAD_WEIGHT": -270,
"temCANNOT_PREAUTH_SELF": -267,
"temDISABLED": -273,
Expand All @@ -3633,6 +3707,7 @@
"temREDUNDANT": -275,
"temRIPPLE_EMPTY": -274,
"temSEQ_AND_TICKET": -263,
"temTEMP_DISABLED": -248,
"temUNCERTAIN": -265,
"temUNKNOWN": -264,
"temXCHAIN_BAD_PROOF": -259,
Expand Down
27 changes: 27 additions & 0 deletions packages/ripple-binary-codec/test/fixtures/codec-fixtures.json
Original file line number Diff line number Diff line change
Expand Up @@ -5213,6 +5213,33 @@
"issuer": "rfVe1DnuC7nuvGWTAFzBxaTxroEiD8XZ3w"
}
}
},
{
"binary": "201C0000000020490000197CA2FFFFFF00F8E511006125002C6B905563F4B97FFBA6D65B7C507DD24E157ADF1BED3AFF2B8EC73741B8E1BEE9F1A0A55698DC3588FBDB6A91CCF5DB14E8523E8DB7E4574C92818E87A2236A5906C71021E624002C6B8F624000000005F5E100E1E7220000000024002C6B902D00000000624000000005E69EB48114F69B176FEEA1193FE503C3D229BCBA1126916B02E1E1F10310C7",
"json": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"Account": "rP7Ap93CjnFxzcGXPszoD9CQHniSJYCboN",
"Balance": "98999988",
"Flags": 0,
"OwnerCount": 0,
"Sequence": 2911120
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "98DC3588FBDB6A91CCF5DB14E8523E8DB7E4574C92818E87A2236A5906C71021",
"PreviousFields": { "Balance": "100000000", "Sequence": 2911119 },
"PreviousTxnID": "63F4B97FFBA6D65B7C507DD24E157ADF1BED3AFF2B8EC73741B8E1BEE9F1A0A5",
"PreviousTxnLgrSeq": 2911120
}
}
],
"GasUsed": 6524,
"TransactionIndex": 0,
"TransactionResult": "tecWASM_REJECTED",
"WasmReturnCode": -256
}
}
],
"ledgerData": [
Expand Down
10 changes: 9 additions & 1 deletion packages/ripple-binary-codec/test/uint.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { UInt8, UInt16, UInt32, UInt64 } from '../src/types'
import { UInt8, UInt16, UInt32, UInt64, Int32 } from '../src/types'
import { encode, decode } from '../src'

const binary =
Expand Down Expand Up @@ -162,6 +162,14 @@ it('compareToTest[7]', () => {
expect(UInt8.from(124).compareTo(13)).toBe(1)
})

it('compareToTest[8]', () => {
expect(Int32.from(124).compareTo(UInt64.from(124))).toBe(0)
})

it('compareToTest[9]', () => {
expect(Int32.from(125).compareTo(UInt64.from(124))).toBe(1)
})

it('UInt64 from string zero', () => {
expect(UInt64.from('0')).toEqual(UInt64.from(0))
expect(encode(json)).toEqual(binary)
Expand Down
8 changes: 4 additions & 4 deletions packages/xrpl/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xrpl",
"version": "4.6.0",
"version": "4.6.0-smartescrow.0",
"license": "ISC",
"description": "A TypeScript/JavaScript API for interacting with the XRP Ledger in Node.js and the browser",
"files": [
Expand Down Expand Up @@ -28,10 +28,10 @@
"@xrplf/secret-numbers": "^2.0.0",
"bignumber.js": "^9.0.0",
"eventemitter3": "^5.0.1",
"fast-json-stable-stringify": "^2.1.0",
"ripple-address-codec": "^5.0.0",
"ripple-binary-codec": "^2.7.0",
"ripple-keypairs": "^2.0.0",
"fast-json-stable-stringify": "^2.1.0"
"ripple-binary-codec": "^2.7.0-smartescrow.0",
"ripple-keypairs": "^2.0.0"
},
"devDependencies": {
"@types/node": "^18.18.38",
Expand Down
5 changes: 5 additions & 0 deletions packages/xrpl/src/Wallet/defaultFaucets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,22 @@ export interface FaucetWallet {
export enum FaucetNetwork {
Testnet = 'faucet.altnet.rippletest.net',
Devnet = 'faucet.devnet.rippletest.net',
WasmDevnet = 'wasmfaucet.devnet.rippletest.net',
}

export const faucetNetworkPaths: Record<string, string> = {
[FaucetNetwork.Testnet]: '/accounts',
[FaucetNetwork.Devnet]: '/accounts',
[FaucetNetwork.WasmDevnet]: '/accounts',
}

/* eslint-disable @typescript-eslint/no-magic-numbers -- this is where they're being defined */
export const faucetNetworkIDs: Map<number, FaucetNetwork> = new Map([
[1, FaucetNetwork.Testnet],
[2, FaucetNetwork.Devnet],
[2002, FaucetNetwork.WasmDevnet],
])
/* eslint-enable @typescript-eslint/no-magic-numbers */

/**
* Get the faucet host based on the Client connection.
Expand Down
Loading
Loading