Overview
Comment: | Updated to support "pendingHashAmountAndAddress" in bulk_pull_account |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
6e80a1ada96e82605ba0a78b8c75c9c1 |
User & Date: | rkeene on 2018-09-19 21:44:42 |
Other Links: | manifest | tags |
Context
2018-09-25
| ||
01:09 | Cleaned up extraneous auto_path check-in: dc7dc994d9 user: rkeene tags: trunk | |
2018-09-19
| ||
21:44 | Updated to support "pendingHashAmountAndAddress" in bulk_pull_account check-in: 6e80a1ada9 user: rkeene tags: trunk | |
2018-09-15
| ||
16:09 | Test generating a seed check-in: c754eba9a7 user: rkeene tags: trunk | |
Changes
Modified nano.tcl from [98726f21ea] to [c1695b746f].
︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | namespace eval ::nano::network::client {} namespace eval ::nano::network::server {} namespace eval ::nano::network::_dns {} # Constants set ::nano::block::stateBlockPreamble [binary decode hex "0000000000000000000000000000000000000000000000000000000000000006"] set ::nano::block::zero "0000000000000000000000000000000000000000000000000000000000000000" set ::nano::address::zero $::nano::block::zero set ::nano::address::base32alphabet {13456789abcdefghijkmnopqrstuwxyz} set ::nano::network::messageTypes { "invalid" "not_a_type" "keepalive" "publish" | > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | namespace eval ::nano::network::client {} namespace eval ::nano::network::server {} namespace eval ::nano::network::_dns {} # Constants set ::nano::block::stateBlockPreamble [binary decode hex "0000000000000000000000000000000000000000000000000000000000000006"] set ::nano::block::zero "0000000000000000000000000000000000000000000000000000000000000000" set ::nano::balance::zero "00000000000000000000000000000000" set ::nano::address::zero $::nano::block::zero set ::nano::address::base32alphabet {13456789abcdefghijkmnopqrstuwxyz} set ::nano::network::messageTypes { "invalid" "not_a_type" "keepalive" "publish" |
︙ | ︙ | |||
1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 | } return [binary format a32a32 \ $accountPubKey \ $end \ ] } proc ::nano::network::client::bulk_pull_account {account {minPending 0} {flags ""}} { set accountPubKey [::nano::address::toPublicKey $account -binary] set minPendingHex [format %032llx $minPending] if {[string length $minPendingHex] > 32} { return -code error "Invalid amount: $minPending" } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | < < < < < < < < < < < < < < < < < < | | | > > > | > > > > > > > > > > > > > > | > > | > > > > > | 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 | } return [binary format a32a32 \ $accountPubKey \ $end \ ] } proc ::nano::network::client::_bulk_pull_account_flagsParse {direction flag} { switch -- $direction { "toInt" { switch -- $flag { "" - "default" - "pendingHashAndAmount" { set flagValue 0 } "pendingAddressOnly" { set flagValue 1 } "pendingHashAmountAndAddress" { set flagValue 2 } default { if {[string is integer -strict $flag]} { set flagValue $flag } else { return -code error "Invalid flag: $flag" } } } return $flagValue } "fromInt" { switch -- $flag { 0 - "pendingHashAndAmount" - "" - "default" { set flagValue "pendingHashAndAmount" } 1 - "pendingAddressOnly" { set flagValue "pendingAddressOnly" } 2 - "pendingHashAmountAndAddress" { set flagValue "pendingHashAmountAndAddress" } default { return -code error "Invalid flag: $flag" } } return $flagValue } } return -code error "Invalid direction: $direction" } proc ::nano::network::client::bulk_pull_account {account {minPending 0} {flags ""}} { set accountPubKey [::nano::address::toPublicKey $account -binary] set minPendingHex [format %032llx $minPending] if {[string length $minPendingHex] > 32} { return -code error "Invalid amount: $minPending" } set flagsInt [_bulk_pull_account_flagsParse "toInt" $flags] return [binary format a32H32c \ $accountPubKey \ $minPendingHex \ $flagsInt \ ] } proc ::nano::network::client::bulk_pull_account_response {sock account {minPending 0} {flags ""}} { set frontierBlockhash [::nano::network::_recv $sock 32] set frontierBalance [::nano::network::_recv $sock 16] set frontierBlockhash [binary encode hex $frontierBlockhash] set frontierBlockhash [string toupper $frontierBlockhash] set frontierBalance [binary encode hex $frontierBalance] set frontierBalance 0x$frontierBalance set frontierBalance [expr {$frontierBalance}] set fullPendingInfo true set flags [_bulk_pull_account_flagsParse "fromInt" $flags] set fullPendingInfo true set fullPendingIncludesAddress false switch -- $flags { "pendingAddressOnly" { set fullPendingInfo false } "pendingHashAndAmount" { # This is the default option } "pendingHashAmountAndAddress" { set fullPendingIncludesAddress true } } set pendingInfo [list] set pendingAddToDict [list] while true { if {$fullPendingInfo} { set pendingBlockhash [binary encode hex [::nano::network::_recv $sock 32]] set pendingAmount [binary encode hex [::nano::network::_recv $sock 16]] if {$fullPendingIncludesAddress} { set pendingFrom [binary encode hex [::nano::network::_recv $sock 32]] set pendingFromEncoded [::nano::address::fromPublicKey $pendingFrom] set pendingAddToDict [list from $pendingFromEncoded] } if {$pendingBlockhash eq $::nano::block::zero && $pendingAmount eq $::nano::balance::zero} { if {$fullPendingIncludesAddress} { if {$pendingFrom eq $::nano::address::zero} { break } } else { break } } set pendingBlockhash [string toupper $pendingBlockhash] set pendingAmount 0x$pendingAmount set pendingAmount [expr {$pendingAmount}] lappend pendingInfo [dict create \ blockhash $pendingBlockhash \ amount $pendingAmount \ {*}$pendingAddToDict \ ] } else { set pendingFrom [binary encode hex [::nano::network::_recv $sock 32]] if {$pendingFrom eq $::nano::address::zero} { break } |
︙ | ︙ |