filecoin-shipyard / js-lotus-client

Lotus JS Client
https://filecoin-shipyard.github.io/js-lotus-client/
Other
55 stars 12 forks source link

Filecoin.ClientRetrieve DataSelector #83

Open jtsmedley opened 2 years ago

jtsmedley commented 2 years ago

I updated the schema following the instructions in the repo which resulted in a new param becoming available labeled 'DataSelector' . I attempted to use the param to perform a partial retrieval and I was unable to successfully perform the partial retrieval. The Lotus Client instead performed a full retrieval. Execution via CLI works fine. Any assistance would be appreciated.

{ "jsonrpc": "2.0", "id": 1, "method": "Filecoin.ClientRetrieve", "params": [ { "Root": { "/": "QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm" }, "Piece": null, "DataSelector": "Links/0/Hash/Links/0/Hash/5", "Size": 133169152, "Total": "0", "UnsealPrice": "0", "PaymentInterval": 1048576, "PaymentIntervalIncrease": 1048576, "Client": "f1yhlxpl7lg3krlbwqcgtvkyecus5arqpobujfkoy", "Miner": "f08530", "MinerPeer": { "Address": "f010088", "ID": "12D3KooWRDb9V7e5WsHHSZHUtVcR9XgY3BBJSDDYr9YBncXfCjgY", "PieceCID": null } }, null ] }

rvagg commented 2 years ago

I've just updated js-lotus-client-schema and the types in js-lotus-client-rpc to match lotus 1.15.0, so you should get all of those out of the box now if you update your dependencies.

I'm not sure if a path is a valid "DataSelector", maybe it is, I know there was code floating around to detect a path and turn it into a proper selector so maybe it should work -- you could try adding a / to the start of it, because that might be used as a differentiation mechanism. Other than that, I'm not sure, are you getting an error output?