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  }