79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/quorum_sdk/chain/management.rb', line 79
def update_allow_list(**kwargs)
raise ArgumentError, "Keyword arguments #{ARGUMENTS_FOR_UPDATE_ALLOW_LIST} must be provided" unless ARGUMENTS_FOR_UPDATE_ALLOW_LIST.all?(&->(arg) { arg.in? kwargs.keys })
trx_type = kwargs[:trx_type] || ['POST']
trx_type = [trx_type] if trx_type.is_a?(String)
raise ArgumentError, 'trx type must be one of POST/ANNOUNCE/REQ_BLOCK_FORWARD/REQ_BLOCK_FORWARD' unless trx_type.all?(&->(op) { op.in? %w[POST ANNOUNCE REQ_BLOCK_RESP REQ_BLOCK_BACKWARD] })
action = kwargs[:action]
raise ArgumentError, 'trx_auth_mode must be one of add/remove' unless action.in? %w[add remove]
pubkey = kwargs[:pubkey]
if Eth::Util.hex?(pubkey)
pubkey = Secp256k1::PublicKey.from_data([pubkey].pack('H*')).compressed
pubkey = Base64.urlsafe_encode64(pubkey)
end
group_id = kwargs[:group_id] || @group_id
raise ArgumentError, 'group_id must be provided' if group_id.blank?
update_chain_config(
group_id:,
type: 'upd_alw_list',
config: {
trx_type:,
action:,
pubkey:
},
memo: kwargs[:memo]
)
end
|