Add support for Checks (#853)

- See https://github.com/ripple/rippled/pull/2245

* Add support for depositAuth flag

* Upgrade ripple-binary-codec to 0.1.13
This commit is contained in:
Elliot Lee
2018-03-01 21:42:46 -08:00
committed by GitHub
parent df711ecb06
commit facc513a52
50 changed files with 1405 additions and 12 deletions

View File

@@ -38,6 +38,17 @@ module.exports = {
normal: require('./prepare-escrow-cancellation'),
memos: require('./prepare-escrow-cancellation-memos')
},
prepareCheckCreate: {
normal: require('./prepare-check-create'),
full: require('./prepare-check-create-full')
},
prepareCheckCash: {
amount: require('./prepare-check-cash-amount'),
deliverMin: require('./prepare-check-cash-delivermin')
},
prepareCheckCancel: {
normal: require('./prepare-check-cancel')
},
preparePaymentChannelCreate: {
normal: require('./prepare-payment-channel-create'),
full: require('./prepare-payment-channel-create-full')

View File

@@ -0,0 +1,3 @@
{
"checkID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0"
}

View File

@@ -0,0 +1,7 @@
{
"amount": {
"currency": "XRP",
"value": "1"
},
"checkID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334"
}

View File

@@ -0,0 +1,7 @@
{
"deliverMin": {
"currency": "XRP",
"value": "0.8"
},
"checkID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334"
}

View File

@@ -0,0 +1,10 @@
{
"destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
"sendMax": {
"currency": "XRP",
"value": "1"
},
"destinationTag": 2,
"expiration": "2018-09-24T21:21:50.000Z",
"invoiceID": "1F40FC92DA241694750979EE6CF582F2D5D7D28E18335DE05ABC54D0560E0F53"
}

View File

@@ -0,0 +1,7 @@
{
"destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
"sendMax": {
"currency": "XRP",
"value": "1"
}
}

View File

@@ -0,0 +1,25 @@
{
"type": "checkCancel",
"address": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"sequence": 6,
"id": "B4105D1B2D83819647E4692B7C5843D674283F669524BD50C9614182E3A12CD4",
"specification": {
"checkID": "6EE1727598693635183A3D967342A46C739FC06F973CA6A3277A92E8D997E7A8"
},
"outcome": {
"result": "tesSUCCESS",
"timestamp": "2018-02-23T22:45:41.000Z",
"fee": "0.000012",
"balanceChanges": {
"rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE": [
{
"currency": "XRP",
"value": "-0.000012"
}
]
},
"orderbookChanges": {},
"ledgerVersion": 6967970,
"indexInLedger": 4
}
}

View File

@@ -0,0 +1,35 @@
{
"type": "checkCash",
"address": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"sequence": 3,
"id": "8321208465F70BA52C28BCC4F646BAF3B012BA13B57576C0336F42D77E3E0749",
"specification": {
"checkID": "4F6DDA7972A5E8C8F2AA3D2A475E56475FA573C65B935E26EABDA5F06A982C70",
"amount": {
"currency": "XRP",
"value": "2.5"
}
},
"outcome": {
"result": "tesSUCCESS",
"timestamp": "2018-02-23T22:26:52.000Z",
"fee": "0.000012",
"balanceChanges": {
"raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr": [
{
"currency": "XRP",
"value": "2.499988"
}
],
"rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE": [
{
"currency": "XRP",
"value": "-2.5"
}
]
},
"orderbookChanges": {},
"ledgerVersion": 6967596,
"indexInLedger": 0
}
}

View File

@@ -0,0 +1,32 @@
{
"type": "checkCreate",
"address": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"sequence": 3,
"id": "605A2E2C8E48AECAF5C56085D1AEAA0348DC838CE122C9188F94EB19DA05C2FE",
"specification": {
"destination": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"sendMax": {
"currency": "XRP",
"value": "3"
},
"destinationTag": 1235,
"expiration": "2018-02-25T21:22:47.000Z",
"invoiceID": "DEADBEEF2FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B"
},
"outcome": {
"result": "tesSUCCESS",
"timestamp": "2018-02-23T22:20:01.000Z",
"fee": "0.000012",
"balanceChanges": {
"rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE": [
{
"currency": "XRP",
"value": "-0.000012"
}
]
},
"orderbookChanges": {},
"ledgerVersion": 6967458,
"indexInLedger": 1
}
}

View File

@@ -42,8 +42,14 @@ module.exports = {
trustlineFrozenOff: require('./get-transaction-trust-set-frozen-off.json'),
trustlineNoQuality: require('./get-transaction-trust-no-quality.json'),
notValidated: require('./get-transaction-not-validated.json'),
checkCreate:
require('./get-transaction-check-create.json'),
checkCancel:
require('./get-transaction-check-cancel.json'),
checkCash:
require('./get-transaction-check-cash.json'),
escrowCreation:
require('./get-transaction-escrow-create.json'),
require('./get-transaction-escrow-creation.json'),
escrowCancellation:
require('./get-transaction-escrow-cancellation.json'),
escrowExecution:
@@ -113,6 +119,17 @@ module.exports = {
noMaxLedgerVersion: require('./prepare-settings-no-maxledgerversion.json'),
signers: require('./prepare-settings-signers.json')
},
prepareCheckCreate: {
normal: require('./prepare-check-create'),
full: require('./prepare-check-create-full')
},
prepareCheckCash: {
amount: require('./prepare-check-cash-amount'),
deliverMin: require('./prepare-check-cash-delivermin')
},
prepareCheckCancel: {
normal: require('./prepare-check-cancel')
},
prepareEscrowCreation: {
normal: require('./prepare-escrow-creation'),
full: require('./prepare-escrow-creation-full')

View File

@@ -0,0 +1,8 @@
{
"txJSON": "{\"Account\":\"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59\",\"TransactionType\":\"CheckCancel\",\"CheckID\":\"49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0\",\"Flags\":2147483648,\"LastLedgerSequence\":8819954,\"Fee\":\"12\",\"Sequence\":23}",
"instructions": {
"fee": "0.000012",
"sequence": 23,
"maxLedgerVersion": 8819954
}
}

View File

@@ -0,0 +1,8 @@
{
"txJSON": "{\"Account\":\"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59\",\"TransactionType\":\"CheckCash\",\"CheckID\":\"838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334\",\"Amount\":\"1000000\",\"Flags\":2147483648,\"LastLedgerSequence\":8819954,\"Sequence\":23,\"Fee\":\"12\"}",
"instructions": {
"fee": "0.000012",
"sequence": 23,
"maxLedgerVersion": 8819954
}
}

View File

@@ -0,0 +1,8 @@
{
"txJSON": "{\"Account\":\"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59\",\"TransactionType\":\"CheckCash\",\"CheckID\":\"838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334\",\"DeliverMin\":\"800000\",\"Flags\":2147483648,\"LastLedgerSequence\":8819954,\"Sequence\":23,\"Fee\":\"12\"}",
"instructions": {
"fee": "0.000012",
"sequence": 23,
"maxLedgerVersion": 8819954
}
}

View File

@@ -0,0 +1,8 @@
{
"txJSON": "{\"Account\":\"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59\",\"TransactionType\":\"CheckCreate\",\"Destination\":\"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW\",\"SendMax\":\"1000000\",\"DestinationTag\":2,\"Expiration\":591139310,\"InvoiceID\":\"1F40FC92DA241694750979EE6CF582F2D5D7D28E18335DE05ABC54D0560E0F53\",\"Flags\":2147483648,\"LastLedgerSequence\":8819954,\"Sequence\":23,\"Fee\":\"12\"}",
"instructions": {
"fee": "0.000012",
"sequence": 23,
"maxLedgerVersion": 8819954
}
}

View File

@@ -0,0 +1,8 @@
{
"txJSON": "{\"Account\":\"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59\",\"TransactionType\":\"CheckCreate\",\"Destination\":\"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW\",\"SendMax\":\"1000000\",\"Flags\":2147483648,\"LastLedgerSequence\":8820051,\"Sequence\":23,\"Fee\":\"12\"}",
"instructions": {
"fee": "0.000012",
"sequence": 23,
"maxLedgerVersion": 8820051
}
}

View File

@@ -72,6 +72,9 @@ module.exports = {
LedgerWithoutTime: require('./tx/ledger-without-time.json'),
NotValidated: require('./tx/not-validated.json'),
OfferWithExpiration: require('./tx/order-with-expiration.json'),
CheckCreate: require('./tx/check-create.json'),
CheckCancel: require('./tx/check-cancel.json'),
CheckCash: require('./tx/check-cash.json'),
EscrowCreation: require('./tx/escrow-creation.json'),
EscrowCancellation:
require('./tx/escrow-cancellation.json'),

View File

@@ -0,0 +1,89 @@
{
"id": 0,
"result": {
"Account": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"CheckID": "6EE1727598693635183A3D967342A46C739FC06F973CA6A3277A92E8D997E7A8",
"Fee": "12",
"Flags": 2147483648,
"LastLedgerSequence": 6968242,
"Sequence": 6,
"SigningPubKey": "03C1B24925182F5B881D34E07993FAAD90B918EF3D6661963A3E9EE402B6F87659",
"TransactionType": "CheckCancel",
"TxnSignature": "3045022100B3BC49F917E408DB5FFE1570CDE69E28AA4BD99AABAC7043EE71BDC346BF76F902200F8E4E059B1AF33BBD595CEDB86A556C40E40ADFB86F1B4451F447E88DD01A0B",
"date": 572741141,
"hash": "B4105D1B2D83819647E4692B7C5843D674283F669524BD50C9614182E3A12CD4",
"inLedger": 6967970,
"ledger_index": 6967970,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"Owner": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"RootIndex": "46B6FD7D2C937D6A5D2832CAC94F424300B3FE72B5D1D460C20E6FADAD2FF7C7"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "46B6FD7D2C937D6A5D2832CAC94F424300B3FE72B5D1D460C20E6FADAD2FF7C7"
}
},
{
"DeletedNode": {
"FinalFields": {
"Account": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"Destination": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"DestinationNode": "0000000000000000",
"DestinationTag": 1236,
"Expiration": 572908967,
"Flags": 0,
"InvoiceID": "DEADBEEF3FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "FCE773D30272546ADD1ADF1763AE8C69B857C7AD0B4A13B9B524991D5611740E",
"PreviousTxnLgrSeq": 6967917,
"SendMax": "4000000",
"Sequence": 5
},
"LedgerEntryType": "Check",
"LedgerIndex": "6EE1727598693635183A3D967342A46C739FC06F973CA6A3277A92E8D997E7A8"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"Balance": "9996499928",
"Flags": 0,
"OwnerCount": 0,
"Sequence": 7
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "8FD7FBA4C35956B4964015D938AD50A939458E8CD13FA24A58F40A07ABE47E52",
"PreviousFields": {
"Balance": "9996499940",
"OwnerCount": 1,
"Sequence": 6
},
"PreviousTxnID": "FCE773D30272546ADD1ADF1763AE8C69B857C7AD0B4A13B9B524991D5611740E",
"PreviousTxnLgrSeq": 6967917
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"Owner": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"RootIndex": "A33DF86647D19B7868A6FAD1E65F753837F8CFEF8F1C4F34717FD5CC7E6EA2E3"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "A33DF86647D19B7868A6FAD1E65F753837F8CFEF8F1C4F34717FD5CC7E6EA2E3"
}
}
],
"TransactionIndex": 4,
"TransactionResult": "tesSUCCESS"
},
"validated": true
},
"status": "success",
"type": "response"
}

108
test/fixtures/rippled/tx/check-cash.json vendored Normal file
View File

@@ -0,0 +1,108 @@
{
"id": 0,
"result": {
"Account": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"Amount": "2500000",
"CheckID": "4F6DDA7972A5E8C8F2AA3D2A475E56475FA573C65B935E26EABDA5F06A982C70",
"Fee": "12",
"Flags": 2147483648,
"LastLedgerSequence": 6967889,
"Sequence": 3,
"SigningPubKey": "02ACB1C22D68E01414D2F527B4666E119F36E5B996D1CE6C8DBDE03769E5B2B95B",
"TransactionType": "CheckCash",
"TxnSignature": "304402205CA374B304F5D595E930489D70D5EDD062142D6D231D55AC0123F2AA02C8F10202206B5B9AA6A8560382053FF628662D42E74BB79B84B4A507719180823A720A261F",
"date": 572740012,
"hash": "8321208465F70BA52C28BCC4F646BAF3B012BA13B57576C0336F42D77E3E0749",
"inLedger": 6967596,
"ledger_index": 6967596,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"Account": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"Balance": "10003499964",
"Flags": 0,
"OwnerCount": 0,
"Sequence": 4
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "1F5CCAAAAE908C0F449ADB267084DFFD3E4432921E64A020EEBC59D95BD4940A",
"PreviousFields": {
"Balance": "10000999976",
"Sequence": 3
},
"PreviousTxnID": "7D1400825FD25D17B0283B71B0CC2ACC921F32D057B66BB7331F1B43483BC3DA",
"PreviousTxnLgrSeq": 6967427
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"Owner": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"RootIndex": "46B6FD7D2C937D6A5D2832CAC94F424300B3FE72B5D1D460C20E6FADAD2FF7C7"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "46B6FD7D2C937D6A5D2832CAC94F424300B3FE72B5D1D460C20E6FADAD2FF7C7"
}
},
{
"DeletedNode": {
"FinalFields": {
"Account": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"Destination": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"DestinationNode": "0000000000000000",
"DestinationTag": 1235,
"Expiration": 572908967,
"Flags": 0,
"InvoiceID": "DEADBEEF2FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "605A2E2C8E48AECAF5C56085D1AEAA0348DC838CE122C9188F94EB19DA05C2FE",
"PreviousTxnLgrSeq": 6967458,
"SendMax": "3000000",
"Sequence": 3
},
"LedgerEntryType": "Check",
"LedgerIndex": "4F6DDA7972A5E8C8F2AA3D2A475E56475FA573C65B935E26EABDA5F06A982C70"
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"Balance": "9996499952",
"Flags": 0,
"OwnerCount": 0,
"Sequence": 5
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "8FD7FBA4C35956B4964015D938AD50A939458E8CD13FA24A58F40A07ABE47E52",
"PreviousFields": {
"Balance": "9998999952",
"OwnerCount": 1
},
"PreviousTxnID": "4FE09BCC476230E75A45014CD8F77E91C7FF95C07BB8E55923EB55741911C85D",
"PreviousTxnLgrSeq": 6967586
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"Owner": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"RootIndex": "A33DF86647D19B7868A6FAD1E65F753837F8CFEF8F1C4F34717FD5CC7E6EA2E3"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "A33DF86647D19B7868A6FAD1E65F753837F8CFEF8F1C4F34717FD5CC7E6EA2E3"
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS"
},
"validated": true
},
"status": "success",
"type": "response"
}

View File

@@ -0,0 +1,88 @@
{
"id": 0,
"result": {
"Account": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"Destination": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"DestinationTag": 1235,
"Expiration": 572908967,
"Fee": "12",
"Flags": 2147483648,
"InvoiceID": "DEADBEEF2FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B",
"LastLedgerSequence": 6967747,
"SendMax": "3000000",
"Sequence": 3,
"SigningPubKey": "03C1B24925182F5B881D34E07993FAAD90B918EF3D6661963A3E9EE402B6F87659",
"TransactionType": "CheckCreate",
"TxnSignature": "3044022058FD0FBB7486D84DBEFE6C10BE0D43C3344E6B175BED19C1FF514C379A4FB344022021DE0087152FCDD6EB7ED14E057BBA94CAF70B920AA79CB82AAD4B82E7AFF760",
"date": 572739601,
"hash": "605A2E2C8E48AECAF5C56085D1AEAA0348DC838CE122C9188F94EB19DA05C2FE",
"inLedger": 6967458,
"ledger_index": 6967458,
"meta": {
"AffectedNodes": [
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"Owner": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"RootIndex": "46B6FD7D2C937D6A5D2832CAC94F424300B3FE72B5D1D460C20E6FADAD2FF7C7"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "46B6FD7D2C937D6A5D2832CAC94F424300B3FE72B5D1D460C20E6FADAD2FF7C7"
}
},
{
"CreatedNode": {
"LedgerEntryType": "Check",
"LedgerIndex": "4F6DDA7972A5E8C8F2AA3D2A475E56475FA573C65B935E26EABDA5F06A982C70",
"NewFields": {
"Account": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"Destination": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"DestinationTag": 1235,
"Expiration": 572908967,
"InvoiceID": "DEADBEEF2FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B",
"SendMax": "3000000",
"Sequence": 3
}
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "rNpdNFXNMvEcaXDqMypi48gdSABZkYuyQE",
"Balance": "9998999964",
"Flags": 0,
"OwnerCount": 1,
"Sequence": 4
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "8FD7FBA4C35956B4964015D938AD50A939458E8CD13FA24A58F40A07ABE47E52",
"PreviousFields": {
"Balance": "9998999976",
"OwnerCount": 0,
"Sequence": 3
},
"PreviousTxnID": "7D1400825FD25D17B0283B71B0CC2ACC921F32D057B66BB7331F1B43483BC3DA",
"PreviousTxnLgrSeq": 6967427
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"Owner": "raLHvSZXacoGiCoWrdBhVGstZm6GhF7oRr",
"RootIndex": "A33DF86647D19B7868A6FAD1E65F753837F8CFEF8F1C4F34717FD5CC7E6EA2E3"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "A33DF86647D19B7868A6FAD1E65F753837F8CFEF8F1C4F34717FD5CC7E6EA2E3"
}
}
],
"TransactionIndex": 1,
"TransactionResult": "tesSUCCESS"
},
"validated": true
},
"status": "success",
"type": "response"
}