Add Sui Mainnet RPC URL & Update README.md

This commit is contained in:
0xblockhash
2023-05-06 17:30:38 +08:00
parent 02232a5d8f
commit 2efc0046d1
10 changed files with 869 additions and 173 deletions

627
README.md
View File

@@ -9,11 +9,15 @@
</p>
## Overview
The Sui-Go-SDK provided by BlockVision aims to offer access to all resources in the BlockVision API and also offers some additional features that make the integration easier.
The Sui-Go-SDK provided by BlockVision aims to offer access to all resources in the BlockVision API and also offers some
additional features that make the integration easier.
Sui-Go-SDK is designed for Layer 1 BlockChain [Sui](https://github.com/MystenLabs/sui) in Go programming language.
### Features
+ Support the mainstream methods in the Object, Coin, Event, Read Transaction Blocks, System Data, and Write Transaction Blocks modules.
+ Support the mainstream methods in the Object, Coin, Event, Read Transaction Blocks, System Data, and Write Transaction
Blocks modules.
+ Customized request method `SuiCall`.
+ Unsigned methods can be executed without loading your keystore file.
+ Provide the method `SignAndExecuteTransactionBlock` to send signed transaction.
@@ -21,18 +25,27 @@ Sui-Go-SDK is designed for Layer 1 BlockChain [Sui](https://github.com/MystenLab
## Quick Start
### Install
```shell
go get github.com/block-vision/sui-go-sdk
```
### Go Version
| Golang Version |
|----------------|
| \>= 1.20 |
## Examples
### Get started
### Connecting to Sui Network
You can use the NewSuiClient method and pass in the RPC URL as an argument to easily connect to the Sui network.
BlockVision provides the following free and fast Sui network endpoints:
+ MainNet: https://sui-mainnet-endpoint.blockvision.org
+ TestNet: https://sui-testnet-endpoint.blockvision.org
```go
package main
@@ -40,15 +53,313 @@ import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
)
func main() {
// configure your endpoint here or use blockVision's free Sui RPC endpoint
cli := sui.NewSuiClient("https://sui-testnet-endpoint.blockvision.org")
}
ctx := context.Background()
```
### Writing Transaction Blocks to Sui
#### Transfer Object
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/signer"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
signerAccount, err := signer.NewSignertWithMnemonic("input your mnemonic")
if err != nil {
fmt.Println(err.Error())
return
}
priKey := signerAccount.PriKey
fmt.Printf("signerAccount.Address: %s\n", signerAccount.Address)
rsp, err := cli.TransferObject(ctx, models.TransferObjectRequest{
Signer: signerAccount.Address,
ObjectId: "0x99b51302b66bd65b070cdb549b86e4b9aa7370cfddc70211c2b5a478140c7999",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "100000000",
Recipient: "0xaf9f4d20c205f26051a7e1758601c4c47a9f99df3f9823f70926c17c80882d36",
})
if err != nil {
fmt.Println(err.Error())
return
}
// see the successful transaction url: https://explorer.sui.io/txblock/71xJsyNDRpGV96Dpw2FtjbWgJn2b5yP7KkYC13TGC5n9?network=testnet
rsp2, err := cli.SignAndExecuteTransactionBlock(ctx, models.SignAndExecuteTransactionBlockRequest{
TxnMetaData: rsp,
PriKey: priKey,
// only fetch the effects field
Options: models.SuiTransactionBlockOptions{
ShowInput: true,
ShowRawInput: true,
ShowEffects: true,
},
RequestType: "WaitForLocalExecution",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp2)
}
```
#### Transfer Sui
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/signer"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
signerAccount, err := signer.NewSignertWithMnemonic("input your mnemonic")
if err != nil {
fmt.Println(err.Error())
return
}
priKey := signerAccount.PriKey
fmt.Printf("signerAccount.Address: %s\n", signerAccount.Address)
rsp, err := cli.TransferSui(ctx, models.TransferSuiRequest{
Signer: signerAccount.Address,
SuiObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "100000000",
Recipient: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Amount: "1",
})
if err != nil {
fmt.Println(err.Error())
return
}
// see the successful transaction url: https://explorer.sui.io/txblock/C7iYsH4tU5RdY1KBeNax4mCBn3XLZ5UswsuDpKrVkcH6?network=testnet
rsp2, err := cli.SignAndExecuteTransactionBlock(ctx, models.SignAndExecuteTransactionBlockRequest{
TxnMetaData: rsp,
PriKey: priKey,
// only fetch the effects field
Options: models.SuiTransactionBlockOptions{
ShowInput: true,
ShowRawInput: true,
ShowEffects: true,
},
RequestType: "WaitForLocalExecution",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp2)
}
```
#### Move Call
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/signer"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
signerAccount, err := signer.NewSignertWithMnemonic("input your mnemonic")
if err != nil {
fmt.Println(err.Error())
return
}
priKey := signerAccount.PriKey
fmt.Printf("signerAccount.Address: %s\n", signerAccount.Address)
rsp, err := cli.MoveCall(ctx, models.MoveCallRequest{
Signer: signerAccount.Address,
PackageObjectId: "0x7d584c9a27ca4a546e8203b005b0e9ae746c9bec6c8c3c0bc84611bcf4ceab5f",
Module: "auction",
Function: "start_an_auction",
TypeArguments: []interface{}{},
Arguments: []interface{}{
"0x342e959f8d9d1fa9327a05fd54fefd929bbedad47190bdbb58743d8ba3bd3420",
"0x3fd0fdedb84cf1f59386b6251ba6dd2cb495094da26e0a5a38239acd9d437f96",
"0xb3de4235cb04167b473de806d00ba351e5860500253cf8e62d711e578e1d92ae",
"BlockVision",
"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
},
Gas: "0x58c103930dc52c0ab86319d99218e301596fda6fd80c4efafd7f4c9df1d0b6d0",
GasBudget: "100000000",
})
if err != nil {
fmt.Println(err.Error())
return
}
// see the successful transaction url: https://explorer.sui.io/txblock/CD5hFB4bWFThhb6FtvKq3xAxRri72vsYLJAVd7p9t2sR?network=testnet
rsp2, err := cli.SignAndExecuteTransactionBlock(ctx, models.SignAndExecuteTransactionBlockRequest{
TxnMetaData: rsp,
PriKey: priKey,
// only fetch the effects field
Options: models.SuiTransactionBlockOptions{
ShowInput: true,
ShowRawInput: true,
ShowEffects: true,
},
RequestType: "WaitForLocalExecution",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp2)
}
```
#### Merge coins
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/signer"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
signerAccount, err := signer.NewSignertWithMnemonic("puppy gate beyond civil bargain matter flock armed spy piece cook depart")
if err != nil {
fmt.Println(err.Error())
return
}
priKey := signerAccount.PriKey
fmt.Printf("signerAccount.Address: %s\n", signerAccount.Address)
rsp, err := cli.MergeCoins(ctx, models.MergeCoinsRequest{
Signer: signerAccount.Address,
PrimaryCoin: "0x180fe0c159644fe4b376e4488498e524b2a564919775cb2719734a4699ae7b28",
CoinToMerge: "0x3b4644f82b4dc339c17ed5f786f4050e1f765b38e9297ffdacdfc5ead482669f",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "100000000",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
// see the successful transaction url: https://explorer.sui.io/txblock/DZrnvnk67b27KQXisQA7VfnBUnga2SMnWNMY3UCZPG5a?network=testnet
rsp2, err := cli.SignAndExecuteTransactionBlock(ctx, models.SignAndExecuteTransactionBlockRequest{
TxnMetaData: rsp,
PriKey: priKey,
// only fetch the effects field
Options: models.SuiTransactionBlockOptions{
ShowInput: true,
ShowRawInput: true,
ShowEffects: true,
},
RequestType: "WaitForLocalExecution",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp2)
}
```
### Reading Data from Sui
#### Get the address all balance
Fetch all balance owned by the address `0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5`.
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
rsp, err := cli.SuiXGetAllBalance(ctx, models.SuiXGetAllBalanceRequest{
Owner: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
@@ -59,7 +370,7 @@ func main() {
return
}
fmt.Println(rsp)
utils.PrettyPrint(rsp)
// If you want to request for original json response data, you can use SuiCall().
callRsp, err := cli.SuiCall(ctx, "suix_getAllBalances", "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5")
@@ -69,21 +380,321 @@ func main() {
return
}
fmt.Println(callRsp)
utils.PrettyPrint(callRsp)
}
```
#### Get Coin Metadata
Fetch coin metadata by the CoinType `0xf7a0b8cc24808220226301e102dae27464ea46e0d74bb968828318b9e3a921fa`.
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
rsp, err := cli.SuiXGetCoinMetadata(ctx, models.SuiXGetCoinMetadataRequest{
CoinType: "0xf7a0b8cc24808220226301e102dae27464ea46e0d74bb968828318b9e3a921fa::busd::BUSD",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
}
```
#### Get Owned Objects
Fetch objects owned by the address `0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5`.
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
suiObjectResponseQuery := models.SuiObjectResponseQuery{
// only fetch the effects field
Options: models.SuiObjectDataOptions{
ShowType: true,
ShowContent: true,
ShowBcs: true,
ShowOwner: true,
},
}
rsp, err := cli.SuiXGetOwnedObjects(ctx, models.SuiXGetOwnedObjectsRequest{
Address: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Query: suiObjectResponseQuery,
Limit: 5,
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
}
```
#### Get Object
Fetch object details for the object with id `0xeeb964d1e640219c8ddb791cc8548f3242a3392b143ff47484a3753291cad898`.
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
rsp, err := cli.SuiGetObject(ctx, models.SuiGetObjectRequest{
ObjectId: "0xeeb964d1e640219c8ddb791cc8548f3242a3392b143ff47484a3753291cad898",
// only fetch the effects field
Options: models.SuiObjectDataOptions{
ShowContent: true,
ShowDisplay: true,
ShowType: true,
ShowBcs: true,
ShowOwner: true,
ShowPreviousTransaction: true,
ShowStorageRebate: true,
},
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
}
```
#### Get Transaction
Fetch transaction details with digests `CeVpDXKKU3Gs89efej9pKiYYQyTzifE2BDxWwquUaUht`.
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
rsp, err := cli.SuiGetTransactionBlock(ctx, models.SuiGetTransactionBlockRequest{
Digest: "CeVpDXKKU3Gs89efej9pKiYYQyTzifE2BDxWwquUaUht",
// only fetch the effects field
Options: models.SuiTransactionBlockOptions{
ShowInput: true,
ShowRawInput: true,
ShowEffects: true,
ShowEvents: true,
ShowBalanceChanges: true,
ShowObjectChanges: true,
},
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
// fetch multiple transactions in one batch request
rsp2, err := cli.SuiMultiGetTransactionBlocks(ctx, models.SuiMultiGetTransactionBlocksRequest{
Digests: []string{"CeVpDXKKU3Gs89efej9pKiYYQyTzifE2BDxWwquUaUht", "C2zZu2dpX2sLQy2234yt6ecRiNTVgQTXeQpgw9GhxGgo"},
// only fetch the effects field
Options: models.SuiTransactionBlockOptions{
ShowInput: true,
ShowRawInput: true,
ShowEffects: true,
ShowEvents: true,
ShowObjectChanges: true,
ShowBalanceChanges: true,
},
})
if err != nil {
fmt.Println(err.Error())
return
}
for _, transactionBlock := range rsp2 {
utils.PrettyPrint(*transactionBlock)
}
}
```
#### Get Checkpoints
Get latest 10 Checkpoints in descending order.
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
rsp, err := cli.SuiGetCheckpoints(ctx, models.SuiGetCheckpointsRequest{
Limit: 10,
DescendingOrder: true,
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
// fetch Checkpoint 1628214 and print details.
rsp2, err := cli.SuiGetCheckpoint(ctx, models.SuiGetCheckpointRequest{
CheckpointID: "1628214",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp2)
}
```
#### Query Events
Fetch event details with digests `CeVpDXKKU3Gs89efej9pKiYYQyTzifE2BDxWwquUaUht`.
```go
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
func main() {
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
rsp, err := cli.SuiGetEvents(ctx, models.SuiGetEventsRequest{
Digest: "HATq5p7MNynkBL5bLsdVqL3K38PxWHbqs7vndGiz5qrA",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
// fetch list of events for a specified query criteria.
rsp2, err := cli.SuiXQueryEvents(ctx, models.SuiXQueryEventsRequest{
SuiEventFilter: models.EventFilterByMoveEventType{
MoveEventType: "0x3::validator::StakingRequestEvent",
},
Limit: 5,
DescendingOrder: true,
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp2)
}
```
## Contribution
+ We welcome your suggestions, comments (including criticisms), comments and contributions.
+ Please follow the PR/issue template provided to ensure that your contributions are clear and easy to understand.
+ Thank you to all the people who participate in building better infrastructure!
## Resources
+ [SDK Examples](https://github.com/block-vision/sui-go-sdk/tree/main/examples)
+ [Sui](https://github.com/MystenLabs/sui)
## License
[Apache 2.0 license](LICENSE)

View File

@@ -1,34 +0,0 @@
package config
import (
"encoding/json"
"io/ioutil"
"os"
)
type KeyStoreConfig struct {
Keys []string
}
var keyStoreConfig KeyStoreConfig
func GetKeyStore(path string) (KeyStoreConfig, error) {
err := loadConfig(path)
return keyStoreConfig, err
}
func loadConfig(dir string) error {
f, err := os.Open(dir)
if err != nil {
return err
}
content, err := ioutil.ReadAll(f)
if err != nil {
return err
}
err = json.Unmarshal(content, &keyStoreConfig.Keys)
if err != nil {
return err
}
return nil
}

View File

@@ -1,8 +0,0 @@
[
"AQOf3sfviz7pkIN+qpZfeVrsidg3o39wCohnNS6hkmCzkRyGeALaqpP2iJ1LqWJsxxY2b6H6HLyPOoOhoiBi7SnZ",
"AF6BUd9nBhR0h6hivei0nwcMe1N/GnrB7YecMu8G4yVp9hpOwpqaoCyxgSrHQsz1U0nlNKNVURrtyjfMoSRGKCw=",
"ACCxbg6Y1dMH02D/RqgzeQLLlOJB6FancLCDSFZ0oe3XgaH5ViyVHCgu3+shKU4OpArSvXSzSSuyjLRd+zDijk0=",
"AEQmSf8ZrgC5wsRKwUwLPxcaMD7TiUjp1SMxopHKY+/GbwLY2gyLSs7wMgwILoCJJbHLsSxHkVGEcka5L/UAe8o=",
"ADNVM7XLQd7bx0YFqY4R6J+581liKIeKQWhETX1IO5aFpR6k8+RV/JkHAHJMnRbZTtmNOrERWHJxOzh4oLWY4i0=",
"AKMI98sBlQLPXtvNKAu/DA7mDJACduEI/zqdIZzv9kBRARz/t75VC7TzR68ez6CYvWDtf7cXC0Ks1R0RuQJOm9c="
]

View File

@@ -2,5 +2,7 @@ package constant
const (
BvTestnetEndpoint = "https://sui-testnet-endpoint.blockvision.org"
BvMainnetEndpoint = "https://sui-mainnet-endpoint.blockvision.org"
SuiTestnetEndpoint = "https://fullnode.testnet.sui.io"
SuiMainnetEndpoint = "https://fullnode.mainnet.sui.io"
)

48
examples/event/main.go Normal file
View File

@@ -0,0 +1,48 @@
package main
import (
"context"
"fmt"
"github.com/block-vision/sui-go-sdk/constant"
"github.com/block-vision/sui-go-sdk/models"
"github.com/block-vision/sui-go-sdk/sui"
"github.com/block-vision/sui-go-sdk/utils"
)
var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
func main() {
SuiGetEvents()
SuiXQueryEvents()
}
func SuiGetEvents() {
rsp, err := cli.SuiGetEvents(ctx, models.SuiGetEventsRequest{
Digest: "HATq5p7MNynkBL5bLsdVqL3K38PxWHbqs7vndGiz5qrA",
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
}
func SuiXQueryEvents() {
rsp, err := cli.SuiXQueryEvents(ctx, models.SuiXQueryEventsRequest{
SuiEventFilter: models.EventFilterByMoveEventType{
MoveEventType: "0x3::validator::StakingRequestEvent",
},
Limit: 5,
DescendingOrder: false,
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
}

View File

@@ -13,6 +13,7 @@ var ctx = context.Background()
var cli = sui.NewSuiClient(constant.BvTestnetEndpoint)
func main() {
SuiGetObject()
SuiXGetOwnedObjects()
SuiMultiGetObjects()
SuiXGetDynamicField()
@@ -20,6 +21,29 @@ func main() {
SuiGetLoadedChildObjects()
}
func SuiGetObject() {
rsp, err := cli.SuiGetObject(ctx, models.SuiGetObjectRequest{
ObjectId: "0xeeb964d1e640219c8ddb791cc8548f3242a3392b143ff47484a3753291cad898",
Options: models.SuiObjectDataOptions{
ShowContent: true,
ShowDisplay: true,
ShowType: true,
ShowBcs: true,
ShowOwner: true,
ShowPreviousTransaction: true,
ShowStorageRebate: true,
},
})
if err != nil {
fmt.Println(err.Error())
return
}
utils.PrettyPrint(rsp)
}
func SuiXGetOwnedObjects() {
suiObjectResponseQuery := models.SuiObjectResponseQuery{
Filter: models.ObjectFilterByPackage{

View File

@@ -72,7 +72,7 @@ func SuiDryRunTransactionBlock() {
func SuiDevInspectTransactionBlock() {
rsp, err := cli.SuiDevInspectTransactionBlock(ctx, models.SuiDevInspectTransactionBlockRequest{
Sender: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Sender: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
TxBytes: "AAACAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQEAAAAAAAAAAQEAjgDW4hJZlqvw654RGR3SdndKkdjoC0pzXQLxja/NUahLowQAAAAAACBEQGwClI9RQX68dzbN7PN29/Pw/Sc1hbtZwNAny7wZ+wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMKc3VpX3N5c3RlbRZyZXF1ZXN0X3dpdGhkcmF3X3N0YWtlAAIBAAABAQC3+Y0yfxn2dDR+HkBkFAglMULW5+UJOnyW7ajN/X2btQEqzrI5x8BMQ6LjmCSgAykfjisdYCcyTfW79nyzDB/PvtZBpwAAAAAAIAm+IREDziwoZLm7lc4ZKegZ2J5viEgoss9zgrFkHLh6t/mNMn8Z9nQ0fh5AZBQIJTFC1uflCTp8lu2ozf19m7XoAwAAAAAAAFDhjyoAAAAAAA==",
GasPrice: "1000",
Epoch: "87",
@@ -100,7 +100,7 @@ func SignAndExecuteTransactionBlock() {
Signer: signerAccount.Address,
SuiObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "100000000",
Recipient: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
Amount: "1",
})
@@ -215,7 +215,7 @@ func SuiXQueryTransactionBlocks() {
func MoveCall() {
rsp, err := cli.MoveCall(ctx, models.MoveCallRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
PackageObjectId: "0x7d584c9a27ca4a546e8203b005b0e9ae746c9bec6c8c3c0bc84611bcf4ceab5f",
Module: "auction",
Function: "start_an_auction",
@@ -225,9 +225,9 @@ func MoveCall() {
"0x3fd0fdedb84cf1f59386b6251ba6dd2cb495094da26e0a5a38239acd9d437f96",
"0xb3de4235cb04167b473de806d00ba351e5860500253cf8e62d711e578e1d92ae",
"web3",
"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -241,11 +241,11 @@ func MoveCall() {
func MergeCoins() {
rsp, err := cli.MergeCoins(ctx, models.MergeCoinsRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
PrimaryCoin: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
PrimaryCoin: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
CoinToMerge: "0x92f03fdec6e0278dcb6fa3f4467eeee3e0bee1ac41825351ef53431677d2e2f7",
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
GasBudget: "1000",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000000",
})
if err != nil {
@@ -258,10 +258,10 @@ func MergeCoins() {
func SplitCoin() {
rsp, err := cli.SplitCoin(ctx, models.SplitCoinRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
CoinObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
CoinObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
SplitAmounts: []string{"1000", "1000"},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -275,10 +275,10 @@ func SplitCoin() {
func SplitCoinEqual() {
rsp, err := cli.SplitCoinEqual(ctx, models.SplitCoinEqualRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
CoinObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
CoinObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
SplitCount: "2",
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -292,12 +292,12 @@ func SplitCoinEqual() {
func Publish() {
rsp, err := cli.Publish(ctx, models.PublishRequest{
Sender: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Sender: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
CompiledModules: []string{
"oRzrCwUAAAALAQAOAg4kAzJZBIsBFgWhAZoBB7sC5wEIogQoBsoECgrUBBoM7gSjAQ2RBgQAAAEBAQIBAwEEAQUBBgAHCAAACAgAAAkIAAIKDAEAAQQLAgAGDAIAAxIEAAEUBAEAAQANAAEAAA4CAQAADwMBAAAQBAEAAhUHCAEAAhYJCgEAARcLDAEAARgNCAEAAxkEDgAGGg8QAAUFEQEBCAEVEwgBAAIbFBUBAAMcDgEAAR0BDAEABR4ZAQEIBAYFBgYGBwYKAwsGDAYKFgoXDgYPGAMHCAEHCwMBCAQHCAUAAwYIAgcIAQcIBQEIAAEHCAUCBwsHAQgECwcBCAQBCAQBBgsDAQkAAQMBBwsDAQkAAQcLBwEJAAIHCwcBCQADAQsHAQkAAgcLBwEJAAsHAQkAAQgGAQYIBQEFAgkABQIDCwMBCAQBBgsHAQkAAwcLBwEJAAMHCAUBCwMBCQABCwMBCAQBCAIBCAEBCQAGZG9udXRzB2JhbGFuY2UEY29pbgZvYmplY3QDc3VpCHRyYW5zZmVyCnR4X2NvbnRleHQFRG9udXQJRG9udXRTaG9wDFNob3BPd25lckNhcARDb2luA1NVSQlUeENvbnRleHQJYnV5X2RvbnV0D2NvbGxlY3RfcHJvZml0cwllYXRfZG9udXQEaW5pdAJpZANVSUQFcHJpY2UHQmFsYW5jZQV2YWx1ZQtiYWxhbmNlX211dAVzcGxpdARqb2luA25ldwZzZW5kZXIEdGFrZQZkZWxldGUEemVybwxzaGFyZV9vYmplY3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwgAAAAAAAAAAAACAREIBgECAxEIBhMDAQsHAQgEAgIBEQgGAAEEAAUmCgEuOAAKABAAFCYDEAsAAQsBAQsCAQcAJwsBOAEMAwsDCgAQABQ4AgwECwAPAQsEOAMBCgIRCBIACwIuEQk4BAIBAQQAEhAKARABOAUMAwsBDwELAwoCOAYMBAsECwIuEQk4BwICAQQADgYLABMADAELARENAgMAAAABDgoAEQgSAgoALhEJOAgLABEIBugDAAAAAAAAOAkSATgKAgEBAQIA",
},
Dependencies: []string{"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe"},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Dependencies: []string{"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1"},
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -311,9 +311,9 @@ func Publish() {
func TransferObject() {
rsp, err := cli.TransferObject(ctx, models.TransferObjectRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
ObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
ObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
})
@@ -328,9 +328,9 @@ func TransferObject() {
func TransferSui() {
rsp, err := cli.TransferSui(ctx, models.TransferSuiRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
SuiObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
GasBudget: "1000",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
SuiObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000000",
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
Amount: "1",
})
@@ -345,12 +345,12 @@ func TransferSui() {
func Pay() {
rsp, err := cli.Pay(ctx, models.PayRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
SuiObjectId: []string{"0x92f03fdec6e0278dcb6fa3f4467eeee3e0bee1ac41825351ef53431677d2e2f7"},
Recipient: []string{"0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff"},
Amount: []string{"1"},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
GasBudget: "1000",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000000",
})
if err != nil {
@@ -363,11 +363,11 @@ func Pay() {
func PaySui() {
rsp, err := cli.PaySui(ctx, models.PaySuiRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
SuiObjectId: []string{"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe"},
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
SuiObjectId: []string{"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1"},
Recipient: []string{"0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff"},
Amount: []string{"1"},
GasBudget: "1000",
GasBudget: "1000000",
})
if err != nil {
@@ -380,10 +380,10 @@ func PaySui() {
func PayAllSui() {
rsp, err := cli.PayAllSui(ctx, models.PayAllSuiRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
SuiObjectId: []string{"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe"},
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
SuiObjectId: []string{"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1"},
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
GasBudget: "1000",
GasBudget: "1000000",
})
if err != nil {
@@ -396,11 +396,11 @@ func PayAllSui() {
func RequestAddStake() {
rsp, err := cli.RequestAddStake(ctx, models.AddStakeRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Coins: []string{"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe"},
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
Coins: []string{"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1"},
Amount: "1",
Validator: "0x884515e99dab69c4c28662149db81ca563ed4c36e0c8ce44a58e40e25a0a64a1",
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -414,9 +414,9 @@ func RequestAddStake() {
func RequestWithdrawStake() {
rsp, err := cli.RequestWithdrawStake(ctx, models.WithdrawStakeRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
StakedObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
StakedObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -430,7 +430,7 @@ func RequestWithdrawStake() {
func BatchTransaction() {
rsp, err := cli.BatchTransaction(ctx, models.BatchTransactionRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
RPCTransactionRequestParams: []models.RPCTransactionRequestParams{
{
MoveCallRequestParams: &models.MoveCallRequest{
@@ -443,18 +443,18 @@ func BatchTransaction() {
"0x3fd0fdedb84cf1f59386b6251ba6dd2cb495094da26e0a5a38239acd9d437f96",
"0xb3de4235cb04167b473de806d00ba351e5860500253cf8e62d711e578e1d92ae",
"web3",
"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
},
},
},
{
TransferObjectRequestParams: &models.TransferObjectRequest{
ObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
ObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
},
},
},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
SuiTransactionBlockBuilderMode: "DevInspect",
})

View File

@@ -47,6 +47,13 @@ type SuiObjectResponseQuery struct {
Options SuiObjectDataOptions `json:"options"`
}
type SuiGetObjectRequest struct {
// the ID of the queried object
ObjectId string `json:"ObjectId"`
// config which fields to include in the response, by default only digest is included
Options SuiObjectDataOptions `json:"options"`
}
type SuiXGetOwnedObjectsRequest struct {
// the owner's Sui address
Address string `json:"address" validate:"checkAddress"`

View File

@@ -13,6 +13,7 @@ import (
)
type IReadObjectFromSuiAPI interface {
SuiGetObject(ctx context.Context, req models.SuiGetObjectRequest) (models.SuiObjectData, error)
SuiXGetOwnedObjects(ctx context.Context, req models.SuiXGetOwnedObjectsRequest) (models.PaginatedObjectsResponse, error)
SuiMultiGetObjects(ctx context.Context, req models.SuiMultiGetObjectsRequest) ([]*models.SuiObjectResponse, error)
SuiXGetDynamicField(ctx context.Context, req models.SuiXGetDynamicFieldRequest) (models.PaginatedDynamicFieldInfoResponse, error)
@@ -25,6 +26,30 @@ type suiReadObjectFromSuiImpl struct {
conn *httpconn.HttpConn
}
// SuiGetObject implements the method `sui_getObject`, gets the object information for a specified object.
func (s *suiReadObjectFromSuiImpl) SuiGetObject(ctx context.Context, req models.SuiGetObjectRequest) (models.SuiObjectData, error) {
var rsp models.SuiObjectData
respBytes, err := s.conn.Request(ctx, httpconn.Operation{
Method: "sui_getObject",
Params: []interface{}{
req.ObjectId,
req.Options,
},
})
if err != nil {
return rsp, err
}
if gjson.ParseBytes(respBytes).Get("error").Exists() {
return rsp, errors.New(gjson.ParseBytes(respBytes).Get("error").String())
}
err = json.Unmarshal([]byte(gjson.ParseBytes(respBytes).Get("result.data").String()), &rsp)
if err != nil {
return rsp, err
}
return rsp, nil
}
// SuiXGetOwnedObjects implements the method `suix_getOwnedObjects`, gets the list of objects owned by an address.
func (s *suiReadObjectFromSuiImpl) SuiXGetOwnedObjects(ctx context.Context, req models.SuiXGetOwnedObjectsRequest) (models.PaginatedObjectsResponse, error) {
var rsp models.PaginatedObjectsResponse

View File

@@ -133,7 +133,7 @@ func TestOnReadCoinFromSui(t *testing.T) {
t.Run("test on suix_getBalance", func(t *testing.T) {
rsp, err := cli.SuiXGetBalance(ctx, models.SuiXGetBalanceRequest{
Owner: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Owner: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
CoinType: "0x2::sui::SUI",
})
@@ -147,7 +147,7 @@ func TestOnReadCoinFromSui(t *testing.T) {
t.Run("test on suix_getAllBalances", func(t *testing.T) {
rsp, err := cli.SuiXGetAllBalance(ctx, models.SuiXGetAllBalanceRequest{
Owner: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Owner: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
})
if err != nil {
@@ -160,7 +160,7 @@ func TestOnReadCoinFromSui(t *testing.T) {
t.Run("test on suix_getCoins", func(t *testing.T) {
rsp, err := cli.SuiXGetCoins(ctx, models.SuiXGetCoinsRequest{
Owner: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Owner: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
CoinType: "0x2::sui::SUI",
Limit: 5,
})
@@ -175,7 +175,7 @@ func TestOnReadCoinFromSui(t *testing.T) {
t.Run("test on suix_getAllCoins", func(t *testing.T) {
rsp, err := cli.SuiXGetAllCoins(ctx, models.SuiXGetAllCoinsRequest{
Owner: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Owner: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
Limit: 5,
})
@@ -293,6 +293,27 @@ func TestOnReadTransactionFromSui(t *testing.T) {
}
func TestOnReadObjectFromSui(t *testing.T) {
t.Run("test on sui_getObject", func(t *testing.T) {
rsp, err := cli.SuiGetObject(ctx, models.SuiGetObjectRequest{
ObjectId: "0xeeb964d1e640219c8ddb791cc8548f3242a3392b143ff47484a3753291cad898",
Options: models.SuiObjectDataOptions{
ShowContent: true,
ShowDisplay: true,
ShowType: true,
ShowBcs: true,
ShowOwner: true,
ShowPreviousTransaction: true,
ShowStorageRebate: true,
},
})
if err != nil {
t.Error(err.Error())
t.FailNow()
}
utils.PrettyPrint(rsp)
})
t.Run("test on suix_getOwnedObjects", func(t *testing.T) {
suiObjectResponseQuery := models.SuiObjectResponseQuery{
@@ -444,7 +465,7 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_moveCall", func(t *testing.T) {
rsp, err := cli.MoveCall(ctx, models.MoveCallRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
PackageObjectId: "0x7d584c9a27ca4a546e8203b005b0e9ae746c9bec6c8c3c0bc84611bcf4ceab5f",
Module: "auction",
Function: "start_an_auction",
@@ -454,9 +475,9 @@ func TestOnWriteTransactionToSui(t *testing.T) {
"0x3fd0fdedb84cf1f59386b6251ba6dd2cb495094da26e0a5a38239acd9d437f96",
"0xb3de4235cb04167b473de806d00ba351e5860500253cf8e62d711e578e1d92ae",
"web3",
"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -471,10 +492,10 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_mergeCoins", func(t *testing.T) {
rsp, err := cli.MergeCoins(ctx, models.MergeCoinsRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
PrimaryCoin: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
PrimaryCoin: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
CoinToMerge: "0x92f03fdec6e0278dcb6fa3f4467eeee3e0bee1ac41825351ef53431677d2e2f7",
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -488,12 +509,12 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_publish", func(t *testing.T) {
rsp, err := cli.Publish(ctx, models.PublishRequest{
Sender: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Sender: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
CompiledModules: []string{
"oRzrCwUAAAALAQAOAg4kAzJZBIsBFgWhAZoBB7sC5wEIogQoBsoECgrUBBoM7gSjAQ2RBgQAAAEBAQIBAwEEAQUBBgAHCAAACAgAAAkIAAIKDAEAAQQLAgAGDAIAAxIEAAEUBAEAAQANAAEAAA4CAQAADwMBAAAQBAEAAhUHCAEAAhYJCgEAARcLDAEAARgNCAEAAxkEDgAGGg8QAAUFEQEBCAEVEwgBAAIbFBUBAAMcDgEAAR0BDAEABR4ZAQEIBAYFBgYGBwYKAwsGDAYKFgoXDgYPGAMHCAEHCwMBCAQHCAUAAwYIAgcIAQcIBQEIAAEHCAUCBwsHAQgECwcBCAQBCAQBBgsDAQkAAQMBBwsDAQkAAQcLBwEJAAIHCwcBCQADAQsHAQkAAgcLBwEJAAsHAQkAAQgGAQYIBQEFAgkABQIDCwMBCAQBBgsHAQkAAwcLBwEJAAMHCAUBCwMBCQABCwMBCAQBCAIBCAEBCQAGZG9udXRzB2JhbGFuY2UEY29pbgZvYmplY3QDc3VpCHRyYW5zZmVyCnR4X2NvbnRleHQFRG9udXQJRG9udXRTaG9wDFNob3BPd25lckNhcARDb2luA1NVSQlUeENvbnRleHQJYnV5X2RvbnV0D2NvbGxlY3RfcHJvZml0cwllYXRfZG9udXQEaW5pdAJpZANVSUQFcHJpY2UHQmFsYW5jZQV2YWx1ZQtiYWxhbmNlX211dAVzcGxpdARqb2luA25ldwZzZW5kZXIEdGFrZQZkZWxldGUEemVybwxzaGFyZV9vYmplY3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwgAAAAAAAAAAAACAREIBgECAxEIBhMDAQsHAQgEAgIBEQgGAAEEAAUmCgEuOAAKABAAFCYDEAsAAQsBAQsCAQcAJwsBOAEMAwsDCgAQABQ4AgwECwAPAQsEOAMBCgIRCBIACwIuEQk4BAIBAQQAEhAKARABOAUMAwsBDwELAwoCOAYMBAsECwIuEQk4BwICAQQADgYLABMADAELARENAgMAAAABDgoAEQgSAgoALhEJOAgLABEIBugDAAAAAAAAOAkSATgKAgEBAQIA",
},
Dependencies: []string{"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe"},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Dependencies: []string{"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1"},
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -507,10 +528,10 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_splitCoin", func(t *testing.T) {
rsp, err := cli.SplitCoin(ctx, models.SplitCoinRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
CoinObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
CoinObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
SplitAmounts: []string{"1000", "1000"},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -524,10 +545,10 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_splitCoinEqual", func(t *testing.T) {
rsp, err := cli.SplitCoinEqual(ctx, models.SplitCoinEqualRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
CoinObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
CoinObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
SplitCount: "2",
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -541,9 +562,9 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_transferObject", func(t *testing.T) {
rsp, err := cli.TransferObject(ctx, models.TransferObjectRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
ObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
ObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
})
@@ -558,8 +579,8 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_transferSui", func(t *testing.T) {
rsp, err := cli.TransferSui(ctx, models.TransferSuiRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
SuiObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
SuiObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
Amount: "1",
@@ -575,11 +596,11 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_pay", func(t *testing.T) {
rsp, err := cli.Pay(ctx, models.PayRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
SuiObjectId: []string{"0x92f03fdec6e0278dcb6fa3f4467eeee3e0bee1ac41825351ef53431677d2e2f7"},
Recipient: []string{"0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff"},
Amount: []string{"1"},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
})
@@ -593,8 +614,8 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_paySui", func(t *testing.T) {
rsp, err := cli.PaySui(ctx, models.PaySuiRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
SuiObjectId: []string{"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe"},
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
SuiObjectId: []string{"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1"},
Recipient: []string{"0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff"},
Amount: []string{"1"},
GasBudget: "1000",
@@ -610,8 +631,8 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_payAllSui", func(t *testing.T) {
rsp, err := cli.PayAllSui(ctx, models.PayAllSuiRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
SuiObjectId: []string{"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe"},
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
SuiObjectId: []string{"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1"},
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
GasBudget: "1000",
})
@@ -626,7 +647,7 @@ func TestOnWriteTransactionToSui(t *testing.T) {
t.Run("test on unsafe_batchTransaction", func(t *testing.T) {
rsp, err := cli.BatchTransaction(ctx, models.BatchTransactionRequest{
Signer: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Signer: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
RPCTransactionRequestParams: []models.RPCTransactionRequestParams{
{
MoveCallRequestParams: &models.MoveCallRequest{
@@ -639,18 +660,18 @@ func TestOnWriteTransactionToSui(t *testing.T) {
"0x3fd0fdedb84cf1f59386b6251ba6dd2cb495094da26e0a5a38239acd9d437f96",
"0xb3de4235cb04167b473de806d00ba351e5860500253cf8e62d711e578e1d92ae",
"web3",
"0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
"0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
},
},
},
{
TransferObjectRequestParams: &models.TransferObjectRequest{
ObjectId: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
ObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
},
},
},
Gas: "0x2aceb239c7c04c43a2e39824a003291f8e2b1d6027324df5bbf67cb30c1fcfbe",
Gas: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "1000",
SuiTransactionBlockBuilderMode: "DevInspect",
})
@@ -677,7 +698,7 @@ func TestOnWriteTransactionToSui(t *testing.T) {
Signer: signerAccount.Address,
SuiObjectId: "0xc699c6014da947778fe5f740b2e9caf905ca31fb4c81e346f467ae126e3c03f1",
GasBudget: "100000000",
Recipient: "0xb7f98d327f19f674347e1e40641408253142d6e7e5093a7c96eda8cdfd7d9bb5",
Recipient: "0x4ae8be62692d1bbf892b657ee78a59954240ee0525f20a5b5687a70995cf0eff",
Amount: "1",
})