Skip to content

Commit c09cedd

Browse files
Merge branch 'fix/delete-abi-with-setRecords' of https://github.com/ensdomains/ensjs-v3 into fix/delete-abi-with-setRecords
2 parents 7f3b122 + bb0b584 commit c09cedd

File tree

3 files changed

+56
-1
lines changed

3 files changed

+56
-1
lines changed

packages/ensjs/src/utils/encoders/encodeAbi.test.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ describe('encodeAbi', () => {
1212
expect(result.encodedData).toEqual('0x7b22666f6f223a22626172227d')
1313
})
1414

15+
// Null JSON data
16+
it('encodes null JSON data', async () => {
17+
const result = await encodeAbi({ encodeAs: 'json', data: null })
18+
expect(result.contentType).toEqual(1)
19+
expect(result.encodedData).toEqual('0x')
20+
})
21+
1522
it('encodes data as zlib', async () => {
1623
const data = { foo: 'bar' }
1724
const result = await encodeAbi({ encodeAs: 'zlib', data })
@@ -21,19 +28,40 @@ describe('encodeAbi', () => {
2128
)
2229
})
2330

31+
// Null zlib data
32+
it('encodes null zlib data', async () => {
33+
const result = await encodeAbi({ encodeAs: 'zlib', data: null })
34+
expect(result.contentType).toEqual(2)
35+
expect(result.encodedData).toEqual('0x')
36+
})
37+
2438
it('encodes data as cbor', async () => {
2539
const data = { foo: 'bar' }
2640
const result = await encodeAbi({ encodeAs: 'cbor', data })
2741
expect(result.contentType).toEqual(4)
2842
expect(result.encodedData).toEqual('0xa163666f6f63626172')
2943
})
3044

45+
// Null CBOR data
46+
it('encodes null CBOR data', async () => {
47+
const result = await encodeAbi({ encodeAs: 'cbor', data: null })
48+
expect(result.contentType).toEqual(4)
49+
expect(result.encodedData).toEqual('0x')
50+
})
51+
3152
it('encodes data as uri', async () => {
3253
const data = 'foo=bar'
3354
const result = await encodeAbi({ encodeAs: 'uri', data })
3455
expect(result.contentType).toEqual(8)
3556
expect(result.encodedData).toEqual('0x666f6f3d626172')
3657
})
58+
59+
// Null URI data
60+
it('encodes null URI data', async () => {
61+
const result = await encodeAbi({ encodeAs: 'uri', data: null })
62+
expect(result.contentType).toEqual(8)
63+
expect(result.encodedData).toEqual('0x')
64+
})
3765
})
3866

3967
describe('encodeAsToContentType', () => {

packages/ensjs/src/utils/encoders/encodeSetAbi.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ describe('encodeSetAbi', () => {
1313
encodedData,
1414
}
1515

16-
it('encodes the setAbi function data correctly', () => {
16+
it('encodes the setAbi function data correctly with null encodedData', async () => {
1717
const expected =
1818
'0x623195b01234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000'
1919
const result = encodeSetAbi(parameters)

packages/ensjs/src/utils/generateRecordCallArray.test.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { generateRecordCallArray } from './generateRecordCallArray.js'
2+
import { encodeAbi } from './index.js'
23
import { namehash } from './normalise.js'
34

45
it('generates a record call array', () => {
@@ -78,3 +79,29 @@ it('adds coin calls when coins array is defined and not empty', () => {
7879
]
7980
`)
8081
})
82+
it('adds abi call when data is null', async () => {
83+
const result = await encodeAbi({ encodeAs: 'uri', data: null })
84+
expect(
85+
generateRecordCallArray({
86+
namehash: namehash('test.eth'),
87+
abi: result,
88+
}),
89+
).toMatchInlineSnapshot(`
90+
[
91+
"0x623195b0eb4f647bea6caa36333c816d7b46fdcb05f9466ecacc140ea8c66faf15b3d9f1000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000",
92+
]
93+
`)
94+
})
95+
it('adds abi call when data is not empty', async () => {
96+
const result = await encodeAbi({ encodeAs: 'json', data: { foo: 'bar' } })
97+
expect(
98+
generateRecordCallArray({
99+
namehash: namehash('test.eth'),
100+
abi: result,
101+
}),
102+
).toMatchInlineSnapshot(`
103+
[
104+
"0x623195b0eb4f647bea6caa36333c816d7b46fdcb05f9466ecacc140ea8c66faf15b3d9f100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000d7b22666f6f223a22626172227d00000000000000000000000000000000000000",
105+
]
106+
`)
107+
})

0 commit comments

Comments
 (0)