Sign Contract Batch

API Endpoint

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

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
signed-data-itemsYstringResult of offline signing of the Contracts. This is an array of json marshalled Contract which is defined at the Response of getcontractbatch API.
But Contract.ContractData has signed data bytes in string format.
N

Usage

// Usage

signbatch, err = s.StorageUploadSignBatch(sessionId, mhash, c, uts, storage.Status)


// Go Wrapper

func (s *Shell) StorageUploadSignBatch(sid string, hash string, unsignedBatchContracts *Contracts, uts string, sessionStatus string) error {
	var signedBatchContracts *Contracts
	var errSign error
	offlinePeerSessionSignature, err := getSessionSignature()
	if err != nil {
		return err
	}

	signedBatchContracts, errSign = unsignedBatchContracts.SignContracts(utils.GetPrivateKey(), sessionStatus)
	if errSign != nil {
		return err
	}
	bytesSignBatch, err := json.Marshal(signedBatchContracts.Contracts)
	if err != nil {
		return err
	}

	rb := s.Request("storage/upload/signcontractbatch", sid, utils.GetPeerId(), uts, offlinePeerSessionSignature,
		sessionStatus, string(bytesSignBatch))
	return rb.Exec(context.Background(), nil)
}
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

{
}