Skip to content

Commit b8a832b

Browse files
committed
refactoring, added max supply to coin creation tx
1 parent 255a6c1 commit b8a832b

37 files changed

+245
-179
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
- conan-dir-{{ checksum "conanfile.py" }}
4040
- run: conan install gtest/1.8.1@bincrafters/stable
4141
- run: conan install toolbox/3.1.1@edwardstock/latest
42-
- run: conan install bip39/2.0.0@edwardstock/latest
42+
- run: conan install bip39/2.0.1@edwardstock/latest
4343
- run: conan install boost/1.70.0@conan/stable
4444
- run:
4545
name: Configuring

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.10)
22
project(minter_tx
3-
VERSION 0.6.0
3+
VERSION 0.6.1
44
DESCRIPTION "Minter Transaction Maker"
55
LANGUAGES CXX
66
)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ For more information, see official [docs](https://docs.conan.io/en/latest/gettin
5353
## Use as conan dependency without manually build
5454
You can just add to your conanfile.txt dependency:
5555

56-
`minter_tx/0.6.0@minter/latest`
56+
`minter_tx/0.6.1@minter/latest`
5757

5858
CMakeLists.txt
5959
```cmake

RELEASE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Release notes
22

3+
## 0.6.1
4+
- Added max supply to create coin transaction
5+
- Unified strings in transactions. No more c-style strings, now only std::string
6+
37
## 0.6.0
48
- Fixed build for macos (removed LIBCPP_DEBUG flag)
59
- Updated examples:

include/minter/tx/check_tx.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,17 @@ namespace minter {
3030

3131
class MINTER_TX_API check_tx {
3232
public:
33+
/// \brief Create proof for new check. Proof is require to redeem check, as proof is a check "password"
34+
/// \param address sender address
35+
/// \param pass password in bytes
36+
/// \return proof bytes
3337
static dev::bytes_data make_proof(const address_t& address, const dev::bytes& pass);
38+
39+
/// \brief Decodes check
40+
/// \param check_data hash: McAAABBBCCC.....
41+
/// \return decoded check transaction
3442
static check_tx decode(const std::string& check_data);
43+
3544
static check_tx decode(const minter::check_t& check);
3645

3746
check_tx()

include/minter/tx/tx_builder.h

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,44 @@ class MINTER_TX_API tx_builder {
2424
: m_tx(std::move(tx)) {
2525
}
2626
~tx_builder() = default;
27+
28+
/// Base transaction data
29+
30+
tx_builder& set_nonce(const std::string& num);
2731
tx_builder& set_nonce(const dev::bigint& num);
28-
tx_builder& set_nonce(const char* num);
32+
33+
/// \brief Network identifier. Declared in autogenerated header minter/minter_tx_config.h
34+
/// \see minter::testnet - for testnet
35+
/// \see minter::mainnet - for mainnet
36+
/// \param id
37+
/// \return
2938
tx_builder& set_chain_id(uint8_t id);
39+
3040
tx_builder& set_gas_price(const std::string& amountNormalized);
3141
tx_builder& set_gas_price(const dev::bigdec18& amountNormalized);
3242
tx_builder& set_gas_price(const dev::bigint& amount);
43+
3344
tx_builder& set_gas_coin(const std::string& coin);
34-
tx_builder& set_gas_coin(const char* coin);
35-
tx_builder& set_payload(const dev::bytes& payload);
36-
tx_builder& set_payload(dev::bytes&& payload);
45+
3746
tx_builder& set_payload(const std::string& payload);
3847
tx_builder& set_payload(std::string&& payload);
39-
tx_builder& set_payload(const char* payload);
40-
tx_builder& set_service_data(const dev::bytes& payload);
41-
tx_builder& set_service_data(dev::bytes&& payload);
48+
tx_builder& set_payload(const dev::bytes& payload);
49+
tx_builder& set_payload(dev::bytes&& payload);
50+
4251
tx_builder& set_service_data(const std::string& payload);
4352
tx_builder& set_service_data(std::string&& payload);
44-
tx_builder& set_service_data(const char* payload);
53+
tx_builder& set_service_data(const dev::bytes& payload);
54+
tx_builder& set_service_data(dev::bytes&& payload);
55+
56+
/// \brief Type of signature.
57+
/// \param type can be single or multi. Can be casted to uint8_t
58+
/// \see minter::signature_type::single
59+
/// \see minter::signature_type::multi
60+
/// \return
4561
tx_builder& set_signature_type(minter::signature_type type);
4662

63+
/// Typed transaction data
64+
4765
std::shared_ptr<minter::tx_send_coin> tx_send_coin();
4866
std::shared_ptr<minter::tx_sell_coin> tx_sell_coin();
4967
std::shared_ptr<minter::tx_sell_all_coins> tx_sell_all_coins();

include/minter/tx/tx_buy_coin.h

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,13 @@ class MINTER_TX_API tx_buy_coin : public virtual minter::tx_data {
2626
std::string get_coin_to_sell() const;
2727
dev::bigdec18 get_max_value_to_sell() const;
2828

29-
tx_buy_coin& set_coin_to_buy(const char* coin);
3029
tx_buy_coin& set_coin_to_buy(const std::string& coin);
31-
tx_buy_coin& set_value_to_buy(const char* valueDec);
32-
tx_buy_coin& set_value_to_buy(const dev::bigdec18& valueDec);
33-
tx_buy_coin& set_value_to_buy(const dev::bigint& valueRaw);
34-
tx_buy_coin& set_coin_to_sell(const char* coin);
30+
tx_buy_coin& set_value_to_buy(const std::string& value);
31+
tx_buy_coin& set_value_to_buy(const dev::bigdec18& value);
32+
tx_buy_coin& set_value_to_buy(const dev::bigint& value);
3533
tx_buy_coin& set_coin_to_sell(const std::string& coin);
36-
tx_buy_coin& set_max_value_to_sell(const char* valueDec);
37-
tx_buy_coin& set_max_value_to_sell(const dev::bigdec18& valueDec);
34+
tx_buy_coin& set_max_value_to_sell(const std::string& value);
35+
tx_buy_coin& set_max_value_to_sell(const dev::bigdec18& value);
3836
tx_buy_coin& set_max_value_to_sell(const dev::bigint& value);
3937

4038
private:

include/minter/tx/tx_create_coin.h

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,33 +21,63 @@ class MINTER_TX_API tx_create_coin : public virtual minter::tx_data {
2121
dev::bytes encode() override;
2222
void decode(const dev::bytes& data) override;
2323

24-
tx_create_coin& set_name(const char* coin_name);
24+
/// \brief common coin name, example Bitcoin BTC
25+
/// \param coin_name
26+
/// \return
2527
tx_create_coin& set_name(const std::string& coin_name);
26-
tx_create_coin& set_ticker(const char* coin_symbol);
28+
/// \brief ticker name, example BTC
29+
/// \param coin_symbol
30+
/// \return
2731
tx_create_coin& set_ticker(const std::string& coin_symbol);
28-
tx_create_coin& set_initial_amount(const char* amount);
32+
/// \brief Initial coin amount in decimal string representation
33+
/// \param amount decimal string
34+
/// \return
35+
tx_create_coin& set_initial_amount(const std::string& amount);
36+
/// \brief Initial coin amount in bigdecimal
37+
/// \param amount bigdecimal representation
38+
/// \return
2939
tx_create_coin& set_initial_amount(const dev::bigdec18& amount);
40+
/// \brief Initial coin amount in bigint representation (PIPs)
41+
/// \param amount bigint
42+
/// \return
3043
tx_create_coin& set_initial_amount(const dev::bigint& amount);
31-
tx_create_coin& set_initial_reserve(const char* amount);
44+
/// \brief Initial reserve in decimal string
45+
/// \param amount decimal string
46+
/// \return
47+
tx_create_coin& set_initial_reserve(const std::string& amount);
48+
/// \brief Initial reserve in big decimal
49+
/// \param amount bigdecimal
50+
/// \return
3251
tx_create_coin& set_initial_reserve(const dev::bigdec18& amount);
52+
/// \brief Initial reserve in PIPs
53+
/// \param amount
54+
/// \return
3355
tx_create_coin& set_initial_reserve(const dev::bigint& amount);
3456
/// \brief
3557
/// \param crr Min value: 10, max = 100
3658
/// \return
3759
tx_create_coin& set_crr(unsigned crr);
60+
/// \brief Coin purchase will not be possible if the limit is exceeded.
61+
/// \param max_supply decimal string
62+
/// \return self
63+
tx_create_coin& set_max_supply(const std::string& max_supply);
64+
tx_create_coin& set_max_supply(const dev::bigint& max_supply);
65+
tx_create_coin& set_max_supply(const dev::bigdec18& max_supply);
3866

3967
std::string get_name() const;
4068
std::string get_ticker() const;
4169
dev::bigdec18 get_initial_amount() const;
4270
dev::bigdec18 get_initial_reserve() const;
4371
unsigned get_crr() const;
72+
dev::bigdec18 get_max_supply() const;
4473

4574
private:
4675
std::string m_name;
4776
std::string m_ticker;
4877
dev::bigint m_initial_amount;
4978
dev::bigint m_initial_reserve;
5079
dev::bigint m_crr;
80+
dev::bigint m_max_supply;
5181
};
5282

5383
} // namespace minter

include/minter/tx/tx_declare_candidacy.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,9 @@ class MINTER_TX_API tx_declare_candidacy : public virtual minter::tx_data {
3030
/// \param commission from 10 to 100 percent
3131
/// \return
3232
tx_declare_candidacy& set_commission(unsigned commission);
33-
tx_declare_candidacy& set_coin(const char* coin);
34-
tx_declare_candidacy& set_stake(const char* amount);
33+
tx_declare_candidacy& set_coin(const std::string& coin);
34+
tx_declare_candidacy& set_stake(const std::string& amount);
35+
tx_declare_candidacy& set_stake(const dev::bigint& amount);
3536
tx_declare_candidacy& set_stake(const dev::bigdec18& amount);
3637

3738
const minter::data::address& get_address() const;

include/minter/tx/tx_deeplink.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace minter {
1717

1818
class tx_deeplink {
1919
public:
20-
static std::shared_ptr<minter::tx_deeplink> decode(const char* encoded_hex);
20+
static std::shared_ptr<minter::tx_deeplink> decode(const std::string& encoded_hex);
2121
static std::shared_ptr<minter::tx_deeplink> decode(const dev::bytes& tx);
2222
static std::shared_ptr<minter::tx_deeplink> decode(const dev::bytes_data& tx);
2323

0 commit comments

Comments
 (0)