Skip to content

Commit 3970825

Browse files
authored
Merge pull request #38 from pymongo/main
Fix: SuiDevInspectTransactionBlock example and parse results in rsp
2 parents c2c872d + f8a8794 commit 3970825

File tree

3 files changed

+28
-12
lines changed

3 files changed

+28
-12
lines changed

examples/transaction/main.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"context"
5+
"encoding/json"
56
"fmt"
67

78
"github.com/block-vision/sui-go-sdk/constant"
@@ -34,6 +35,7 @@ func main() {
3435
//BatchTransaction()
3536
//SuiExecuteTransactionBlock()
3637
//SuiDryRunTransactionBlock()
38+
//SuiDevInspectTransactionBlock()
3739
//SignAndExecuteTransactionBlock()
3840
}
3941

@@ -72,18 +74,25 @@ func SuiDryRunTransactionBlock() {
7274
}
7375

7476
func SuiDevInspectTransactionBlock() {
77+
type moveCallResult struct {
78+
ReturnValues [2]interface{}
79+
}
7580
rsp, err := cli.SuiDevInspectTransactionBlock(ctx, models.SuiDevInspectTransactionBlockRequest{
7681
Sender: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
77-
TxBytes: "AAACAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQEAAAAAAAAAAQEAjgDW4hJZlqvw654RGR3SdndKkdjoC0pzXQLxja/NUahLowQAAAAAACBEQGwClI9RQX68dzbN7PN29/Pw/Sc1hbtZwNAny7wZ+wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMKc3VpX3N5c3RlbRZyZXF1ZXN0X3dpdGhkcmF3X3N0YWtlAAIBAAABAQC3+Y0yfxn2dDR+HkBkFAglMULW5+UJOnyW7ajN/X2btQEqzrI5x8BMQ6LjmCSgAykfjisdYCcyTfW79nyzDB/PvtZBpwAAAAAAIAm+IREDziwoZLm7lc4ZKegZ2J5viEgoss9zgrFkHLh6t/mNMn8Z9nQ0fh5AZBQIJTFC1uflCTp8lu2ozf19m7XoAwAAAAAAAFDhjyoAAAAAAA==",
78-
GasPrice: "1000",
79-
Epoch: "87",
82+
TxBytes: "AAUBAFIMicbHjFZu7Q6/JPhUqMItj90GpvFq0B8Qja1/G6rqFSjPCgAAAAAgU+6E0DJf97dwaRV0MdseKxCPU97monpYtyfJSa7jKQAACKCGAQAAAAAAAAiAlpgAAAAAAAABAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYtKc8KAAAAACBhjSVWnhYSnxbZuJWgDlXi2j3pp7gqJJizx29rU/Ly+QEAy/R0ipZdRp6jo2zwzMV0O5bC0K5t7gdi7T7KZfrAf34EcG9vbBBnZXRfbGV2ZWwyX3JhbmdlAgcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgNzdWkDU1VJAAf3FSwFkwSAzXQNcxG1uLRcb0iOOlOhHD90pvrDalLg1wZEQlVTREMGREJVU0RDAAUBAAABAQABAgABAwABBAA=",
8083
})
8184

8285
if err != nil {
8386
fmt.Println(err.Error())
8487
return
8588
}
8689

90+
var moveCallReturn []moveCallResult
91+
err = json.Unmarshal(rsp.Results, &moveCallReturn)
92+
if err != nil {
93+
fmt.Println("json", err.Error())
94+
return
95+
}
8796
utils.PrettyPrint(rsp)
8897
}
8998

models/read_transaction.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ type SuiTransactionBlockResponse struct {
199199
TimestampMs string `json:"timestampMs,omitempty"`
200200
Checkpoint string `json:"checkpoint,omitempty"`
201201
ConfirmedLocalExecution bool `json:"confirmedLocalExecution,omitempty"`
202+
Results json.RawMessage `json:"results,omitempty"`
202203
}
203204

204205
func (o ObjectChange) GetObjectChangeAddressOwner() string {

sui/read_transaction_api.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,23 +139,29 @@ func (s *suiReadTransactionFromSuiImpl) SuiDryRunTransactionBlock(ctx context.Co
139139
// Which allows for nearly any transaction (or Move call) with any arguments.
140140
// Detailed results are provided, including both the transaction effects and any return values.
141141
func (s *suiReadTransactionFromSuiImpl) SuiDevInspectTransactionBlock(ctx context.Context, req models.SuiDevInspectTransactionBlockRequest) (models.SuiTransactionBlockResponse, error) {
142+
params := []interface{}{
143+
req.Sender,
144+
req.TxBytes,
145+
}
146+
if req.GasPrice != "" {
147+
params = append(params, req.GasPrice)
148+
}
149+
if req.Epoch != "" {
150+
params = append(params, req.Epoch)
151+
}
142152
var rsp models.SuiTransactionBlockResponse
143153
respBytes, err := s.conn.Request(ctx, httpconn.Operation{
144154
Method: "sui_devInspectTransactionBlock",
145-
Params: []interface{}{
146-
req.Sender,
147-
req.TxBytes,
148-
req.GasPrice,
149-
req.Epoch,
150-
},
155+
Params: params,
151156
})
152157
if err != nil {
153158
return rsp, err
154159
}
155-
if gjson.ParseBytes(respBytes).Get("error").Exists() {
156-
return rsp, errors.New(gjson.ParseBytes(respBytes).Get("error").String())
160+
parsedJson := gjson.ParseBytes(respBytes)
161+
if parsedJson.Get("error").Exists() {
162+
return rsp, errors.New(parsedJson.Get("error").String())
157163
}
158-
err = json.Unmarshal([]byte(gjson.ParseBytes(respBytes).Get("result").Raw), &rsp)
164+
err = json.Unmarshal([]byte(parsedJson.Get("result").Raw), &rsp)
159165
if err != nil {
160166
return rsp, err
161167
}

0 commit comments

Comments
 (0)