Skip to content
This repository was archived by the owner on Jan 22, 2024. It is now read-only.

Commit 5845680

Browse files
keefertaylortedkalawKeefer TaylorAmie
authored
Serialize Transaction Data for all Transaction Types (#522)
* Impelments trustSetToJSON * Adds more tests * Serialize signerentry * serialize lists of signer entries * SignerListSet ser * Finish Transaction Data * more work * fix build Co-authored-by: Ted Kalaw <ted.kalaw@gmail.com> Co-authored-by: Keefer Taylor <keefer@keefertaylor.com> Co-authored-by: Amie <acorso@ripple.com>
1 parent 6b1772c commit 5845680

File tree

1 file changed

+94
-4
lines changed

1 file changed

+94
-4
lines changed

src/XRP/serializer.ts

Lines changed: 94 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1937,6 +1937,7 @@ function getNormalizedAccount(transaction: Transaction): string | undefined {
19371937
*
19381938
* @throws An error if given a transaction that we do not know how to handle.
19391939
*/
1940+
// TODO(keefertaylor): There is no reason this should be separate from the serializer functionality. Move into `serializer` object.
19401941
// eslint-disable-next-line max-statements -- No clear way to make this more succinct because gRPC is verbose
19411942
function getAdditionalTransactionData(
19421943
transaction: Transaction,
@@ -1949,7 +1950,6 @@ function getAdditionalTransactionData(
19491950
if (accountDelete === undefined) {
19501951
return undefined
19511952
}
1952-
19531953
return serializer.accountDeleteToJSON(accountDelete)
19541954
}
19551955
case Transaction.TransactionDataCase.ACCOUNT_SET: {
@@ -1959,22 +1959,112 @@ function getAdditionalTransactionData(
19591959
}
19601960
return serializer.accountSetToJSON(accountSet)
19611961
}
1962+
case Transaction.TransactionDataCase.CHECK_CANCEL: {
1963+
const checkCancel = transaction.getCheckCancel()
1964+
if (checkCancel === undefined) {
1965+
return undefined
1966+
}
1967+
return serializer.checkCancelToJSON(checkCancel)
1968+
}
1969+
case Transaction.TransactionDataCase.CHECK_CASH: {
1970+
const checkCash = transaction.getCheckCash()
1971+
if (checkCash === undefined) {
1972+
return undefined
1973+
}
1974+
return serializer.checkCashToJSON(checkCash)
1975+
}
1976+
case Transaction.TransactionDataCase.CHECK_CREATE: {
1977+
const checkCreate = transaction.getCheckCreate()
1978+
if (checkCreate === undefined) {
1979+
return undefined
1980+
}
1981+
return serializer.checkCreateToJSON(checkCreate)
1982+
}
19621983
case Transaction.TransactionDataCase.DEPOSIT_PREAUTH: {
19631984
const depositPreauth = transaction.getDepositPreauth()
19641985
if (depositPreauth === undefined) {
19651986
return undefined
19661987
}
1967-
19681988
return serializer.depositPreauthToJSON(depositPreauth)
19691989
}
1990+
case Transaction.TransactionDataCase.ESCROW_CANCEL: {
1991+
const escrowCancel = transaction.getEscrowCancel()
1992+
if (escrowCancel === undefined) {
1993+
return undefined
1994+
}
1995+
return serializer.escrowCancelToJSON(escrowCancel)
1996+
}
1997+
case Transaction.TransactionDataCase.ESCROW_CREATE: {
1998+
const escrowCreate = transaction.getEscrowCreate()
1999+
if (escrowCreate === undefined) {
2000+
return undefined
2001+
}
2002+
return serializer.escrowCreateToJSON(escrowCreate)
2003+
}
2004+
case Transaction.TransactionDataCase.ESCROW_FINISH: {
2005+
const escrowFinish = transaction.getEscrowFinish()
2006+
if (escrowFinish === undefined) {
2007+
return undefined
2008+
}
2009+
return serializer.escrowFinishToJSON(escrowFinish)
2010+
}
2011+
case Transaction.TransactionDataCase.OFFER_CANCEL: {
2012+
const offerCancel = transaction.getOfferCancel()
2013+
if (offerCancel === undefined) {
2014+
return undefined
2015+
}
2016+
return serializer.offerCancelToJSON(offerCancel)
2017+
}
2018+
case Transaction.TransactionDataCase.OFFER_CREATE: {
2019+
const offerCreate = transaction.getOfferCreate()
2020+
if (offerCreate === undefined) {
2021+
return undefined
2022+
}
2023+
return serializer.offerCreateToJSON(offerCreate)
2024+
}
19702025
case Transaction.TransactionDataCase.PAYMENT: {
19712026
const payment = transaction.getPayment()
19722027
if (payment === undefined) {
19732028
return undefined
19742029
}
1975-
19762030
return serializer.paymentToJSON(payment)
19772031
}
2032+
case Transaction.TransactionDataCase.PAYMENT_CHANNEL_CLAIM: {
2033+
const paymentChannelClaim = transaction.getPaymentChannelClaim()
2034+
if (paymentChannelClaim === undefined) {
2035+
return undefined
2036+
}
2037+
return serializer.paymentChannelClaimToJSON(paymentChannelClaim)
2038+
}
2039+
case Transaction.TransactionDataCase.PAYMENT_CHANNEL_CREATE: {
2040+
const paymentChannelCreate = transaction.getPaymentChannelCreate()
2041+
if (paymentChannelCreate === undefined) {
2042+
return undefined
2043+
}
2044+
return serializer.paymentChannelCreateToJSON(paymentChannelCreate)
2045+
}
2046+
case Transaction.TransactionDataCase.PAYMENT_CHANNEL_FUND: {
2047+
const paymentChannelFund = transaction.getPaymentChannelFund()
2048+
if (paymentChannelFund === undefined) {
2049+
return undefined
2050+
}
2051+
return serializer.paymentChannelFundToJSON(paymentChannelFund)
2052+
}
2053+
case Transaction.TransactionDataCase.SET_REGULAR_KEY: {
2054+
const setRegularKey = transaction.getSetRegularKey()
2055+
if (setRegularKey === undefined) {
2056+
return undefined
2057+
}
2058+
return serializer.setRegularKeyToJSON(setRegularKey)
2059+
}
2060+
case Transaction.TransactionDataCase.SIGNER_LIST_SET: {
2061+
const signerListSet = transaction.getSignerListSet()
2062+
if (signerListSet === undefined) {
2063+
return undefined
2064+
}
2065+
return serializer.signerListSetToJSON(signerListSet)
2066+
}
2067+
19782068
case Transaction.TransactionDataCase.TRUST_SET: {
19792069
const trustSet = transaction.getTrustSet()
19802070
if (trustSet === undefined) {
@@ -1983,6 +2073,6 @@ function getAdditionalTransactionData(
19832073
return serializer.trustSetToJSON(trustSet)
19842074
}
19852075
default:
1986-
throw new Error('Unexpected transactionDataCase')
2076+
throw new Error('Unexpected TransactionDataCase')
19872077
}
19882078
}

0 commit comments

Comments
 (0)