Get Contract Batch

API Endpoint

http://127.0.0.1:5001/api/v1/storage/upload/getcontractbatch?

Input Parameters

ArgumentRequired?TypeDescriptionRequired?
session-idYstringID for the storage upload session.Y
peer-idNstringClient that requires the offline signsN
nonce-timestampYint64Timestamp used for nonce. Must be within 1 hour of server time.N
upload-session-signatureYstringPrivate key-signed string of “::” for this delegated request.N
session-statusYstringThe “status” API session status that is received right before calling this API.N

Usage

async getBatch(event) {
    let input  = {
      SessionId: this.state.added_session_id,
      SessionStatus: this.state.added_session_status,
      Hash: this.state.added_file_hash,
      TimeNonce: this.time,
      PrivKey: config.PrivKey,
      PeerID: config.PeerID
    }
    const batchResponse = this.btfs.getBatch(input, {})
    try {
      for await (const response of batchResponse) {
        input.Contracts = (response).Contracts
        const signBatchResponse = await this.btfs.signBatch(input, {})
        for await (const response of signBatchResponse ){
        }
      }
    } catch (err) {
      console.error(err)
    }
  }
// Usage

getcontract, err := s.StorageUploadGetContractBatch(sessionId, mhash, uts, storage.Status)


// Go Wrapper

func (s *Shell) StorageUploadGetContractBatch(sid string, hash string, uts string, sessionStatus string) (*Contracts, error) {
	var out Contracts
	offlinePeerSessionSignature, err := getSessionSignature()
	if err != nil {
		return nil, err
	}
	rb := s.Request("storage/upload/getcontractbatch", sid, utils.GetPeerId(), uts, offlinePeerSessionSignature, sessionStatus)
	return &out, rb.Exec(context.Background(), &out)
}
curl -X POST http://127.0.0.1:5001/api/v1/storage/upload/getunsigned?arg=647cae8b-7da1-4e00-b183-e34a1517d15e&arg=16Uiu2HAm5KyUqXm7gZb5ECj4vDWVVjVuzNoj7cNM3Q7Eoz5Vsj2D&arg=1582848820&arg=16Uiu2HAm5KyUqXm7gZb5ECj4vDWVVjVuzNoj7cNM3Q7Eoz5Vsj2D%3AQmQqiYA6LXehPbMw5UtW3zCWstEZ9mY37QNxss41SspAzG%3Atime.Now%28%29.String%28%29&arg=balanceSignReady

Response

{
  "Contracts": [
    { 
      “Key”:”<string>”            // `json:”key”`
      “ContractData”:”<string>”   // `json:”contract”`
    },
    ...
  ]
}