передача аргументов для вызова цепочки в виде байтов - PullRequest
0 голосов
/ 12 июня 2019

При вызове цепного кода есть опция -c для передачи аргументов.Насколько я понял (см. Также Hyperledger fabric: Ошибка: ошибка аргумента цепочечного кода: json: невозможно разархивировать массив в поле структуры Go strArgs.Args типа string ), эти аргументы необходимо передать как строковый массив,Например:

-c '{"Args":["add", "peter", "6"]}'

Существует функция GetArgs() (https://godoc.org/github.com/hyperledger/fabric/core/chaincode/shim#ChaincodeStub.GetArgs), которая возвращает аргументы в виде массива байтовых массивов. В приведенном выше случае это означает, что третий аргумент ("6 ") возвращается как байтовый массив длины 1 с 54 в качестве первой записи. Но я хотел бы представить третий аргумент (" 6 ") в байтовом массиве длины 1 с 6 (00000110) в качестве первой записи. Isn 'Можно ли вообще передавать байты / числовые типы в качестве аргументов?

1 Ответ

1 голос
/ 13 июня 2019

Что вам нужно сделать, это передать третий аргумент как json и разархивировать его из строки в вашем коде цепи.

    '{"Args": ["add", "peter", "[6]"]}'

, а затем что-то вроде

    var arr []byte
    err := json.Unmarshal(args[2], &arr) // args[2] is the third argument from the list
    fmt.Println(arr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...