@@ -171,45 +171,33 @@ contract LibBlobTest is Test {
171
171
function testDecodeSubscribers () public view {
172
172
// One subscriber
173
173
bytes memory data =
174
- hex "a1656630313234a17840343564616464393261326161373431383133323638376639613432313439306261643963356161643332656134653937623135356533373739316630306435308519021f1a0001539f982018fd18bb1871185b08188508184418a1183e182b18b518980118cb18a60218bf183b18351118720418fb18f41836188101181b18ef18941839f6f4 " ;
174
+ hex "a1a165696e6e65727840393763323930343836383633336164376232353337646534623035336338356333396262306165306263313631383965316261633738373165613065656633371a00016fb4 " ;
175
175
Subscriber[] memory subscribers = LibBlob.decodeSubscribers (data);
176
176
// Note: tests will always show this as a masked ID address, but in reality, it's a looked up delegated address
177
- assertEq (subscribers[0 ].subscriber, 0xFf0000000000000000000000000000000000007C );
178
- assertEq (
179
- subscribers[0 ].subscriptionGroup[0 ].subscriptionId,
180
- "45dadd92a2aa7418132687f9a421490bad9c5aad32ea4e97b155e37791f00d50 "
181
- );
182
- assertEq (subscribers[0 ].subscriptionGroup[0 ].subscription.added, 543 );
183
- assertEq (subscribers[0 ].subscriptionGroup[0 ].subscription.expiry, 86943 );
184
- assertEq (
185
- subscribers[0 ].subscriptionGroup[0 ].subscription.source,
186
- "7w5xcwyiqueejij6fo2zqaoluybl6ozvcfzaj67ug2aqcg7psq4q "
187
- );
188
- assertEq (subscribers[0 ].subscriptionGroup[0 ].subscription.delegate, address (0 ));
189
- assertEq (subscribers[0 ].subscriptionGroup[0 ].subscription.failed, false );
177
+ assertEq (subscribers[0 ].subscriptionId, "97c2904868633ad7b2537de4b053c85c39bb0ae0bc16189e1bac7871ea0eef37 " );
178
+ assertEq (subscribers[0 ].expiry, 94132 );
190
179
191
- // Two subscription groups
180
+ // Two subscribers (i.e., same blob, different buckets)
192
181
data =
193
- hex "a1656630313234a2784034316664336363386562303731323262663165356564383562306236393237666236663162336630643662313331326261366531396437646536386366373833851908eb1a00015a6b982018fd18bb1871185b08188508184418a1183e182b18b518980118cb18a60218bf183b18351118720418fb18f41836188101181b18ef18941839f6f47840343564616464393261326161373431383133323638376639613432313439306261643963356161643332656134653937623135356533373739316630306435308519021f1a0001539f982018fd18bb1871185b08188508184418a1183e182b18b518980118cb18a60218bf183b18351118720418fb18f41836188101181b18ef18941839f6f4 " ;
182
+ hex "a2a165696e6e65727840353764303161653032386136636131303937653630346137633065363863303433353135663437386162636334626165663763386638353137343133343736651a00017f0fa165696e6e65727840613465343463326138303638313061613737353163376632373834633030376131623636326666333130383936363863613362346634653862326330633963631a00017f42 " ;
194
183
subscribers = LibBlob.decodeSubscribers (data);
195
184
// Note: tests will always show this as a masked ID address, but in reality, it's a looked up delegated address
196
- assertEq (subscribers[0 ].subscriber, 0xFf0000000000000000000000000000000000007C );
197
- assertEq (
198
- subscribers[0 ].subscriptionGroup[0 ].subscriptionId,
199
- "41fd3cc8eb07122bf1e5ed85b0b6927fb6f1b3f0d6b1312ba6e19d7de68cf783 "
200
- );
201
- assertEq (
202
- subscribers[0 ].subscriptionGroup[1 ].subscriptionId,
203
- "45dadd92a2aa7418132687f9a421490bad9c5aad32ea4e97b155e37791f00d50 "
204
- );
185
+ assertEq (subscribers[0 ].subscriptionId, "57d01ae028a6ca1097e604a7c0e68c043515f478abcc4baef7c8f8517413476e " );
186
+ assertEq (subscribers[0 ].expiry, 98063 );
187
+ assertEq (subscribers[1 ].subscriptionId, "a4e44c2a806810aa7751c7f2784c007a1b662ff31089668ca3b4f4e8b2c0c9cc " );
188
+ assertEq (subscribers[1 ].expiry, 98114 );
205
189
206
- // // Two different subscribers
190
+ // Three different subscribers (different account and buckets), same blob
207
191
data =
208
- hex "a2656630313234a2784034316664336363386562303731323262663165356564383562306236393237666236663162336630643662313331326261366531396437646536386366373833851908eb1a00015a6b982018fd18bb1871185b08188508184418a1183e182b18b518980118cb18a60218bf183b18351118720418fb18f41836188101181b18ef18941839f6f47840343564616464393261326161373431383133323638376639613432313439306261643963356161643332656134653937623135356533373739316630306435308519021f1a0001539f982018fd18bb1871185b08188508184418a1183e182b18b518980118cb18a60218bf183b18351118720418fb18f41836188101181b18ef18941839f6f4656630313236a1784033333566316434636333343130646136363562613133336136616339653666656536626334653861356435643239336262333966396465313266303530326438851909881a00015b08982018fd18bb1871185b08188508184418a1183e182b18b518980118cb18a60218bf183b18351118720418fb18f41836188101181b18ef18941839f6f4 " ;
192
+ hex "a3a165696e6e65727840316263653561373436613131333462663038326261616338306265393531393036626234303637383765313463396665653064376438646230666330623766341a00017fdaa165696e6e65727840353764303161653032386136636131303937653630346137633065363863303433353135663437386162636334626165663763386638353137343133343736651a00017f0fa165696e6e65727840613465343463326138303638313061613737353163376632373834633030376131623636326666333130383936363863613362346634653862326330633963631a00017f42 " ;
209
193
subscribers = LibBlob.decodeSubscribers (data);
210
- // Note: tests will always show this as a masked ID address, but in reality, it's a looked up delegated address
211
- assertEq (subscribers[0 ].subscriber, 0xFf0000000000000000000000000000000000007C );
212
- assertEq (subscribers[1 ].subscriber, 0xFF0000000000000000000000000000000000007e );
194
+ // Note: tests will always show this as a masked ID address, but in reality, it's a looked up delegated
195
+ assertEq (subscribers[0 ].subscriptionId, "1bce5a746a1134bf082baac80be951906bb406787e14c9fee0d7d8db0fc0b7f4 " );
196
+ assertEq (subscribers[0 ].expiry, 98266 );
197
+ assertEq (subscribers[1 ].subscriptionId, "57d01ae028a6ca1097e604a7c0e68c043515f478abcc4baef7c8f8517413476e " );
198
+ assertEq (subscribers[1 ].expiry, 98063 );
199
+ assertEq (subscribers[2 ].subscriptionId, "a4e44c2a806810aa7751c7f2784c007a1b662ff31089668ca3b4f4e8b2c0c9cc " );
200
+ assertEq (subscribers[2 ].expiry, 98114 );
213
201
}
214
202
215
203
function testDecodeSubscriptionGroup () public view {
@@ -262,11 +250,13 @@ contract LibBlobTest is Test {
262
250
263
251
function testDecodeBlob () public view {
264
252
bytes memory data =
265
- hex "84069820185818300918d918fc011819188d18b0150818dc186b18c918e618f10a185c18ef189118a3185d1864186d187318a518b718a8181918cd18b0184da1656630313234a17840343564616464393261326161373431383133323638376639613432313439306261643963356161643332656134653937623135356533373739316630306435308519021f1a0001539f982018fd18bb1871185b08188508184418a1183e182b18b518980118cb18a60218bf183b18351118720418fb18f41836188101181b18ef18941839f6f4685265736f6c766564 " ;
253
+ hex "84069820182617188e181e18451847188b18b918f1184a181918e318b4188b051849182e18de188918ca18ea1874189f18e3185618a9185b18c9188c171884182fa3a165696e6e65727840316263653561373436613131333462663038326261616338306265393531393036626234303637383765313463396665653064376438646230666330623766341a00017fdaa165696e6e65727840353764303161653032386136636131303937653630346137633065363863303433353135663437386162636334626165663763386638353137343133343736651a00017f0fa165696e6e65727840613465343463326138303638313061613737353163376632373834633030376131623636326666333130383936363863613362346634653862326330633963631a00017f42685265736f6c766564 " ;
266
254
Blob memory blob = LibBlob.decodeBlob (data);
267
255
assertEq (blob.size, 6 );
268
- assertEq (blob.metadataHash, "layatwp4aemy3mavbdogxspg6effz34runowi3ltuw32qgonwbgq " );
269
- assertEq (blob.subscribers.length , 1 );
256
+ assertEq (blob.metadataHash, "eyly4hsfi6f3t4kkdhr3jcyfjexn5cok5j2j7y2wvfn4tdaxqqxq " );
257
+ assertEq (blob.subscribers.length , 3 );
258
+ assertEq (blob.subscribers[0 ].subscriptionId, "1bce5a746a1134bf082baac80be951906bb406787e14c9fee0d7d8db0fc0b7f4 " );
259
+ assertEq (blob.subscribers[0 ].expiry, 98266 );
270
260
assertEq (uint8 (blob.status), uint8 (BlobStatus.Resolved));
271
261
}
272
262
0 commit comments