minter 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +28 -4
  3. data/lib/ffi/transaction/compile.rb +14 -0
  4. data/lib/ffi/{transaction_ffi.rb → transaction/transaction_ffi.rb} +1 -2
  5. data/lib/ffi/{go → wallet}/compile.rb +2 -2
  6. data/lib/ffi/{wallet_ffi.rb → wallet/wallet_ffi.rb} +0 -0
  7. data/lib/minter/transactions/buy_coin_tx.rb +2 -8
  8. data/lib/minter/transactions/create_coin_tx.rb +2 -8
  9. data/lib/minter/transactions/declare_candidacy_tx.rb +3 -8
  10. data/lib/minter/transactions/delegate_tx.rb +2 -8
  11. data/lib/minter/transactions/edit_candidate_tx.rb +2 -8
  12. data/lib/minter/transactions/multi_send_tx.rb +30 -0
  13. data/lib/minter/transactions/redeem_check_tx.rb +2 -8
  14. data/lib/minter/transactions/sell_all_coin_tx.rb +2 -8
  15. data/lib/minter/transactions/sell_coin_tx.rb +2 -8
  16. data/lib/minter/transactions/send_coin_tx.rb +3 -8
  17. data/lib/minter/transactions/set_candidate_off_tx.rb +2 -8
  18. data/lib/minter/transactions/set_candidate_on_tx.rb +2 -8
  19. data/lib/minter/transactions/transaction.rb +17 -0
  20. data/lib/minter/transactions/unbond_tx.rb +2 -8
  21. data/lib/minter/version.rb +1 -1
  22. data/lib/minter/wallet.rb +3 -2
  23. data/lib/minter.rb +3 -2
  24. metadata +8 -14
  25. data/lib/ffi/transaction-darwin-10.6-amd64.dylib +0 -0
  26. data/lib/ffi/transaction-darwin-10.6-amd64.h +0 -104
  27. data/lib/ffi/transaction-linux-amd64.h +0 -104
  28. data/lib/ffi/transaction-linux-amd64.so +0 -0
  29. data/lib/ffi/wallet-darwin-10.6-amd64.dylib +0 -0
  30. data/lib/ffi/wallet-darwin-10.6-amd64.h +0 -86
  31. data/lib/ffi/wallet-linux-amd64.h +0 -86
  32. data/lib/ffi/wallet-linux-amd64.so +0 -0
  33. data/lib/ffi/wallet.h +0 -86
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad20078f53f3c847812163318efff3a356a4d3a0ae9374dab2c290415d5e8302
4
- data.tar.gz: d4c746229c3be9a26d88a69bf759a585fc03984eb8b65d08a3e7a7c7b6d5d3d9
3
+ metadata.gz: 2fb9bd69dc66c7e056d03f510826cac63ebfdb73e9aa516458660c97fe17998b
4
+ data.tar.gz: 77afdd7d8847d641930e16b50779aade041f5afa9634534b955cd68cf253bf89
5
5
  SHA512:
6
- metadata.gz: 0d9955beed6b44909260ab74a334dd2dada2b768f74fe464c2c5ae6620dd2265f03ccbec3486483da467f694da6a45659c42b0e970bd830c295049f7f5b10624
7
- data.tar.gz: c43128e29ee065c1962c12cb16006efa7a22dd661f16c59178246346a7754c909c1c91f866e8a5125669d74b9687c20f0b7aa01e41da23916e282447ff021773
6
+ metadata.gz: 3fc9c2d0bfa3c85758a931de46ce86afb67b7c0afb253e328ef5e275d9d76db6c5bd8dc97c1de2ce87631a639b5cc1ca7d092a5f5fbb52539ed0560217cd3ab4
7
+ data.tar.gz: 37d5fc9507bc6aaf2776ba2fad4215aece8f6c367d80f2e7806032de367781696b3f8f510b16215be8758125b7160304c5bff03637b1ba00a5afad7ac27ef8f9
data/README.md CHANGED
@@ -828,16 +828,30 @@ Transaction for creating multisignature address.
828
828
 
829
829
  Transaction for sending coins to multiple addresses.
830
830
 
831
- ##### Example
832
-
833
831
  ```ruby
834
- # IN PROGRESS
832
+ transaction = Minter::MultiSendTx.new(
833
+ nonce: 1,
834
+ chain_id: 2,
835
+ gas_coin: "MNT",
836
+ gas_price: 1
837
+ )
838
+
839
+ transaction.add_item(
840
+ symbol: "MNT",
841
+ address_to: "Mxfe60014a6e9ac91618f5d1cab3fd58cded61ee99",
842
+ value: 100_000_000_000_000_000
843
+ )
844
+
845
+ transaction.add_item(
846
+ symbol: "MNT",
847
+ address_to: "Mxddab6281766ad86497741ff91b6b48fe85012e3c",
848
+ value: 200_000_000_000_000_000
849
+ )
835
850
  ```
836
851
  ### Get fee of transaction
837
852
  ```ruby
838
853
  # IN PROGRESS
839
854
  ```
840
-
841
855
  ### Decode Transaction
842
856
 
843
857
  ```ruby
@@ -895,6 +909,16 @@ wallet = Minter::Wallet.new
895
909
  # "Mp961589ae817659c6bb323587faa9a92a91b5e8481dd3b73ad0dc680464dac5adbc2d498064598bc36e158436fb1861245ef909a1776e5cb50221db718c82a483">
896
910
  ```
897
911
 
912
+ #### Build wallet from mnemonic
913
+ ```ruby
914
+ mnemonic = "hurt orient quarter item can into zebra west either ship team pattern"
915
+ wallet = Minter::Wallet.new(mnemonic)
916
+ => #<Minter::Wallet:0x00007fb7019cdaf0
917
+ @address="Mx3f865a277ef9e901280d0e607294be9a654860ea",
918
+ @mnemonic="hurt orient quarter item can into zebra west either ship team pattern",
919
+ @private_key="0ce363580a20351d995dbafc8942f61c0094f38d0d4f837d1f0c37a9f3c3c7ca",
920
+ @public_key="Mp7084eec27577ffd4151b54bf7d8ed500a514629fea4e5992bb94a704011d89225be0543fd0a27069b7855c0d260aa21011380843d03d18aabc2bb1e4d4c80e15">
921
+ ```
898
922
 
899
923
  ### Minter Key
900
924
  #### Generate mnemonic.
@@ -0,0 +1,14 @@
1
+ out_path = './transaction'
2
+ arg_string = ""
3
+ {
4
+ out: out_path,
5
+ targets: ['linux/amd64', 'darwin/amd64'],
6
+ buildmode: 'c-shared',
7
+ }.each_pair do |name, args|
8
+ arg_string += "-#{name}"
9
+ arg_string += "=#{[args].flatten.join(',')}" unless args.nil?
10
+ arg_string += " "
11
+ end
12
+
13
+ puts "xgo #{arg_string.strip} ./"
14
+ system("xgo #{arg_string.strip} ./")
@@ -7,7 +7,6 @@ module Minter
7
7
  filename = RUBY_PLATFORM.match('darwin') ? "/transaction-darwin-10.6-amd64.dylib" : "/transaction-linux-amd64.so"
8
8
  ffi_lib File.join(File.dirname(__FILE__), filename)
9
9
  attach_function :SignTransaction, [:string], :string
10
- attach_function :TransactionHash, [:string], :string
11
10
  attach_function :DecodeTransaction, [:string], :string
12
11
  attach_function :SignCreateCoinTransaction, [:string], :string
13
12
  attach_function :SignSellCoinTransaction, [:string], :string
@@ -20,7 +19,7 @@ module Minter
20
19
  attach_function :SignSetCandidateOnTransaction, [:string], :string
21
20
  attach_function :SignRedeemCheckTransaction, [:string], :string
22
21
  attach_function :SignEditCandidateTransaction, [:string], :string
23
- # attach_function :SignMultisendTransaction, [:string], :string
22
+ attach_function :SignMultiSendTransaction, [:string], :string
24
23
  end
25
24
  end
26
25
 
@@ -1,4 +1,4 @@
1
- out_path = './goext'
1
+ out_path = './wallet'
2
2
  arg_string = ""
3
3
  {
4
4
  out: out_path,
@@ -11,4 +11,4 @@ arg_string = ""
11
11
  end
12
12
 
13
13
  puts "xgo #{arg_string.strip} ./"
14
- system("xgo #{arg_string.strip} ./")
14
+ system("xgo #{arg_string.strip} ./")
File without changes
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class BuyCoinTx
4
+ class BuyCoinTx < Transaction
5
+ SIGN_METHOD = :SignBuyCoinTransaction
5
6
  attr_accessor :coin_to_buy, :value_to_buy, :coin_to_sell, :maximum_value_to_sell, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(coin_to_buy:, value_to_buy:, coin_to_sell:, maximum_value_to_sell:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -15,13 +16,6 @@ module Minter
15
16
  @gas_price = gas_price
16
17
  end
17
18
 
18
- def sign(private_key)
19
- params = to_params
20
- params[:PrivateKey] = private_key
21
- tx_hash = Minter::TransactionFfi.SignBuyCoinTransaction(params.to_json)
22
- SignedTx.new(tx_hash)
23
- end
24
-
25
19
  def to_params
26
20
  { CoinToBuy: coin_to_buy,
27
21
  ValueToBuy: value_to_buy,
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class CreateCoinTx
4
+ class CreateCoinTx < Transaction
5
+ SIGN_METHOD = :SignCreateCoinTransaction
5
6
  attr_accessor :name, :symbol, :initial_amount, :max_supply, :initial_reserve, :reserve_ratio, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(name:, symbol:, initial_amount:, max_supply:, initial_reserve:, reserve_ratio:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -17,13 +18,6 @@ module Minter
17
18
  @gas_price = gas_price
18
19
  end
19
20
 
20
- def sign(private_key)
21
- params = to_params
22
- params[:PrivateKey] = private_key
23
- tx_hash = Minter::TransactionFfi.SignCreateCoinTransaction(params.to_json)
24
- SignedTx.new(tx_hash)
25
- end
26
-
27
21
  def to_params
28
22
  { Name: name,
29
23
  Symbol: symbol,
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class DeclareCandidacyTx
4
+ class DeclareCandidacyTx < Transaction
5
+ SIGN_METHOD = :SignDeclareCandidacyTransaction
6
+
5
7
  attr_accessor :address, :pubkey, :commission, :coin, :stake, :nonce, :chain_id, :gas_coin, :gas_price
6
8
 
7
9
  def initialize(address:, pubkey:, commission:, coin:, stake:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -16,13 +18,6 @@ module Minter
16
18
  @gas_price = gas_price
17
19
  end
18
20
 
19
- def sign(private_key)
20
- params = to_params
21
- params[:PrivateKey] = private_key
22
- tx_hash = Minter::TransactionFfi.SignDeclareCandidacyTransaction(params.to_json)
23
- SignedTx.new(tx_hash)
24
- end
25
-
26
21
  def to_params
27
22
  { Address: address,
28
23
  PubKey: pubkey,
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class DelegateTx
4
+ class DelegateTx < Transaction
5
+ SIGN_METHOD = :SignDelegateTransaction
5
6
  attr_accessor :pubkey, :coin, :value, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(pubkey:, coin:, value:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -14,13 +15,6 @@ module Minter
14
15
  @gas_price = gas_price
15
16
  end
16
17
 
17
- def sign(private_key)
18
- params = to_params
19
- params[:PrivateKey] = private_key
20
- tx_hash = Minter::TransactionFfi.SignDelegateTransaction(params.to_json)
21
- SignedTx.new(tx_hash)
22
- end
23
-
24
18
  def to_params
25
19
  { PubKey: pubkey,
26
20
  Coin: coin,
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class EditCandidateTx
4
+ class EditCandidateTx < Transaction
5
+ SIGN_METHOD = :SignEditCandidateTransaction
5
6
  attr_accessor :pubkey, :reward_address, :owner_address, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(pubkey:, reward_address:, owner_address:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -14,13 +15,6 @@ module Minter
14
15
  @gas_price = gas_price
15
16
  end
16
17
 
17
- def sign(private_key)
18
- params = to_params
19
- params[:PrivateKey] = private_key
20
- tx_hash = Minter::TransactionFfi.SignEditCandidateTransaction(params.to_json)
21
- SignedTx.new(tx_hash)
22
- end
23
-
24
18
  def to_params
25
19
  { PubKey: pubkey,
26
20
  RewardAddress: reward_address,
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Minter
4
+ class MultiSendTx < Transaction
5
+ SIGN_METHOD = :SignMultiSendTransaction
6
+ attr_accessor :items, :coin, :nonce, :chain_id, :gas_coin, :gas_price
7
+
8
+ def initialize(nonce:, chain_id:, gas_coin:, gas_price:)
9
+ @nonce = nonce
10
+ @chain_id = chain_id
11
+ @gas_coin = gas_coin
12
+ @gas_price = gas_price
13
+ @items = []
14
+ end
15
+
16
+ def add_item(symbol:, value:, address_to:)
17
+ @items << { Symbol: symbol, Value: value, AddressTo: address_to }
18
+ end
19
+
20
+ def to_params
21
+ {
22
+ Nonce: nonce,
23
+ ChainId: chain_id,
24
+ GasCoin: gas_coin,
25
+ GasPrice: gas_price,
26
+ Items: items
27
+ }
28
+ end
29
+ end
30
+ end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class RedeemCheckTx
4
+ class RedeemCheckTx < Transaction
5
+ SIGN_METHOD = :SignRedeemCheckTransaction
5
6
  attr_accessor :check, :proof, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(check:, proof:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -13,13 +14,6 @@ module Minter
13
14
  @gas_price = gas_price
14
15
  end
15
16
 
16
- def sign(private_key)
17
- params = to_params
18
- params[:PrivateKey] = private_key
19
- tx_hash = Minter::TransactionFfi.SignRedeemCheckTransaction(params.to_json)
20
- SignedTx.new(tx_hash)
21
- end
22
-
23
17
  def to_params
24
18
  { Check: check,
25
19
  Proof: proof,
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class SellAllCoinTx
4
+ class SellAllCoinTx < Transaction
5
+ SIGN_METHOD = :SignSellAllCoinTransaction
5
6
  attr_accessor :coin_to_sell, :coin_to_buy, :minimum_value_to_buy, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(coin_to_sell:, coin_to_buy:, minimum_value_to_buy:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -14,13 +15,6 @@ module Minter
14
15
  @gas_price = gas_price
15
16
  end
16
17
 
17
- def sign(private_key)
18
- params = to_params
19
- params[:PrivateKey] = private_key
20
- tx_hash = Minter::TransactionFfi.SignSellAllCoinTransaction(params.to_json)
21
- SignedTx.new(tx_hash)
22
- end
23
-
24
18
  def to_params
25
19
  { CoinToSell: coin_to_sell,
26
20
  CoinToBuy: coin_to_buy,
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class SellCoinTx
4
+ class SellCoinTx < Transaction
5
+ SIGN_METHOD = :SignSellCoinTransaction
5
6
  attr_accessor :coin_to_sell, :value_to_sell, :coin_to_buy, :minimum_value_to_buy, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(coin_to_sell:, value_to_sell:, coin_to_buy:, minimum_value_to_buy:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -15,13 +16,6 @@ module Minter
15
16
  @gas_price = gas_price
16
17
  end
17
18
 
18
- def sign(private_key)
19
- params = to_params
20
- params[:PrivateKey] = private_key
21
- tx_hash = Minter::TransactionFfi.SignSellCoinTransaction(params.to_json)
22
- SignedTx.new(tx_hash)
23
- end
24
-
25
19
  def to_params
26
20
  { CoinToSell: coin_to_sell,
27
21
  ValueToSell: value_to_sell,
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class SendCoinTx
4
+ class SendCoinTx < Transaction
5
+ SIGN_METHOD = :SignTransaction
6
+
5
7
  attr_accessor :type, :address_to, :value, :coin, :nonce, :chain_id, :gas_coin, :gas_price
6
8
 
7
9
  def initialize(address_to:, value:, coin:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -14,13 +16,6 @@ module Minter
14
16
  @gas_price = gas_price
15
17
  end
16
18
 
17
- def sign(private_key)
18
- params = to_params
19
- params[:PrivateKey] = private_key
20
- tx_hash = Minter::TransactionFfi.SignTransaction(params.to_json)
21
- SignedTx.new(tx_hash)
22
- end
23
-
24
19
  def to_params
25
20
  { AddressTo: address_to,
26
21
  Value: value,
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class SetCandidateOffTx
4
+ class SetCandidateOffTx < Transaction
5
+ SIGN_METHOD = :SignSetCandidateOffTransaction
5
6
  attr_accessor :pubkey, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(pubkey:, nonce:, chain_id:, gas_coin:, gas_price:)
@@ -12,13 +13,6 @@ module Minter
12
13
  @gas_price = gas_price
13
14
  end
14
15
 
15
- def sign(private_key)
16
- params = to_params
17
- params[:PrivateKey] = private_key
18
- tx_hash = Minter::TransactionFfi.SignSetCandidateOffTransaction(params.to_json)
19
- SignedTx.new(tx_hash)
20
- end
21
-
22
16
  def to_params
23
17
  { PubKey: pubkey,
24
18
  Nonce: nonce,
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class SetCandidateOnTx
4
+ class SetCandidateOnTx < Transaction
5
+ SIGN_METHOD = :SignSetCandidateOnTransaction
5
6
  attr_accessor :pubkey, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(pubkey:, nonce:, chain_id:, gas_coin:, gas_price:)
@@ -12,13 +13,6 @@ module Minter
12
13
  @gas_price = gas_price
13
14
  end
14
15
 
15
- def sign(private_key)
16
- params = to_params
17
- params[:PrivateKey] = private_key
18
- tx_hash = Minter::TransactionFfi.SignSetCandidateOnTransaction(params.to_json)
19
- SignedTx.new(tx_hash)
20
- end
21
-
22
16
  def to_params
23
17
  { PubKey: pubkey,
24
18
  Nonce: nonce,
@@ -0,0 +1,17 @@
1
+ module Minter
2
+ class TransactionError < StandardError; end
3
+
4
+ class Transaction
5
+ def sign(private_key)
6
+ params = to_params
7
+ params[:PrivateKey] = private_key
8
+
9
+ result = JSON.parse(Minter::TransactionFfi.send(self.class::SIGN_METHOD, params.to_json))
10
+ if result["success"]
11
+ SignedTx.new(result["tx_hash"])
12
+ else
13
+ raise TransactionError.new(result["error"])
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- class UnbondTx
4
+ class UnbondTx < Transaction
5
+ SIGN_METHOD = :SignUnbondTransaction
5
6
  attr_accessor :pubkey, :coin, :value, :nonce, :chain_id, :gas_coin, :gas_price
6
7
 
7
8
  def initialize(pubkey:, coin:, value:, nonce:, chain_id:, gas_coin:, gas_price:) # rubocop:disable Metrics/ParameterLists
@@ -14,13 +15,6 @@ module Minter
14
15
  @gas_price = gas_price
15
16
  end
16
17
 
17
- def sign(private_key)
18
- params = to_params
19
- params[:PrivateKey] = private_key
20
- tx_hash = Minter::TransactionFfi.SignUnbondTransaction(params.to_json)
21
- SignedTx.new(tx_hash)
22
- end
23
-
24
18
  def to_params
25
19
  { PubKey: pubkey,
26
20
  Coin: coin,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Minter
4
- VERSION = "0.1.1"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/minter/wallet.rb CHANGED
@@ -3,8 +3,9 @@
3
3
  module Minter
4
4
  class Wallet
5
5
  attr_reader :seed, :private_key, :public_key, :mnemonic, :address
6
- def initialize(_options = {})
7
- @mnemonic = Minter::WalletFfi.NewMnemonic
6
+ def initialize(mnemonic = nil)
7
+ @mnemonic = mnemonic
8
+ @mnemonic ||= Minter::WalletFfi.NewMnemonic
8
9
  @private_key = Minter::WalletFfi.PrivateKeyFromMnemonic(@mnemonic)
9
10
  @public_key = Minter::WalletFfi.PublicKeyFromPrivateKey(@private_key)
10
11
  @address = Minter::WalletFfi.AddressFromMnemonic(@mnemonic)
data/lib/minter.rb CHANGED
@@ -6,8 +6,9 @@ require "minter/api/client"
6
6
  require "minter/version"
7
7
  require "minter/wallet.rb"
8
8
  require "minter/key.rb"
9
- require "ffi/wallet_ffi.rb"
10
- require "ffi/transaction_ffi.rb"
9
+ require "ffi/wallet/wallet_ffi.rb"
10
+ require "ffi/transaction/transaction_ffi.rb"
11
+ require "minter/transactions/transaction.rb"
11
12
  Dir[File.dirname(__FILE__) + "/minter/transactions/*.rb"].each { |file| require_relative file }
12
13
 
13
14
  module Minter
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Nikolaev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-18 00:00:00.000000000 Z
11
+ date: 2020-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -141,18 +141,10 @@ files:
141
141
  - README.md
142
142
  - bin/console
143
143
  - bin/setup
144
- - lib/ffi/go/compile.rb
145
- - lib/ffi/transaction-darwin-10.6-amd64.dylib
146
- - lib/ffi/transaction-darwin-10.6-amd64.h
147
- - lib/ffi/transaction-linux-amd64.h
148
- - lib/ffi/transaction-linux-amd64.so
149
- - lib/ffi/transaction_ffi.rb
150
- - lib/ffi/wallet-darwin-10.6-amd64.dylib
151
- - lib/ffi/wallet-darwin-10.6-amd64.h
152
- - lib/ffi/wallet-linux-amd64.h
153
- - lib/ffi/wallet-linux-amd64.so
154
- - lib/ffi/wallet.h
155
- - lib/ffi/wallet_ffi.rb
144
+ - lib/ffi/transaction/compile.rb
145
+ - lib/ffi/transaction/transaction_ffi.rb
146
+ - lib/ffi/wallet/compile.rb
147
+ - lib/ffi/wallet/wallet_ffi.rb
156
148
  - lib/minter.rb
157
149
  - lib/minter/api/client.rb
158
150
  - lib/minter/api/connection.rb
@@ -178,6 +170,7 @@ files:
178
170
  - lib/minter/transactions/declare_candidacy_tx.rb
179
171
  - lib/minter/transactions/delegate_tx.rb
180
172
  - lib/minter/transactions/edit_candidate_tx.rb
173
+ - lib/minter/transactions/multi_send_tx.rb
181
174
  - lib/minter/transactions/redeem_check_tx.rb
182
175
  - lib/minter/transactions/sell_all_coin_tx.rb
183
176
  - lib/minter/transactions/sell_coin_tx.rb
@@ -185,6 +178,7 @@ files:
185
178
  - lib/minter/transactions/set_candidate_off_tx.rb
186
179
  - lib/minter/transactions/set_candidate_on_tx.rb
187
180
  - lib/minter/transactions/signed_tx.rb
181
+ - lib/minter/transactions/transaction.rb
188
182
  - lib/minter/transactions/unbond_tx.rb
189
183
  - lib/minter/version.rb
190
184
  - lib/minter/wallet.rb
@@ -1,104 +0,0 @@
1
- /* Code generated by cmd/cgo; DO NOT EDIT. */
2
-
3
- /* package mod */
4
-
5
-
6
- #line 1 "cgo-builtin-export-prolog"
7
-
8
- #include <stddef.h> /* for ptrdiff_t below */
9
-
10
- #ifndef GO_CGO_EXPORT_PROLOGUE_H
11
- #define GO_CGO_EXPORT_PROLOGUE_H
12
-
13
- #ifndef GO_CGO_GOSTRING_TYPEDEF
14
- typedef struct { const char *p; ptrdiff_t n; } _GoString_;
15
- #endif
16
-
17
- #endif
18
-
19
- /* Start of preamble from import "C" comments. */
20
-
21
-
22
-
23
-
24
- /* End of preamble from import "C" comments. */
25
-
26
-
27
- /* Start of boilerplate cgo prologue. */
28
- #line 1 "cgo-gcc-export-header-prolog"
29
-
30
- #ifndef GO_CGO_PROLOGUE_H
31
- #define GO_CGO_PROLOGUE_H
32
-
33
- typedef signed char GoInt8;
34
- typedef unsigned char GoUint8;
35
- typedef short GoInt16;
36
- typedef unsigned short GoUint16;
37
- typedef int GoInt32;
38
- typedef unsigned int GoUint32;
39
- typedef long long GoInt64;
40
- typedef unsigned long long GoUint64;
41
- typedef GoInt64 GoInt;
42
- typedef GoUint64 GoUint;
43
- typedef __SIZE_TYPE__ GoUintptr;
44
- typedef float GoFloat32;
45
- typedef double GoFloat64;
46
- typedef float _Complex GoComplex64;
47
- typedef double _Complex GoComplex128;
48
-
49
- /*
50
- static assertion to make sure the file is being used on architecture
51
- at least with matching size of GoInt.
52
- */
53
- typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
54
-
55
- #ifndef GO_CGO_GOSTRING_TYPEDEF
56
- typedef _GoString_ GoString;
57
- #endif
58
- typedef void *GoMap;
59
- typedef void *GoChan;
60
- typedef struct { void *t; void *v; } GoInterface;
61
- typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
62
-
63
- #endif
64
-
65
- /* End of boilerplate cgo prologue. */
66
-
67
- #ifdef __cplusplus
68
- extern "C" {
69
- #endif
70
-
71
-
72
- extern char* SignTransaction(char* p0);
73
-
74
- extern char* TransactionHash(char* p0);
75
-
76
- extern char* DecodeTransaction(char* p0);
77
-
78
- extern char* SignCreateCoinTransaction(char* p0);
79
-
80
- extern char* SignSellCoinTransaction(char* p0);
81
-
82
- extern char* SignBuyCoinTransaction(char* p0);
83
-
84
- extern char* SignSellAllCoinTransaction(char* p0);
85
-
86
- extern char* SignDeclareCandidacyTransaction(char* p0);
87
-
88
- extern char* SignDelegateTransaction(char* p0);
89
-
90
- extern char* SignUnbondTransaction(char* p0);
91
-
92
- extern char* SignSetCandidateOffTransaction(char* p0);
93
-
94
- extern char* SignSetCandidateOnTransaction(char* p0);
95
-
96
- extern char* SignRedeemCheckTransaction(char* p0);
97
-
98
- extern char* SignEditCandidateTransaction(char* p0);
99
-
100
- extern char* SignMultiSendTransaction(char* p0);
101
-
102
- #ifdef __cplusplus
103
- }
104
- #endif
@@ -1,104 +0,0 @@
1
- /* Code generated by cmd/cgo; DO NOT EDIT. */
2
-
3
- /* package mod */
4
-
5
-
6
- #line 1 "cgo-builtin-export-prolog"
7
-
8
- #include <stddef.h> /* for ptrdiff_t below */
9
-
10
- #ifndef GO_CGO_EXPORT_PROLOGUE_H
11
- #define GO_CGO_EXPORT_PROLOGUE_H
12
-
13
- #ifndef GO_CGO_GOSTRING_TYPEDEF
14
- typedef struct { const char *p; ptrdiff_t n; } _GoString_;
15
- #endif
16
-
17
- #endif
18
-
19
- /* Start of preamble from import "C" comments. */
20
-
21
-
22
-
23
-
24
- /* End of preamble from import "C" comments. */
25
-
26
-
27
- /* Start of boilerplate cgo prologue. */
28
- #line 1 "cgo-gcc-export-header-prolog"
29
-
30
- #ifndef GO_CGO_PROLOGUE_H
31
- #define GO_CGO_PROLOGUE_H
32
-
33
- typedef signed char GoInt8;
34
- typedef unsigned char GoUint8;
35
- typedef short GoInt16;
36
- typedef unsigned short GoUint16;
37
- typedef int GoInt32;
38
- typedef unsigned int GoUint32;
39
- typedef long long GoInt64;
40
- typedef unsigned long long GoUint64;
41
- typedef GoInt64 GoInt;
42
- typedef GoUint64 GoUint;
43
- typedef __SIZE_TYPE__ GoUintptr;
44
- typedef float GoFloat32;
45
- typedef double GoFloat64;
46
- typedef float _Complex GoComplex64;
47
- typedef double _Complex GoComplex128;
48
-
49
- /*
50
- static assertion to make sure the file is being used on architecture
51
- at least with matching size of GoInt.
52
- */
53
- typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
54
-
55
- #ifndef GO_CGO_GOSTRING_TYPEDEF
56
- typedef _GoString_ GoString;
57
- #endif
58
- typedef void *GoMap;
59
- typedef void *GoChan;
60
- typedef struct { void *t; void *v; } GoInterface;
61
- typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
62
-
63
- #endif
64
-
65
- /* End of boilerplate cgo prologue. */
66
-
67
- #ifdef __cplusplus
68
- extern "C" {
69
- #endif
70
-
71
-
72
- extern char* SignTransaction(char* p0);
73
-
74
- extern char* TransactionHash(char* p0);
75
-
76
- extern char* DecodeTransaction(char* p0);
77
-
78
- extern char* SignCreateCoinTransaction(char* p0);
79
-
80
- extern char* SignSellCoinTransaction(char* p0);
81
-
82
- extern char* SignBuyCoinTransaction(char* p0);
83
-
84
- extern char* SignSellAllCoinTransaction(char* p0);
85
-
86
- extern char* SignDeclareCandidacyTransaction(char* p0);
87
-
88
- extern char* SignDelegateTransaction(char* p0);
89
-
90
- extern char* SignUnbondTransaction(char* p0);
91
-
92
- extern char* SignSetCandidateOffTransaction(char* p0);
93
-
94
- extern char* SignSetCandidateOnTransaction(char* p0);
95
-
96
- extern char* SignRedeemCheckTransaction(char* p0);
97
-
98
- extern char* SignEditCandidateTransaction(char* p0);
99
-
100
- extern char* SignMultiSendTransaction(char* p0);
101
-
102
- #ifdef __cplusplus
103
- }
104
- #endif
Binary file
Binary file
@@ -1,86 +0,0 @@
1
- /* Code generated by cmd/cgo; DO NOT EDIT. */
2
-
3
- /* package mod */
4
-
5
-
6
- #line 1 "cgo-builtin-export-prolog"
7
-
8
- #include <stddef.h> /* for ptrdiff_t below */
9
-
10
- #ifndef GO_CGO_EXPORT_PROLOGUE_H
11
- #define GO_CGO_EXPORT_PROLOGUE_H
12
-
13
- #ifndef GO_CGO_GOSTRING_TYPEDEF
14
- typedef struct { const char *p; ptrdiff_t n; } _GoString_;
15
- #endif
16
-
17
- #endif
18
-
19
- /* Start of preamble from import "C" comments. */
20
-
21
-
22
-
23
-
24
- /* End of preamble from import "C" comments. */
25
-
26
-
27
- /* Start of boilerplate cgo prologue. */
28
- #line 1 "cgo-gcc-export-header-prolog"
29
-
30
- #ifndef GO_CGO_PROLOGUE_H
31
- #define GO_CGO_PROLOGUE_H
32
-
33
- typedef signed char GoInt8;
34
- typedef unsigned char GoUint8;
35
- typedef short GoInt16;
36
- typedef unsigned short GoUint16;
37
- typedef int GoInt32;
38
- typedef unsigned int GoUint32;
39
- typedef long long GoInt64;
40
- typedef unsigned long long GoUint64;
41
- typedef GoInt64 GoInt;
42
- typedef GoUint64 GoUint;
43
- typedef __SIZE_TYPE__ GoUintptr;
44
- typedef float GoFloat32;
45
- typedef double GoFloat64;
46
- typedef float _Complex GoComplex64;
47
- typedef double _Complex GoComplex128;
48
-
49
- /*
50
- static assertion to make sure the file is being used on architecture
51
- at least with matching size of GoInt.
52
- */
53
- typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
54
-
55
- #ifndef GO_CGO_GOSTRING_TYPEDEF
56
- typedef _GoString_ GoString;
57
- #endif
58
- typedef void *GoMap;
59
- typedef void *GoChan;
60
- typedef struct { void *t; void *v; } GoInterface;
61
- typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
62
-
63
- #endif
64
-
65
- /* End of boilerplate cgo prologue. */
66
-
67
- #ifdef __cplusplus
68
- extern "C" {
69
- #endif
70
-
71
-
72
- extern char* NewMnemonic();
73
-
74
- extern char* PrivateKeyFromMnemonic(char* p0);
75
-
76
- extern char* PublicKeyFromPrivateKey(char* p0);
77
-
78
- extern char* AddressFromMnemonic(char* p0);
79
-
80
- extern char* AddressFromPrivateKey(char* p0);
81
-
82
- extern char* AddressFromPublicKey(char* p0);
83
-
84
- #ifdef __cplusplus
85
- }
86
- #endif
@@ -1,86 +0,0 @@
1
- /* Code generated by cmd/cgo; DO NOT EDIT. */
2
-
3
- /* package mod */
4
-
5
-
6
- #line 1 "cgo-builtin-export-prolog"
7
-
8
- #include <stddef.h> /* for ptrdiff_t below */
9
-
10
- #ifndef GO_CGO_EXPORT_PROLOGUE_H
11
- #define GO_CGO_EXPORT_PROLOGUE_H
12
-
13
- #ifndef GO_CGO_GOSTRING_TYPEDEF
14
- typedef struct { const char *p; ptrdiff_t n; } _GoString_;
15
- #endif
16
-
17
- #endif
18
-
19
- /* Start of preamble from import "C" comments. */
20
-
21
-
22
-
23
-
24
- /* End of preamble from import "C" comments. */
25
-
26
-
27
- /* Start of boilerplate cgo prologue. */
28
- #line 1 "cgo-gcc-export-header-prolog"
29
-
30
- #ifndef GO_CGO_PROLOGUE_H
31
- #define GO_CGO_PROLOGUE_H
32
-
33
- typedef signed char GoInt8;
34
- typedef unsigned char GoUint8;
35
- typedef short GoInt16;
36
- typedef unsigned short GoUint16;
37
- typedef int GoInt32;
38
- typedef unsigned int GoUint32;
39
- typedef long long GoInt64;
40
- typedef unsigned long long GoUint64;
41
- typedef GoInt64 GoInt;
42
- typedef GoUint64 GoUint;
43
- typedef __SIZE_TYPE__ GoUintptr;
44
- typedef float GoFloat32;
45
- typedef double GoFloat64;
46
- typedef float _Complex GoComplex64;
47
- typedef double _Complex GoComplex128;
48
-
49
- /*
50
- static assertion to make sure the file is being used on architecture
51
- at least with matching size of GoInt.
52
- */
53
- typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
54
-
55
- #ifndef GO_CGO_GOSTRING_TYPEDEF
56
- typedef _GoString_ GoString;
57
- #endif
58
- typedef void *GoMap;
59
- typedef void *GoChan;
60
- typedef struct { void *t; void *v; } GoInterface;
61
- typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
62
-
63
- #endif
64
-
65
- /* End of boilerplate cgo prologue. */
66
-
67
- #ifdef __cplusplus
68
- extern "C" {
69
- #endif
70
-
71
-
72
- extern char* NewMnemonic();
73
-
74
- extern char* PrivateKeyFromMnemonic(char* p0);
75
-
76
- extern char* PublicKeyFromPrivateKey(char* p0);
77
-
78
- extern char* AddressFromMnemonic(char* p0);
79
-
80
- extern char* AddressFromPrivateKey(char* p0);
81
-
82
- extern char* AddressFromPublicKey(char* p0);
83
-
84
- #ifdef __cplusplus
85
- }
86
- #endif
Binary file
data/lib/ffi/wallet.h DELETED
@@ -1,86 +0,0 @@
1
- /* Code generated by cmd/cgo; DO NOT EDIT. */
2
-
3
- /* package command-line-arguments */
4
-
5
-
6
- #line 1 "cgo-builtin-export-prolog"
7
-
8
- #include <stddef.h> /* for ptrdiff_t below */
9
-
10
- #ifndef GO_CGO_EXPORT_PROLOGUE_H
11
- #define GO_CGO_EXPORT_PROLOGUE_H
12
-
13
- #ifndef GO_CGO_GOSTRING_TYPEDEF
14
- typedef struct { const char *p; ptrdiff_t n; } _GoString_;
15
- #endif
16
-
17
- #endif
18
-
19
- /* Start of preamble from import "C" comments. */
20
-
21
-
22
-
23
-
24
- /* End of preamble from import "C" comments. */
25
-
26
-
27
- /* Start of boilerplate cgo prologue. */
28
- #line 1 "cgo-gcc-export-header-prolog"
29
-
30
- #ifndef GO_CGO_PROLOGUE_H
31
- #define GO_CGO_PROLOGUE_H
32
-
33
- typedef signed char GoInt8;
34
- typedef unsigned char GoUint8;
35
- typedef short GoInt16;
36
- typedef unsigned short GoUint16;
37
- typedef int GoInt32;
38
- typedef unsigned int GoUint32;
39
- typedef long long GoInt64;
40
- typedef unsigned long long GoUint64;
41
- typedef GoInt64 GoInt;
42
- typedef GoUint64 GoUint;
43
- typedef __SIZE_TYPE__ GoUintptr;
44
- typedef float GoFloat32;
45
- typedef double GoFloat64;
46
- typedef float _Complex GoComplex64;
47
- typedef double _Complex GoComplex128;
48
-
49
- /*
50
- static assertion to make sure the file is being used on architecture
51
- at least with matching size of GoInt.
52
- */
53
- typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
54
-
55
- #ifndef GO_CGO_GOSTRING_TYPEDEF
56
- typedef _GoString_ GoString;
57
- #endif
58
- typedef void *GoMap;
59
- typedef void *GoChan;
60
- typedef struct { void *t; void *v; } GoInterface;
61
- typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
62
-
63
- #endif
64
-
65
- /* End of boilerplate cgo prologue. */
66
-
67
- #ifdef __cplusplus
68
- extern "C" {
69
- #endif
70
-
71
-
72
- extern char* NewMnemonic();
73
-
74
- extern char* PrivateKeyFromMnemonic(char* p0);
75
-
76
- extern char* PublicKeyFromPrivateKey(char* p0);
77
-
78
- extern char* AddressFromMnemonic(char* p0);
79
-
80
- extern char* AddressFromPrivateKey(char* p0);
81
-
82
- extern char* AddressFromPublicKey(char* p0);
83
-
84
- #ifdef __cplusplus
85
- }
86
- #endif