Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search for Data Contract Documents partially not working #2409

Open
owl352 opened this issue Dec 29, 2024 · 9 comments
Open

Search for Data Contract Documents partially not working #2409

owl352 opened this issue Dec 29, 2024 · 9 comments
Labels
bug Something isn't working
Milestone

Comments

@owl352
Copy link
Contributor

owl352 commented Dec 29, 2024

When trying to retrieve documents for contract date withdrawals with where, I get an empty array, also sort works only in asc order, desc not working

Expected Behavior

If I specify ['transactionIndex', '==', 2] or ['transactionIndex', '>=', 2] or ['transactionIndex', '>', 2], then I should get an array with documents whose index matches the condition in the response

Current Behavior

At any specified value for transactionIndex, I get an empty array in response. Also, if you specify another condition for status as a range, the search will also return an empty array. However, if at least one condition requires a strict comparison, everything will work

Possible Solution

Steps to Reproduce (for bugs)

  1. use this json for data contract object
  2. Here you get empty response
const query = {
  where: [
    ['transactionIndex', 'in', [0,1,2,3,4,5]],
    ['status', '>', 0]
  ],
  orderBy: [
    ['status', order],
    ['transactionIndex', order],
  ]
}

const { documents } = await this.dapi.platform.getDocuments(Identifier.from(dataContractObject.id), type, query) 
  1. Here you get some documents
const query = {
  where: [
    ['transactionIndex', 'in', [0,1,2,3,4,5]],
    ['status', '=', 3]
  ],
  orderBy: [
    ['status', order],
    ['transactionIndex', order],
  ]
}

const { documents } = await this.dapi.platform.getDocuments(Identifier.from(dataContractObject.id), type, query) 

Context

Your Environment

  • 'dashpay/drive:1.7'
  • 'dashpay/dapi:1.7.1'
  • node: v20.16.0
  • dapi-client: from fork which made already after the latest updates of the getDocuments method
@owl352 owl352 added the bug Something isn't working label Dec 29, 2024
@pshenmic
Copy link
Collaborator

@owl352
Can you please provide a sample grpcurl queries for each request?

@owl352
Copy link
Contributor Author

owl352 commented Feb 27, 2025

@pshenmic

command:

 grpcurl -insecure -proto ./platform.proto -d @ 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments < quer.json

ORDER BY transactionIndex ASC

{
  "v0": {
    "data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=",
    "document_type":"withdrawal",
    "limit": 5,
    "orderBy": "gYJwdHJhbnNhY3Rpb25JbmRleGNhc2M="
  }
}
{
  "v0": {
    "documents": {
      "documents": [
        "AHhe7sKtgtdcpajfOGae2s4Pz2NsAXjVnV8UOr/vxelNUtQ195Q84w5+oJMTC0v4Xuqkqt/yjbJK0pyueiVF+b0EAAMAAAGSbu8X2gAAAZJvdJP7AQAAAAAAAAAAAQAAAAAAEQ6JAAAAC6Q7dAAAAAAAAAAAAQAAAAAAAAAAGXapFKBTWF4yIYd8BhlGjPer47jGn9cJiKwAAAAAAAAAAw==",
        "AG/KzuW7iPuYc1q5YGBhPIu0nnU8hv7CKO8N3TM7Jf7HWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGScmkcVwAAAZJ12XqmAQAAAAAAAAABAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AMXvBAbPs4XHFB7f4dxqLYiu+/VGE6wqM4MsLeVd7sUtWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGScm9ExQAAAZJ12XqmAQAAAAAAAAACAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AG6DMT1WjsfepIHQxn2l2EK6hUDBCySn8o46bEafO97lWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdEn98wAAAZJ12XqmAQAAAAAAAAADAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw==",
        "AERUOVp8Qb3e3bXkaDCWaL5qZc2CuiNf2bYdECD/L3IXWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdEsn3wAAAZJ12XqmAQAAAAAAAAAEAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw=="
      ]
    },
    "metadata": {
      "height": "107562",
      "coreChainLockedHeight": 1204011,
      "epoch": 5364,
      "timeMs": "1740666789549",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

ORDER BY transactionIndex DESC

{
  "v0": {
    "data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=",
    "document_type":"withdrawal",
    "limit": 5,
    "orderBy": "gYJwdHJhbnNhY3Rpb25JbmRleGRkZXNj"
  }
}
{
  "v0": {
    "documents": {
      "documents": [
        "AHhe7sKtgtdcpajfOGae2s4Pz2NsAXjVnV8UOr/vxelNUtQ195Q84w5+oJMTC0v4Xuqkqt/yjbJK0pyueiVF+b0EAAMAAAGSbu8X2gAAAZJvdJP7AQAAAAAAAAAAAQAAAAAAEQ6JAAAAC6Q7dAAAAAAAAAAAAQAAAAAAAAAAGXapFKBTWF4yIYd8BhlGjPer47jGn9cJiKwAAAAAAAAAAw==",
        "AG/KzuW7iPuYc1q5YGBhPIu0nnU8hv7CKO8N3TM7Jf7HWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGScmkcVwAAAZJ12XqmAQAAAAAAAAABAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AMXvBAbPs4XHFB7f4dxqLYiu+/VGE6wqM4MsLeVd7sUtWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGScm9ExQAAAZJ12XqmAQAAAAAAAAACAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AG6DMT1WjsfepIHQxn2l2EK6hUDBCySn8o46bEafO97lWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdEn98wAAAZJ12XqmAQAAAAAAAAADAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw==",
        "AERUOVp8Qb3e3bXkaDCWaL5qZc2CuiNf2bYdECD/L3IXWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdEsn3wAAAZJ12XqmAQAAAAAAAAAEAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw=="
      ]
    },
    "metadata": {
      "height": "107563",
      "coreChainLockedHeight": 1204012,
      "epoch": 5364,
      "timeMs": "1740666970789",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

As result, we have the same results


Match status == 3 and order desc for transactionIndex

{
  "v0": {
    "data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=",
    "document_type":"withdrawal",
    "limit": 5,
    "where": "gYNmc3RhdHVzYj09Aw==",
    "orderBy": "gYJwdHJhbnNhY3Rpb25JbmRleGRkZXNj"
  }
}
{
  "v0": {
    "documents": {
      "documents": [
        "AHhe7sKtgtdcpajfOGae2s4Pz2NsAXjVnV8UOr/vxelNUtQ195Q84w5+oJMTC0v4Xuqkqt/yjbJK0pyueiVF+b0EAAMAAAGSbu8X2gAAAZJvdJP7AQAAAAAAAAAAAQAAAAAAEQ6JAAAAC6Q7dAAAAAAAAAAAAQAAAAAAAAAAGXapFKBTWF4yIYd8BhlGjPer47jGn9cJiKwAAAAAAAAAAw==",
        "AG/KzuW7iPuYc1q5YGBhPIu0nnU8hv7CKO8N3TM7Jf7HWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGScmkcVwAAAZJ12XqmAQAAAAAAAAABAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AMXvBAbPs4XHFB7f4dxqLYiu+/VGE6wqM4MsLeVd7sUtWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGScm9ExQAAAZJ12XqmAQAAAAAAAAACAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AG6DMT1WjsfepIHQxn2l2EK6hUDBCySn8o46bEafO97lWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdEn98wAAAZJ12XqmAQAAAAAAAAADAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw==",
        "AERUOVp8Qb3e3bXkaDCWaL5qZc2CuiNf2bYdECD/L3IXWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdEsn3wAAAZJ12XqmAQAAAAAAAAAEAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw=="
      ]
    },
    "metadata": {
      "height": "107565",
      "coreChainLockedHeight": 1204015,
      "epoch": 5365,
      "timeMs": "1740667333088",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

Match [['transactionIndex', 'in', [0,1,2,3,4,5]], ['status', '>=', 0]] and order [['status', 'desc'],['transactionIndex', 'desc']]

{
  "v0": {
    "data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=",
    "document_type":"withdrawal",
    "limit": 5,
    "where": "goNwdHJhbnNhY3Rpb25JbmRleGJpboYAAQIDBAWDZnN0YXR1c2I+PQA=",
    "orderBy": "goJmc3RhdHVzZGRlc2OCcHRyYW5zYWN0aW9uSW5kZXhkZGVzYw=="
  }
}
{
  "v0": {
    "documents": {},
    "metadata": {
      "height": "107567",
      "coreChainLockedHeight": 1204019,
      "epoch": 5365,
      "timeMs": "1740667696379",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

Match [['transactionIndex', 'in', [0,1,2,3,4,5]], ['status', '==', 3]] and order [['status', 'desc'],['transactionIndex', 'desc']]

{
  "v0": {
    "data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=",
    "document_type":"withdrawal",
    "limit": 5,
    "where": "goNwdHJhbnNhY3Rpb25JbmRleGJpboYAAQIDBAWDZnN0YXR1c2I9PQM=",
    "orderBy": "goJmc3RhdHVzZGRlc2OCcHRyYW5zYWN0aW9uSW5kZXhkZGVzYw=="
  }
}
{
  "v0": {
    "documents": {
      "documents": [
        "AOpEmI3j3HvFn1CjYWXwSGXDmEXdTWhPjgkitGwSUP7oWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdFSjSgAAAZJ12XqmAQAAAAAAAAAFAQAAAAAAERGKAAAAIuyyXAAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw==",
        "AERUOVp8Qb3e3bXkaDCWaL5qZc2CuiNf2bYdECD/L3IXWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdEsn3wAAAZJ12XqmAQAAAAAAAAAEAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw==",
        "AG6DMT1WjsfepIHQxn2l2EK6hUDBCySn8o46bEafO97lWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdEn98wAAAZJ12XqmAQAAAAAAAAADAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFEj6O7OW/AxDpb3qk2xFx0L2LRR+iKwAAAAAAAAAAw==",
        "AMXvBAbPs4XHFB7f4dxqLYiu+/VGE6wqM4MsLeVd7sUtWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGScm9ExQAAAZJ12XqmAQAAAAAAAAACAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AG/KzuW7iPuYc1q5YGBhPIu0nnU8hv7CKO8N3TM7Jf7HWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGScmkcVwAAAZJ12XqmAQAAAAAAAAABAQAAAAAAERGKAAAAAACYloAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw=="
      ]
    },
    "metadata": {
      "height": "107568",
      "coreChainLockedHeight": 1204019,
      "epoch": 5365,
      "timeMs": "1740667877569",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

Match [['transactionIndex', 'in', [0,1,2,3,4,5]], ['status', 'in', [0,1,2,3]]] and order [['status', 'desc'],['transactionIndex', 'desc']]

{
  "error": "Max retries reached: drive error: query: multiple in clauses error: There should only be one in clause"
}

As result: order by works in desc only with match [['transactionIndex', 'in', [0,1,2,3,4,5]], ['status', '==', 3]]and order [['status', 'desc'],['transactionIndex', 'desc']].
If we want to get order by desc without strict rule for another index, it will not work, but we can get asc sorting in any case

I also noticed that when using an empty match, order by asc and then cutting off the document via startAfter, we will get an empty array, while with startAt everything will work fine

@owl352
Copy link
Contributor Author

owl352 commented Feb 27, 2025

one line commands:

grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"orderBy":"gYJwdHJhbnNhY3Rpb25JbmRleGNhc2M="}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments
grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"orderBy":"gYJwdHJhbnNhY3Rpb25JbmRleGRkZXNj"}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments
grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"where":"gYNmc3RhdHVzYj09Aw==","orderBy":"gYJwdHJhbnNhY3Rpb25JbmRleGRkZXNj"}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments
grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"where":"goNwdHJhbnNhY3Rpb25JbmRleGJpboYAAQIDBAWDZnN0YXR1c2I+PQA=","orderBy":"goJmc3RhdHVzZGRlc2OCcHRyYW5zYWN0aW9uSW5kZXhkZGVzYw=="}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments
grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"where":"goNwdHJhbnNhY3Rpb25JbmRleGJpboYAAQIDBAWDZnN0YXR1c2I9PQM=","orderBy":"goJmc3RhdHVzZGRlc2OCcHRyYW5zYWN0aW9uSW5kZXhkZGVzYw=="}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments

@shumkov
Copy link
Member

shumkov commented Feb 28, 2025

Hello! Our indexes work very similarly to other compound index implementations such as MongoDb or MySQL.

  1. You can't use second indexed field without using the first one
  2. You can do ranges only on the last field in you query

@owl352
Copy link
Contributor Author

owl352 commented Feb 28, 2025

@shumkov Hm.. and how is this related to the fact that startAt works under any conditions, and startAfter returns an empty array with sorting enabled? I also didn't really understand how this is related to the fact that sorting in asc order works under almost any conditions, and in desc order only under strict equals, which I described at the very beginning of the issue?

@owl352
Copy link
Contributor Author

owl352 commented Feb 28, 2025

I've been trying for months to make it clear to you that it doesn't work at all as described, but for some reason you persistently ignore it, and I get the impression that none of my bug reports have been read all the way through.

@owl352
Copy link
Contributor Author

owl352 commented Feb 28, 2025

At the moment, any attempt to implement pagination on documents of the same withdrawals contract results in some crazy crutches and no normal sorting on documents by index. Is this how it should work?

@owl352
Copy link
Contributor Author

owl352 commented Feb 28, 2025

About startAt and startAfter.


no sort startAt MV4xg8XPUXL87T1b8mnUC2S3tdPRHJUnjXuoxFHuBsY document id

grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"startAt":"BT9aY3od7iaqcVxCgE2o4aTSVDZ9EDk15PVuAu3SOXs="}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments
{
  "v0": {
    "documents": {
      "documents": [
        "AAU/WmN6He4mqnFcQoBNqOGk0lQ2fRA5NeT1bgLt0jl7/2UOb6gicKPeEMeNobmLMssPiz1laS1UawlaaWjlKCMEAAMAAAGTDxhbYAAAAZMRW244AQAAAAAAAABgAQAAAAAAEVpFAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAF6kUZP90nNjl3VyALTt3O28MuFHYlG2HAAAAAAAAAAM=",
        "AAhUZgs62jkPwlQHtShlyJynPXDblwjFZt2XgcLBNOMkWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdIiUFgAAAZJ12XqmAQAAAAAAAAAMAQAAAAAAERGKAAAAHvdq8gAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AAmt3Ck70+Q3v3JomoFQBvXSya6bch2UbCuh6qQ85Cot/GfIFdPFc0n4BYx1om8NoBBZFWaFOanM3Z5sK33PjIcEAAMAAAGTTeustAAAAZNN+fJMAQAAAAAAAACNAQAAAAAAEXZKAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAF6kUq+vrzeDjUm8Z6lxS7vzYHcCLNoaHAAAAAAAAAAM=",
        "AAsrj55k5WtyEVNWs2jePBpv+Z7C4Gb0DBvaUd0m6AVEhHUz3wc18cwBXRt/xD8Sx1RMihHvEEI6e+en1JJP9H8EAAMAAAGTH7/ehgAAAZMgVq5kAQAAAAAAAABpAQAAAAAAEWEjAAABAB0b+AAAAAAAAAAAAQAAAAAAAAAAGXapFPcXqd2G6vCLk+kvrFJuQwpIm0OziKwAAAAAAAAAAw==",
        "AA6XY18E3Wjfc3eisk53zjhYgU0nInDO29Gl6En0sL1a/GfIFdPFc0n4BYx1om8NoBBZFWaFOanM3Z5sK33PjIcEAAMAAAGTTfcgGQAAAZNN+fJMAQAAAAAAAACXAQAAAAAAEXZKAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAF6kU6f8VZObepIjyuzPx+1ut8ItE9muHAAAAAAAAAAM="
      ]
    },
    "metadata": {
      "height": "108061",
      "coreChainLockedHeight": 1204629,
      "epoch": 5389,
      "timeMs": "1740755545513",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

documents ids:

  • MV4xg8XPUXL87T1b8mnUC2S3tdPRHJUnjXuoxFHuBsY
  • ZWuSXVGxS3HGx3WhAkzaGQa2iQ8C5VbL6iDrXs236X5
  • enS45R5gSAXBJAb7aqCQCNcxPd3KYuiEHsEY9kT1tTW
  • and others

startAfter

grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"startAfter":"BT9aY3od7iaqcVxCgE2o4aTSVDZ9EDk15PVuAu3SOXs="}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments
{
  "v0": {
    "documents": {
      "documents": [
        "AAhUZgs62jkPwlQHtShlyJynPXDblwjFZt2XgcLBNOMkWyRggLpkNQaF/jAtPXkPW7I4y2GZINRiMMhE8HmUSiMEAAMAAAGSdIiUFgAAAZJ12XqmAQAAAAAAAAAMAQAAAAAAERGKAAAAHvdq8gAAAAAAAAAAAQAAAAAAAAAAGXapFMaaC9p9qq5IG+je+V5fNHodAKS0iKwAAAAAAAAAAw==",
        "AAmt3Ck70+Q3v3JomoFQBvXSya6bch2UbCuh6qQ85Cot/GfIFdPFc0n4BYx1om8NoBBZFWaFOanM3Z5sK33PjIcEAAMAAAGTTeustAAAAZNN+fJMAQAAAAAAAACNAQAAAAAAEXZKAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAF6kUq+vrzeDjUm8Z6lxS7vzYHcCLNoaHAAAAAAAAAAM=",
        "AAsrj55k5WtyEVNWs2jePBpv+Z7C4Gb0DBvaUd0m6AVEhHUz3wc18cwBXRt/xD8Sx1RMihHvEEI6e+en1JJP9H8EAAMAAAGTH7/ehgAAAZMgVq5kAQAAAAAAAABpAQAAAAAAEWEjAAABAB0b+AAAAAAAAAAAAQAAAAAAAAAAGXapFPcXqd2G6vCLk+kvrFJuQwpIm0OziKwAAAAAAAAAAw==",
        "AA6XY18E3Wjfc3eisk53zjhYgU0nInDO29Gl6En0sL1a/GfIFdPFc0n4BYx1om8NoBBZFWaFOanM3Z5sK33PjIcEAAMAAAGTTfcgGQAAAZNN+fJMAQAAAAAAAACXAQAAAAAAEXZKAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAF6kU6f8VZObepIjyuzPx+1ut8ItE9muHAAAAAAAAAAM=",
        "AA79nDSS05FiuLSfMQyuD4bBK67qEIpiMWpeDvhUAIgv/GfIFdPFc0n4BYx1om8NoBBZFWaFOanM3Z5sK33PjIcEAAMAAAGTTeustAAAAZNN+fJMAQAAAAAAAACOAQAAAAAAEXZKAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAF6kU6pcUh1a44i9ncQ0gSMdV0kZJusCHAAAAAAAAAAM="
      ]
    },
    "metadata": {
      "height": "108061",
      "coreChainLockedHeight": 1204629,
      "epoch": 5389,
      "timeMs": "1740755545513",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

documents ids:

  • ZWuSXVGxS3HGx3WhAkzaGQa2iQ8C5VbL6iDrXs236X5
  • enS45R5gSAXBJAb7aqCQCNcxPd3KYuiEHsEY9kT1tTW
  • kc1bVgbqtu8TM6Qr2chWwxosmPiv2iJAJsqnqRUWqu5
  • and others

sortBy transactionIndex asc startAt

grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"orderBy":"gYJwdHJhbnNhY3Rpb25JbmRleGNhc2M=","startAt":"BT9aY3od7iaqcVxCgE2o4aTSVDZ9EDk15PVuAu3SOXs="}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments
{
  "v0": {
    "documents": {
      "documents": [
        "AAU/WmN6He4mqnFcQoBNqOGk0lQ2fRA5NeT1bgLt0jl7/2UOb6gicKPeEMeNobmLMssPiz1laS1UawlaaWjlKCMEAAMAAAGTDxhbYAAAAZMRW244AQAAAAAAAABgAQAAAAAAEVpFAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAF6kUZP90nNjl3VyALTt3O28MuFHYlG2HAAAAAAAAAAM=",
        "AB7lPInUZK6WeNBrCXuNkBIT5WmtYHhEe73gn3FvJf1I/2UOb6gicKPeEMeNobmLMssPiz1laS1UawlaaWjlKCMEAAMAAAGTFRAGXAAAAZMWcAIgAQAAAAAAAABhAQAAAAAAEVyWAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAGXapFJRaGiEgxW9c900g7WKNtbUPckg0iKwAAAAAAAAAAw==",
        "APS6mSZU0zJ1YFJE9WPBTyhhwxUmbyi90yh9M2YswZ6u/2UOb6gicKPeEMeNobmLMssPiz1laS1UawlaaWjlKCMEAAMAAAGTFRAtugAAAZMWcAIgAQAAAAAAAABiAQAAAAAAEVyWAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAGXapFKSY6b2poVVY9Wjw/neTNqIV7jmBiKwAAAAAAAAAAw==",
        "AG+0FTLxmEpGaRQ3/FbDIJvcZh353NU5G64YQ44Hr9lb/2UOb6gicKPeEMeNobmLMssPiz1laS1UawlaaWjlKCMEAAMAAAGTFRB7AwAAAZMWcAIgAQAAAAAAAABjAQAAAAAAEVyWAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAF6kUHx8fwPPz1uXY2hB9lBQJy+Geu9CHAAAAAAAAAAM=",
        "AK9jjYDxu72f00p6QEG2Fvo3rfvfDwtsb9QXeMa9pr/p/2UOb6gicKPeEMeNobmLMssPiz1laS1UawlaaWjlKCMEAAMAAAGTFRCiYAAAAZMWcAIgAQAAAAAAAABkAQAAAAAAEVyWAAAAAAAEk+AAAAAAAAAAAQAAAAAAAAAAGXapFAcnARxlhYAmDE4YqShTspSbeQ9KiKwAAAAAAAAAAw=="
      ]
    },
    "metadata": {
      "height": "108061",
      "coreChainLockedHeight": 1204629,
      "epoch": 5389,
      "timeMs": "1740755545513",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

documents ids:

  • MV4xg8XPUXL87T1b8mnUC2S3tdPRHJUnjXuoxFHuBsY
  • 35byCAZcxkYoLwMGzYfDkNLqKL7HDz458gQf29kcTvPy
  • HUKWPVA7Y5QrxKo61ozpYM2kdk5ViMrpUyLVSF6rA2ku
  • and others

sortBy transactionIndex asc startAfter

grpcurl -insecure -proto ./platform.proto -d '{"v0":{"data_contract_id":"NmK7YeF/rj6ilM9gMZf7CqttURgL2LYQTElEpi/i2X8=","document_type":"withdrawal","limit":5,"orderBy":"gYJwdHJhbnNhY3Rpb25JbmRleGNhc2M=","startAfter":"BT9aY3od7iaqcVxCgE2o4aTSVDZ9EDk15PVuAu3SOXs="}}' 127.0.0.1:1443 org.dash.platform.dapi.v0.Platform/getDocuments
{
  "v0": {
    "documents": {},
    "metadata": {
      "height": "108062",
      "coreChainLockedHeight": 1204631,
      "epoch": 5389,
      "timeMs": "1740755726772",
      "protocolVersion": 8,
      "chainId": "dash-testnet-51"
    }
  }
}

And that's still correct behavior?

@QuantumExplorer
Copy link
Member

The first one is not working as intended. It should work, I will look into why it isn't.

@QuantumExplorer QuantumExplorer added this to the v2.0.0 milestone Mar 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants