Skip to content

Commit 32b3fe8

Browse files
committed
feat: data should be passed as a buffer
BREAKING: All data fields should be passed in and returned as Buffer objects.
1 parent 15ff9cb commit 32b3fe8

File tree

2 files changed

+23
-11
lines changed

2 files changed

+23
-11
lines changed

packages/ilp-packet/index.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ interface IlpPacket {
4141
interface IlpPayment {
4242
amount: string,
4343
account: string,
44-
data: string
44+
data: Buffer
4545
}
4646

4747
interface IlpForwardedPayment {
4848
account: string,
49-
data: string
49+
data: Buffer
5050
}
5151

5252
const serializeIlpPayment = (json: IlpPayment) => {
@@ -61,7 +61,7 @@ const serializeIlpPayment = (json: IlpPayment) => {
6161
writer.writeVarOctetString(Buffer.from(json.account, 'ascii'))
6262

6363
// data
64-
writer.writeVarOctetString(Buffer.from(json.data || '', 'base64'))
64+
writer.writeVarOctetString(json.data || Buffer.alloc(0))
6565

6666
// extensibility
6767
writer.writeUInt8(0)
@@ -82,7 +82,7 @@ const deserializeIlpPayment = (binary: Buffer): IlpPayment => {
8282
const lowBits = reader.readUInt32()
8383
const amount = Long.fromBits(lowBits, highBits, true).toString()
8484
const account = reader.readVarOctetString().toString('ascii')
85-
const data = bufferToBase64url(reader.readVarOctetString())
85+
const data = reader.readVarOctetString()
8686

8787
// Ignore remaining bytes for extensibility
8888

@@ -100,7 +100,7 @@ const serializeIlpForwardedPayment = (json: IlpForwardedPayment) => {
100100
writer.writeVarOctetString(Buffer.from(json.account, 'ascii'))
101101

102102
// data
103-
writer.writeVarOctetString(Buffer.from(json.data || '', 'base64'))
103+
writer.writeVarOctetString(json.data || Buffer.alloc(0))
104104

105105
// extensibility
106106
writer.writeUInt8(0)
@@ -118,7 +118,7 @@ const deserializeIlpForwardedPayment = (binary: Buffer): IlpForwardedPayment =>
118118
const reader = Reader.from(contents)
119119

120120
const account = reader.readVarOctetString().toString('ascii')
121-
const data = bufferToBase64url(reader.readVarOctetString())
121+
const data = reader.readVarOctetString()
122122

123123
// Ignore remaining bytes for extensibility
124124

@@ -501,14 +501,14 @@ const deserializeIlpError = (binary: Buffer): IlpError => {
501501
}
502502

503503
interface IlpFulfillment {
504-
data: string
504+
data: Buffer
505505
}
506506

507507
const serializeIlpFulfillment = (json: IlpFulfillment) => {
508508
const writer = new Writer()
509509

510510
// data
511-
writer.writeVarOctetString(Buffer.from(json.data || '', 'base64'))
511+
writer.writeVarOctetString(json.data || Buffer.alloc(0))
512512

513513
// extensibility
514514
writer.writeUInt8(0)
@@ -525,7 +525,7 @@ const deserializeIlpFulfillment = (binary: Buffer): IlpFulfillment => {
525525

526526
const reader = Reader.from(contents)
527527

528-
const data = bufferToBase64url(reader.readVarOctetString())
528+
const data = reader.readVarOctetString()
529529

530530
// Ignore remaining bytes for extensibility
531531

@@ -560,7 +560,7 @@ const serializeIlpRejection = (json: IlpRejection) => {
560560
writer.writeVarOctetString(Buffer.from(json.message, 'utf8'))
561561

562562
// data
563-
writer.writeVarOctetString(json.data)
563+
writer.writeVarOctetString(json.data || Buffer.alloc(0))
564564

565565
// extensibility
566566
writer.writeUInt8(0)

packages/ilp-packet/test/parser.spec.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ describe('Parser', function () {
1313
it(test.name, function () {
1414
const json = test.json
1515

16+
json.data = Buffer.from(json.data, 'base64')
17+
1618
const serialized = Parser.serializeIlpPayment(json)
1719

1820
assert.deepEqual(serialized.toString('hex'), test.binary)
@@ -31,6 +33,8 @@ describe('Parser', function () {
3133

3234
const parsed = Parser.deserializeIlpPayment(binary)
3335

36+
parsed.data = parsed.data.toString('base64')
37+
3438
assert.deepEqual(parsed, test.json)
3539
})
3640
}
@@ -44,6 +48,8 @@ describe('Parser', function () {
4448
it(test.name, function () {
4549
const json = test.json
4650

51+
json.data = Buffer.from(json.data, 'base64')
52+
4753
const serialized = Parser.serializeIlpForwardedPayment(json)
4854

4955
assert.deepEqual(serialized.toString('hex'), test.binary)
@@ -62,6 +68,8 @@ describe('Parser', function () {
6268

6369
const parsed = Parser.deserializeIlpForwardedPayment(binary)
6470

71+
parsed.data = parsed.data.toString('base64')
72+
6573
assert.deepEqual(parsed, test.json)
6674
})
6775
}
@@ -310,6 +318,8 @@ describe('Parser', function () {
310318
it(test.name, function () {
311319
const json = test.json
312320

321+
json.data = Buffer.from(json.data, 'base64')
322+
313323
const serialized = Parser.serializeIlpFulfillment(json)
314324

315325
assert.deepEqual(serialized.toString('hex'), test.binary)
@@ -328,6 +338,8 @@ describe('Parser', function () {
328338

329339
const parsed = Parser.deserializeIlpFulfillment(binary)
330340

341+
parsed.data = parsed.data.toString('base64')
342+
331343
assert.deepEqual(parsed, test.json)
332344
})
333345
}
@@ -397,7 +409,7 @@ describe('Parser', function () {
397409
if (typeString === 'ilp_error') {
398410
parsed.data.triggeredAt = parsed.data.triggeredAt.getTime()
399411
}
400-
if (typeString === 'ilp_rejection') {
412+
if (typeString === 'ilp_payment' || typeString === 'ilp_forwarded_payment' || typeString === 'ilp_fulfillment' || typeString === 'ilp_rejection') {
401413
parsed.data.data = parsed.data.data.toString('base64')
402414
}
403415
assert.deepEqual(parsed, { type, typeString, data: test.json })

0 commit comments

Comments
 (0)