Method: Eth::Eip712#enforce_typed_data

Defined in:
lib/eth/eip712.rb

#enforce_typed_data(data) ⇒ Array

Enforces basic properties to be represented in the EIP-712 typed data structure: types, domain, message, etc.

Raises:



151
152
153
154
155
156
157
158
159
160
# File 'lib/eth/eip712.rb', line 151

def enforce_typed_data(data)
  data = JSON.parse data if Util.is_hex? data
  raise TypedDataError, "Data is missing, try again with data." if data.nil? or data.empty?
  raise TypedDataError, "Data types are missing." if data[:types].nil? or data[:types].empty?
  raise TypedDataError, "Data primaryType is missing." if data[:primaryType].nil? or data[:primaryType].empty?
  raise TypedDataError, "Data domain is missing." if data[:domain].nil?
  raise TypedDataError, "Data message is missing." if data[:message].nil? or data[:message].empty?
  raise TypedDataError, "Data EIP712Domain is missing." if data[:types][:EIP712Domain].nil?
  return data
end