Class: Privy::Services::KeyQuorums

Inherits:
Resources::KeyQuorums show all
Defined in:
lib/privy/public_api/services/key_quorums.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Resources::KeyQuorums

#get

Constructor Details

#initialize(client:, privy_client:) ⇒ KeyQuorums

Returns a new instance of KeyQuorums.



8
9
10
11
# File 'lib/privy/public_api/services/key_quorums.rb', line 8

def initialize(client:, privy_client:)
  super(client: client)
  @privy_client = privy_client
end

Instance Attribute Details

#privy_clientObject (readonly)

Returns the value of attribute privy_client.



6
7
8
# File 'lib/privy/public_api/services/key_quorums.rb', line 6

def privy_client
  @privy_client
end

Instance Method Details

#create(key_quorum_create_params:, request_options: nil) ⇒ Privy::Models::KeyQuorum

Create a new key quorum.

Examples:

Create a 2-of-2 key quorum

client.key_quorums.create(key_quorum_create_params: {
  public_keys: [key1_public, key2_public],
  display_name: "2 of 2 Key Quorum",
  authorization_threshold: 2
})

Parameters:

  • key_quorum_create_params (Hash)

    Body parameters for key quorum creation.

  • request_options (Privy::RequestOptions, Hash, nil) (defaults to: nil)

    Transport-level config (timeouts, retries).

Options Hash (key_quorum_create_params:):

  • :public_keys (Array<String>, nil)

    P-256 public keys to authorize.

  • :user_ids (Array<String>, nil)

    User IDs to authorize.

  • :key_quorum_ids (Array<String>, nil)

    Nested key quorum IDs.

  • :authorization_threshold (Integer, nil)

    Number of keys required to sign.

  • :display_name (String, nil)

    Human-readable label.

Returns:



31
32
33
# File 'lib/privy/public_api/services/key_quorums.rb', line 31

def create(key_quorum_create_params:, request_options: nil)
  super(key_quorum_create_params.merge(request_options: request_options))
end

#delete(key_quorum_id, authorization_context: nil, request_expiry: nil, request_options: nil) ⇒ Privy::Models::SuccessResponse

Delete a key quorum by key quorum ID.

Examples:

Delete a key quorum with authorization

client.key_quorums.delete("key-quorum-id", authorization_context: ctx)

Parameters:

  • key_quorum_id (String)

    ID of the key quorum to delete.

  • authorization_context (Privy::Authorization::AuthorizationContext, nil) (defaults to: nil)

    Authorization context for signing.

  • request_expiry (Integer, nil) (defaults to: nil)

    Absolute Unix-ms timestamp at which the request expires. Defaults to the value computed by the client’s PrivyRequestExpiryOptions.

  • request_options (Privy::RequestOptions, Hash, nil) (defaults to: nil)

    Transport-level config (timeouts, retries).

Returns:



83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/privy/public_api/services/key_quorums.rb', line 83

def delete(key_quorum_id, authorization_context: nil, request_expiry: nil, request_options: nil)
  prepared = Privy::Authorization.prepare_request(
    privy_client,
    method: :delete,
    url: Privy::Authorization.signed_url(privy_client, "v1/key_quorums/#{key_quorum_id}"),
    body: "",
    authorization_context: authorization_context,
    request_expiry: privy_client.compute_request_expiry(request_expiry)
  )
  combined_params = {request_options: request_options}
  Privy::Authorization.merge_prepared_headers!(combined_params, prepared.headers)
  super(key_quorum_id, combined_params)
end

#update(key_quorum_id, key_quorum_update_params:, authorization_context: nil, request_expiry: nil, request_options: nil) ⇒ Privy::Models::KeyQuorum

Update a key quorum by key quorum ID.

Examples:

Update authorization threshold to 1-of-2

client.key_quorums.update("key-quorum-id",
  key_quorum_update_params: {authorization_threshold: 1},
  authorization_context: ctx)

Parameters:

  • key_quorum_id (String)

    ID of the key quorum to update.

  • key_quorum_update_params (Hash)

    Body parameters for the update.

  • authorization_context (Privy::Authorization::AuthorizationContext, nil) (defaults to: nil)

    Authorization context for signing.

  • request_expiry (Integer, nil) (defaults to: nil)

    Absolute Unix-ms timestamp at which the request expires. Defaults to the value computed by the client’s PrivyRequestExpiryOptions.

  • request_options (Privy::RequestOptions, Hash, nil) (defaults to: nil)

    Transport-level config (timeouts, retries).

Options Hash (key_quorum_update_params:):

  • :authorization_threshold (Integer, nil)

    Number of keys required to sign.

  • :display_name (String, nil)

    Human-readable label.

  • :public_keys (Array<String>, nil)

    P-256 public keys to authorize.

  • :user_ids (Array<String>, nil)

    User IDs to authorize.

  • :key_quorum_ids (Array<String>, nil)

    Nested key quorum IDs.

Returns:



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/privy/public_api/services/key_quorums.rb', line 56

def update(key_quorum_id, key_quorum_update_params:, authorization_context: nil, request_expiry: nil, request_options: nil)
  prepared = Privy::Authorization.prepare_request(
    privy_client,
    method: :patch,
    url: Privy::Authorization.signed_url(privy_client, "v1/key_quorums/#{key_quorum_id}"),
    body: key_quorum_update_params,
    authorization_context: authorization_context,
    request_expiry: privy_client.compute_request_expiry(request_expiry)
  )
  combined_params = key_quorum_update_params.merge(request_options: request_options)
  Privy::Authorization.merge_prepared_headers!(combined_params, prepared.headers)
  super(key_quorum_id, combined_params)
end