github.com/smartcontractkit/chainlink-terra@v0.1.4/tests/e2e/access_controller.go (about) 1 package e2e 2 3 import ( 4 "encoding/json" 5 6 "github.com/smartcontractkit/chainlink-terra/tests/e2e/actypes" 7 terraClient "github.com/smartcontractkit/terra.go/client" 8 "github.com/smartcontractkit/terra.go/msg" 9 ) 10 11 type AccessController struct { 12 client *TerraLCDClient 13 address msg.AccAddress 14 } 15 16 func (t *AccessController) AddAccess(addr string) error { 17 sender := t.client.DefaultWallet.AccAddress 18 executeMsg := actypes.ExecuteAddAccessMsg{ 19 AddAccess: actypes.ExecuteAddAccessTypeMsg{ 20 Address: sender, 21 }} 22 executeMsgBytes, err := json.Marshal(executeMsg) 23 if err != nil { 24 return err 25 } 26 _, err = t.client.SendTX(terraClient.CreateTxOptions{ 27 Msgs: []msg.Msg{ 28 msg.NewMsgExecuteContract( 29 sender, 30 t.address, 31 executeMsgBytes, 32 msg.NewCoins(), 33 ), 34 }, 35 }, true) 36 if err != nil { 37 return err 38 } 39 return nil 40 } 41 42 func (t *AccessController) RemoveAccess(addr string) error { 43 fromAddr, _ := msg.AccAddressFromHex(t.client.DefaultWallet.Address.String()) 44 toAddr, _ := msg.AccAddressFromHex(addr) 45 executeMsg := actypes.ExecuteRemoveAccessMsg{ 46 RemoveAccess: actypes.ExecuteRemoveAccessTypeMsg{ 47 Address: toAddr, 48 }} 49 executeMsgBytes, err := json.Marshal(executeMsg) 50 if err != nil { 51 return err 52 } 53 _, err = t.client.SendTX(terraClient.CreateTxOptions{ 54 Msgs: []msg.Msg{ 55 msg.NewMsgExecuteContract( 56 fromAddr, 57 t.address, 58 executeMsgBytes, 59 msg.NewCoins(), 60 ), 61 }, 62 }, true) 63 if err != nil { 64 return err 65 } 66 return nil 67 } 68 69 func (t *AccessController) HasAccess(to string) (bool, error) { 70 panic("implement me") 71 } 72 73 func (t *AccessController) Address() string { 74 return t.address.String() 75 }