Commit Graph

73 Commits

Author SHA1 Message Date
Mayukha Vadari
91e7369f1b feat: add support for current sidechain design (#2039)
* 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
2023-09-26 10:01:21 -04:00
Jackson Mills
49447a9beb ci: Add a script to generate changes to ci-config (#2431)
* Add basic lookup for amendments
2023-08-18 15:24:48 -07:00
Omar Khan
5581474627 feat: add AMM support (#2071)
* update definitions.json

* add AMMInstanceCreate

* renamed LPTokens to LPToken in definitions.json

* update HISTORY.md

* add amm_info RPC command

* add AMMDeposit

* use null check for missing fields

* add AMMWithdraw

* add AMMVote

* fix lint error

* add max trading fee check to AMMVote

* refactor MAX_TRADING_FEE to be in one place

* add AMMBid

* add AuthAccount interface to AMMBid

* refactor tests

* add AMMID to AMMInfoResponse

* update amm_info docstrings

* fix EPrice type to be Amount

* update EPrice validation error message and add missing tests

* update definitions to fix AMM in LEDGER_ENTRY_TYPES

* add missing test case Asset1In and Asset2In valid

* add missing test case Asset1Out and Asset2Out valid

* add negative FeeVal check

* update HISTORY.md to specify XLS-30

* update wording on AMMDeposit & AMMWithdraw validation errors

* add negative TradingFee check

* fix ammInfo response

* add AMMID as optional param in ammInfo response

* fix EPrice validation checks in AMMDeposit & AMMWithdraw

* add VoteSlots as optional param in AMMInfoResponse

* update VoteEntry interface

* fix deposit and withdraw tests

* fix AMMBid ValidationError

* update definitions.json with different AuthAccounts number

* Change amm_info asset parameters to Currency type

* API name changes with updated definitions.json

* rename amm_info param asset1 -> asset

* fix typo

* change AMM_MAX_TRADING_FEE to 1%

* Use Asset/Asset2 instead of AMMID for Deposit/Withdraw/Bid/Vote

* add Deposit/Withdraw flags

* rename FeeVal -> TradingFee in VoteEntry

* rename MinBidPrice -> BidMin and MaxBidPrice -> BidMax

* update definitions to change Asset & Asset2 nth values to 3 & 4

* update definitions

* add Issue type and tests for Asset/Asset2

* remove AMMID from amm_info and use Issue type

* update amm_info fields

* fix lint errors

* update unit tests

* add AMM codec-fixtures

* update Issue type

* add one asset and withdraw all tests

* refactor amm_info response fields to match AMMDevnet

* update definitions.json with refactored error codes

* update ammInfo.ts response model

* remove invalid fields from ammInfo.ts response model

* update time_interval description

* rename test model names and fix lint errors

* add Owner Reserve Fee for AMMCreate transaction

* add missing asset_frozen field

* replace Issue with IssuedCurrency

* refactor: convert flags to number

* update asset pair to use Currency type

* refactor isIssue to isCurrency

* add AMM ledger entry object, lsfAMM flag, amm fields to LedgerEntryRequest

* update definitions.json

* WIP defintions

* update codec-fixtures

* fix definitions test

* update DiscountedFee definition

* update definitions

* update codec-fixtures

* update definitions

* update unit tests

* update amm_info response

* sort imports/exports

* update jsdoc

* update amm_info jsdoc

* update jsdoc

* convert caution to all caps

* add validation for AuthAccounts

* refactor and export interfaces

* use Currency type

* update definitions

* add AMMDelete

* rename Issue to Currency in error message

* mark asset frozen as optional fields

* refactor isAuthAccounts

* add AMMDelete jsdoc

* rename to validateAuthAccounts

* fix typo

* fix typo in unit test

---------

Co-authored-by: Caleb Kniffen <ckniffen@ripple.com>
2023-08-17 22:42:32 -04:00
Shawn Xie
63ea6e8c9b feat: add Clawback amendment support (#2353)
* Add Clawback transaction
* Account flag lsfAllowTrustLineClawback
* Support bitwise flag checking of 64 bit flags
2023-07-19 14:39:48 -05:00
Wietse Wind
d47a277e25 Fix #2361 - Custom definitions in STArray»STObject (#2362)
Custom binary codec fixes xrpl.js#2361 - missed param def
2023-07-14 09:45:31 -05:00
Jackson Mills
0c6ea2afe2 feat: modifiable definitions.json values at runtime via encode/decode parameter (#2127) 2023-03-16 10:35:50 -07:00
justinr1234
5fe480ece4 feat: Jest Test Runner (#2170) 2023-02-03 17:03:07 -06:00
pdp2121
c74ffddf59 fix: unset hash128 fields using AccountSet (#2156) 2023-02-01 12:27:02 -05:00
Mayukha Vadari
d7c3583a8f refactor: use xrpl-codec-gen for definitions.json (#2037)
* Update definitions.json

* update CONTRIBUTING

* fix tests

* fix UNL
2022-07-19 21:01:19 +01:00
Jackson Mills
89240eae62 Handle edge cases for standard currency code signing (#2009)
* Allow decoding symbols + lowercase standard codes
* Standardize the treatment of standard codes and hex codes for verifying transaction equivalence
2022-06-17 14:27:47 -07:00
Jackson Mills
c994ac7b65 Add better error for trying to encode invalid transactions (#2001) 2022-05-24 15:57:08 -07:00
Omar Khan
9d94f4a8ab rename XLS-20 fields (#1966)
* rename TokenTaxon -> NFTokenTaxon

* rename MintedTokens -> MintedNFTokens

* rename BurnedTokens -> BurnedNFTokens

* update binary for NFTokenID rename

* rename TokenID -> NFTokenID

* rename TokenOffers -> NFTokenOffers

* rename BrokerFee -> NFTokenBrokerFee

* rename Minter -> NFTokenMinter

* rename NonFungibleToken -> NFToken

* rename NonFungibleTokens -> NFTokens

* rename BuyOffer -> NFTokenBuyOffer

* rename SellOffer -> NFTokenSellOffer

* rename OfferNode -> NFTokenOfferNode

* fix binary for serialize tests

* Add missing MintedNFTokens def + fix tests

* nftokenid -> nft_id

* asfAuthorizedMinter -> asfAuthorizedNFTokenMinter

* Update tec/tem error codes

* Add new definitions

* Update HISTORY.md

* Change to 1.4.0 for binary-codec

* Docgen

* Update HISTORY.md

Co-authored-by: Jackson Mills <jmills@ripple.com>
2022-04-19 10:02:18 -07:00
Jackson Mills
b0e0f9f329 Remove exception from decoding issued currencies which evaluate to 'XRP' (#1920)
* Remove throw and revise tests

* Update chai dependency

* Disabling linter error about extraneous import

* Fix typo in test description

* Revert unnecessary test changes

* Remove unnecessary comments

* Revert chai change

* Add HISTORY.md

* Revert chai change in package-lock as well

* Fix typo

* Check the result of the decoding

* Update tests with correct expected behavior.

* Fix tests and update currency.js

* Update currency.ts
2022-02-02 18:05:42 -05:00
Omar Khan
8f79c51c7c [ripple-binary-codec] fix ISO when parsing currency code (#1921) 2022-02-02 17:52:08 -05:00
ledhed2222
46a8adcac9 feat: NFT support (#1829)
* add NFTokenBurn and NFTokenMint

* add NFTokenCreateOffer

* add NFTokenCancelOffer

* add NFTokenAcceptOffer

* add requests and responses

* make a beta 2.1.0

* rename TokenIDs to TokenOffers

* add validations and fixup docs

* add tests

* add missing error codes to binary codec

* adds history changes
2021-12-17 18:26:47 -05:00
Mayukha Vadari
fe845de884 fix: encoding issue with encoding non-traditional currency codes (#1857)
* add test

* fix decoding issue
2021-12-02 14:43:26 -05:00
Mayukha Vadari
fc101c6733 fix: add workaround for rippled UNLModify encoding bug (#1830)
* initial patch

* clean up

* make ts happy

* fix typing

* respond to comments

* Revert "respond to comments"

This reverts commit 689768bbf1.

* Publish

 - ripple-address-codec@4.2.1-beta.0
 - ripple-binary-codec@1.2.1-beta.0
 - ripple-keypairs@1.1.1-beta.0
 - xrpl@2.0.3-beta.0

* add helper comments

Co-authored-by: Nathan Nichols <natenichols@cox.net>
2021-11-30 17:16:03 -05:00
ledhed2222
7cb38591ac add support for nfts in binary codec (#1797) 2021-11-15 17:08:37 -05:00
Greg Weisbrod
afd6aadaf1 run prettier on all packages 2021-11-12 02:41:28 -05:00
Greg Weisbrod
43b55ab598 run 'npx lerna link convert' to hoist common devDependencies to top 2021-11-08 18:19:45 -05:00
ledhed2222
869e6e2553 migrate from yarn to npm (#148)
* migrate from yarn to npm

* fix unrelated prettier error
2021-10-13 16:11:55 -04:00
Mayukha Vadari
51bd22e34a add test 2021-06-25 10:51:59 -04:00
Mayukha Vadari
f25aecd853 fix encoding problems 2021-06-24 17:35:49 -04:00
Nathan Nichols
c149ec87ea fix: allow lowercase hex in Uint64 (#135) 2021-06-11 10:58:15 -07:00
Nathan Nichols
c63c235a05 fix: Encode hex strings length <16 to match rippled (#133) 2021-06-08 16:40:48 -07:00
Nathan Nichols
53c72b7045 fix: edge case constructing from string '0' (#121)
* fix: edge case constructing from string '0'
2021-03-10 11:36:01 -06:00
Nathan Nichols
6c537c0dc3 X-Address Encoding in Issued Currencies (#113)
* feat(account): allow issued currency to use x-address
2021-02-04 14:24:34 -06:00
Nathan Nichols
5a711afb7e fix: polyfill Buffer for browser compatibility (#112)
* Polyfill with "buffer" and "assert" for browser environments
* Instead of relying on webpack to make this library browser compatible, we now use a buffer library that provides a polyfill when used in the browser
2020-12-03 21:38:57 -06:00
elmurci
b023e9b35b fix(tickets): Field codes for TicketCount and TicketSequence (#111)
* fix(tickets): Field codes for TicketCount and TicketSequence
BeginLedgerSeq was taking the place of TicketCount (40) in definitions.
From a8d481c2a5/src/ripple/protocol/impl/SField.cpp
TicketCount should be 40 and TicketSequence 41.
BeginLedgerSeq doesn't seem to be used, so removing it

* fix(ci): fix tests ci
2020-11-23 21:51:03 +01:00
elmurci
479ade8a76 Tickets support (#110)
* feat(tickets): add TicketCount definition

* feat(tickets): add TicketSequence definition

* fix(tests): unit tests
2020-11-17 17:33:20 +01:00
Nathan Nichols
b43e79a9af Browser Compatibility Updates (#107)
* BigInt -> big-integer to support older browsers
* Buffer read/write BigUInt64 removed for browser compatibility.
2020-10-22 15:36:45 -05:00
Nathan Nichols
b197897227 Encode any 3 character ASCII currency code (#106)
* Encode all 3 character ASCII codes
2020-09-14 13:09:38 -05:00
Nathan Nichols
a5559825ae Filter undefined values (#105)
filter out fields with undefined values
2020-09-08 17:17:14 -05:00
Nathan Nichols
b14f055c6c Linter config lints test directory (#99)
Modify eslint config to lint ./test/
2020-08-21 17:04:14 -05:00
Nathan Nichols
440e9922d7 X-address compatibility (#90)
ripple-binary-codec can encode transactions with X-Addresses
2020-08-21 14:06:09 -05:00
Nathan Nichols
d1b23a8b2d Add tests for parsing lower-case hex-strings (#97)
Add one test suite to verify that ripple-binary-codec could handle lower-case hex-strings.
2020-08-20 17:30:50 -05:00
Nathan Nichols
30ff63e653 Support encoding and decoding of NegativeUNL pseudo-transactions (#89)
* Support encoding and decoding of NegativeUNL pseudo-transactions
2020-08-13 12:20:12 -05:00
Nathan Nichols
2e6c68ba73 ripple-binary-codec refactor (#88)
Refactored all components in ripple-binary-codec /src
2020-07-31 09:14:11 -05:00
Nathan Nichols
383ab88d62 refactored src/types (#86)
Final refactor of the src/types directory. Refactored Amount and STObject classes, and finalized SerializedType and Comparable classes.
2020-07-20 11:02:59 -05:00
Nathan Nichols
ba04ea5f1f Refactored UInt and Derived Classes (#83)
Refactored UInt and Derived classes to be constructed from Buffers, and swapped out BN.js in favor of BigInt to reduce dependencies.
2020-07-10 15:24:49 -05:00
Nathan Nichols
2b8fba0c8a Refactor ./src/types Hash and derived types (#82)
Refactored Hash and derived types.
2020-07-09 16:04:29 -05:00
Nathan Nichols
8ac03699aa Check field_code and type_code when readFieldOrdinal() is called (#81)
Added verification that nth and type are valid when read from BinaryParser
2020-07-07 13:58:24 -05:00
Nathan Nichols
485ec4e924 Refactored ./src/serdes (#79)
Refactored `serdes` to use TypeScript Classes and documented functionality.
2020-07-06 16:16:32 -05:00
Nathan Nichols
cd0eb2b623 Refactor ./src/enums (#73)
* rewrote enums in TS
* changed folder name to src/definitions
2020-06-30 14:29:29 -07:00
Nathan Nichols
a930b9413c Initial change from Babel/JS to TypeScript (#70)
* will compile as typescript

* migrated test suite to use JestJS

* Migrated to Jest testing framework and typescript source files

* updated deps

* updated prepublish

* resolved 1 failing test

* changed decimal .0 on four tests, it appears that these were the only four tests expecting integer values to have '.0'

* added linter

* added package-lock

* removed tslint in favor of eslint

* changed yarn to npm

* updated version 2.6->3.0

* removing package lock

* updated node version in nvmrc and jest version in package

* removed nvmrc

* removed some unused functions

* replaced data driven with file from master

* commitint yarn.lock

* removing babel as a dependency in favor of typescript compiling to es5

* removing babel deps

* resolved testing issues by migrating helper function

* added partial linting functionality for test suite

* updated imports for decodeLedgerData

* updated test

* updated yarn.lock

* removed a console.log

* added eslint-jest-plugin to package

* reverting to old linting, will add linting in next PR

* removed comments in shamap

* re-adding .nvmrc

* npm -> yarn

* added . to .eslintrc

* added .eslintrc

* removing linting for this PR

* Changed linting to print a message so that linting doesnt fail in CI

* changing back

* added newline so diff wont show

* removed eslint deps, since linting will be dealt with in a later PR

* changed function calls to describe(...)
2020-06-24 09:00:28 -07:00
dependabot-preview[bot]
16b1b91a76 Bump eslint from 4.18.2 to 7.0.0 (#60)
* Bump eslint from 4.18.2 to 7.0.0

Bumps [eslint](https://github.com/eslint/eslint) from 4.18.2 to 7.0.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v4.18.2...v7.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Fix linting

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Elliot Lee <github.public@intelliot.com>
2020-05-19 11:49:10 -07:00
William Swanson
0a55ba64fa Fix node 12 compatibility (#33)
The unit tests were comparing things of different types, which failed under the stricter checks.
2019-08-29 17:54:42 -07:00
Elliot Lee
b53f336a2a Update mocha
- Update mocha.opts to use --require

When updating to Babel v7, this may need to be changed. For details,
see: https://github.com/mochajs/mocha/wiki/compilers-deprecation
2019-07-26 17:08:29 -07:00
Elliot Lee
da5edb0b3b Throw an error when Amount or Fee contains a decimal (Fix #31)
Thanks to @jwbusch for review
2019-07-26 16:53:25 -07:00
Elliot Lee
b775a6f3c8 Disable lint rule on 2 lines in test file 2019-07-17 00:40:06 -07:00