From 11f6efe8e193ccf08b00f9c8fd0d75be9d46a435 Mon Sep 17 00:00:00 2001 From: DefinitelyNotAGoat Date: Thu, 7 Jan 2021 20:31:26 -0500 Subject: [PATCH] test: json deserialization of entrypoints --- rpc/block_test.go | 495 ++++++++++++++++++++++++++++++++++++++++++++++ rpc/fa12_test.go | 36 ++++ 2 files changed, 531 insertions(+) diff --git a/rpc/block_test.go b/rpc/block_test.go index a41d3df..ea0202d 100644 --- a/rpc/block_test.go +++ b/rpc/block_test.go @@ -1,6 +1,7 @@ package rpc_test import ( + "encoding/json" "net/http" "net/http/httptest" "testing" @@ -1039,3 +1040,497 @@ func Test_RequiredEndorsements(t *testing.T) { }) } } + +func Test_TransactionEntrypoints(t *testing.T) { + transactionJSON := []byte(`{ + "kind":"transaction", + "source":"tz1Y7kGA8vLAwBkZfTgj4MJS4zgHXSmMn7tW", + "fee":"20925", + "counter":"6845930", + "gas_limit":"205508", + "storage_limit":"0", + "amount":"0", + "destination":"KT1PWx2mnDueood7fEmfbBDKx1D9BAnnXitn", + "parameters":{ + "entrypoint":"approve", + "value":{ + "prim":"Pair", + "args":[ + { + "string":"KT1DrJV8vhkdLEj76h1H9Q4irZDqAkMPo1Qf" + }, + { + "int":"200000" + } + ] + } + }, + "metadata":{ + "balance_updates":[ + { + "kind":"contract", + "contract":"tz1Y7kGA8vLAwBkZfTgj4MJS4zgHXSmMn7tW", + "change":"-20925" + }, + { + "kind":"freezer", + "category":"fees", + "delegate":"tz1P7wwnURM4iccy9sSS6Bo2tay9JpuPHzf5", + "cycle":280, + "change":"20925" + } + ], + "operation_result":{ + "status":"applied", + "storage":{ + "prim":"Pair", + "args":[ + { + "int":"31" + }, + { + "prim":"Pair", + "args":[ + [ + { + "prim":"DUP" + }, + { + "prim":"CAR" + }, + { + "prim":"DIP", + "args":[ + [ + { + "prim":"CDR" + } + ] + ] + }, + { + "prim":"DUP" + }, + { + "prim":"DUP" + }, + { + "prim":"CAR" + }, + { + "prim":"DIP", + "args":[ + [ + { + "prim":"CDR" + } + ] + ] + }, + { + "prim":"DIP", + "args":[ + [ + { + "prim":"DIP", + "args":[ + { + "int":"2" + }, + [ + { + "prim":"DUP" + } + ] + ] + }, + { + "prim":"DIG", + "args":[ + { + "int":"2" + } + ] + } + ] + ] + }, + { + "prim":"PUSH", + "args":[ + { + "prim":"string" + }, + { + "string":"code" + } + ] + }, + { + "prim":"PAIR" + }, + { + "prim":"PACK" + }, + { + "prim":"GET" + }, + { + "prim":"IF_NONE", + "args":[ + [ + { + "prim":"NONE", + "args":[ + { + "prim":"lambda", + "args":[ + { + "prim":"pair", + "args":[ + { + "prim":"bytes" + }, + { + "prim":"big_map", + "args":[ + { + "prim":"bytes" + }, + { + "prim":"bytes" + } + ] + } + ] + }, + { + "prim":"pair", + "args":[ + { + "prim":"list", + "args":[ + { + "prim":"operation" + } + ] + }, + { + "prim":"big_map", + "args":[ + { + "prim":"bytes" + }, + { + "prim":"bytes" + } + ] + } + ] + } + ] + } + ] + } + ], + [ + { + "prim":"UNPACK", + "args":[ + { + "prim":"lambda", + "args":[ + { + "prim":"pair", + "args":[ + { + "prim":"bytes" + }, + { + "prim":"big_map", + "args":[ + { + "prim":"bytes" + }, + { + "prim":"bytes" + } + ] + } + ] + }, + { + "prim":"pair", + "args":[ + { + "prim":"list", + "args":[ + { + "prim":"operation" + } + ] + }, + { + "prim":"big_map", + "args":[ + { + "prim":"bytes" + }, + { + "prim":"bytes" + } + ] + } + ] + } + ] + } + ] + }, + { + "prim":"IF_NONE", + "args":[ + [ + { + "prim":"PUSH", + "args":[ + { + "prim":"string" + }, + { + "string":"UStore: failed to unpack code" + } + ] + }, + { + "prim":"FAILWITH" + } + ], + [ + + ] + ] + }, + { + "prim":"SOME" + } + ] + ] + }, + { + "prim":"IF_NONE", + "args":[ + [ + { + "prim":"DROP" + }, + { + "prim":"DIP", + "args":[ + [ + { + "prim":"DUP" + }, + { + "prim":"PUSH", + "args":[ + { + "prim":"bytes" + }, + { + "bytes":"05010000000866616c6c6261636b" + } + ] + }, + { + "prim":"GET" + }, + { + "prim":"IF_NONE", + "args":[ + [ + { + "prim":"PUSH", + "args":[ + { + "prim":"string" + }, + { + "string":"UStore: no field fallback" + } + ] + }, + { + "prim":"FAILWITH" + } + ], + [ + + ] + ] + }, + { + "prim":"UNPACK", + "args":[ + { + "prim":"lambda", + "args":[ + { + "prim":"pair", + "args":[ + { + "prim":"pair", + "args":[ + { + "prim":"string" + }, + { + "prim":"bytes" + } + ] + }, + { + "prim":"big_map", + "args":[ + { + "prim":"bytes" + }, + { + "prim":"bytes" + } + ] + } + ] + }, + { + "prim":"pair", + "args":[ + { + "prim":"list", + "args":[ + { + "prim":"operation" + } + ] + }, + { + "prim":"big_map", + "args":[ + { + "prim":"bytes" + }, + { + "prim":"bytes" + } + ] + } + ] + } + ] + } + ] + }, + { + "prim":"IF_NONE", + "args":[ + [ + { + "prim":"PUSH", + "args":[ + { + "prim":"string" + }, + { + "string":"UStore: failed to unpack fallback" + } + ] + }, + { + "prim":"FAILWITH" + } + ], + [ + + ] + ] + }, + { + "prim":"SWAP" + } + ] + ] + }, + { + "prim":"PAIR" + }, + { + "prim":"EXEC" + } + ], + [ + { + "prim":"DIP", + "args":[ + [ + { + "prim":"SWAP" + }, + { + "prim":"DROP" + }, + { + "prim":"PAIR" + } + ] + ] + }, + { + "prim":"SWAP" + }, + { + "prim":"EXEC" + } + ] + ] + } + ], + { + "prim":"Pair", + "args":[ + { + "int":"1" + }, + { + "prim":"False" + } + ] + } + ] + } + ] + }, + "big_map_diff":[ + { + "action":"update", + "big_map":"31", + "key_hash":"exprtu2J7H6H5ERrw6EwAccpqChEkUVBMYCLLEVJBtzpT7kVPh4wKy", + "key":{ + "bytes":"05070701000000066c65646765720a00000016000088df70e2e368821a08166a1ad762c9bc5bced878" + }, + "value":{ + "bytes":"05070700a0c6b60b020000002107040a000000160139c8ade2617663981fa2b87592c9ad92714d14c2000080b518" + } + } + ], + "consumed_gas":"205408", + "storage_size":"24637" + } + } + }`) + + var transaction rpc.Transaction + err := json.Unmarshal(transactionJSON, &transaction) + if assert.Nil(t, err) { + assert.Equal(t, "approve", transaction.Parameters.Entrypoint) + } +} diff --git a/rpc/fa12_test.go b/rpc/fa12_test.go index 1653f10..9c1e696 100644 --- a/rpc/fa12_test.go +++ b/rpc/fa12_test.go @@ -1,8 +1,10 @@ package rpc_test import ( + "fmt" "net/http" "net/http/httptest" + "strings" "testing" "github.com/goat-systems/go-tezos/v4/rpc" @@ -304,6 +306,30 @@ func Test_GetFA12Supply(t *testing.T) { "1670000", }, }, + { + "is successful 2", + input{ + gtGoldenHTTPMock(mockCycleSuccessful(mockHandler( + &requestResultPair{regContractCounter, []byte(`"100"`)}, + runOperationHandlerMock( + []byte("{\"contents\":[{\"kind\":\"transaction\",\"source\":\"tz1SUgyRB8T5jXgXAwS33pgRHAKrafyg87Yc\",\"fee\":\"0\",\"counter\":\"5010\",\"gas_limit\":\"1040000\",\"storage_limit\":\"60000\",\"amount\":\"0\",\"destination\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"parameters\":{\"entrypoint\":\"default\",\"value\":[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"mutez\"},{\"int\":\"0\"}]},{\"prim\":\"NONE\",\"args\":[{\"prim\":\"key_hash\"}]},{\"prim\":\"CREATE_CONTRACT\",\"args\":[[{\"prim\":\"parameter\",\"args\":[{\"prim\":\"nat\"}]},{\"prim\":\"storage\",\"args\":[{\"prim\":\"unit\"}]},{\"prim\":\"code\",\"args\":[[{\"prim\":\"FAILWITH\"}]]}]]},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"LAMBDA\",\"args\":[{\"prim\":\"pair\",\"args\":[{\"prim\":\"address\"},{\"prim\":\"unit\"}]},{\"prim\":\"pair\",\"args\":[{\"prim\":\"list\",\"args\":[{\"prim\":\"operation\"}]},{\"prim\":\"unit\"}]},[{\"prim\":\"CAR\"},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"nat\"}]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"a\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"Unit\"}]},{\"prim\":\"PAIR\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"address\"},{\"string\":\"KT1DrJV8vhkdLEj76h1H9Q4irZDqAkMPo1Qf\"}]},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"pair\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"contract\",\"args\":[{\"prim\":\"nat\"}]}]}],\"annots\":[\"%getTotalSupply\"]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"b\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"mutez\"},{\"int\":\"0\"}]}]]},{\"prim\":\"TRANSFER_TOKENS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"NIL\",\"args\":[{\"prim\":\"operation\"}]}]]},{\"prim\":\"CONS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"UNIT\"}]]},{\"prim\":\"PAIR\"}]]}]]},{\"prim\":\"APPLY\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"address\"},{\"string\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\"}]},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"lambda\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"pair\",\"args\":[{\"prim\":\"list\",\"args\":[{\"prim\":\"operation\"}]},{\"prim\":\"unit\"}]}]}]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"c\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"mutez\"},{\"int\":\"0\"}]}]]},{\"prim\":\"TRANSFER_TOKENS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"NIL\",\"args\":[{\"prim\":\"operation\"}]}]]},{\"prim\":\"CONS\"}]]},{\"prim\":\"CONS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"UNIT\"}]]},{\"prim\":\"PAIR\"}]},\"metadata\":{\"balance_updates\":[],\"operation_result\":{\"status\":\"backtracked\",\"storage\":{\"prim\":\"Unit\"},\"consumed_gas\":\"5198\",\"consumed_milligas\":\"5197947\",\"storage_size\":\"46\"},\"internal_operation_results\":[{\"kind\":\"origination\",\"source\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"nonce\":0,\"balance\":\"0\",\"script\":{\"code\":[{\"prim\":\"parameter\",\"args\":[{\"prim\":\"nat\"}]},{\"prim\":\"storage\",\"args\":[{\"prim\":\"unit\"}]},{\"prim\":\"code\",\"args\":[[{\"prim\":\"FAILWITH\"}]]}],\"storage\":{\"prim\":\"Unit\"}},\"result\":{\"status\":\"backtracked\",\"big_map_diff\":[],\"balance_updates\":[{\"kind\":\"contract\",\"contract\":\"tz1SUgyRB8T5jXgXAwS33pgRHAKrafyg87Yc\",\"change\":\"-8000\"},{\"kind\":\"contract\",\"contract\":\"tz1SUgyRB8T5jXgXAwS33pgRHAKrafyg87Yc\",\"change\":\"-64250\"}],\"originated_contracts\":[\"KT1KFvJWMcXi7sSuq5Pqe1bJXWTomndaAKw4\"],\"consumed_gas\":\"1595\",\"consumed_milligas\":\"1594348\",\"storage_size\":\"32\",\"paid_storage_size_diff\":\"32\"}},{\"kind\":\"transaction\",\"source\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"nonce\":1,\"amount\":\"0\",\"destination\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"parameters\":{\"entrypoint\":\"default\",\"value\":[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"address\"},{\"bytes\":\"017518c608448ed754b314e1b7acf9a3e8826e0a1a00\"}]},{\"prim\":\"PAIR\"},[{\"prim\":\"CAR\"},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"nat\"}]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"a\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"Unit\"}]},{\"prim\":\"PAIR\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"address\"},{\"bytes\":\"0139c8ade2617663981fa2b87592c9ad92714d14c200\"}]},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"pair\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"contract\",\"args\":[{\"prim\":\"nat\"}]}]}],\"annots\":[\"%getTotalSupply\"]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"b\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"mutez\"},{\"int\":\"0\"}]}]]},{\"prim\":\"TRANSFER_TOKENS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"NIL\",\"args\":[{\"prim\":\"operation\"}]}]]},{\"prim\":\"CONS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"UNIT\"}]]},{\"prim\":\"PAIR\"}]]},\"result\":{\"status\":\"failed\",\"errors\":[{\"kind\":\"temporary\",\"id\":\"proto.007-PsDELPH1.michelson_v1.runtime_error\",\"contract_handle\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"contract_code\":[{\"prim\":\"parameter\",\"args\":[{\"prim\":\"lambda\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"pair\",\"args\":[{\"prim\":\"list\",\"args\":[{\"prim\":\"operation\"}]},{\"prim\":\"unit\"}]}]}]},{\"prim\":\"storage\",\"args\":[{\"prim\":\"unit\"}]},{\"prim\":\"code\",\"args\":[[{\"prim\":\"CAR\"},{\"prim\":\"UNIT\"},{\"prim\":\"EXEC\"}]]}]},{\"kind\":\"temporary\",\"id\":\"proto.007-PsDELPH1.michelson_v1.script_rejected\",\"location\":35,\"with\":{\"string\":\"b\"}}]}}]}}]}\n"), + blankHandler, + ), + ))), + rpc.GetFA12SupplyInput{ + Cycle: 10, + Source: "some_source", + FA12Contract: "some_fa1.2_contract", + Testnet: true, + ChainID: "some_chainid", + }, + }, + want{ + false, + "", + "1670000", + }, + }, } for _, tt := range cases { @@ -485,3 +511,13 @@ func Test_GetFA12Allowance(t *testing.T) { }) } } + +func Test_Temp(t *testing.T) { + str := strings.ReplaceAll( + "{\"contents\":[{\"kind\":\"transaction\",\"source\":\"tz1SUgyRB8T5jXgXAwS33pgRHAKrafyg87Yc\",\"fee\":\"0\",\"counter\":\"5010\",\"gas_limit\":\"1040000\",\"storage_limit\":\"60000\",\"amount\":\"0\",\"destination\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"parameters\":{\"entrypoint\":\"default\",\"value\":[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"mutez\"},{\"int\":\"0\"}]},{\"prim\":\"NONE\",\"args\":[{\"prim\":\"key_hash\"}]},{\"prim\":\"CREATE_CONTRACT\",\"args\":[[{\"prim\":\"parameter\",\"args\":[{\"prim\":\"nat\"}]},{\"prim\":\"storage\",\"args\":[{\"prim\":\"unit\"}]},{\"prim\":\"code\",\"args\":[[{\"prim\":\"FAILWITH\"}]]}]]},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"LAMBDA\",\"args\":[{\"prim\":\"pair\",\"args\":[{\"prim\":\"address\"},{\"prim\":\"unit\"}]},{\"prim\":\"pair\",\"args\":[{\"prim\":\"list\",\"args\":[{\"prim\":\"operation\"}]},{\"prim\":\"unit\"}]},[{\"prim\":\"CAR\"},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"nat\"}]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"a\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"Unit\"}]},{\"prim\":\"PAIR\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"address\"},{\"string\":\"KT1DrJV8vhkdLEj76h1H9Q4irZDqAkMPo1Qf\"}]},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"pair\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"contract\",\"args\":[{\"prim\":\"nat\"}]}]}],\"annots\":[\"%getTotalSupply\"]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"b\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"mutez\"},{\"int\":\"0\"}]}]]},{\"prim\":\"TRANSFER_TOKENS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"NIL\",\"args\":[{\"prim\":\"operation\"}]}]]},{\"prim\":\"CONS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"UNIT\"}]]},{\"prim\":\"PAIR\"}]]}]]},{\"prim\":\"APPLY\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"address\"},{\"string\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\"}]},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"lambda\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"pair\",\"args\":[{\"prim\":\"list\",\"args\":[{\"prim\":\"operation\"}]},{\"prim\":\"unit\"}]}]}]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"c\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"mutez\"},{\"int\":\"0\"}]}]]},{\"prim\":\"TRANSFER_TOKENS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"NIL\",\"args\":[{\"prim\":\"operation\"}]}]]},{\"prim\":\"CONS\"}]]},{\"prim\":\"CONS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"UNIT\"}]]},{\"prim\":\"PAIR\"}]},\"metadata\":{\"balance_updates\":[],\"operation_result\":{\"status\":\"backtracked\",\"storage\":{\"prim\":\"Unit\"},\"consumed_gas\":\"5198\",\"consumed_milligas\":\"5197947\",\"storage_size\":\"46\"},\"internal_operation_results\":[{\"kind\":\"origination\",\"source\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"nonce\":0,\"balance\":\"0\",\"script\":{\"code\":[{\"prim\":\"parameter\",\"args\":[{\"prim\":\"nat\"}]},{\"prim\":\"storage\",\"args\":[{\"prim\":\"unit\"}]},{\"prim\":\"code\",\"args\":[[{\"prim\":\"FAILWITH\"}]]}],\"storage\":{\"prim\":\"Unit\"}},\"result\":{\"status\":\"backtracked\",\"big_map_diff\":[],\"balance_updates\":[{\"kind\":\"contract\",\"contract\":\"tz1SUgyRB8T5jXgXAwS33pgRHAKrafyg87Yc\",\"change\":\"-8000\"},{\"kind\":\"contract\",\"contract\":\"tz1SUgyRB8T5jXgXAwS33pgRHAKrafyg87Yc\",\"change\":\"-64250\"}],\"originated_contracts\":[\"KT1KFvJWMcXi7sSuq5Pqe1bJXWTomndaAKw4\"],\"consumed_gas\":\"1595\",\"consumed_milligas\":\"1594348\",\"storage_size\":\"32\",\"paid_storage_size_diff\":\"32\"}},{\"kind\":\"transaction\",\"source\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"nonce\":1,\"amount\":\"0\",\"destination\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"parameters\":{\"entrypoint\":\"default\",\"value\":[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"address\"},{\"bytes\":\"017518c608448ed754b314e1b7acf9a3e8826e0a1a00\"}]},{\"prim\":\"PAIR\"},[{\"prim\":\"CAR\"},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"nat\"}]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"a\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"Unit\"}]},{\"prim\":\"PAIR\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"address\"},{\"bytes\":\"0139c8ade2617663981fa2b87592c9ad92714d14c200\"}]},{\"prim\":\"CONTRACT\",\"args\":[{\"prim\":\"pair\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"contract\",\"args\":[{\"prim\":\"nat\"}]}]}],\"annots\":[\"%getTotalSupply\"]},{\"prim\":\"IF_NONE\",\"args\":[[{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"string\"},{\"string\":\"b\"}]},{\"prim\":\"FAILWITH\"}],[]]},{\"prim\":\"PUSH\",\"args\":[{\"prim\":\"mutez\"},{\"int\":\"0\"}]}]]},{\"prim\":\"TRANSFER_TOKENS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"NIL\",\"args\":[{\"prim\":\"operation\"}]}]]},{\"prim\":\"CONS\"},{\"prim\":\"DIP\",\"args\":[[{\"prim\":\"UNIT\"}]]},{\"prim\":\"PAIR\"}]]},\"result\":{\"status\":\"failed\",\"errors\":[{\"kind\":\"temporary\",\"id\":\"proto.007-PsDELPH1.michelson_v1.runtime_error\",\"contract_handle\":\"KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE\",\"contract_code\":[{\"prim\":\"parameter\",\"args\":[{\"prim\":\"lambda\",\"args\":[{\"prim\":\"unit\"},{\"prim\":\"pair\",\"args\":[{\"prim\":\"list\",\"args\":[{\"prim\":\"operation\"}]},{\"prim\":\"unit\"}]}]}]},{\"prim\":\"storage\",\"args\":[{\"prim\":\"unit\"}]},{\"prim\":\"code\",\"args\":[[{\"prim\":\"CAR\"},{\"prim\":\"UNIT\"},{\"prim\":\"EXEC\"}]]}]},{\"kind\":\"temporary\",\"id\":\"proto.007-PsDELPH1.michelson_v1.script_rejected\",\"location\":35,\"with\":{\"string\":\"b\"}}]}}]}}]}", + "\"", + "", + ) + fmt.Println(str) + t.Fail() +}