Magickbase / godwoken_explorer

Godwoken Explorer
https://v1.gwscan.com
18 stars 8 forks source link

Pagination of ERC 721 doesn't work #1564

Closed Keith-CY closed 10 months ago

Keith-CY commented 10 months ago

Page: https://gwscan.com/zh-CN/account/0xea54182ea1cc48745ce381ff3810acc14532a631?tab=erc-721-assets

When the next link is clicked, page will be navigated to https://gwscan.com/zh-CN/account/0xea54182ea1cc48745ce381ff3810acc14532a631?tab=erc-721-assets&after=g3QAAAADdwxibG9ja19udW1iZXJ3A25pbHcbdG9rZW5fY29udHJhY3RfYWRkcmVzc19oYXNodAAAAAN3BWJ5dGVzbQAAABQNuA-vlqqYXttwy9GqY4cswC0sMncKX19zdHJ1Y3RfX3ciRWxpeGlyLkdvZHdva2VuRXhwbG9yZXIuQ2hhaW4uSGFzaHcKYnl0ZV9jb3VudGEUdwh0b2tlbl9pZHQAAAAEdwNleHBhAHcEc2lnbmEBdwpfX3N0cnVjdF9fdw5FbGl4aXIuRGVjaW1hbHcEY29lZmGE

which means the after cursor is

g3QAAAADdwxibG9ja19udW1iZXJ3A25pbHcbdG9rZW5fY29udHJhY3RfYWRkcmVzc19oYXNodAAAAAN3BWJ5dGVzbQAAABQNuA-vlqqYXttwy9GqY4cswC0sMncKX19zdHJ1Y3RfX3ciRWxpeGlyLkdvZHdva2VuRXhwbG9yZXIuQ2hhaW4uSGFzaHcKYnl0ZV9jb3VudGEUdwh0b2tlbl9pZHQAAAAEdwNleHBhAHcEc2lnbmEBdwpfX3N0cnVjdF9fdw5FbGl4aXIuRGVjaW1hbHcEY29lZmGE

But on the next page, the next still points to https://gwscan.com/zh-CN/account/0xea54182ea1cc48745ce381ff3810acc14532a631?tab=erc-721-assets&after=g3QAAAADdwxibG9ja19udW1iZXJ3A25pbHcbdG9rZW5fY29udHJhY3RfYWRkcmVzc19oYXNodAAAAAN3BWJ5dGVzbQAAABQNuA-vlqqYXttwy9GqY4cswC0sMncKX19zdHJ1Y3RfX3ciRWxpeGlyLkdvZHdva2VuRXhwbG9yZXIuQ2hhaW4uSGFzaHcKYnl0ZV9jb3VudGEUdwh0b2tlbl9pZHQAAAAEdwNleHBhAHcEc2lnbmEBdwpfX3N0cnVjdF9fdw5FbGl4aXIuRGVjaW1hbHcEY29lZmGE

Notice the after cursor doesn't change.

The request and response are as follows

request payload

{"query":"\n  query ($address: HashAddress!, $before: String, $after: String, $limit: Int) {\n    inventory: user_erc721_assets(input: { user_address: $address, before: $before, after: $after, limit: $limit }) {\n      entries {\n        token_id\n        token_contract_address_hash\n        udt {\n          id\n          name\n          icon\n        }\n        token_instance {\n          metadata\n        }\n      }\n      metadata {\n        total_count\n        before\n        after\n      }\n    }\n  }\n","variables":{"address":"0xea54182ea1cc48745ce381ff3810acc14532a631","before":null,"after":"g3QAAAADdwxibG9ja19udW1iZXJ3A25pbHcbdG9rZW5fY29udHJhY3RfYWRkcmVzc19oYXNodAAAAAN3BWJ5dGVzbQAAABQNuA-vlqqYXttwy9GqY4cswC0sMncKX19zdHJ1Y3RfX3ciRWxpeGlyLkdvZHdva2VuRXhwbG9yZXIuQ2hhaW4uSGFzaHcKYnl0ZV9jb3VudGEUdwh0b2tlbl9pZHQAAAAEdwNleHBhAHcEc2lnbmEBdwpfX3N0cnVjdF9fdw5FbGl4aXIuRGVjaW1hbHcEY29lZmGE","limit":30}}

response

...
"metadata": {
        "after": "g3QAAAADdwxibG9ja19udW1iZXJ3A25pbHcbdG9rZW5fY29udHJhY3RfYWRkcmVzc19oYXNodAAAAAN3BWJ5dGVzbQAAABQNuA-vlqqYXttwy9GqY4cswC0sMncKX19zdHJ1Y3RfX3ciRWxpeGlyLkdvZHdva2VuRXhwbG9yZXIuQ2hhaW4uSGFzaHcKYnl0ZV9jb3VudGEUdwh0b2tlbl9pZHQAAAAEdwNleHBhAHcEc2lnbmEBdwpfX3N0cnVjdF9fdw5FbGl4aXIuRGVjaW1hbHcEY29lZmGE",
        "before": "g3QAAAADdwxibG9ja19udW1iZXJ3A25pbHcbdG9rZW5fY29udHJhY3RfYWRkcmVzc19oYXNodAAAAAN3BWJ5dGVzbQAAABQNuA-vlqqYXttwy9GqY4cswC0sMncKX19zdHJ1Y3RfX3ciRWxpeGlyLkdvZHdva2VuRXhwbG9yZXIuQ2hhaW4uSGFzaHcKYnl0ZV9jb3VudGEUdwh0b2tlbl9pZHQAAAAEdwNleHBhAHcEc2lnbmEBdwpfX3N0cnVjdF9fdw5FbGl4aXIuRGVjaW1hbHcEY29lZmEB",
        "total_count": 1121
      }

Noted that after in request payload equals to after in response.metadata

zmcNotafraid commented 10 months ago

This bug has fixed.The reason was when we use cursor to paginate, the cursor field's order must be fixed.