Offline Signature is only supported on [cli_wallet].
Run with the websocker server of [cli_wallet].
Drive two [cli_wallets] with a websocket server. One is linked to the RPC port of the blockchain and the other runs offline.
$ ./cli_wallet -s ws://127.0.0.1:24530 -r 0.0.0.0:11222 -d
Logging RPC to file: logs/rpc/rpc.log
Wallet is online mode
2078356ms th_a main.cpp:178 startOnlineWallet ] wdata.ws_server: ws://127.0.0.1:24530
2078357ms th_a main.cpp:183 startOnlineWallet ] wdata.ws_user: wdata.ws_password:
2078357ms th_a websocket_api.cpp:88 on_message ] message: {"id":1,"result":true}
2078358ms th_a websocket_api.cpp:88 on_message ] message: {"id":2,"result":0}
2078358ms th_a websocket_api.cpp:88 on_message ] message: {"id":3,"result":3}
2078358ms th_a main.cpp:226 startOnlineWallet ] Listening for incoming RPC requests on 0.0.0.0:11222
2078358ms th_a main.cpp:290 startOnlineWallet ] Entering Daemon Mode, ^C to exit
$ ./cli_wallet -s local -r 0.0.0.0:11223 -d Logging RPC to file: logs/rpc/rpc.log Wallet is local mode 2064583ms th_a main.cpp:103 startLocalWallet ] Listening for incoming RPC requests on 0.0.0.0:11223 2064583ms th_a main.cpp:167 startLocalWallet ] Entering Daemon Mode, ^C to exit
In the offline [cli_wallet], [suggest_brain_key ],is imported 4 times, and a wrallet is generated in the online [cli_wallet] with a public key.
> {"jsonrpc": "2.0", "method": "suggest_brain_key", "params": [], "id":1 }
< {
"id": 1,
"result": {
"brain_priv_key": "PENCEL GAFF WAYBILL PA SHAMMY DOWNWAY SHIES KUAN PEPLUS CARVER VEINLET VULN SYENITE HISS SQUAIL SEMITAE",
"wif_priv_key": "5K7vBVpHcXRbkSwGdDGfLJ1skDvUj6LmjCop7PRp1RXtXNFdxP5",
"pub_key": "PUB5KCx7eZTgzhp3gs21dmYy2UkGxUZsfbrXoaT7yfDMAGAQ9Ja1P"
}
}
> {"jsonrpc": "2.0", "method": "suggest_brain_key", "params": [], "id":1 }
< {
"id": 1,
"result": {
"brain_priv_key": "PANTAS SOAM PAPOOSE THECA TACIT CRINGLE DREEP OUTPOLL BROCKET YOUZE PLUMOUS SOCKEYE PUGMAN WORRIED KIMNEL BOMBER",
"wif_priv_key": "5KCQGVctXY4YwNkAK2jPKL2aMRLHvUVyDEqYpJgAskbRZsDurFB",
"pub_key": "PUB8bYu4bspwyrEQenUGGdhxfqhH4hWKtJTt8oh9pPsPtheYTr3zv"
}
}
> {"jsonrpc": "2.0", "method": "suggest_brain_key", "params": [], "id":1 }
< {
"id": 1,
"result": {
"brain_priv_key": "MINIUM ROW DIPETTO BUAL SLOUCH SATRAPY SAMADH POESY TUARN LEDGED GLUEY DISTALE CARABID SYRUPED BENDED DESYL",
"wif_priv_key": "5KNWsCjns1YhTHpEpiqfn4agKhTKBHQdv4oyzULWfbZDbsUKPk5",
"pub_key": "PUB5fnKi2NJDnW3HTWEF6cWN4zA4nFb197dDx3A5tcBguwTXmjRSD"
}
}
> {"jsonrpc": "2.0", "method": "suggest_brain_key", "params": [], "id":1 }
< {
"id": 1,
"result": {
"brain_priv_key": "KOLLAST WHIPSAW VISCOSE KHOKA DIPLEX TOADY FIRCA BENMOST BALLI MOPE PUFFERY UNDEWY SKIPPER BILOBED ICICLE SPICANT",
"wif_priv_key": "5J5gDai1DUyPC9ygRW7eyhBT3h6w16WLgRVcuiSWDfM5XkUM56x",
"pub_key": "PUB7uTvZy58V4iWEFku8tnuaCBapRzFzgxVmjaLCZCbEtWys1Tuf4"
}
}
> {"jsonrpc": "2.0", "method": "import_key", "params": ["5K7vBVpHcXRbkSwGdDGfLJ1skDvUj6LmjCop7PRp1RXtXNFdxP5"], "id":1 }
< {"id":1,"result":true}
> {"jsonrpc": "2.0", "method": "import_key", "params": ["5KCQGVctXY4YwNkAK2jPKL2aMRLHvUVyDEqYpJgAskbRZsDurFB"], "id":1 }
< {"id":1,"result":true}
> {"jsonrpc": "2.0", "method": "import_key", "params": ["5KNWsCjns1YhTHpEpiqfn4agKhTKBHQdv4oyzULWfbZDbsUKPk5"], "id":1 }
< {"id":1,"result":true}
> {"jsonrpc": "2.0", "method": "import_key", "params": ["5J5gDai1DUyPC9ygRW7eyhBT3h6w16WLgRVcuiSWDfM5XkUM56x"], "id":1 }
< {"id":1,"result":true}
> {"jsonrpc": "2.0", "method": "create_account_with_keys",
"params": ["rysenaccount", "test012", "", "PUB5KCx7eZTgzhp3gs21dmYy2UkGxUZsfbrXoaT7yfDMAGAQ9Ja1P",
"PUB8bYu4bspwyrEQenUGGdhxfqhH4hWKtJTt8oh9pPsPtheYTr3zv",
"PUB5fnKi2NJDnW3HTWEF6cWN4zA4nFb197dDx3A5tcBguwTXmjRSD",
"PUB7uTvZy58V4iWEFku8tnuaCBapRzFzgxVmjaLCZCbEtWys1Tuf4", true], "id":1 }
< {
"id": 1,
"result": {
"ref_block_num": 62974,
"ref_block_prefix": 2408068821,
"expiration": "2023-11-18T06:51:30",
"operations": [
[
"account_create",
{
"creator": "rysenaccount",
"new_account_name": "test012",
"owner": {
"weight_threshold": 1,
"account_auths": [
],
"key_auths": [
[
"PUB5KCx7eZTgzhp3gs21dmYy2UkGxUZsfbrXoaT7yfDMAGAQ9Ja1P",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [
],
"key_auths": [
[
"PUB8bYu4bspwyrEQenUGGdhxfqhH4hWKtJTt8oh9pPsPtheYTr3zv",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [
],
"key_auths": [
[
"PUB5fnKi2NJDnW3HTWEF6cWN4zA4nFb197dDx3A5tcBguwTXmjRSD",
1
]
]
},
"memo_key": "PUB7uTvZy58V4iWEFku8tnuaCBapRzFzgxVmjaLCZCbEtWys1Tuf4",
"json_metadata": ""
}
]
],
"extensions": [
],
"signatures": [
"1f3829607a1cad584c2781a59e4d92e2f7d504d616193e7207b07a2cc86a6a0fd56ea6036b6b6724742547771a4427a7465699587aab39f72f4c3d3e7056dd063e"
],
"transaction_id": "39e1e03dfab6b324e822e382590e786ca269e711",
"block_num": 1439231,
"transaction_num": 0
}
}
Create transfer transaction in the online server.
> {"jsonrpc": "2.0", "method": "transfer_offline", "params": ["test012","test1","1.00000000 RSN" "memo"], "id":1 }
< {
"id": 1,
"result": {
"ref_block_num": 63441,
"ref_block_prefix": 930511411,
"expiration": "2023-11-18T07:14:51",
"operations": [
[
"transfer",
{
"from": "test012",
"to": "test1",
"amount": "1.00000000 RSN",
"memo": "memo"
}
]
],
"extensions": [
],
"signatures": [
],
"pkeys": [
"PUB8bYu4bspwyrEQenUGGdhxfqhH4hWKtJTt8oh9pPsPtheYTr3zv"
]
}
}
Create a signature by putting the result data returned from #3 above into the offline server as it is.
> {
"jsonrpc": "2.0",
"method": "sign_offline_transaction",
"params": [
{
"ref_block_num": 63511,
"ref_block_prefix": 3927359701,
"expiration": "2023-11-18T07:18:21",
"operations": [
[
"transfer",
{
"from": "test012",
"to": "test1",
"amount": "1.00000000 RSN",
"memo": "memo"
}
]
],
"extensions": [
],
"signatures": [
],
"pkeys": [
"PUB8bYu4bspwyrEQenUGGdhxfqhH4hWKtJTt8oh9pPsPtheYTr3zv"
]
}
],
"id": 1
}
< {
"id": 1,
"result": {
"ref_block_num": 63511,
"ref_block_prefix": 3927359701,
"expiration": "2023-11-18T07:18:21",
"operations": [
[
"transfer",
{
"from": "test012",
"to": "test1",
"amount": "1.00000000 RSN",
"memo": "memo"
}
]
],
"extensions": [
],
"signatures": [
"1f1862f68f70a175aadd56c8f358b3201e110853f0ef779d8d73e1a74727707c5679b8d322041a283764c75aeace56f98efc1040e9847c9de61a2c99ffa260b72c"
]
}
}
Send the result data returned from #4 above to the online server as it is.
Since the validity time is set to 30 seconds, block mounting fails after 30 seconds of creating Transaction.
>{
"jsonrpc": "2.0",
"method": "push_transaction",
"params": [
{
"ref_block_num": 63781,
"ref_block_prefix": 2242585533,
"expiration": "2023-11-18T07:31:51",
"operations": [
[
"transfer",
{
"from": "test012",
"to": "test1",
"amount": "1.00000000 RSN",
"memo": "memo"
}
]
],
"extensions": [
],
"signatures": [
"205c07da121c2e683376e255e9c8df335858dd92216a5bd2ab7c9bf312d16325047f68dc1d68b0122d2528aabfdcc553ebb51f8e94e766bb35055a83d2d2591246"
]
},
true
],
"id": 1
}
<{
"id": 1,
"result": {
"ref_block_num": 63781,
"ref_block_prefix": 2242585533,
"expiration": "2023-11-18T07:31:51",
"operations": [
[
"transfer",
{
"from": "test012",
"to": "test1",
"amount": "1.00000000 RSN",
"memo": "memo"
}
]
],
"extensions": [
],
"signatures": [
"205c07da121c2e683376e255e9c8df335858dd92216a5bd2ab7c9bf312d16325047f68dc1d68b0122d2528aabfdcc553ebb51f8e94e766bb35055a83d2d2591246"
],
"transaction_id": "1ebd44a68a262f1c386634f4736892ac872b0c34",
"block_num": 1440045,
"transaction_num": 0
}
}
Please enter a nickname.
Your post has been completed.