Module: MixinBot::API::Multisig
- Included in:
- MixinBot::API
- Defined in:
- lib/mixin_bot/api/multisig.rb
Instance Method Summary collapse
- #create_multisig_raw_tx(_asset_id:, senders:, receivers:, threshold:, inputs:, amount:, trace_id:, extra: '') ⇒ Object
- #create_safe_multisig_request(request_id, raw, access_token: nil) ⇒ Object
- #safe_multisig_request(request_id, access_token: nil) ⇒ Object (also: #fetch_safe_multisig_request)
- #sign_safe_multisig_request(request_id, raw, access_token: nil) ⇒ Object
- #unlock_safe_multisig_request(request_id, access_token: nil) ⇒ Object
Instance Method Details
#create_multisig_raw_tx(_asset_id:, senders:, receivers:, threshold:, inputs:, amount:, trace_id:, extra: '') ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/mixin_bot/api/multisig.rb', line 39 def create_multisig_raw_tx(_asset_id:, senders:, receivers:, threshold:, inputs:, amount:, trace_id:, extra: '') out_hint = MixinBot.utils.unique_object_id(trace_id, 'OUTPUT', '0') change_hint = MixinBot.utils.unique_object_id(trace_id, 'OUTPUT', '1') keys = create_safe_keys( { receivers:, index: 0, hint: out_hint }, { receivers: senders, index: 1, hint: change_hint } )['data'] receivers_list = [ { members: receivers, threshold: 1, amount: amount.to_s, ghosts: [keys[0]] }, { members: senders, threshold:, amount: nil, ghosts: [keys[1]] } ].compact tx = build_safe_transaction(utxos: inputs, receivers: receivers_list, extra:) MixinBot.utils.encode_raw_transaction(tx) end |
#create_safe_multisig_request(request_id, raw, access_token: nil) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/mixin_bot/api/multisig.rb', line 6 def create_safe_multisig_request(request_id, raw, access_token: nil) path = '/safe/multisigs' payload = [{ request_id:, raw: }] client.post path, *payload, access_token: end |
#safe_multisig_request(request_id, access_token: nil) ⇒ Object Also known as: fetch_safe_multisig_request
32 33 34 35 36 |
# File 'lib/mixin_bot/api/multisig.rb', line 32 def safe_multisig_request(request_id, access_token: nil) path = format('/safe/multisigs/%<request_id>s', request_id:) client.get path, access_token: end |
#sign_safe_multisig_request(request_id, raw, access_token: nil) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/mixin_bot/api/multisig.rb', line 16 def sign_safe_multisig_request(request_id, raw, access_token: nil) path = format('/safe/multisigs/%<request_id>s/sign', request_id:) payload = { raw: } client.post path, **payload, access_token: end |
#unlock_safe_multisig_request(request_id, access_token: nil) ⇒ Object
26 27 28 29 30 |
# File 'lib/mixin_bot/api/multisig.rb', line 26 def unlock_safe_multisig_request(request_id, access_token: nil) path = format('/safe/multisigs/%<request_id>s/unlock', request_id:) client.post path, access_token: end |