Module: MixinBot::Utils::Address
- Included in:
- MixinBot::Utils
- Defined in:
- lib/mixin_bot/utils/address.rb
Constant Summary collapse
- MAIN_ADDRESS_PREFIX =
MixinBot::MAIN_ADDRESS_PREFIX
- MIX_ADDRESS_PREFIX =
MixinBot::MIX_ADDRESS_PREFIX
- MIX_ADDRESS_VERSION =
MixinBot::MIX_ADDRESS_VERSION
Instance Method Summary collapse
- #build_main_address(public_key) ⇒ Object
- #build_mix_address(members:, threshold:) ⇒ Object
- #build_safe_recipient(**kwargs) ⇒ Object
- #burning_address ⇒ Object
-
#hash_members(ids) ⇒ Object
Sorted-member hash used by Safe outputs and legacy collectible listing (Go
HashMembers). - #parse_main_address(address) ⇒ Object
- #parse_mix_address(address) ⇒ Object
Instance Method Details
#build_main_address(public_key) ⇒ Object
10 11 12 |
# File 'lib/mixin_bot/utils/address.rb', line 10 def build_main_address(public_key) MainAddress.new(public_key:).address end |
#build_mix_address(members:, threshold:) ⇒ Object
18 19 20 |
# File 'lib/mixin_bot/utils/address.rb', line 18 def build_mix_address(members:, threshold:) MixAddress.from_members(members:, threshold:).address end |
#build_safe_recipient(**kwargs) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/mixin_bot/utils/address.rb', line 30 def build_safe_recipient(**kwargs) members = kwargs[:members] threshold = kwargs[:threshold] amount = kwargs[:amount] members = [members] if members.is_a? String amount = format('%.8f', amount.to_d.to_r).gsub(/\.?0+$/, '') { members:, threshold:, amount:, mix_address: build_mix_address(members:, threshold:) } end |
#burning_address ⇒ Object
46 47 48 |
# File 'lib/mixin_bot/utils/address.rb', line 46 def burning_address MainAddress.burning_address.address end |
#hash_members(ids) ⇒ Object
Sorted-member hash used by Safe outputs and legacy collectible listing (Go HashMembers).
53 54 55 56 |
# File 'lib/mixin_bot/utils/address.rb', line 53 def hash_members(ids) list = Array(ids).flatten.compact.map(&:to_s).sort SHA3::Digest::SHA256.hexdigest(list.join) end |
#parse_main_address(address) ⇒ Object
14 15 16 |
# File 'lib/mixin_bot/utils/address.rb', line 14 def parse_main_address(address) MainAddress.new(address:).public_key end |
#parse_mix_address(address) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/mixin_bot/utils/address.rb', line 22 def parse_mix_address(address) ma = MixAddress.parse(address) { members: ma.uuid_members + ma.xin_members, threshold: ma.threshold } end |