Claiming my "Vested cashback balance"

Started by joereform, November 23, 2015, 08:16:21 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

xeroc


pc

Quote from: Bhuz on November 23, 2015, 10:04:49 PM
Would not be enough "withdraw_vesting joereform <amount> BTS true" ?

AFAIK withdraw_vesting can only withdraw witness income, i. e. block rewards, not cashback.
Bitcoin - Perspektive oder Risiko? ISBN 978-3-8442-6568-2 [url="http://bitcoin.quisquis.de"]http://bitcoin.quisquis.de[/url]

xeroc

Ui .. thanks for showing "get_prototype_operation" .. didn't know this exists :)

Bhuz



Quote from: pc on November 23, 2015, 05:46:36 PM
In the cli_wallet you'd basically do this:


locked >>> get_vesting_balances joereform
get_vesting_balances joereform
[{
    "id": "1.13.368",
    "owner": "1.2.16957",
    "balance": {
      "amount": 7418124,
      "asset_id": "1.3.0"
    },
    "policy": [
      1,{
        "vesting_seconds": 7776000,
        "start_claim": "1970-01-01T00:00:00",
        "coin_seconds_earned": "57683332224000",
        "coin_seconds_earned_last_update": "2015-11-23T02:00:00"
      }
    ],
    "allowed_withdraw": {
      "amount": 7418124,
      "asset_id": "1.3.0"
    },
    "allowed_withdraw_time": "2015-11-23T16:51:06"
  }
]


Take note of the id, the owner and the allowed_withdraw amount. Asset_id 1.3.0 is (unsurprisingly) BTS.

Now you need to know what a withdraw_vesting_balance operation looks like.


locked >>> get_prototype_operation vesting_balance_withdraw_operation
get_prototype_operation vesting_balance_withdraw_operation
[
  33,{
    "fee": {
      "amount": 0,
      "asset_id": "1.3.0"
    },
    "vesting_balance": "1.13.0",
    "owner": "1.2.0",
    "amount": {
      "amount": 0,
      "asset_id": "1.3.0"
    }
  }
]


This gives you the numeric operation id 33 and the general structure of the withdraw operation. Open a text editor and fill in the details with the  data from your own vesting_balance. It should look like this (but don't paste this into the cli_wallet command line yet):


[
  33,{
    "fee": {
      "amount": 0,
      "asset_id": "1.3.0"
    },
    "vesting_balance": "1.13.368",
    "owner": "1.2.16957",
    "amount": {
      "amount": 7418124,
      "asset_id": "1.3.0"
    }
  }
]


Now you must wrap the operation into a transaction. This is done using the transaction builder. Start a new transaction like this:


locked >>> begin_builder_transaction
begin_builder_transaction
0


Not the 0 at the end - this is the builder id. You'll need this for the next steps.
Now add the withdraw operation from above. You'll have to remove linefeeds before pasting the data into the CLI, I think:


locked >>> add_operation_to_builder_transaction 0 [ 33,{ "fee": { "amount": 0, "asset_id": "1.3.0" }, "vesting_balance": "1.13.368", "owner": "1.2.16957", "amount": { "amount": 7418124, "asset_id": "1.3.0" } } ]
add_operation_to_builder_transaction 0 [ 33,{ "fee": { "amount": 0, "asset_id": "1.3.0" }, "vesting_balance": "1.13.368", "owner": "1.2.16957", "amount": { "amount": 7418124, "asset_id": "1.3.0" } } ]
null


Now have it fill in the correct fee amount:


locked >>> set_fees_on_builder_transaction 0 BTS
set_fees_on_builder_transaction 0 BTS
{
  "amount": "100000000000000",
  "asset_id": "1.3.0"
}


Again, the 0 is the builder id, not the fee amount. As you can see, the fees for vesting withdrawals are currently ridiculously high. This is to avoid a bug that has triggered chain forks in the past. Once the bug is fixed you'll be able to withdraw for a reasonable fee.
Now, preview the resulting transaction:


locked >>> preview_builder_transaction 0
preview_builder_transaction 0
{
  "ref_block_num": 0,
  "ref_block_prefix": 0,
  "expiration": "1970-01-01T00:00:00",
  "operations": [[
      33,{
        "fee": {
          "amount": "100000000000000",
          "asset_id": "1.3.0"
        },
        "vesting_balance": "1.13.368",
        "owner": "1.2.16957",
        "amount": {
          "amount": 7418124,
          "asset_id": "1.3.0"
        }
      }
    ]
  ],
  "extensions": []
}


Now, if your wallet is unlocked and contains the private keys of your account, you can sign the transaction and broadcast it:


locked >>> sign_builder_transaction 0 true


Maybe I misunderstood the OP question...
Would not be enough "withdraw_vesting joereform <amount> BTS true" ?

pc

In the cli_wallet you'd basically do this:


locked >>> get_vesting_balances joereform
get_vesting_balances joereform
[{
    "id": "1.13.368",
    "owner": "1.2.16957",
    "balance": {
      "amount": 7418124,
      "asset_id": "1.3.0"
    },
    "policy": [
      1,{
        "vesting_seconds": 7776000,
        "start_claim": "1970-01-01T00:00:00",
        "coin_seconds_earned": "57683332224000",
        "coin_seconds_earned_last_update": "2015-11-23T02:00:00"
      }
    ],
    "allowed_withdraw": {
      "amount": 7418124,
      "asset_id": "1.3.0"
    },
    "allowed_withdraw_time": "2015-11-23T16:51:06"
  }
]


Take note of the id, the owner and the allowed_withdraw amount. Asset_id 1.3.0 is (unsurprisingly) BTS.

Now you need to know what a withdraw_vesting_balance operation looks like.


locked >>> get_prototype_operation vesting_balance_withdraw_operation
get_prototype_operation vesting_balance_withdraw_operation
[
  33,{
    "fee": {
      "amount": 0,
      "asset_id": "1.3.0"
    },
    "vesting_balance": "1.13.0",
    "owner": "1.2.0",
    "amount": {
      "amount": 0,
      "asset_id": "1.3.0"
    }
  }
]


This gives you the numeric operation id 33 and the general structure of the withdraw operation. Open a text editor and fill in the details with the  data from your own vesting_balance. It should look like this (but don't paste this into the cli_wallet command line yet):


[
  33,{
    "fee": {
      "amount": 0,
      "asset_id": "1.3.0"
    },
    "vesting_balance": "1.13.368",
    "owner": "1.2.16957",
    "amount": {
      "amount": 7418124,
      "asset_id": "1.3.0"
    }
  }
]


Now you must wrap the operation into a transaction. This is done using the transaction builder. Start a new transaction like this:


locked >>> begin_builder_transaction
begin_builder_transaction
0


Not the 0 at the end - this is the builder id. You'll need this for the next steps.
Now add the withdraw operation from above. You'll have to remove linefeeds before pasting the data into the CLI, I think:


locked >>> add_operation_to_builder_transaction 0 [ 33,{ "fee": { "amount": 0, "asset_id": "1.3.0" }, "vesting_balance": "1.13.368", "owner": "1.2.16957", "amount": { "amount": 7418124, "asset_id": "1.3.0" } } ]
add_operation_to_builder_transaction 0 [ 33,{ "fee": { "amount": 0, "asset_id": "1.3.0" }, "vesting_balance": "1.13.368", "owner": "1.2.16957", "amount": { "amount": 7418124, "asset_id": "1.3.0" } } ]
null


Now have it fill in the correct fee amount:


locked >>> set_fees_on_builder_transaction 0 BTS
set_fees_on_builder_transaction 0 BTS
{
  "amount": "100000000000000",
  "asset_id": "1.3.0"
}


Again, the 0 is the builder id, not the fee amount. As you can see, the fees for vesting withdrawals are currently ridiculously high. This is to avoid a bug that has triggered chain forks in the past. Once the bug is fixed you'll be able to withdraw for a reasonable fee.
Now, preview the resulting transaction:


locked >>> preview_builder_transaction 0
preview_builder_transaction 0
{
  "ref_block_num": 0,
  "ref_block_prefix": 0,
  "expiration": "1970-01-01T00:00:00",
  "operations": [[
      33,{
        "fee": {
          "amount": "100000000000000",
          "asset_id": "1.3.0"
        },
        "vesting_balance": "1.13.368",
        "owner": "1.2.16957",
        "amount": {
          "amount": 7418124,
          "asset_id": "1.3.0"
        }
      }
    ]
  ],
  "extensions": []
}


Now, if your wallet is unlocked and contains the private keys of your account, you can sign the transaction and broadcast it:


locked >>> sign_builder_transaction 0 true

Bitcoin - Perspektive oder Risiko? ISBN 978-3-8442-6568-2 [url="http://bitcoin.quisquis.de"]http://bitcoin.quisquis.de[/url]

xeroc

The GUI currently does not yet support this operation. Devs are working on fixing pressing bugs right now ..
In the meantime, you could use the cli-wallet to claim your vested cashback .. but we don't have a proper documentation for it yet either :(

joereform

I am a lifetime member running the GUI version of the light wallet. How do I claim the vesting cashback balance on my account?