Bitcoin Forum
May 03, 2024, 05:13:20 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: sendmany - Python  (Read 1110 times)
icreator (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
December 23, 2013, 10:11:43 AM
 #1

Привет

подскажите пожалуйста как нап итоне сделать двойное число с плавающей точкой
или почему ругается sendmany
Code:
    sends = {}
    for (k,v) in request.vars.iteritems():
        v = float(v)
        sends[k] = v # converted to float
res = conn.sendmany( sends )
выдает ошибку:
{u'id': 1, u'result': None, u'error': {u'message': u'sendmany <fromaccount> {address:amount,...} [minconf=1] [comment]\namounts are double-precision floating point numbers', u'code': -1}}

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
1714756400
Hero Member
*
Offline Offline

Posts: 1714756400

View Profile Personal Message (Offline)

Ignore
1714756400
Reply with quote  #2

1714756400
Report to moderator
1714756400
Hero Member
*
Offline Offline

Posts: 1714756400

View Profile Personal Message (Offline)

Ignore
1714756400
Reply with quote  #2

1714756400
Report to moderator
The grue lurks in the darkest places of the earth. Its favorite diet is adventurers, but its insatiable appetite is tempered by its fear of light. No grue has ever been seen by the light of day, and few have survived its fearsome jaws to tell the tale.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
icreator (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
December 23, 2013, 10:26:46 AM
 #2

о походу она ругается что адрес не указан
а как его не указывать в питоне? None не принимает ((
странно вот такая фигня с getbalance()
= getbalance() - выдаст баланс всего кошелька
А как задать минимальное число подтверждений и не указывать при этом аккаунт?

= getbalance(None, 3) - выдаст ошибку мол такого адреса нету
блин как быть

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
icreator (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
December 24, 2013, 09:26:03 AM
 #3

Code:
        conn.settxfee(0.0001)
        main_acc = '.main.'
        bal = conn.getbalance(main_acc, xcurr.conf) # дает баланс 0.02
        print bal, vol
        if bal < vol:
            for (k,v) in conn.listaccounts(xcurr.conf).iteritems():
                if v == 0: continue
                conn.move(k, main_acc, float(v))
                print k,v
        bal = conn.getbalance(main_acc, xcurr.conf)
        print 'NEW bal:', bal
        #res = conn.sendmany( main_acc, sends, xcurr.conf )
        res = conn.sendmany( main_acc,{ '....VMsWBDjDLL5': 0.00200 })
        log(res)

дает ошибку  u'Insufficient funds', u'code': -6

что за бред?
понятно что команда MOVE только на баланс влияет
но какого хрена тогда проверка в sendmany ??

помогите пожалуйста

неужели придется самому рав-транзакцию собирать?

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
December 24, 2013, 09:57:59 AM
 #4

дает ошибку  u'Insufficient funds', u'code': -6
про sendfrom и аккаунты
Аккаунт в кошельке - это неудачная попытка сделать функционал внутренних аккаунтов на кошельке, до сих пор ни в одном форке так и не исправленная.
Аккаунт - это текстовая метка, которую вы устанавливаете адресу (можно нескольким адресам дать одну и ту же метку - они будут объедены в один аккаунт). Кошелек корректно учитывает баланс на этом аккаунте, когда вы используете rpc-запрос sendfrom или пополняете баланс аккаунта, переводя на один из его адресов монеты, но как только вы потратите монеты с общего аккаунта '' или воспользуетесь копией кошелька для отправки монет (т.е. информация будет принята кошельком по факту, без конкретизации, с какого аккаунта были сняты деньги), то тогда корректность учета баланса будет нарушена.
Проблема в том что когда вы делаете sendfrom монеты могут быть физически истрачены с любых адресов в кошельке, даже из других аккаунтов, а баланс будет подправлен тот что указан, отсюда и расхождение. Совершенно нормально в результате получить отрицательные балансы по аккаунтам или вообще неверный их расчет.
Я не рекомендовал бы пользоваться этим механизмом и он давно требует полной переделки.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
icreator (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
December 24, 2013, 11:41:50 AM
 #5

спасибо, я это знаю...

вопрос - как сделать так чтобы этот sendmany - не проверял баланс или где найти и как сделать чтобы для него баланс на каком-то "главном"
аккаунте был достаточный??

командой move как видно это не получается сделать - остальные команды будут жрать комиссию и ждать подтверждения из сети ((
вот же бред то ((

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
December 24, 2013, 03:08:24 PM
 #6

Средствами кошельке пытаться исправить этот баг - бессмысленно, либо править код либо забыть этот инструментарий как страшный сон.
Ставьте abe и работайте с sql-базой транзакций, удобно и без проблем.

Либо если адреса все ваши (на прием), сохраняйте в своей базе табличку с полями:
 * адрес_bitcoin
 * приватный_ключ (на случай, если адреса генерируются с помощью Vanitygen, тогда не нужно будет их импортировать в кошелек и генерировать транзакции иными методами, например подключив библиотеку от electrum или libbitcoin)
 * номер_блока_bitcoin_создания_адреса (определяет время, когда был сгенерирован адрес)
 * номер_блока_bitcoin_последнего_обновления (определяет время, когда информация из базы blockchain была обновлена для этого адреса)
 * идентификатор_клиента
 * итоговый_баланс
 * список_транзакций (для отладки можно хранить в виде сериализованного списка, или если позволяет движок базы, например postgres или некоторые nosql, в виде нативного списка)
И самостоятельно на каждый найденный блок сканируйте транзакции (это каких то 4-5 строчек кода на callback нового блока) обновляйте базу. Рекомендую обновлять только для блоков с номером меньше чем текущий (например 6 как рекомендуется для bitcoin), тогда не придется изобретать сложного кода для анализа еще орфанов и даблспенд атак (вообще то придется, но это отложит проблему на потом, когда сервис станет серьезным)

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
icreator (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
December 25, 2013, 05:48:08 AM
 #7

спасибо за инфо

но все она о том как учесть входы крипты

а у меня вопрос как сделать разовый перевод на много адресов

ответ есть?

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
December 25, 2013, 07:29:56 PM
 #8

Не понимаю проблемы, у меня отлично работает sendmany (а комиссию можно установить в настройках или settxfee).
Не использую обертки, у меня обычно 1 метод для работы с кошельком и сериализованные объекты (в php просто объект json_decode выдает) этого более чем достаточно, только ошибки ловить и все будет норм.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
icreator (OP)
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
December 26, 2013, 12:21:09 PM
 #9

Не понимаю проблемы, у меня отлично работает sendmany (а комиссию можно установить в настройках или settxfee).
Не использую обертки, у меня обычно 1 метод для работы с кошельком и сериализованные объекты (в php просто объект json_decode выдает) этого более чем достаточно, только ошибки ловить и все будет норм.

проблема в том что аккаунт с которого я шлю имеет минусовой баланс!
не н у можно конечно все монеты самому себе перевести.... чтобы баланс аккаунта поправить
но это тоже както не правильно

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!