BitShares Forum
Main => Technical Support => Topic started by: cybermonetarist on May 24, 2015, 12:25:00 pm
-
Hi everybody!
I've try to use multisig, but all my efforts failed.
I found that Instruction at https://github.com/BitShares/bitshares/blob/master/docs/multisig.md not relevant!
I was trying to run command "wallet_multisig_deposit" with this parameters:
wallet_multisig_deposit <0.2> <BTS> <address-1> <2> <address-1, address-2, address-3> [vote_recommended]
Here is result:
4 parse_error_exception: Parse Error
Unexpected char '60' in ""
{"c":60,"s":""}
bitshares json.cpp:434 variant_from_stream
Error parsing argument 4 of command "wallet_multisig_deposit": [{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]
{"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]}
bitshares cli.cpp:580 parse_argument_of_known_type
{"parameter_index":3}
bitshares cli.cpp:583 parse_argument_of_known_type
Error parsing argument 4 of command "wallet_multisig_deposit": [{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}},{"context":{"level":"error","file":"cli.cpp","line":580,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Error parsing argument ${argument_number} of command \"${command}\": ${detail}","data":{"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]}},{"context":{"level":"warn","file":"cli.cpp","line":583,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"","data":{"parameter_index":3}}]
{"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}},{"context":{"level":"error","file":"cli.cpp","line":580,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Error parsing argument ${argument_number} of command \"${command}\": ${detail}","data":{"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]}},{"context":{"level":"warn","file":"cli.cpp","line":583,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"","data":{"parameter_index":3}}]}
bitshares cli.cpp:397 parse_recognized_interactive_command
{}
bitshares cli.cpp:447 parse_recognized_interactive_command
Error parsing command "wallet_multisig_deposit": Parse Error (4)
Unexpected char '60' in ""
Error parsing argument 4 of command "wallet_multisig_deposit": [{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]
Error parsing argument 4 of command "wallet_multisig_deposit": [{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}},{"context":{"level":"error","file":"cli.cpp","line":580,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Error parsing argument ${argument_number} of command \"${command}\": ${detail}","data":{"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]}},{"context":{"level":"warn","file":"cli.cpp","line":583,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"","data":{"parameter_index":3}}]
I tried different variation:
wallet_multisig_deposit 0.2 BTS address-1 2 address-1, address-2, address-3 [vote_recommended]
wallet_multisig_deposit 0.2 BTS address-1 2 [address-1, address-2, address-3] [vote_recommended]
...etc.
All used addresses are registered
I use BitSahres Client v.0.9
Mac OSX 10.10.3
What I'm doing wrong?
Can somebody explain how to use multisig commands.
Thanks.
-
+1 even FTC have multisig GUI + step by step tutorial
I would like to see something similar here:
https://forum.feathercoin.com/index.php?/topic/8546-awesome-multisig-page/
-
BM has said that Multi-sig features and related documentation will be released at the start of June in the upcoming announcements
-
BM has said that Multi-sig features and related documentation will be released at the start of June in the upcoming announcements
Wonderful news!
-
+1 even FTC have multisig GUI + step by step tutorial
I would like to see something similar here:
https://forum.feathercoin.com/index.php?/topic/8546-awesome-multisig-page/
+5% agree, it would be great
BM has said that Multi-sig features and related documentation will be released at the start of June in the upcoming announcements
Thanks for this news! Hope that is true, I really need multisig!
-
you need to put the addresses into "[ ]" braces and not have ANY whitespace in it ..
eg.
wallet_multisig_deposit 100 BTS angel 2 [BTS..,BTS..,BTS..]
or alternatively use ' " '
wallet_multisig_deposit 100 BTS angel 2 "[BTS.., BTS.., BTS..]"
-
you need to put the addresses into "[ ]" braces and not have ANY whitespace in it ..
eg.
wallet_multisig_deposit 100 BTS angel 2 [BTS..,BTS..,BTS..]
or alternatively use ' " '
wallet_multisig_deposit 100 BTS angel 2 "[BTS.., BTS.., BTS..]"
Thanks for your attention.
I've just try 3 variants:
1. wallet_multisig_deposit 0.2 BTS address-1 2 "[BTSaddress-1,BTSaddress-2,BTSaddress-3]"
2. wallet_multisig_deposit 0.2 BTS "address-1" 2 "[BTSaddress-1,BTSaddress-2,BTSaddress-3]"
3. wallet_multisig_deposit 0.2 BTS "BTSaddress-1" 2 "[BTSaddress-1,BTSaddress-2,BTSaddress-3]"
Result:
7 bad_cast_exception: Bad Cast
Invalid cast from string_type to Array
{"type":"string_type"}
bitshares variant.cpp:530 get_array
{"command":"wallet_multisig_deposit"}
bitshares cli.cpp:626 execute_command
-
BM has said that Multi-sig features and related documentation will be released at the start of June in the upcoming announcements
+5% we need something like this. easy to use and with a documentation.
-
delegate (unlocked) >>> wallet_multisig_deposit 10 BTS donations.xeroc 3 ["BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo","BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1","BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"]
TIMESTAMP BLOCK FROM TO AMOUNT MEMO FEE ID
======================================================================================================================================================================
2015-05-26T12:50:20 PENDING donations.xeroc UNKNOWN 10.00000 BTS 0.10000 BTS 784aabe8
where BTSN..... are addresses generated by "wallet_address_create <accountname>"
on the blockchain:
delegate (locked) >>> blockchain_get_transaction 784aabe8
[
"784aabe81252e6b36ee570b024a48b7425c221cb",{
"trx": {
"expiration": "2015-05-26T13:50:19",
"operations": [{
"type": "deposit_op_type",
"data": {
"amount": 1000000,
"condition": {
"asset_id": 0,
"slate_id": 0,
"type": "withdraw_multisig_type",
"data": {
"required": 3,
"owners": [
"BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo",
"BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw",
"BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1"
]
}
}
}
},{
"type": "withdraw_op_type",
"data": {
"balance_id": "BTSNP8ABA31UPg7og9pQLBKNBKE8TNBstMjd",
"amount": 1020000,
"claim_input_data": ""
}
}
],
"signatures": [
"1f6b12962c3075d44ca45f5e4a4841395ca792d45caa03416691bc4f836decf8cc414d26a5aac25a4b2fc32fbc486779ebf3de776ea9310fdc02e4266e729c791d"
]
},
@cybermonetarist
you cannot withdraw from an address .. you need to have your keys loaded into an account .. that account is supposed to be the third parameters .. not an address
you can get the balanceid via
delegate (locked) >>> wallet_multisig_get_balance_id BTS 3 ["BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo","BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1","BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"]
BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt
and withdraw from the balanceid via
delegate (unlocked) >>> wallet_multisig_withdraw_start 9.9 BTS BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By
{
"transaction_record": {
"index": 0,
"record_id": "0000000000000000000000000000000000000000",
"block_num": 0,
"is_virtual": false,
"is_confirmed": false,
"is_market": false,
"trx": {
"expiration": "1970-01-01T00:00:00",
"operations": [{
"type": "withdraw_op_type",
"data": {
"balance_id": "BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt",
"amount": 1000000,
"claim_input_data": ""
}
},{
"type": "deposit_op_type",
"data": {
"amount": 990000,
"condition": {
"asset_id": 0,
"slate_id": 0,
"type": "withdraw_signature_type",
"data": {
"owner": "BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By"
}
}
}
}
],
"signatures": []
},
"ledger_entries": [],
"fee": {
"amount": 0,
"asset_id": 0
},
"created_time": "1970-01-01T00:00:00",
"received_time": "1970-01-01T00:00:00"
},
"required_signatures": [
"BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1",
"BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw",
"BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo"
],
"outstanding_balances": []
}
where BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By is a new address
this command will create a new file DATA_DIR/transactions/latest.trx which contains the transaction ...
it can be signed with
delegate (unlocked) >>> wallet_builder_file_add_signature "" true
I tried to broadcast the transaction but it was not valid.
delegate (unlocked) >>> wallet_builder_file_add_signature "" true{
"transaction_record": {
"index": 0,
"record_id": "060aa4fb6b90e27ed408e6fae21d1588a5c4ee0b",
"block_num": 0,
"is_virtual": false,
"is_confirmed": false,
"is_market": false,
"trx": {
"expiration": "2015-05-26T16:03:54",
"operations": [{
"type": "withdraw_op_type",
"data": {
"balance_id": "BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt",
"amount": 1000000,
"claim_input_data": ""
}
},{
"type": "deposit_op_type",
"data": {
"amount": 990000,
"condition": {
"asset_id": 0,
"slate_id": 0,
"type": "withdraw_signature_type",
"data": {
"owner": "BTS2CxV6VPFZrRgULzCPoBne7RBEheZPMctp"
}
}
}
}
],
"signatures": [
"1f07574ecbca231aab473b7beba2cf7174c19e3b5f85a662d437f03b960a848017258d0533a0514f2a1595dff8548c7c4882c4b15d8a3717eb1f62cd2c62ad22ba",
"20270c5b51c2139808e540762cd040c86f2209644f4e6af0ed288e2af04cbfcfe87585ba056b9ede12c95dc11afafa864311332b73b38238d98cd03777bcb1eefc",
"1f45bd94421016e650871981642c97b956d3883b4706935e250ea9ea67e5b302b63acc7c6b6f33ac5498ddb664791794ab301016a30eeb0cb5df4857986d2d666f"
]
},
"ledger_entries": [],
"fee": {
"amount": 0,
"asset_id": 0
},
"created_time": "2015-05-26T15:03:54",
"received_time": "2015-05-26T15:03:54"
},
"required_signatures": [
"BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo",
"BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1",
"BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"
],
"outstanding_balances": []
}
if you have all keys installed in your local machine .. else it will update the file so you can hand it over to the next party.
interestingly, the signed transactions seems to be invalid for no-idea what reason ..
@vikram ?
-
delegate (unlocked) >>> wallet_multisig_deposit 10 BTS donations.xeroc 3 ["BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo","BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1","BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"]
TIMESTAMP BLOCK FROM TO AMOUNT MEMO FEE ID
======================================================================================================================================================================
2015-05-26T12:50:20 PENDING donations.xeroc UNKNOWN 10.00000 BTS 0.10000 BTS 784aabe8
where BTSN..... are addresses generated by "wallet_address_create <accountname>"
on the blockchain:
delegate (locked) >>> blockchain_get_transaction 784aabe8
[
"784aabe81252e6b36ee570b024a48b7425c221cb",{
"trx": {
"expiration": "2015-05-26T13:50:19",
"operations": [{
"type": "deposit_op_type",
"data": {
"amount": 1000000,
"condition": {
"asset_id": 0,
"slate_id": 0,
"type": "withdraw_multisig_type",
"data": {
"required": 3,
"owners": [
"BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo",
"BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw",
"BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1"
]
}
}
}
},{
"type": "withdraw_op_type",
"data": {
"balance_id": "BTSNP8ABA31UPg7og9pQLBKNBKE8TNBstMjd",
"amount": 1020000,
"claim_input_data": ""
}
}
],
"signatures": [
"1f6b12962c3075d44ca45f5e4a4841395ca792d45caa03416691bc4f836decf8cc414d26a5aac25a4b2fc32fbc486779ebf3de776ea9310fdc02e4266e729c791d"
]
},
@cybermonetarist
you cannot withdraw from an address .. you need to have your keys loaded into an account .. that account is supposed to be the third parameters .. not an address
you can get the balanceid via
delegate (locked) >>> wallet_multisig_get_balance_id BTS 3 ["BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo","BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1","BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"]
BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt
and withdraw from the balanceid via
delegate (unlocked) >>> wallet_multisig_withdraw_start 9.9 BTS BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By
{
"transaction_record": {
"index": 0,
"record_id": "0000000000000000000000000000000000000000",
"block_num": 0,
"is_virtual": false,
"is_confirmed": false,
"is_market": false,
"trx": {
"expiration": "1970-01-01T00:00:00",
"operations": [{
"type": "withdraw_op_type",
"data": {
"balance_id": "BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt",
"amount": 1000000,
"claim_input_data": ""
}
},{
"type": "deposit_op_type",
"data": {
"amount": 990000,
"condition": {
"asset_id": 0,
"slate_id": 0,
"type": "withdraw_signature_type",
"data": {
"owner": "BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By"
}
}
}
}
],
"signatures": []
},
"ledger_entries": [],
"fee": {
"amount": 0,
"asset_id": 0
},
"created_time": "1970-01-01T00:00:00",
"received_time": "1970-01-01T00:00:00"
},
"required_signatures": [
"BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1",
"BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw",
"BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo"
],
"outstanding_balances": []
}
where BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By is a new address
this command will create a new file DATA_DIR/transactions/latest.trx which contains the transaction ...
it can be signed with
delegate (unlocked) >>> wallet_builder_file_add_signature "" true
I tried to broadcast the transaction but it was not valid.
delegate (unlocked) >>> wallet_builder_file_add_signature "" true{
"transaction_record": {
"index": 0,
"record_id": "060aa4fb6b90e27ed408e6fae21d1588a5c4ee0b",
"block_num": 0,
"is_virtual": false,
"is_confirmed": false,
"is_market": false,
"trx": {
"expiration": "2015-05-26T16:03:54",
"operations": [{
"type": "withdraw_op_type",
"data": {
"balance_id": "BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt",
"amount": 1000000,
"claim_input_data": ""
}
},{
"type": "deposit_op_type",
"data": {
"amount": 990000,
"condition": {
"asset_id": 0,
"slate_id": 0,
"type": "withdraw_signature_type",
"data": {
"owner": "BTS2CxV6VPFZrRgULzCPoBne7RBEheZPMctp"
}
}
}
}
],
"signatures": [
"1f07574ecbca231aab473b7beba2cf7174c19e3b5f85a662d437f03b960a848017258d0533a0514f2a1595dff8548c7c4882c4b15d8a3717eb1f62cd2c62ad22ba",
"20270c5b51c2139808e540762cd040c86f2209644f4e6af0ed288e2af04cbfcfe87585ba056b9ede12c95dc11afafa864311332b73b38238d98cd03777bcb1eefc",
"1f45bd94421016e650871981642c97b956d3883b4706935e250ea9ea67e5b302b63acc7c6b6f33ac5498ddb664791794ab301016a30eeb0cb5df4857986d2d666f"
]
},
"ledger_entries": [],
"fee": {
"amount": 0,
"asset_id": 0
},
"created_time": "2015-05-26T15:03:54",
"received_time": "2015-05-26T15:03:54"
},
"required_signatures": [
"BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo",
"BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1",
"BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"
],
"outstanding_balances": []
}
if you have all keys installed in your local machine .. else it will update the file so you can hand it over to the next party.
interestingly, the signed transactions seems to be invalid for no-idea what reason ..
@vikram ?
I try this:
>> wallet_multisig_deposit 10 BTS cybermonetarist 2 ["BTS8MbicXCdgYVLevZBy72aAZfmCqKAwNvX7bnjDu8CgEC1fHT12m","BTS7rjVvPv6Un58HSftaJQtido7wFMMjzcDr8BkfF3APsTRj8hfgs","BTS8Xd5Cnjp6Q1WEqLrtUEYTcXtybhq2GQZR3Y23V3u92U8borZYG"] [vote_recommended]
and that:
wallet_multisig_deposit 10 BTS cybermonetarist 2 ["BTS8MbicXCdgYVLevZBy72aAZfmCqKAwNvX7bnjDu8CgEC1fHT12m","BTS7rjVvPv6Un58HSftaJQtido7wFMMjzcDr8BkfF3APsTRj8hfgs","BTS8Xd5Cnjp6Q1WEqLrtUEYTcXtybhq2GQZR3Y23V3u92U8borZYG"]
Result:
10 assert_exception: Assert Exception
is_valid( base58str ):
{}
bitshares address.cpp:13 address
{"command":"wallet_multisig_deposit"}
bitshares cli.cpp:626 execute_command
-
Ah .. what you are using are "public keys" .. and not addresses ..
The difference can be seen from the length of the BTS... string
yours (not working):
BTS8MbicXCdgYVLevZBy72aAZfmCqKAwNvX7bnjDu8CgEC1fHT12m
BTS7rjVvPv6Un58HSftaJQtido7wFMMjzcDr8BkfF3APsTRj8hfgs
BTS8Xd5Cnjp6Q1WEqLrtUEYTcXtybhq2GQZR3Y23V3u92U8borZYG
mine (working):
BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo
BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1
BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw
you can get a new unused address from the client by
wallet_address_create <accountname>
Remark:
Note that (at least for me) .. withdrawing from multisig does not work properly .. I will investigate
-
Ah .. what you are using are "public keys" .. and not addresses ..
The difference can be seen from the length of the BTS... string
yours (not working):
BTS8MbicXCdgYVLevZBy72aAZfmCqKAwNvX7bnjDu8CgEC1fHT12m
BTS7rjVvPv6Un58HSftaJQtido7wFMMjzcDr8BkfF3APsTRj8hfgs
BTS8Xd5Cnjp6Q1WEqLrtUEYTcXtybhq2GQZR3Y23V3u92U8borZYG
mine (working):
BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo
BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1
BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw
you can get a new unused address from the client by
wallet_address_create <accountname>
Remark:
Note that (at least for me) .. withdrawing from multisig does not work properly .. I will investigate
Thank a lot!
Now it works ))
I'll be waiting for result of your investigation about withdraw