github.com/InjectiveLabs/sdk-go@v1.53.0/client/chain/ofac_test.go (about) 1 package chain_test 2 3 import ( 4 "encoding/json" 5 "io" 6 "os" 7 "testing" 8 9 "github.com/InjectiveLabs/sdk-go/client" 10 "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 "github.com/cosmos/cosmos-sdk/crypto/keyring" 14 cosmtypes "github.com/cosmos/cosmos-sdk/types" 15 "github.com/stretchr/testify/suite" 16 ) 17 18 type OfacTestSuite struct { 19 suite.Suite 20 network common.Network 21 tmClient *rpchttp.HTTP 22 senderAddress cosmtypes.AccAddress 23 cosmosKeyring keyring.Keyring 24 originalOfacPath string 25 } 26 27 func (suite *OfacTestSuite) SetupTest() { 28 var err error 29 suite.network = common.LoadNetwork("testnet", "lb") 30 suite.tmClient, err = rpchttp.New(suite.network.TmEndpoint, "/websocket") 31 suite.NoError(err) 32 33 suite.senderAddress, suite.cosmosKeyring, err = accountForTests() 34 suite.NoError(err) 35 36 // Prepare OFAC list file 37 testList := []string{ 38 suite.senderAddress.String(), 39 } 40 jsonData, err := json.Marshal(testList) 41 suite.NoError(err) 42 43 suite.originalOfacPath = chain.OfacListPath 44 chain.OfacListPath = suite.T().TempDir() 45 suite.NoError(err) 46 file, err := os.Create(chain.GetOfacListPath()) 47 suite.NoError(err) 48 49 _, err = io.WriteString(file, string(jsonData)) 50 suite.NoError(err) 51 52 err = file.Close() 53 suite.NoError(err) 54 } 55 56 func (suite *OfacTestSuite) TearDownTest() { 57 chain.OfacListPath = suite.originalOfacPath 58 } 59 60 func (suite *OfacTestSuite) TestOfacList() { 61 clientCtx, err := chain.NewClientContext( 62 suite.network.ChainId, 63 suite.senderAddress.String(), 64 suite.cosmosKeyring, 65 ) 66 suite.NoError(err) 67 68 clientCtx = clientCtx.WithNodeURI(suite.network.TmEndpoint).WithClient(suite.tmClient) 69 testChecker, err := chain.NewOfacChecker() 70 suite.NoError(err) 71 suite.True(testChecker.IsBlacklisted(suite.senderAddress.String())) 72 suite.False(testChecker.IsBlacklisted("inj1")) 73 74 _, err = chain.NewChainClient( 75 clientCtx, 76 suite.network, 77 common.OptionGasPrices(client.DefaultGasPriceWithDenom), 78 ) 79 suite.Error(err) 80 } 81 82 func TestOfacTestSuite(t *testing.T) { 83 suite.Run(t, new(OfacTestSuite)) 84 }