diff --git a/internal/types/blacklist.go b/internal/types/blacklist.go index 4606c5e..79657ac 100644 --- a/internal/types/blacklist.go +++ b/internal/types/blacklist.go @@ -55,5 +55,5 @@ func (bl Blacklist) IsAllowed(contract string, action string) bool { } func (bl Blacklist) IsDenied(contract string, action string) bool { - return bl.IsAllowed(contract, action) + return !bl.IsAllowed(contract, action) } diff --git a/internal/types/blacklist_test.go b/internal/types/blacklist_test.go index 3c6a8a8..69b987b 100644 --- a/internal/types/blacklist_test.go +++ b/internal/types/blacklist_test.go @@ -93,3 +93,19 @@ func TestBlacklist_Whitelist(t *testing.T) { require.False(t, bl.IsAllowed("mycontract", "xxx")) require.False(t, bl.IsAllowed("xxx", "yyy")) } + +func TestBlacklist_IsDenied(t *testing.T) { + bl := Blacklist{ + table: map[string][]string{ + "mycontract": {"myaction", "noop"}, + }, + } + + require.True(t, bl.IsDenied("mycontract", "myaction")) + require.False(t, bl.IsDenied("mycontract", "randomaction")) + + bl.SetWhitelist(true) + + require.False(t, bl.IsDenied("mycontract", "myaction")) + require.True(t, bl.IsDenied("mycontract", "randomaction")) +}