We didn't do a direct dependency update for graphsync 0.13.1 & data transfer 1.15.1 when we propogated them to Lotus. But we seem to have some kind of serialization issue with payment vouchers. These tests fail for opaque reasons, but when you dig into it, the root cause can be found here:
2022-04-25T06:21:38.139+0200 WARN dt-impl impl/receiver.go:28 error processing request from 1WRsHVY5WXbYNt: unmarshaling t.PaymentVoucher pointer: wrong type for uint64 field
Essentially, the issue we are dealing with is some kind of CBOR issue relating to this struct, specifically the *paych.SignedVoucher:
// DealPayment is a payment for an in progress retrieval deal
type DealPayment struct {
ID DealID
PaymentChannel address.Address
PaymentVoucher *paych.SignedVoucher
}
I fear that there is some subtle incompatibility in our current strategy of simple go struct -> CBOR via cbor-gen endcode -> DagCBOR.decode -> ipld.Node -> DagCBOR.encode -> CBOR -> go struct via cbor-gen decode
What
We didn't do a direct dependency update for graphsync 0.13.1 & data transfer 1.15.1 when we propogated them to Lotus. But we seem to have some kind of serialization issue with payment vouchers. These tests fail for opaque reasons, but when you dig into it, the root cause can be found here:
2022-04-25T06:21:38.139+0200 WARN dt-impl impl/receiver.go:28 error processing request from 1WRsHVY5WXbYNt: unmarshaling t.PaymentVoucher pointer: wrong type for uint64 field
Essentially, the issue we are dealing with is some kind of CBOR issue relating to this struct, specifically the *paych.SignedVoucher:
I fear that there is some subtle incompatibility in our current strategy of simple
go struct -> CBOR via cbor-gen endcode -> DagCBOR.decode -> ipld.Node -> DagCBOR.encode -> CBOR -> go struct via cbor-gen decode