Module: MixinBot::Utils::Encoder
- Included in:
- MixinBot::Utils
- Defined in:
- lib/mixin_bot/utils/encoder.rb
Instance Method Summary collapse
- #encode_int(int) ⇒ Object
- #encode_raw_transaction(txn) ⇒ Object
- #encode_uint16(int) ⇒ Object
- #encode_uint32(int) ⇒ Object
- #encode_uint64(int) ⇒ Object
- #nft_memo(collection, token, extra) ⇒ Object
Instance Method Details
#encode_int(int) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/mixin_bot/utils/encoder.rb', line 40 def encode_int(int) raise ArgumentError, 'not integer' unless int.is_a?(Integer) bytes = [] loop do break if int.zero? bytes.push int & 255 int = (int / (2**8)) | 0 end bytes.reverse end |
#encode_raw_transaction(txn) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/mixin_bot/utils/encoder.rb', line 6 def encode_raw_transaction(txn) if txn.is_a? String begin txn = JSON.parse txn rescue JSON::ParserError txn end end raise ArgumentError, "#{txn} is not a valid json" unless txn.is_a? Hash txn = txn.with_indifferent_access MixinBot::Transaction.new(**txn).encode.hex end |
#encode_uint16(int) ⇒ Object
22 23 24 25 26 |
# File 'lib/mixin_bot/utils/encoder.rb', line 22 def encode_uint16(int) raise ArgumentError, "only support int #{int}" unless int.is_a?(Integer) [int].pack('S*').bytes.reverse end |
#encode_uint32(int) ⇒ Object
28 29 30 31 32 |
# File 'lib/mixin_bot/utils/encoder.rb', line 28 def encode_uint32(int) raise ArgumentError, "only support int #{int}" unless int.is_a?(Integer) [int].pack('L*').bytes.reverse end |
#encode_uint64(int) ⇒ Object
34 35 36 37 38 |
# File 'lib/mixin_bot/utils/encoder.rb', line 34 def encode_uint64(int) raise ArgumentError, "only support int #{int}" unless int.is_a?(Integer) [int].pack('Q*').bytes.reverse end |