timelocked deposit address
This commit is contained in:
parent
fea08cc1ea
commit
da916d044c
3 changed files with 18 additions and 3 deletions
|
|
@ -413,8 +413,9 @@ void btc_one_or_weighted_multisig_address::create_segwit_address() {
|
|||
address = segwit_addr::encode(hrp, 0, hash_data);
|
||||
}
|
||||
|
||||
btc_timelocked_one_or_weighted_multisig_address::btc_timelocked_one_or_weighted_multisig_address(const fc::ecc::public_key &user_key_data, const std::vector<std::pair<fc::ecc::public_key, uint16_t> > &keys_data, bitcoin_address::network ntype) :
|
||||
btc_one_or_weighted_multisig_address(user_key_data, keys_data, ntype)
|
||||
btc_timelocked_one_or_weighted_multisig_address::btc_timelocked_one_or_weighted_multisig_address(const fc::ecc::public_key &user_key_data, uint32_t latency, const std::vector<std::pair<fc::ecc::public_key, uint16_t> > &keys_data, bitcoin_address::network ntype) :
|
||||
btc_one_or_weighted_multisig_address(user_key_data, keys_data, ntype),
|
||||
latency_(latency)
|
||||
{
|
||||
create_redeem_script(user_key_data, keys_data);
|
||||
create_witness_script();
|
||||
|
|
@ -427,6 +428,9 @@ void btc_timelocked_one_or_weighted_multisig_address::create_redeem_script(const
|
|||
builder << user_key_data.serialize();
|
||||
builder << op::CHECKSIG;
|
||||
builder << op::IF;
|
||||
builder << uint32_t(latency_);
|
||||
builder << op::CHECKSEQUENCEVERIFY;
|
||||
builder << op::DROP;
|
||||
builder << op::_1;
|
||||
builder << op::ELSE;
|
||||
uint32_t total_weight = 0;
|
||||
|
|
|
|||
|
|
@ -211,11 +211,13 @@ public:
|
|||
class btc_timelocked_one_or_weighted_multisig_address : public btc_one_or_weighted_multisig_address {
|
||||
public:
|
||||
btc_timelocked_one_or_weighted_multisig_address() = default;
|
||||
btc_timelocked_one_or_weighted_multisig_address(const fc::ecc::public_key &user_key_data, const std::vector<std::pair<fc::ecc::public_key, uint16_t>> &keys_data,
|
||||
btc_timelocked_one_or_weighted_multisig_address(const fc::ecc::public_key &user_key_data, uint32_t latency, const std::vector<std::pair<fc::ecc::public_key, uint16_t>> &keys_data,
|
||||
network network_type = network::regtest);
|
||||
|
||||
private:
|
||||
void create_redeem_script(const fc::ecc::public_key &user_key_data, const std::vector<std::pair<fc::ecc::public_key, uint16_t>> &keys_data);
|
||||
|
||||
uint32_t latency_;
|
||||
};
|
||||
|
||||
}}} // namespace graphene::peerplays_sidechain::bitcoin
|
||||
|
|
@ -237,3 +239,11 @@ FC_REFLECT_DERIVED(graphene::peerplays_sidechain::bitcoin::btc_weighted_multisig
|
|||
FC_REFLECT_DERIVED(graphene::peerplays_sidechain::bitcoin::btc_one_or_m_of_n_multisig_address,
|
||||
(graphene::peerplays_sidechain::bitcoin::bitcoin_address),
|
||||
(redeem_script_)(witness_script_));
|
||||
|
||||
FC_REFLECT_DERIVED(graphene::peerplays_sidechain::bitcoin::btc_one_or_weighted_multisig_address,
|
||||
(graphene::peerplays_sidechain::bitcoin::bitcoin_address),
|
||||
(redeem_script_)(witness_script_));
|
||||
|
||||
FC_REFLECT_DERIVED(graphene::peerplays_sidechain::bitcoin::btc_timelocked_one_or_weighted_multisig_address,
|
||||
(graphene::peerplays_sidechain::bitcoin::btc_one_or_weighted_multisig_address),
|
||||
(latency_));
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ enum class op {
|
|||
RETURN = 0x6a,
|
||||
|
||||
// stack ops
|
||||
DROP = 0x75,
|
||||
DUP = 0x76,
|
||||
SWAP = 0x7c,
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue