Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
This is a Ruby SDK based on Golang SDK for working with Minter blockchain
Add this line to your application's Gemfile:
gem 'minter'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install minter
You can get all valid responses and full documentation at Minter Node Api
Create Minter::Api client
require "minter"
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
Returns coins list, balance and transaction count (for nonce) of an address.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
address = "Mx251cb0043a0240779103aa7c210f638f887699f8"
response = client.address(address: address)
response.status
#=> 200
response.body
#=> {"balance"=>[{"coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"29999857000000000000000", "bip_value"=>"29999857000000000000000"}], "delegated"=>[], "total"=>[], "transaction_count"=>"13", "bip_value"=>"29999857000000000000000"}
Returns coins list, balance and transaction count (for nonce) of an address.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
address = "Mx251cb0043a0240779103aa7c210f638f887699f8"
response = client.address(address: address, height: 1)
response.status
#=> 200
response.body
#=> {"balance"=>[], "delegated"=>[], "total"=>[], "transaction_count"=>"0", "bip_value"=>"0"}
Returns coins list, balance and transaction count (for nonce) of an address.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
address = "Mx251cb0043a0240779103aa7c210f638f887699f8"
response = client.balance(address: address)
response.status
#=> 200
response.body
#=> {"balance"=>[{"coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"29999857000000000000000", "bip_value"=>"29999857000000000000000"}], "delegated"=>[], "total"=>[], "transaction_count"=>"13", "bip_value"=>"29999857000000000000000"}
Returns next transaction number (nonce) of an address.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
address = "Mx251cb0043a0240779103aa7c210f638f887699f8"
nonce = client.nonce(address: address)
#=> 14
Returns block data at given height.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.block(height: 1)
response.status
#=> 200
response.body
#=> {"hash"=>"8e2534065f3fb281b3834ae79383cd75cb06245b33bd96a0d87370340039f7bc", "height"=>"1", "time"=>"1970-01-01T00:00:00Z", "transaction_count"=>"0", "transactions"=>[], "block_reward"=>"333000000000000000000", "size"=>"270", "proposer"=>"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", "validators"=>[{"public_key"=>"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", "signed"=>false}], "evidence"=>{"evidence"=>[]}, "missed"=>[]}
Returns candidate’s info by provided public_key. It will respond with 404 code if candidate is not found.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
public_key = "Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5"
response = client.candidate(public_key: public_key)
response.status
#=> 200
response.body
#=> {"reward_address"=>"Mxa83d8ebbe688b853775a698683b77afa305a661e", "owner_address"=>"Mxa83d8ebbe688b853775a698683b77afa305a661e", "control_address"=>"Mxa83d8ebbe688b853775a698683b77afa305a661e", "total_stake"=>"2444011225306401876946221", "public_key"=>"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", "commission"=>"5", "used_slots"=>"10", "uniq_users"=>"6", "min_stake"=>"0", "stakes"=>[{"owner"=>"Mxa83d8ebbe688b853775a698683b77afa305a661e", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"1000000000000000000000000", "bip_value"=>"1000000000000000000000000"}, {"owner"=>"Mx69ebd94f75444b22953c7a439f7ccef6d9e9be5a", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"10000000000000000000", "bip_value"=>"10000000000000000000"}, {"owner"=>"Mx3e3b5d6087f58f2592623a62da9618a2ee020d2d", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"824272819147233530716891", "bip_value"=>"824272819147233530716891"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"609007403767000000000000", "bip_value"=>"609007403767000000000000"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"5", "symbol"=>"SMALCOIN-1"}, "value"=>"27704575686000000000000", "bip_value"=>"163214040105490477218"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"6", "symbol"=>"SMALCOIN"}, "value"=>"23500946264000000000000", "bip_value"=>"5258446493070597814637"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"1", "symbol"=>"CUSTOM"}, "value"=>"7648158824000000000000", "bip_value"=>"1530873792242471521"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"4", "symbol"=>"BIGCOIN"}, "value"=>"22993066314000000000000", "bip_value"=>"5286810985200015465954"}, {"owner"=>"Mxeeda61bbe9929bf883af6b22f5796e4b92563ba4", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"5000000000000000000", "bip_value"=>"5000000000000000000"}, {"owner"=>"Mx0004ae43810ac75200a0c681487d1748a4f1e0b3", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"6000000000000000000", "bip_value"=>"6000000000000000000"}], "status"=>"2"}
Returns list of candidates.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.candidates
response.status
#=> 200
response.body
{
"candidates" => [{
"reward_address" => "Mxa83d8ebbe688b853775a698683b77afa305a661e",
"owner_address" => "Mxa83d8ebbe688b853775a698683b77afa305a661e",
"control_address" => "Mxa83d8ebbe688b853775a698683b77afa305a661e",
"total_stake" => "1000000000000000000000000",
"public_key" => "Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5",
"commission" => "5",
"used_slots" => nil,
"uniq_users" => nil,
"min_stake" => nil,
"stakes" => [],
"status" => "2"
}]
}
Returns information about coin. Note: this method does not return information about base coins (MNT and BIP).
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.coin_info("CAPITAL")
response.status
#=> 200
response.body
#=> {"jsonrpc"=>"2.0",
# "id"=>"",
# "result"=>
# {"name"=>"CAPITAL",
# "symbol"=>"CAPITAL",
# "volume"=>"10004406818749673124164086",
# "crr"=>"80",
# "reserve_balance"=>"100055088268419724781795",
# "max_supply"=>"1000000000000000000000000000000000"}}
Return estimate of buy coin transaction.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.estimate_coin_buy(coinToSell: "BIP", valueToBuy: 1, coinToBuy: "MNT")
response.status
#=> 200
Return estimate of sell coin transaction.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.estimate_coin_sell(coinToSell: "BIP", valueToSell: 1, coinToBuy: "MNT")
response.status
#=> 200
Return estimate of transaction.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.estimate_tx_comission(transaction: "0xf88522020a8a4d4e540000000000000001abea8a4d4e540000000000000094e7812ab98ac5ac37e2ab20da3136ad91bb22d49789014d1120d7b1600000808001b845f8431ba07424d88d612132c847c1c92c1f471471fa8034914260223cb547f097e2bd7587a0201fa4d869ba564538996a71e6aa1e2b069d746b8fa0a563e023989986ae91a7")
Returns events at given height.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.events(height: 1)
Returns current max gas.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.max_gas
response.status
#=>200
response.body
#=> {"max_gas_price"=>"100000"}
Returns current min gas price.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.min_gas_price
response.status
#=>200
response.body
#=> {"min_gas_price"=>"1"}
Returns missed blocks by validator public key.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.missed_block(public_key: public_key)
Returns the result of sending signed tx.
signed_transaction = transaction.sign(privateKey)
response = signed_transaction.send
# or
response = client.send_transaction(transaction: signed_transaction.tx_hash)
response.status
#=> 200
response.body
#=>
{"code"=>"0", "log"=>"", "hash"=>"Mt0cfac66950c621db243fcdd68530b455f2c579dda7a7c602822355a80e9815d2"}
Returns node status info.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.status
response.status
#=>200
response.body
#=>
{
"version" => "1.2.0-a7c02e42-testnet",
"network" => "minter-1-2-testnet",
"latest_block_hash" => "553F412E3BDD05932F96AFC79C750ACCB6C6D65D253D627A9D8A88D5C893CD1A",
"latest_app_hash" => "4337152D2F002F604CF338C29BC4AA1AF1729A93228E074153FDFF722CE33324",
"latest_block_height" => "281797",
"latest_block_time" => "2020-11-05T06:05:39.586760081Z",
"keep_last_states" => "1000000",
"total_slashed" => "433000000000000015854",
"catching_up" => false,
"public_key" => "Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5",
"node_id" => "95fa41d84670bc98691101406d62aed9d64459f4"
}
Returns transaction info.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
transaction_hash = "Mt0cfac66950c621db243fcdd68530b455f2c579dda7a7c602822355a80e9815d2"
response = client.transaction_info(transaction_hash: transaction_hash)
response.status
#=>200
response.body
#=>
{
"hash" => "Mt0cfac66950c621db243fcdd68530b455f2c579dda7a7c602822355a80e9815d2", "raw_tx" => "f86f0e020180019fde8094eeee1973381ab793719fff497b9a516719fcd5a287038d7ea4c68000808001b845f8431ba0b4f6ef634625c12a7cb08ca568dca87fec2ca696bde99f2669c4e297748ce7a2a00ba8fab69667b0d849054ac8d21c3194f1dfcfca01ddafacd19d0e7f708933bd", "height" => "281792", "index" => "0", "from" => "Mx251cb0043a0240779103aa7c210f638f887699f8", "nonce" => "14", "gas" => "10", "gas_price" => "1", "gas_coin" => {
"id" => "0", "symbol" => "MNT"
},
"type" => "1", "data" => {
"@type" => "type.googleapis.com/api_pb.SendData", "coin" => {
"id" => "0", "symbol" => "MNT"
}, "to" => "Mxeeee1973381ab793719fff497b9a516719fcd5a2", "value" => "1000000000000000"
},
"payload" => nil, "tags" => {
"tx.coin_id" => "0", "tx.from" => "251cb0043a0240779103aa7c210f638f887699f8", "tx.to" => "eeee1973381ab793719fff497b9a516719fcd5a2", "tx.type" => "01"
},
"code" => "0",
"log" => ""
}
Return transactions by query.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
query = "tags.tx.coin='0'"
page = 1
per_page = 1
response = client.transactions(query: query, per_page: per_page, page: page)
response.status
#=> 200
Returns unconfirmed transactions.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
query = "tags.tx.coin='MNT'"
page = 1
per_page = 1
response = client.unconfirmed_transactions
response.status
#=> 200
Returns list of active validators.
client = Minter::Api::Client.new
client.node_url = "https://node-api.testnet.minter.network/v2"
response = client.validators
response.status
#=>200
response.body
#=>
{"validators"=>[{"public_key"=>"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", "voting_power"=>"100000000"}]}
Returns a signed tx.
mnemonic = "oppose gym crucial devote skin robust exile antique split clean bright move"
sender_address = Minter::Key.address_from_mnemonic(mnemonic)
sender_private_key = Minter::Key.private_key_from_mnemonic(mnemonic)
nonce = client.nonce(address: sender_address)
receiver_address = "Mxeeee1973381ab793719fff497b9a516719fcd5a2"
transaction = Minter::SendCoinTx.new(
address_to: receiver_address,
value: 1_000_000_000_000_000,
coin: 0,
nonce: nonce,
chain_id: 2,
gas_coin: 0,
gas_price: 1
)
signed_tx = transaction.sign(sender_private_key)
signed_tx.tx_hash
#=> "0xf86f0f020180019fde8094eeee1973381ab793719fff497b9a516719fcd5a287038d7ea4c68000808001b845f8431ca029870ea74e51ca5f89749860875ce69d7afd8b9bff6debebf127d14a27a83043a044f8b98aaa128f8cf41f5556d7b8fddd224021ac7d28024daafed2362d4144b6"
multisig_address = "Mxeda4bb5456f5eb8a19f57c8c6ec844d05feae879"
private_key1 = "4de029ca7b95c163f88c66e6351f2a986a48834b4681ec1e43eed5d120227103"
private_key2 = "49e48cd0f81e7aabfc840301c66f00318f50b25c79664c3f337d7ad4f919638e"
transaction = Minter::SendCoinTx.new(
address_to: "Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497",
value: 4_000_000_000_000_000_000,
coin: 0,
nonce: 2,
chain_id: 2,
gas_coin: 0,
gas_price: 10
)
signed_tx = transaction.multisign(multisig_address, private_key1, private_key2)
#=> #<Minter::SignedTx:0x00007f97f0249ca0 @tx_hash="0xf8ce02020a8001a0df8094e7812ab98ac5ac37e2ab20da3136ad91bb22d497883782dace9d900000808002b8a3f8a194eda4bb5456f5eb8a19f57c8c6ec844d05feae879f88af8431ca04613dae08d6d729a2cb55cd1ef508fcabbd516c219cca15cff61bd5cff0dca2fa06dd29d4fa41517b1701520412f2892b82a10b0fd9b7ddf00060105d418e78f3bf8431ba0d13870020138ae7d6bc14dff8a720c97767af19b648facddb997a8c7baa771c2a01879cee21cd8e315752eae1190981541418fe49ff3def116fd123a2fd066ba84", @transaction=#<Minter::SendCoinTx:0x00007f97f11b2a48 @address_to="Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497", @value=4000000000000000000, @coin=0, @nonce=2, @chain_id=2, @gas_coin=0, @gas_price=10>>
Transaction for sending arbitrary coin.
coin - Symbol of a coin. address_to - Recipient address in Minter Network. value - Amount of Coin to send.
transaction = Minter::SendCoinTx.new(
address_to: "Mx1b685a7c1e78726c48f619c497a07ed75fe00483",
value: 1_000_000_000_000_000_000,
coin: 1,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for selling one coin (owned by sender) in favour of another coin in a system.
coin_to_sell - Symbol of a coin to give. value_to_sell - Amount of CoinToSell to give. coin_to_buy - Symbol of a coin to get. minimum_value_to_buy - Minimum value of coins to get.
Minter::SellCoinTx.new(
coin_to_sell: 1,
value_to_sell: 1_000_000_000_000_000_000,
coin_to_buy: 2,
minimum_value_to_buy: 1_000_000_000_000_000_000,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for selling one coin (owned by sender) in favour of another coin in a system.
coin_to_sell - Symbol of a coin to give. coin_to_buy - Symbol of a coin to get. minimum_value_to_buy - Minimum value of coins to get.
Minter::SellAllCoinTx.new(
coin_to_sell: 1,
coin_to_buy: 2,
minimum_value_to_buy: 1_000_000_000_000_000_000,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for buy a coin paying another coin (owned by sender).
coin_to_buy - Symbol of a coin to get. value_to_buy - Amount of CoinToBuy to get. coin_to_sell - Symbol of a coin to give. maximum_value_to_sell - Maximum value of coins to sell.
Minter::BuyCoinTx.new(
coin_to_buy: 2,
value_to_buy: 1_000_000_000_000_000_000,
coin_to_sell: 1,
maximum_value_to_sell: 1_000_000_000_000_000_000,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for creating new coin in a system.
name - Name of a coin. Arbitrary string up to 64 letters length. symbol - Symbol of a coin. Must be unique, alphabetic, uppercase, 3 to 10 symbols length. initial_amount - Amount of coins to issue. Issued coins will be available to sender account. initial_reserve - Initial reserve in BIP's. ConstantReserveRatio - CRR, uint, should be from 10 to 100.
Minter::CreateCoinTx.new(
name: "SUPER TEST",
symbol: "SPRTEST",
initial_amount: 100_000_000_000_000_000_000,
initial_reserve: 20_000_000_000_000_000_000_000,
reserve_ratio: 10,
max_supply: 1_000_000_000_000_000_000_000,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for declaring new validator candidacy.
address - Address of candidate in Minter Network. This address would be able to control candidate. Also all rewards will be sent to this address. pubkey - Public key of a validator. commission - Commission (from 0 to 100) from rewards which delegators will pay to validator. coin - Symbol of coin to stake. Stake - Amount of coins to stake.
Minter::DeclareCandidacyTx.new(
address: "Mx9f7fd953c2c69044b901426831ed03ee0bd0597a",
pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
commission: 10,
coin: 1,
stake: 5_000_000_000_000_000_000,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for delegating funds to validator.
pubkey - Public key of a validator. coin - Symbol of coin to stake. value - Amount of coins to stake.
Minter::DelegateTx.new(
pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
coin: 1,
value: 10_000_000_000_000_000_000,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for unbonding funds from validator's stake.
pubkey - Public key of a validator. coin - Symbol of coin to stake. value - Amount of coins to stake.
Minter::UnbondTx.new(
pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
coin: 1,
value: 10_000_000_000_000_000_000,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for redeeming a check.
RawCheck - Raw check received from sender. Proof - Proof of owning a check.
Note that maximum GasPrice is limited to 1 to prevent fraud, because GasPrice is set by redeem tx sender but commission is charded from check issuer.
Minter::RedeemCheckTx.new(
check: check,
proof: proof,
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for turning candidate on. This transaction should be sent from address which is set in the "Declare candidacy transaction".
PubKey - Public key of a validator.
Minter::SetCandidateOnTx.new(
pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for turning candidate off. This transaction should be sent from address which is set in the "Declare candidacy transaction".
PubKey - Public key of a validator.
Minter::SetCandidateOffTx.new(
pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for editing existing candidate.
Minter::EditCandidateTx.new(
pubkey: "Mp4ae1ee73e6136c85b0ca933a9a1347758a334885f10b3238398a67ac2eb153b8",
reward_address: "Mx89e5dc185e6bab772ac8e00cf3fb3f4cb0931c47",
owner_address: "Mxe731fcddd37bb6e72286597d22516c8ba3ddffa0",
control_address: "Mx1b685a7c1e78726c48f619c497a07ed75fe00483",
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
Transaction for sending coins to multiple addresses.
transaction = Minter::MultiSendTx.new(
nonce: 1,
chain_id: 2,
gas_coin: 1,
gas_price: 1
)
transaction.add_item(
coin_id: 1,
address_to: "Mxfe60014a6e9ac91618f5d1cab3fd58cded61ee99",
value: 100_000_000_000_000_000
)
transaction.add_item(
coin_id: 1,
address_to: "Mxddab6281766ad86497741ff91b6b48fe85012e3c",
value: 200_000_000_000_000_000
)
signed_tx = transaction.sign(private_key)
transaction = Minter::SendCoinTx.new(
address_to: "Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497",
value: 24_000_000_000_000_000_000,
coin: "MNT",
nonce: 65,
chain_id: 2,
gas_coin: "MNT",
gas_price: 10
)
transaction.fee
#=> ""
More info about Minter Link Protocol
wallet = Minter::Wallet.new
# => #<Minter::Wallet:0x00007fa168c31f48
# @address="Mx02b065d31b57511279f5b4d6ddb4c35a5ab0ebff",
# @mnemonic=
# "you random jacket limit ship vacuum mango various penalty imitate swallow second",
# @private_key=
# "7ced83b93186ff8d4c20f6b8b6f4a610eafd64d12024105f68796120dd3e7bce",
# @public_key=
# "Mp961589ae817659c6bb323587faa9a92a91b5e8481dd3b73ad0dc680464dac5adbc2d498064598bc36e158436fb1861245ef909a1776e5cb50221db718c82a483">
mnemonic = "hurt orient quarter item can into zebra west either ship team pattern"
wallet = Minter::Wallet.new(mnemonic)
=> #<Minter::Wallet:0x00007fb7019cdaf0
@address="Mx3f865a277ef9e901280d0e607294be9a654860ea",
@mnemonic="hurt orient quarter item can into zebra west either ship team pattern",
@private_key="0ce363580a20351d995dbafc8942f61c0094f38d0d4f837d1f0c37a9f3c3c7ca",
@public_key="Mp7084eec27577ffd4151b54bf7d8ed500a514629fea4e5992bb94a704011d89225be0543fd0a27069b7855c0d260aa21011380843d03d18aabc2bb1e4d4c80e15">
mnemonic = Minter::Key.new_mnemonic
#=> "rice joy gift diamond wisdom scout junk keen math page firm regular"
private_key = Minter::Key.private_key_from_mnemonic(mnemonic)
# => "4f9706c0fa8f63a9481379579b4e6ab2d1e41ae8adab0885f58dc6a4859451be"
public_key = Minter::Key.public_key_from_private_key(private_key)
#=> "Mp4357760042c69a3414b9f66236e0cf0cc583c2bb49dff7c3cf68968df1e131bfa54483d0da3291dcba8980cf86ebe8c4d38186efe7322d5d7a3d5501149e6fb0"
address = Minter::Key.address_from_public_key(public_key)
#=> "Mx703323dfeabdffc976c62fb156c58ea41606831e"
address = Minter::Key.address_from_private_key(private_key)
#=> "Mx703323dfeabdffc976c62fb156c58ea41606831e"
address = Minter::Key.address_from_mnemonic(mnemonic)
#=> "Mx703323dfeabdffc976c62fb156c58ea41606831e"
To run tests:
bundle install
rspec
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/minter-ruby-sdk. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Minter::Ruby::Sdk project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
FAQs
Unknown package
We found that minter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.