Когда я иду отправлять монеты, я хочу, чтобы транзакция игнорировала неизрасходованные монеты на определенной учетной записи.
Я думаю, что могу сделать это в wallet.cpp, но я не уверен, как это сделать.
Может быть, в функции AvailableCoins()? Сделать так, чтобы монеты были на этом счету? Думаю, мне нужно создать такую функцию, как:
bool isInAccount(string strAccountName, CWalletTx *wtx)
Как я могу это сделать?
Ваш вопрос основан на непонимании системы учетной записи. Однако это очень распространенное заблуждение.
Неизрасходованные выходы не связаны с учетными записями.
Входящие транзакции кредитуют баланс счета, связанного с адресом, с которым получена транзакция. Но аккаунты имеют только баланс — они не «владеют» отправленными им монетами. Баланс счета может стать отрицательным и может быть изменен с помощью move
команды без изменения монет.
Неизрасходованные выходы принадлежат кошельку в целом, и учетные записи просто отслеживают, кто/что владеет их количеством, а не какими конкретно. Это как держать кошелек с деньгами, которые принадлежат и вам, и другу. Вы отслеживаете, сколько вы должны своему другу, но не отслеживаете, какие именно банкноты или монеты в кошельке принадлежат ему.
Чтобы делать то, что вы хотите, вам нужно либо использовать отдельные кошельки (которые полностью хранят монеты отдельно), либо использовать управление монетами или API необработанных транзакций, которые позволяют вам вручную указывать, какие монеты использовать.
Вы хотите сделать это с биткойн-демоном? Вы можете проверить
получитьаккаунтвызов РПК. Помощь для этого метода:
getaccount "биткойн-адрес"
Возвращает учетную запись, связанную с данным адресом.
Аргументы: 1. "bitcoinaddress" (обязательное поле) Биткойн-адрес для поиска учетной записи.
Результат: "accountname" (строка) адрес аккаунта
Примеры: > биткойн-cli getaccount "1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ" > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getaccount", "params": ["1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ"] }' -H 'тип содержимого: текст/обычный;' http://локальный:8332/
морсекодер
Питер Уилле
Питер Уилле