So erstellen Sie eindeutige Adressen für benutzerdefinierte ERC20-Token

Wir können ERC20-Token mit Solidity oder sogar Metamask erstellen. Aber wie erstellt man eine eindeutige Adresse, um sie zu übertragen?

Ich meine, Token wie Gold-Belohnungen oder Münzen wie Bitconnect haben ein eigenes Adressmuster, das zwischendurch übertragen werden kann. wie geht das?

In HitBTC erhalten Sie auch für jeden Token eine eindeutige Adresse zum Senden.

Gibt es eine Möglichkeit, dies während der Vertragsbereitstellung zu tun, oder kann dies nach dem Erstellen des einfachen Tokens erfolgen?

Alle Smart Contracts haben eindeutige Adressen.

Antworten (2)

Ich nehme an, Sie meinen, dass Sie Vanity-Adressen erstellen können, die mit einigen Zeichen Ihrer Wahl beginnen. Wenn dem so ist, können Sie dieses Tool überprüfen:

https://github.com/MyEtherWallet/VanityEth

** Ich habe es nicht ausprobiert, kann es und seine Sicherheit nicht garantieren.

** Wenn Sie es verwenden möchten, stellen Sie sicher, dass die generierten Konten oder Vertragsadressen wirklich funktionieren, bevor Sie es in der Produktion verwenden.

tl;dr-Vertragsadressen sind immer eindeutig, da sie auf der Grundlage der Adresse, die das Konto erstellt, und der Nonce dieser Adresse bestimmt werden. Das bedeutet, dass keine zwei Verträge die gleiche Adresse haben werden, aber dass wir mit ein wenig Versuch und Irrtum leicht Verträge mit „Vanity“-Adressen erstellen können. Siehe unten

Die Adresse eines Vertrags wird basierend auf der Adresse des Kontos, das den Vertrag erstellt, und der Nonce des Kontos bestimmt. Wenn Sie also ein Konto verwenden, um einen Vertrag bereitzustellen, beginnt dieser Vertrag mit einer Nonce von 1, die nur während der Vertragserstellung erstellt wird, d. h. wenn der createOpcode aufgerufen wird. Das bedeutet, dass Sie die Adressen von Verträgen, die von einem Konto (sei es ein Vertragskonto oder ein EOA) generiert werden, EINFACH vorberechnen können.

Um also eine leicht angepasste Vertragsadresse zu erhalten, müssten Sie mehrere verschiedene öffentliche/private Schlüsselpaare ausprobieren, um zu sehen, welches die gewünschte Adresse generiert. Ich habe einen Vertrag geschrieben, der zur Berechnung von Adressen verwendet werden kann:

https://github.com/postables/Solidity-Modules/blob/master/Contracts/AddressGenerationCalculator.sol