Kategorie: Ethereum

  • TypeError: Cannot create property ’negative‘ on string ‚1234‘

    The reason is that you either passed an argument of wrong type and not BN or a bracket mistake This is correct:

  • Pass Text (bytes) to Smart Contract

    Since Solidity v0.5.0 it became a little less straight forward. I had a parameter bytes8 and I had to change the parameter in the tests from just „EUR“ to:

  • Decimals Solidity OpenZeppelin/Web3

    Ich hatte in letzter Zeit viel mit Nachkommastellen in Solidity mit OpenZeppelin zu tun und wollte meine Erkenntnisse in einem kurzen Blogpost zusammenfassen. Ich treffe hierbei einige Annahmen die auf intensivem Testen beruhen oder potentiell unseriösen Quellen -> gerne in den Kommentaren auf Fehler hinweisen! OpenZeppelin-Solidity nutzt web3js nutzt VERALTETEN BigNumber.js fork github:frozeman/bignumber.js-nolookahead sieht man in web3 package.json dependency…

  • OpenZeppelin BigNumber in Truffle Migrations

    In Tests kann man so BigNumber verwenden: const BigNumber = web3.BigNumber In Migrations funktioniert das nicht aber es geht mit: Man kann sich theoretisch bignumber.js als package installieren, aber es ist die syntax anders (z.B. multipliedBy() statt mul()) und die Konfiguration könnte anders sein. Sauberer ist es sicher so.

  • Solidity Addresse ToString()

    Hier ein Code Snippet um Adressen als String zurückzugeben Quelle ist mir leider unbekannt… Ich benötige den Code auch gar nicht mehr und wollte die Methode hier nur archivieren.

  • Ethereum Free MintCoin (Ropsten, Kovan, MainNet)

    Oft braucht man für Demo Zwecke wie Schulungen einfach irgend einen Coin. Dafür Geld auszugeben ist verschwenderisch. Hier also ein echter Shitcoin der seinen Namen verdient (weil unbegrenzt für jedermann verfügbar) am Testnet und sogar am MainNet. Technisch einfach ein ERC20 Mintable Token bei dem die mint() Funktion überschrieben wurde und diese ohne Zugriffs Modifier…

  • Parity Version Installieren/Upgraden (macOS)

    For Mac: https://github.com/paritytech/homebrew-paritytech

  • Check ob Truffle Test auf Development ausgeführt wird

    Im Testnetz und auch auf der echten Blockchain sind Dinge wie Zeit vorspulen nicht möglich. Oft ist dies lokal aber sehr sinnvoll und der test muss auch am live-netz funktionieren. Hier eine kleine Hilfsmethode die im Test verwendet werden kann: let findArgumentValue = (argName) => { let networkArgFound = false for(let i = 0; i…

  • Truffle Fehler „Redeclaring an already implemented function as abstract“

    Checken ob Basis abstract contract das reduzierte Interface implementiert das in Kind Contract ebenfalls implementiert ist… contract IA { function myAbstractFunc() public; } contract IAandB is IA { function anotherAbstractFunc() public; } contract A is IA { // -> IA is important here!!! function myAbstractFunc() public { //implemented here } } contract B is A,…

  • Truffle Contract Deployment Gas Kosten in Migrations analysieren

    Update: Nutzt man die neuesten Beta Versionen ist eine solche analyse bereits built-in. Mein Script macht auch probleme bei einem chain-deployment, also nicht ganache-cli. Folgende Methode im migration Script anlegen: let analyze = async (deployedContract, contractName) => { let receipt = await web3.eth.getTransactionReceipt(deployedContract.transactionHash); console.log(contractName + “ used gas: “ + receipt.gasUsed) if(receipt.gasUsed > 4700000) {…