Zum Inhalt springen

skunk

Mitglied
  • Gesamte Inhalte

    6.572
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von skunk

  1. Dann lass dir die Wallet Adresse von deinem Bekannten geben, sende ihm die Krypto und lasse dich von deinem Bekannten dafür angemessen bezahlen in welcher Form auch immer. Es spielt keine Rolle wie die Gegenleistung aussieht. Du buchst das bei dir einfach nur als Verkauf und gibst das in deiner Steuererklärung entsprechend an. Was dein Bekannter im Anschluss mit den Kryptos macht, kann dir dann egal sein.
  2. Das geht spielend einfach mit Accointing. Ich habe inzwischen zu viele Wallets um den Überblick zu behalten aber genau da kann Accointing helfen. Bereits im kostenlosen Service enthalten ist eine Depot Übersicht inklusive einer vorab Proberechnung welche Steuerlichen Gewinne oder Verluste man aktuell realisieren kann. Damit kann ich Pakete schnüren wie ein Weltmeister, die irgendwo parken und Accointing sagt mir dann genau welches Paket ich jetzt verkaufen sollte um einen steuerlichen Verlust zu realisieren. Wie gesagt der Teil ist kostenlos. Es gibt allerdings auch einen Grund absichtlich einen kleinen Gewinn einzufahren. Ich habe in meiner Steuererklärung ein paar sagen wir mal fragwürdige Trades drin. Die sind völlig legal. Ich habe einfach nur zur richtigen Zeit auf der richtigen Exchange eine völlig absurde Order Platziert und so einige Coins deutlich unter Wert eingekauft. Ein Gewinn von 10.000 € wird vermutlich ohne genauere Prüfung einfach durchgewunken und abkassiert. Ein Verlust könnte dagegen eine genauere Prüfung nach sich ziehen. Wer etwas zu verstecken hat, sollte daher lieber einen kleinen Gewinn ausweisen
  3. Nimm doch einfach BTC/ETH. Wenn der BTC Preis oben ist, tauscht du einmal deine steuerfreien ETH in BTC oder deine BTC in ETH. Vorteil ist, dass du nicht gezwungen bist auf kurzfristige Kursveränderungen zu spekulieren und auch nicht auf irgendwelche Shit Coins setzen musst. Das Zeug einfach irgendwo parken und warten. Steigt der Preis stark an, nimmst du eine der verbleibenden steuerfreien Pakete und wiederholst das Spiel. Wenn der Preis irgendwann zwischen Heute und Jahresende nochmal fällt, kannst du dann das teuerste Paket zurück Tauschen und Verluste realisieren. Alles was du brauchst wäre ein kleiner Rücksetzer wie er vor ein paar Wochen noch zu spüren war. Jedes Hardware Wallet sollte das können. Es gibt zwei Möglichkeiten das Hardware Wallet dazu zu bewegen. 1. Unterschiedlichen Derivation Path. Bei meinem Trezor kann ich im Frontend einfach einen weiteren Account hinzufügen. Dabei zählt die App den Derivation Path hoch. 2. Wenn das mit dem Derivation Path nicht funktioniert dann einfach den 24 Wort Seed des Hardware Wallets um ein 25. Wort aka Passwort ergänzen. Hänge einfach eine Nummer an dein bisherigen Passwort an und schon kannst du deine Wallets durchnummerieren.
  4. Ich habe mir den Teil nochmal genauer angeschaut und die Transaktionen weiter aufgeschlüsselt. Ich hatte ja bereits geschrieben, dass die Token erst von der Einzahlungsadresse auf die Communityadresse und dann wieder zurück auf die Einzahlungsadresse umgebucht werden. In meinem ersten Skript habe ich diese Transaktionen einfach ausgeblendet und nur die Finale Transaktion von der Einzahlungsadresse zur Auszahlungsadresse betrachtet. Bei genauer Betrachtung ergibt sich dagegen folgendes Bild: 2021-10-1 16:26:31 17595 Einzahlungsadresse Communityaddress 0xbe413c90f05a2375d3c613d20b6ee74b40bac457b3705dda9f9bdf94bde8f6c5 2021-10-1 16:31:26 10000 0xcaD47A00e4c3D6abA274A2ECfd885Af993D6Cc22 Communityaddress 0x4dccaecb5eae7be6951ecd11f48f5510cd01e6bed6fe6ccffaa1962a379b1090 2021-10-1 16:35:41 27195 Communityaddress Einzahlungsadresse 0x10e75fb8c77d08770b82b0010195a2292e33fe1cef9dfc4eadd9fcf12501ad45 2021-10-1 16:39:13 27195 Einzahlungsadresse Auszahlungsadresse 0x7090104afe37170988691108891ede39c81523a49f441caee108410b6a244b0c Hier sieht man jetzt, dass der Kreislauf regelmäßig Finanzspritzen bekommt und so weiter am Leben erhalten wird. An anderen Tagen sieht man sowas hier: 2021-10-11 04:16:21 11637 Einzahlungsadresse Communityaddress 0x17d72c8ebf1c2ac7436e462c6f312eba62fe7b28efa13a3a48fe3de1843aba12 2021-10-11 04:18:00 11437 Communityaddress Einzahlungsadresse 0x209a257591bc357dbb8e7441ca704eba1a97869ecfe433ccf3b4c4141b6e9637 2021-10-11 04:21:33 11437 Einzahlungsadresse Auszahlungsadresse 0x0ecf1c7fb4f6caec49c89c451a812c32379e6558f2d04c17ed56389a913b7e14 2021-10-11 04:22:41 200 Communityaddress Einzahlungsadresse 0x5c5e39ff5940370fcc615c79edbef4f54d84f9d96bff23c0388bce738f74ece3 2021-10-11 04:35:01 200 Einzahlungsadresse 0xF9D986340EfBf992cA1E7ce074db1D3b8EECf578 0x874452ca54c3e7cf351c64d2605a0dc1af20c2c095cb91a55befde3b04694075 Da wurden jetzt 200 Token aus dem Kreislauf entnommen. Ich werden mal mein Skript weiter verfeinern und einigen der neuen Adresse ebenfalls Namen zuordnen damit es etwas übersichtlicher wird. Auf den ersten Blick sieht das so aus als würde es mehr als eine Auszahlungsadresse geben. Ich vermute mal die anderen Auszahlungsadressen haben etwas mit den legacy Nodes zu tun. Ich könnte mir aber auch vorstellen, dass diese NFT Deals darüber laufen. Man kann 3 NFTs kaufen und vielleicht gibt es pro NFT ein passenden Smart Contract. Der Vorteil liegt auf der Hand. Wenn die Standard Auszahlungsadresse leer laufen sollte, wären die Rewards der NFT Nodes davon nicht betroffen.
  5. Ich vermute mal sie machen das um Transaktionsgebühren einzusparen.
  6. Dann bleibt dir noch die Möglichkeit das Geld zurück zu verlangen. Die Gewährleistung verweigern machen selbst die Großen Konzerne. Viele verweisen den Kunden an die Garantie Hotline und versuchen sich so um die Gewährleistung zu drücken. Ich frage in solchen Situationen dann gern mal nach ob ich sie gerade richtig verstanden habe. Für mich hörte sich das eben so an als wollten sie die Gewährleistung ablehnen. Ich habe nicht nach der Garantie gefragt sondern nach der Gewährleistung. Wenn sie diesen Dezenten Hinweis nicht verstehen werde ich noch etwas deutlicher. "Wir beiden wissen denke ich sehr genau wo da der Unterschied ist. Wenn sie trotzdem weiterhin versuchen die Gewährleistung abzulehnen, werde ich den Fall gern an meinen Anwalt abgeben." In der Regel reicht diese Drohung damit ich ein Ersatzgerät bekomme. Reparaturversuche lehne ich in der Regel auch ab. Das Wahlrecht liegt bei mir und wenn im Laden noch ein Gerät steht, will ich das im Austausch mitnehmen und das defekte Gerät können sie in Ruhe reparieren und sich später wieder in den Laden stellen. Zum Glück musste ich das bisher nur einmal machen. Bei den meisten kleineren Händlern ist das nie ein Thema. Wenn man da auch nur das Wort Gewährleistung fallen lässt, ist dem Händler bereits klar was los ist und er verzichtet auf die dreckigen Tricks.
  7. Alle Personen, die bereits investiert haben machen da mit. Sie haben keine andere Wahl. Das Geld ist erstmal weg und jetzt können sie nur stundenlang vorm Rechner sitzen und hoffen. Die Hoffnung stirbt bekanntlich zuletzt und ermutigt viele noch weiter durchzuhalten. Ansonsten scheint Glamjet spezielle Menschen anzuziehen, die Schwierigkeiten mit dem Rechnen haben und/oder nicht verstehen wie so eine Börse (auch Aktien) funktioniert. Da gibt es doch Tatsächlich einen Kandidat, der weiterhin das 20 Cent Märchen verbreiten und behaupten auf der GlamX wären nur Psychopathen unterwegs. Mal sehen wie weit der GLAM Preis fallen muss damit all diese Menschen merken wo der Fehler liegt. Nicht die GlamX und auch nicht die anderen Handelsteilnehmer sind das Problem. Das Problem ist der GLAM Preis den man sich selber in den Kopf gesetzt hat und jetzt leider nicht auf der GlamX antrifft. Warum ist die eigene Erwartung so weit entfernt vom tatsächlichen Kurs? Wie lösen erfahrene Trader dieses Problem? Genau diese Lektion müssen einige erst noch lernen. Natürlich wird dabei Rücksicht auf das individuelle Lerntempo genommen. Jeder kann die Wahrheit sofort akzeptieren oder erst in einige Wochen, Monaten oder Jahren.
  8. Das Problem ist der versprochene Preis von 20 Cent. Es ist inzwischen offensichtlich, dass der Preis nicht gehalten werden kann. Aktuell sind knapp 4 Milliarden GLAM im Umlauf und bei 20 Cent wäre das ein MarketCap was einfach viel zu hoch ist. Also passiert das was in solchen Fällen immer passiert. Der MarketCap schrumpft bis er ein gesundes Level erreicht. Wenn bereits alle 20 Billionen GLAM (Hochrechnung hier im Thread) im Umlauf wären, würde sich das Spiel einfach wiederholen. Der MarketCap schrumpft immer wieder bis zu dem Level was für Glamjet gesund und angemessen ist. Und ich wette genau das ist der Plan. Schau dir den aktuellen GLAM Kurs an. Mit einem Investment von nur 111$ kannst du immer noch Millionär werden. Kaufe jetzt Pakete. Dieses Marketing wäre auf einen Schlag vorbei wenn die ganzen verkauften Coins plötzlich alle für den Handel freigegeben werden. Ich tippe darauf, dass die Coins zurück gehalten werden um den GLAM Kurs zu schönen.
  9. Wenn du bereits mit deinem Steuerberater in Kontakt bist, sehe ich keine Notwendigkeit das Thema weiter auszuführen. Dein Steuerberater wird dir doch hoffentlich die Grundlagen erklärt haben. 1. Jeder Trade ist erstmal steuerpflichtig. Gern gemachter Fehler ist zu glauben man müsste nur die Banküberweisungen abrechnen und darf dazwischen Daytrader spielen wie ein Weltmeister. 2. Lending Einnahmen müssen versteuert werden. 3. Die 4%, 8% oder 12% Rendite müssen ebenfalls versteuert werden. 4. Bei Nummer 2 und 3 stellt sich zusätzlich noch die Frage ob die Haltefrist deiner Coins sich auf 10 Jahre verlängert.
  10. Es wäre spannend mal abzufragen wie viele Nodes ihre verdienten Token direkt erneut investieren. Ich hoffe auch darauf später eine Antwort geben zu können.
  11. Ich kann dir nicht folgen. Der Reward ist im Smart Contract hinterlegt. Jede Node bekommt den gleichen Reward. Wovon möchtest du jetzt einen Durchschnittswert haben? In welcher Situation soll der tatsächliche Reward von dem theoretischen Ziel abweichen? Der Smart Contract garantiert diesen Reward. Um genau zu sein 0,1 Token alle 7000 Blöcke seit Blocknummer 12246508. Davor waren es 0,2 Token alle 7000 Blöcke. Der Admin hat die Möglichkeit den Reward jederzeit zu erhöhen oder zu verringern. Wenn du mir erklärst wo du eine Abweichung erwartest, können wir das gern zusammen überprüfen. Erkläre mir einfach was für Daten du haben möchtest dann frage ich per Skript die Blockchain ab.
  12. Auf der Webseite steht sogar eine höhere Rendite hier: https://strongblock.com/faq.html Die Abweichung kommt dadurch zustande, dass der Smart Contract in Blöcken und nicht in Stunden rechnet. Es werden 0,1 Token alle 7000 Blöcke (etwas mehr als 24 Stunden) ausgezahlt.
  13. Ich habe noch ein weiteres Script geschrieben was einfach nur die Token von der Einzahlungs und Auszahlungsadresse zusammen rechnet. 'use strict'; const Web3 = require('web3'); const web3 = new Web3(new Web3.providers.WebsocketProvider('ws://localhost:8546')); const fs = require('fs'); const async = require('async'); const BigNumber = require('bignumber.js'); BigNumber.config({ EXPONENTIAL_AT: 40 }) const erc20ABI = [{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] const Contract = '0x990f341946a3fdb507ae7e52d17851b87168017c'; const ERC20 = new web3.eth.Contract(erc20ABI, Contract); ERC20.methods.balanceOf('0x4b5057b2c87ec9e7c047fb00c0e406dff2fdacad').call(function(error, Einzahlung) { if (error) { console.log(error); } else { ERC20.methods.balanceOf('0xfbddadd80fe7bda00b901fbaf73803f2238ae655').call(function(error, Auszahlung) { if (error) { console.log(error); } else { console.log(BigNumber(Einzahlung).plus(Auszahlung).shiftedBy(-18).toString()); } }); } }); Mein Ziel war es eigentlich damit eine Zeitreise zu machen. Dazu müsste man irgendwo die Block Nummer mitgeben um so vergangene Kontostände abzufragen. Jetzt ist es schon etwas spät und ich bekomme das jetzt nicht mehr auf die Reihe. Mir fällt jedoch eine kleine Unstimmigkeit auf. Die aktuelle Summe ist 20682. Das vorige Script hat offenbart, dass am ersten dieses Monats noch 27K umgebucht wurden und am 9. waren es 23K. Heute sind in Summe nur noch 20K vorhanden. Wie sind da in 12 Tagen 7 K verschwunden? Wenn das in dem Tempo weiter geht, wäre in maximal 38 Tagen das Guthaben aufgebraucht. Genauer gesagt verringert sich das Guthaben pro Tag um 550. 10K würde ich abziehen weil sonst das Intervall für die Umbuchungen von inzwischen täglich auf irgendwann Stündlich reduziert werden müsste. Habe ich mich jetzt verrechnet oder geht in ca 20 Tagen so langsam der Treibstoff aus? Die Zahlen sind jetzt fast schon zu schön um Wahr zu sein. Ich werde die Zahlen zur Sicherheit morgen nochmal nachprüfen. In dem Script oben hatte ich einen Filter sodass nur Transaktionen von der Einzahlungs zur Auszahlungsadresse ausgegeben werden. Wir müssen das Script nur zwei weitere Male laufen lassen und dabei einmal alle Transaktionen ausgeben, die eine der beiden Adressen aber nicht beide Adressen betrifft. Damit würden wir dann sehen ob von der Einzahlungsadresse Token abgezweigt und an eine andere Adresse gesendet werden und ob die Auszahlungsadresse noch aus einer anderen Quelle gespeist wird. Die 20 bzw 38 Tage Schätzung kann nur dann bestand haben, wenn es ein geschlossener Kreislauf ist aus dem der Admin nichts raus oder ein holt.
  14. Alle genannten Punkte umgesetzt. Hier ist die finale Version: 'use strict'; const Web3 = require('web3'); const web3 = new Web3(new Web3.providers.WebsocketProvider('ws://localhost:8546')); const fs = require('fs'); const async = require('async'); const BigNumber = require('bignumber.js'); BigNumber.config({ EXPONENTIAL_AT: 40 }) const erc20ABI = [{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] const Contract = '0x990f341946a3fdb507ae7e52d17851b87168017c'; const ERC20 = new web3.eth.Contract(erc20ABI, Contract); ERC20.getPastEvents('Transfer', { filter: {from: '0x4b5057b2c87ec9e7c047fb00c0e406dff2fdacad', to: '0xfbddadd80fe7bda00b901fbaf73803f2238ae655'}, fromBlock: 11380283, toBlock: 'latest' }, function(error, events) { if (error) { console.log(error); } else { console.log('Timestamp\tValue\tTxID'); async.eachLimit(events, 1, function(transaction, next) { web3.eth.getBlock(transaction.blockHash, function(error, block) { if (error) { console.log(error); } else { console.log('%s\t%s\t%s', new Date(block.timestamp*1000).toLocaleString('de-DE', {hour12: false}), BigNumber(transaction.returnValues.value).shiftedBy(-18), transaction.transactionHash); } next(); }); }); } }); Ausgabe:
  15. Hast du eigentlich eine Geth/Parity Node am Laufen oder soll ich meine Geth Node bereitstellen? Meine Geth Node ist noch am Snapshot erstellen sollte aber bereits Anfragen mit leicht reduzierter Performance beantworten können. Zum Warmwerden hier das erste nodejs Script was die Umbuchungen von der Einzahlungsadresse zur Auszahlungsadresse auflistet: 'use strict'; const Web3 = require('web3'); const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545', {timeout: 3600000})); const fs = require('fs'); const async = require('async'); const BigNumber = require('bignumber.js'); BigNumber.config({ EXPONENTIAL_AT: 40 }) const erc20ABI = [{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] const Contract = '0x990f341946a3fdb507ae7e52d17851b87168017c'; const ERC20 = new web3.eth.Contract(erc20ABI, Contract); ERC20.getPastEvents('Transfer', { filter: {from: '0x4b5057b2c87ec9e7c047fb00c0e406dff2fdacad', to: '0xfbddadd80fe7bda00b901fbaf73803f2238ae655'}, //fromBlock: 11380283, -> Zu Testzwecken übergangsweise einen kürzeren Zeitraum abfragen fromBlock: 13380283, toBlock: 'latest' }, function(error, events) { events.forEach(function(transaction){ console.log('hash: %s\tfrom: %s\tto: %s\tvalue: %s', transaction.transactionHash, transaction.returnValues.from, transaction.returnValues.to, BigNumber(transaction.returnValues.value).dividedBy('1000000000000000000')); }); }); Ein paar Sachen muss ich an dem Skript noch verbessern: 1. Zeitstempel mit ausgeben. 2. Mögliche Fehler mit ausgeben. Ich war jetzt faul und habe das dafür notwendige If einfach unterschlagen. Baue ich später noch mit ein. 3. Shift anstelle von Div bei der Ausgabe. 4. In der Finalen Version soll das Skript einen längeren Zeitraum abfragen. Für schnelle Testdurchläufe habe ich jetzt nur einen vergleichsweise aktuellen fromBlock gewählt. Was das Skript bereits sehr gut demonstriert: 5. Contract und ABI vom ERC20 Contract. Wenn wir einen der anderen beteiligten Contracts abfragen wollen müssen wir den Teil einfach nur austauschen. 6. BigNumber ist Pflicht und auch alle Rechenoperationen müssen über diese Bibliothek abgewickelt werden. Ohne BigNumber kann es zu Rechenfehler kommen. 7. Auflistung aller Transfer Events. Events sind einfach klasse. Der Smart Contract hat Tausende von Transaktionen durchlaufen aber wenn wir unsere Suche auf ein bestimmtes Event eingrenzen, ist die Abfrage deutlich schneller. 8. Optionaler Filter auf from und to Adresse. Edit: Das Skript braucht noch einen Namen sonst verlieren wir später den Überblick. Es werden ja durchaus mehrere Skripte werden und pro Skript interessiert und dann eigentlich immer nur die jeweils aktuellste Version. Irgendwelche Namensvorschläge?
  16. Wie kommt es, dass das vermeintliche Maximum gerade überschritten wurde? Edit: Der Contract hat eine Mint Funktion. Die Inflation kommt mir etwas groß vor. In wenigen Minuten wurden da doch einige neue Token erschaffen. Das könnte aber an der vergleichsweise geringen Anzahl liegen. Da fällt dann jeder neu geschaffene Token stärker ins Gewicht. Spielt das am Ende überhaupt eine Rolle oder wirkt sich die Inflation davon unbeeindruckt aus wir üblich? Davon unabhängig ist das hier lediglich ein "ERC-20" Contract auf einer anderen Blockchain. Mal ganz spaßig anzusehen aber viel mehr findet man auf deren Github Repository leider nicht. Den Smart Contract mit der Mint Funktion kann man hier einsehen: https://avascan.info/blockchain/c/address/0xb54f16fB19478766A268F172C9480f8da1a7c9C3 Das recht leere Github gibt es hier zu bewundern: https://github.com/Abracadabra-money
  17. Hast du dich schon mit damit befasst wie du das alles versteuern musst? Ich befürchte du hast die Steuerfalle bereits ausgelöst aber das ist vermutlich ein anderes Thema. Eine Alternative wäre noch Nuri. Ähnliche Redite auf BTC und bessere Rechtssicherheit weil deutsche Firma.
  18. Super Hinweis. Jetzt erschließt sich mir auch warum es vor ein paar Monaten und im Moment vergleichsweise viele Einzahlungen gibt. Ich hatte gar nicht daran gedacht, dass das an den zwei Bullenmarkt Perioden liegen könnte. Danke dir für den Denkanstoß.
  19. skunk

    Coronavirus

    Das wollte ich mit meiner Rückfrage nicht gleich andeuten. Ich wollte erstmal nur wissen in welchem Zusammenhang zum Beispiel Bildungslücken und Rentenlücken mit Corona stehen. Die Verbindung zwischen den genannten Begriffen und Corona erschließt sich mir nicht also frage ich lieber nach wie das gemeint war.
  20. Schreib ruhig mal deine Gedanken etwas ausführlicher auf. Ich verstehe noch nicht was genau du verlockend findest. Ich würde dann einfach mal ein paar Punkte ansprechen die dagegen sprechen. Mit der Zeit werden dann bestimmt noch ein paar andere in die Unterhaltung einsteigen. Bezüglich der Sicherheit geht eigentlich nichts über ein Hardware Wallet. Wir reden hier also erstmal von dem gleichen Risiko was du bei vielen anderen zentralisierten Dienstleistern auch hättest. Ob die Versicherung für eventuelle Verluste auch eintreten würde, lässt sich schwer sagen. Ich würde daher lieber meine Coins weiter auf meinem Hardware Wallet lagern.
  21. Die Kosten werden in dem Steuerjahr abgerechnet in dem sie Angefallen sind. Wenn du im Jahr 2020 eine Lizenz für das Steuerjahr 2019 kaufst, darfst du die Kosten in der 2019er Steuererklärung nicht angeben und musst ein Jahr warten bis es Zeit ist die Steuererklärung für 2020 einzureichen. In der Regel wirst du die Kosten also immer erst im nächsten Steuerjahr abrechnen können es sein denn du kaufst zum Black Friday / Cyber Monday 2021 bereits die Lizenz für das Steuerjahr 2021 im Voraus. Klar soweit? Was genau meinst du jetzt mit nachträglich? Hast du die Steuererklärung für das Vorjahr schon abgegeben und einen Steuerbescheid erhalten?
  22. skunk

    Coronavirus

    Ich bin mir nicht sicher ob wir dann wirklich keine Probleme mit Corona haben werden. Davon unabhängig was lässt dich jetzt die anderen Begriffe alle aufzählen? Willst du andeuten da ist eine Verschwörung am Werk und Corona dienst nur als Vorwand?
  23. stellar != stellarfund Soviel Zeit muss sein sonst besteht Verwechselungsgefahr. Ich bin zwar kein großer Fan von Stellar aber auf eine Stufe mit Stellarfund würde ich sie dann doch nicht stellen.
  24. Ich habe mir den Smart Contract durchgelesen und die Transaktionen auf der Blockchain verfolgt. Sehr gute Frage. Die Antwort darauf interessiert mich ebenfalls. Sobald meine Wartungsarbeiten an meiner Geth Node abgeschlossen sind, möchte ich ausrechnen ob und wie viel die Auszahlungsadresse schon im Minus ist. Dann kann ich dir eine grobe Schätzung geben. Die Schätzung selbst ist für mich eher Nebensächlich. Viel spannender finde ich die Frage welcher Dynamic das ganze Konstrukt unterliegt. Gibt es vielleicht einen Punkt an dem die Nodes in Panik verfallen und zügig ihre Rewards auszahlen wollen? Oder gewinnt am Ende die Gier und die meisten Nodes ignorieren das drohende Ende so lange wie möglich? Das können wir bei diesem Projekt hier alles Live über die Blockchain verfolgen.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.