Class: MandateClaw::DSL::Attestation
- Inherits:
-
Object
- Object
- MandateClaw::DSL::Attestation
- Defined in:
- lib/mandate_claw/dsl/attestation.rb
Overview
Defines signing requirements for the contract. A contract is not in force until all required parties have signed.
attestation do
require_signature_from :buyer, :seller, :ai_agent
sign_with :ed25519
end
Constant Summary collapse
- SUPPORTED_ALGORITHMS =
%i[ed25519 hmac_sha256].freeze
Instance Attribute Summary collapse
-
#algorithm ⇒ Object
readonly
Returns the value of attribute algorithm.
-
#required_signatories ⇒ Object
readonly
Returns the value of attribute required_signatories.
Instance Method Summary collapse
-
#initialize ⇒ Attestation
constructor
A new instance of Attestation.
- #require_signature_from(*parties) ⇒ Object
- #sign_with(algorithm) ⇒ Object
Constructor Details
#initialize ⇒ Attestation
Returns a new instance of Attestation.
18 19 20 21 |
# File 'lib/mandate_claw/dsl/attestation.rb', line 18 def initialize @required_signatories = [] @algorithm = :ed25519 end |
Instance Attribute Details
#algorithm ⇒ Object (readonly)
Returns the value of attribute algorithm.
16 17 18 |
# File 'lib/mandate_claw/dsl/attestation.rb', line 16 def algorithm @algorithm end |
#required_signatories ⇒ Object (readonly)
Returns the value of attribute required_signatories.
16 17 18 |
# File 'lib/mandate_claw/dsl/attestation.rb', line 16 def required_signatories @required_signatories end |
Instance Method Details
#require_signature_from(*parties) ⇒ Object
23 24 25 |
# File 'lib/mandate_claw/dsl/attestation.rb', line 23 def require_signature_from(*parties) @required_signatories.concat(parties.flatten) end |
#sign_with(algorithm) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/mandate_claw/dsl/attestation.rb', line 27 def sign_with(algorithm) unless SUPPORTED_ALGORITHMS.include?(algorithm) raise ArgumentError, "Unsupported signing algorithm: #{algorithm}. " \ "Supported: #{SUPPORTED_ALGORITHMS.join(', ')}" end @algorithm = algorithm end |