github.com/InjectiveLabs/sdk-go@v1.53.0/examples/chain/permissions/1_CreateNamespace/example.go (about) 1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "os" 7 8 permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" 9 "github.com/InjectiveLabs/sdk-go/client" 10 chainclient "github.com/InjectiveLabs/sdk-go/client/chain" 11 "github.com/InjectiveLabs/sdk-go/client/common" 12 rpchttp "github.com/cometbft/cometbft/rpc/client/http" 13 ) 14 15 func main() { 16 network := common.LoadNetwork("devnet", "lb") 17 tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") 18 if err != nil { 19 panic(err) 20 } 21 22 senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( 23 os.Getenv("HOME")+"/.injectived", 24 "injectived", 25 "file", 26 "inj-user", 27 "12345678", 28 "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided 29 false, 30 ) 31 32 if err != nil { 33 panic(err) 34 } 35 36 clientCtx, err := chainclient.NewClientContext( 37 network.ChainId, 38 senderAddress.String(), 39 cosmosKeyring, 40 ) 41 42 if err != nil { 43 panic(err) 44 } 45 46 clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) 47 48 chainClient, err := chainclient.NewChainClient( 49 clientCtx, 50 network, 51 common.OptionGasPrices(client.DefaultGasPriceWithDenom), 52 ) 53 54 if err != nil { 55 panic(err) 56 } 57 58 blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" 59 namespace := permissionstypes.Namespace{ 60 Denom: "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test", 61 RolePermissions: []*permissionstypes.Role{ 62 { 63 Role: permissionstypes.EVERYONE, 64 Permissions: uint32(permissionstypes.Action_MINT | permissionstypes.Action_RECEIVE | permissionstypes.Action_BURN), 65 }, 66 { 67 Role: "blacklisted", 68 Permissions: 0, 69 }, 70 }, 71 AddressRoles: []*permissionstypes.AddressRoles{ 72 { 73 Address: blockedAddress, 74 Roles: []string{"blacklisted"}, 75 }, 76 }, 77 } 78 79 msg := &permissionstypes.MsgCreateNamespace{ 80 Sender: senderAddress.String(), 81 Namespace: namespace, 82 } 83 84 //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg 85 response, err := chainClient.SyncBroadcastMsg(msg) 86 87 if err != nil { 88 panic(err) 89 } 90 91 str, _ := json.MarshalIndent(response, "", " ") 92 fmt.Print(string(str)) 93 }