createDeliverEnvelope creates a deliver request based on the block number. blockNum=0 means newest block
(channelID string, signingIdentity *nwo.SigningIdentity, blockNum uint64)
| 1161 | // createDeliverEnvelope creates a deliver request based on the block number. |
| 1162 | // blockNum=0 means newest block |
| 1163 | func createDeliverEnvelope(channelID string, signingIdentity *nwo.SigningIdentity, blockNum uint64) (*cb.Envelope, error) { |
| 1164 | creator, err := signingIdentity.Serialize() |
| 1165 | if err != nil { |
| 1166 | return nil, err |
| 1167 | } |
| 1168 | header, err := createHeader(cb.HeaderType_DELIVER_SEEK_INFO, channelID, creator) |
| 1169 | if err != nil { |
| 1170 | return nil, err |
| 1171 | } |
| 1172 | |
| 1173 | // if blockNum is not greater than 0, seek the newest block |
| 1174 | var seekInfo *ab.SeekInfo |
| 1175 | if blockNum > 0 { |
| 1176 | seekInfo = &ab.SeekInfo{ |
| 1177 | Start: &ab.SeekPosition{ |
| 1178 | Type: &ab.SeekPosition_Specified{ |
| 1179 | Specified: &ab.SeekSpecified{Number: blockNum}, |
| 1180 | }, |
| 1181 | }, |
| 1182 | Stop: &ab.SeekPosition{ |
| 1183 | Type: &ab.SeekPosition_Specified{ |
| 1184 | Specified: &ab.SeekSpecified{Number: blockNum}, |
| 1185 | }, |
| 1186 | }, |
| 1187 | } |
| 1188 | } else { |
| 1189 | seekInfo = &ab.SeekInfo{ |
| 1190 | Start: &ab.SeekPosition{ |
| 1191 | Type: &ab.SeekPosition_Newest{ |
| 1192 | Newest: &ab.SeekNewest{}, |
| 1193 | }, |
| 1194 | }, |
| 1195 | Stop: &ab.SeekPosition{ |
| 1196 | Type: &ab.SeekPosition_Newest{ |
| 1197 | Newest: &ab.SeekNewest{}, |
| 1198 | }, |
| 1199 | }, |
| 1200 | } |
| 1201 | } |
| 1202 | |
| 1203 | // create the envelope |
| 1204 | raw := protoutil.MarshalOrPanic(seekInfo) |
| 1205 | payload := &cb.Payload{ |
| 1206 | Header: header, |
| 1207 | Data: raw, |
| 1208 | } |
| 1209 | payloadBytes := protoutil.MarshalOrPanic(payload) |
| 1210 | signature, err := signingIdentity.Sign(payloadBytes) |
| 1211 | if err != nil { |
| 1212 | return nil, err |
| 1213 | } |
| 1214 | return &cb.Envelope{ |
| 1215 | Payload: payloadBytes, |
| 1216 | Signature: signature, |
| 1217 | }, nil |
| 1218 | } |
| 1219 | |
| 1220 | func createHeader(txType cb.HeaderType, channelID string, creator []byte) (*cb.Header, error) { |
no test coverage detected