Commit ddba7b37 authored by Yury's avatar Yury
Browse files

update vendor. Update common module. Message: добавил новый метод transfer - перевод

parent 3ea9047a
Showing with 61 additions and 410 deletions
+61 -410
package chaincode
import (
"github.com/hyperledger/fabric/protos/peer"
"github.com/stretchr/testify/mock"
"github.com/hyperledger/fabric/protos/ledger/queryresult"
)
type StateQueryIteratorInterfaceMock struct {
mock.Mock
}
func (mock *StateQueryIteratorInterfaceMock) Close() error {
return nil
}
func (mock *StateQueryIteratorInterfaceMock) Next() (*queryresult.KV, error) {
args := mock.Called()
return args.Get(0).(*queryresult.KV), args.Error(1)
}
func (mock *StateQueryIteratorInterfaceMock) HasNext() bool {
args := mock.Called()
return args.Get(0).(bool)
}
// ChaincodeStubInterfaceAdapterMock chaincode adapter mock interface
type StubInterfaceAdapterMock struct {
f string
args []string
mock.Mock
}
// GetState
func (mock *StubInterfaceAdapterMock) GetState(key string) ([]byte, error) {
args := mock.Called(key)
if args.Get(0) == nil && args.Get(1) == nil {
return nil, nil
}
return args.Get(0).([]byte), args.Error(1)
}
// PutState
func (mock *StubInterfaceAdapterMock) PutState(key string, value []byte) error {
args := mock.Called(key, value)
return args.Error(0)
}
// DelState records the specified `key` to be deleted in the writeset of
// the transaction proposal. The `key` and its value will be deleted from
// the ledger when the transaction is validated and successfully committed.
func (mock *StubInterfaceAdapterMock) DelState(key string) error {
args := mock.Called(key)
return args.Error(0)
}
func (adapter *StubInterfaceAdapterMock) InvokeChaincode(chaincodeName string, args [][]byte, channel string) peer.Response {
return adapter.Called(chaincodeName, args, channel).Get(0).(peer.Response)
}
func (adapter *StubInterfaceAdapterMock) GetTxID() string {
return "test_tx_id"
}
package chaincode
import (
"time"
)
func MockTimeGetterFunc() TimeGetter {
return func() (int64, error) {
return int64(time.Now().Second()), nil
}
}
\ No newline at end of file
package chaincode
import (
"github.com/hyperledger/fabric/core/chaincode/shim"
pb "github.com/hyperledger/fabric/protos/peer"
"github.com/stretchr/testify/mock"
"time"
)
type ManagerImplMock struct {
mock.Mock
}
func (mock ManagerImplMock) GetTime() int64 {
return int64(time.Now().Second())
}
func (mock ManagerImplMock) SetAdapter(new StubInterfaceAdapter) {
// nothing
}
func (mock ManagerImplMock) SetTimeGetter(new TimeGetter) {
// nothing
}
func (mock ManagerImplMock) GetAdapter() StubInterfaceAdapter {
mockArgs := mock.Called()
if mockArgs.Get(0) == nil {
return nil
}
return mockArgs.Get(0).(StubInterfaceAdapter)
}
func (mock ManagerImplMock) GetTimeGetter() TimeGetter {
mockArgs := mock.Called()
if mockArgs.Get(0) == nil {
return nil
}
return mockArgs.Get(0).(TimeGetter)
}
func (mock ManagerImplMock) GetState(key string) ([]byte, error) {
mockArgs := mock.Called(key)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return nil, nil
}
if mockArgs.Get(0) != nil && mockArgs.Error(1) == nil {
return nil, mockArgs.Error(1)
}
return mockArgs.Get(0).([]byte), mockArgs.Error(1)
}
func (mock ManagerImplMock) PutState(key string, value []byte) error {
mockArgs := mock.Called(key, value)
return mockArgs.Error(0)
}
func (mock ManagerImplMock) DelState(key string) error {
mockArgs := mock.Called(key)
return mockArgs.Error(0)
}
func (mock ManagerImplMock) GetStateByPartialCompositeKey(objectType string, keys []string) (shim.StateQueryIteratorInterface, error) {
mockArgs := mock.Called(objectType, keys)
return mockArgs.Get(0).(shim.StateQueryIteratorInterface), mockArgs.Error(1)
}
func (mock ManagerImplMock) GetObjectListByKeys(expectedValidObjectType ValidObject, keys []string) ([]ValidObject, error) {
mockArgs := mock.Called(expectedValidObjectType, keys)
return mockArgs.Get(0).([]ValidObject), mockArgs.Error(1)
}
func (mock ManagerImplMock) GetObjectListByKeysWithFilter(expectedValidObjectType ValidObject, keys []string, filterArray...string) ([]ValidObject, error) {
mockArgs := mock.Called(expectedValidObjectType, keys, filterArray)
return mockArgs.Get(0).([]ValidObject), mockArgs.Error(1)
}
func (mock ManagerImplMock) CreateCompositeKey(objectType string, attributes []string) (string, error) {
mockArgs := mock.Called(objectType, attributes)
return mockArgs.Get(0).(string), mockArgs.Error(1)
}
func (mock ManagerImplMock) CreateCompositeKeyByValidObject(validObject ValidObject) (string, error) {
mockArgs := mock.Called(validObject)
return mockArgs.Get(0).(string), mockArgs.Error(1)
}
func (mock ManagerImplMock) SplitCompositeKey(compositeKey string) (string, []string, error) {
mockArgs := mock.Called(compositeKey)
return mockArgs.Get(0).(string), mockArgs.Get(1).([]string), mockArgs.Error(2)
}
func (mock ManagerImplMock) InvokeChaincode(chaincodeName string, args [][]byte, channel string) pb.Response {
mockArgs := mock.Called(chaincodeName, args, channel)
if mockArgs.Get(0) == nil {
return pb.Response{Status: 404}
}
return mockArgs.Get(0).(pb.Response)
}
func (mock ManagerImplMock) GetTxID() string {
mockArgs := mock.Called()
return mockArgs.Get(0).(string)
}
func (mock ManagerImplMock) Save(obj ValidObject) (ValidObject, error) {
mockArgs := mock.Called(obj)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return nil, nil
}
return mockArgs.Get(0).(ValidObject), mockArgs.Error(1)
}
func (mock ManagerImplMock) IsExists(obj ValidObject) (bool, error) {
mockArgs := mock.Called(obj)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return false, nil
}
return mockArgs.Get(0).(bool), mockArgs.Error(1)
}
func (mock ManagerImplMock) GetIfExists(obj ValidObject) (bool, error) {
mockArgs := mock.Called(obj)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return false, nil
}
return mockArgs.Get(0).(bool), mockArgs.Error(1)
}
func (mock ManagerImplMock) AddObject(obj ValidObject) (ValidObject, error) {
mockArgs := mock.Called(obj)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return nil, nil
}
if mockArgs.Get(0) == nil && mockArgs.Error(1) != nil {
return nil, mockArgs.Error(1)
}
return mockArgs.Get(0).(ValidObject), mockArgs.Error(1)
}
func (mock ManagerImplMock) UpdateObject(obj ValidObject) (ValidObject, error) {
mockArgs := mock.Called(obj)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return nil, nil
}
if mockArgs.Get(0) == nil && mockArgs.Error(1) != nil {
return nil, mockArgs.Error(1)
}
return mockArgs.Get(0).(ValidObject), mockArgs.Error(1)
}
func (mock ManagerImplMock) GetObjectByCompositeKey(expectedObject ValidObject, compositeKey string) (ValidObject, error) {
mockArgs := mock.Called(expectedObject, compositeKey)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return nil, nil
}
if mockArgs.Get(0) == nil && mockArgs.Error(1) != nil {
return nil, mockArgs.Error(1)
}
return mockArgs.Get(0).(ValidObject), mockArgs.Error(1)
}
func (mock ManagerImplMock) GetObject(expectedObject ValidObject, keys []string, filterArray...string) (ValidObject, error) {
mockArgs := mock.Called(expectedObject, keys, filterArray)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return nil, nil
}
if mockArgs.Get(0) == nil && mockArgs.Error(1) != nil {
return nil, mockArgs.Error(1)
}
return mockArgs.Get(0).(ValidObject), mockArgs.Error(1)
}
//func (mock ManagerImplMock) GetObjectByKeys(expectedObject ValidObject, keys []string) (ValidObject, error) {
// GlobalLogger.Infof("managerImpl.GetObjectByKeys")
// compositeKey, err := mock.CreateCompositeKey(expectedObject.GetObjectType(), keys)
// if err != nil {
// return nil, GlobalLogger.Errorf("Failed to create composite key. Error: %s", err)
// }
//
// bytes, err := mock.GetState(compositeKey)
// if err != nil {
// return nil, GlobalLogger.Errorf("GetState by key %s. Error: %s", keys, err)
// }
//
// if bytes == nil || len(bytes) == 0 {
// GlobalLogger.Error("NOT_FOUND")
// return nil, nil
// }
//
// err = json.Unmarshal(bytes, expectedObject)
// if err != nil {
// return nil, err
// }
// return expectedObject, nil
//}
//func (mock ManagerImplMock) GetObjectByKeysWithFilter(expectedObject ValidObject, keys []string, filterArray...string) (ValidObject, error) {
// GlobalLogger.Infof("managerImpl.GetObjectByKeys")
// compositeKey, err := mock.CreateCompositeKey(expectedObject.GetObjectType(), keys)
// if err != nil {
// return nil, GlobalLogger.Errorf("Failed to create composite key. Error: %s", err)
// }
//
// bytes, err := mock.GetState(compositeKey)
// if err != nil {
// return nil, GlobalLogger.Errorf("GetState by key %s. Error: %s", keys, err)
// }
//
// if bytes == nil || len(bytes) == 0 {
// GlobalLogger.Error("NOT_FOUND")
// return nil, nil
// }
//
// err = json.Unmarshal(bytes, expectedObject)
// if err != nil {
// return nil, err
// }
// return expectedObject, nil
//}
func (mock ManagerImplMock) SignedInvokeChaincode(channelName string, chaincodeName string, functionName string, arg interface{}) pb.Response {
mockArgs := mock.Called(channelName, chaincodeName, functionName, arg)
if mockArgs.Get(0) == nil {
return pb.Response{Status:404}
}
return mockArgs.Get(0).(pb.Response)
}
func (mock ManagerImplMock) PrepareInvokeChaincodeParam(channelName string, chaincodeName string, functionName string, arg interface{}) ([][]byte, error) {
mockArgs := mock.Called(channelName, chaincodeName, functionName, arg)
if mockArgs.Get(0) == nil && mockArgs.Error(1) == nil {
return nil, nil
}
if mockArgs.Get(0) != nil && mockArgs.Error(1) == nil {
return nil, mockArgs.Error(1)
}
return mockArgs.Get(0).([][]byte), mockArgs.Error(1)
}
func (mock ManagerImplMock) InvokeChaincode_GetUser(UserID string) pb.Response {
mockArgs := mock.Called(UserID)
if mockArgs.Get(0) == nil {
return pb.Response{Status:404}
}
return mockArgs.Get(0).(pb.Response)
}
func (mock ManagerImplMock) InvokeChaincode_VerifyUserSignature(arg interface{}) pb.Response {
mockArgs := mock.Called(arg)
if mockArgs.Get(0) == nil {
return pb.Response{Status:404}
}
return mockArgs.Get(0).(pb.Response)
}
......@@ -7,6 +7,7 @@ const (
LockFundsOnAccountFunction = "lockFundsOnAccount"
AccountCurrencyBalanceFunction = "accountCurrencyBalance"
TransferFundsFunction = "transferFunds"
TransferFunction = "transfer"
GetTransactionsFunction = "getTransactions"
LoadCryptocurrencyFunction = "loadCryptocurrency"
LockOutFundsOnAccountFunction = "lockOutFundsOnAccount"
......
package accountCC
func MockLockCommissionTxnAccountInfo() *TxnAccountInfo {
return &TxnAccountInfo{
WalletID: "lockCommissionAmountWalletID",
AccountID: "lockCommissionAmountAccountID",
}
}
func MockLockAmountTxnAccountInfo() *TxnAccountInfo {
return &TxnAccountInfo{
WalletID: "lockAmountWalletID",
AccountID: "lockAmountAccountID",
}
}
......@@ -27,7 +27,6 @@ type OfferRecord struct {
// specific offer record
ReplayedKey string `json:"replayed_key"`
OfferRecordStatus OfferRecordStatus `json:"offer_record_status,omitempty"`
Properties chaincode.Fields `json:"properties,omitempty"`
}
func (this OfferRecord) GetObjectType() string {
......@@ -57,9 +56,6 @@ func (this OfferRecord) CheckBeforeAdd(manager chaincode.IManager) error {
return err
}
if len(this.Properties) == 0 {
this.Properties = make(chaincode.Fields)
}
return nil
}
......
......@@ -2,7 +2,6 @@ package offerCC
import (
"github.com/pkg/errors"
"gitlab.smartblocklab.com/smartcontracts/common/chaincode"
"encoding/json"
)
......@@ -12,7 +11,6 @@ type OfferRequest struct {
OutUserInfo *OfferRequestInfo `json:"out_info,omitempty"`
InUserInfo *OfferRequestInfo `json:"in_info,omitempty"`
OfferRecordStatus OfferRecordStatus `json:"offer_record_status,omitempty"`
Properties chaincode.Fields `json:"properties,omitempty"`
ReplayedKey string `json:"replayed_key"`
}
......
......@@ -220,6 +220,7 @@ var SecurityPreferenceArray = []SecurityPreference{
SecurityPreference{invoke.TransactionCC, invoke.LockFundsOnAccountFunction, ComplexParameter, []Roles{UserRole}},
SecurityPreference{invoke.TransactionCC, invoke.LockOutFundsOnAccountFunction, ComplexParameter, []Roles{UserRole}},
SecurityPreference{invoke.TransactionCC, invoke.TransferFundsFunction, ServiceParameter, []Roles{UserRole}},
SecurityPreference{invoke.TransactionCC, invoke.TransferFunction, ServiceParameter, []Roles{UserRole}},
SecurityPreference{invoke.TransactionCC, invoke.UnlockFundsOnAccountFunction, UserParameter, []Roles{UserRole}},
SecurityPreference{invoke.TransactionCC, invoke.LoadCryptocurrencyFunction, ServiceParameter, []Roles{UserRole}},
SecurityPreference{invoke.TransactionCC, invoke.LockTransferToMarketFunction, ServiceParameter, []Roles{UserRole}},
......
......@@ -51,166 +51,166 @@
"revisionTime": "2017-08-14T20:04:35Z"
},
{
"checksumSHA1": "YZbfPr6fNLvWHivaPcFYi6ckauQ=",
"checksumSHA1": "d80nrqk6iCKtU6H3whKPXnvnMfk=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/chaincode",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "l6Zj9/V3dFoNNpOiV0pGQie3Rzc=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/interfaces/iaccount",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "4ytp54+EuHJoo6KvwsVYsC0FH6Y=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/interfaces/icommission",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "OIYl5lGCHxLOVW0TKLUcrCMBrjk=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/interfaces/iorganization",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "eP9s5XRgtg1mbysZyRJGrFy9skQ=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/interfaces/isystempreference",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "/LEiYlOEx2ZbQUw614iq5L2M4QY=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/interfaces/iuser",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "s2XcVpqoQ4qyT7yXsBsxOGcKCzg=",
"checksumSHA1": "MYqiy92WcVnLmHmy506WpsVZ/hk=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/invoke",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "y8XBhgS5hzCtU1hfJibpEsyWR5c=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/logging",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "ugXju39MuxTC6yOtsa/5aYRY9Ao=",
"checksumSHA1": "VRu3jDNYrwvKZusFhAvz6dcOfdc=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/accountCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "T74qpoL1uJDKfbkboVQmb8x4PhE=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/commissionCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "bvSg8t9celbwD64TsYdnLdsxZ2Y=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/cryptocurrencyCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "g4fc6PRLll6g7pq0z1OfgggMwIM=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/keyValueCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "UeDNOJdDNgOeMkfHVlw7L6rlYeY=",
"checksumSHA1": "KOE1DJpzjdM9vXJnUPqwjMZ+qGQ=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/offerCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "BGwzdt8F6mJvpB1eeeeHnvPnhjg=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/organizationCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "6lQVGwSmeZfMooPIpNg68TAKkmA=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/preferenceCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "1PuzRBhGfI1y25Ae9hzvofGicaQ=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/requests",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "qiG//m4d1c9Z2ZGWJcO1Bpg8H+s=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/system_user",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "wv4kYUUmMjv3JfW5wk+E/L/kZmM=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/systempreferenceCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "X3eW/BPfjn9hDs4AW6CGYZh1ABE=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/transactionCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "zKS+ZjB/PH8XptwXXVPIhkL5h0o=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/userCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "cNYyZdwQuuNMI5r1rbQBpXREYr0=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/model/userPreferenceCC",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "lLukW38IQ4LeuwwPPoBFpH6zCpE=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/nums",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "zVYKXnw/OGXY9/Tv1ldoGvJ9/K8=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/remote/remote_account",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "DNgvi7H8/ANU2eExflueAtKKGgQ=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/remote/remote_organization",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "7gco/+1krQQnrUgxSD4pmIjxJdM=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/remote/remote_systempreference",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "8QWUhnMqrEAH8LOAfEQINdmhor8=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/remote/remote_user",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "hyaYR3TsFJYncCJSBBzv7gas99M=",
"checksumSHA1": "H0+JtUZma9D+zLtiTRJkJzm8u2Q=",
"path": "gitlab.smartblocklab.com/smartcontracts/common/security/actions",
"revision": "4b5054e88e904d0b66ac177652a9bfdd61103b2e",
"revisionTime": "2019-01-17T12:14:47Z"
"revision": "216b9fa007870d98e60dc363d8743b03b1487406",
"revisionTime": "2019-01-18T13:07:01Z"
},
{
"checksumSHA1": "5Yb2z6UO+Arm/TEd+OEtdnwOt1A=",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment