Datenfelder codieren, Handelstransaktionen programmgesteuert ausführen

Ich versuche, die Datenfelder gemäß dem Vertrag ABI mit Pyethereum in Python zu codieren. Ich führe eine Rohtransaktion durch. Ich kann Ether erfolgreich von einer Adresse zur anderen senden, indem ich eine Transaktion signiere und sie dann roh sende. Jetzt versuche ich, eine Handelsfunktion für einen Vertrag auszuführen, daher die Notwendigkeit der Datenfeldcodierung.

Ich habe das Gefühl, dass in Pyethereum eine Codierungsfunktion integriert sein sollte, aber ich kann sie nicht finden. Soll ich diese stattdessen manuell codieren? Wie soll ich vorgehen?

Function: trade(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, uint256 expires, uint256 nonce, address user, uint8 v, bytes32 r, bytes32 s, uint256 amount)

MethodID: 0x0a19b14a
[0]:0000000000000000000000000000000000000000000000000000000000000000
[1]:0000000000000000000000000000000000000000000000002e8678fcd97f4000
[2]:000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498
[3]:0000000000000000000000000000000000000000000000a2a15d09519be00000
[4]:0000000000000000000000000000000000000000000000000000000000401042
[5]:000000000000000000000000000000000000000000000000000000008d64da5d
[6]:00000000000000000000000049b85d124dde84d651e0efb02f738c5e9c484a89
[7]:000000000000000000000000000000000000000000000000000000000000001b
[8]:f92d42545bd87995b4af1d3edf225dab7515a31350b755ef4761d6de160722de
[9]:3352d494554c036bd798fd287e4c2ac68371adf653a2dd6252ec7625555c1a52
[10]:00000000000000000000000000000000000000000000000000000a29e1e7c600

Antworten (1)

Ich habe vor ein paar Tagen tatsächlich einen Blogbeitrag darüber geschrieben :)

Die Ethereum-Wiki-Dokumentation zu diesem Thema ist hier .

Keine Ihrer Eingaben hat eine unbekannte Länge, daher müssen die Eingabeargumente einfach codiert und entsprechend aufgefüllt werden.

Danke schön! Es macht jetzt alles Sinn. Tolles Timing für den Blogbeitrag ;-)
Nur-Link-Antworten sind beim Stapelaustausch nicht sehr nützlich. Wenn die Website vorübergehend oder dauerhaft nicht verfügbar ist, verlieren wir den Zugriff auf eine gute Antwort. Vielleicht können Sie die Hauptidee hier einfügen und den Link als Ergänzung verwenden. Schöne Seite übrigens!