From 508ea58c235fde864acf2301768a971f37d835dc Mon Sep 17 00:00:00 2001 From: aryansonid Date: Fri, 13 Mar 2026 13:02:08 +0530 Subject: [PATCH] feat: add white list tx --- test/whitelist/whitelist_tx.go | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 test/whitelist/whitelist_tx.go diff --git a/test/whitelist/whitelist_tx.go b/test/whitelist/whitelist_tx.go new file mode 100644 index 0000000000..39c9d96313 --- /dev/null +++ b/test/whitelist/whitelist_tx.go @@ -0,0 +1,63 @@ +package main + +import ( + "context" + "log" + "math/big" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/ethclient" +) + +func main() { + // Admin private key + privHex := "badb9f5dec5b628a70ce52d143f5ac75e6ef5fda9afedfdd423bb539552b40cc" + priv, err := crypto.HexToECDSA(privHex) + if err != nil { + log.Fatalf("Failed to parse admin key: %v", err) + } + adminAddr := crypto.PubkeyToAddress(priv.PublicKey) + + // Target address to whitelist (node1 - Clique signer) + targetAddr := common.HexToAddress("0xca6b49ee60cdd276ab503fbd6fb80a3cfbc06ffc") + + client, err := ethclient.Dial("http://localhost:8545") + if err != nil { + log.Fatalf("Failed to connect to node: %v", err) + } + + // Prepare input: mode=1, admin address, target address + input := []byte{1} + input = append(input, adminAddr.Bytes()...) + input = append(input, targetAddr.Bytes()...) + + nonce, err := client.PendingNonceAt(context.Background(), adminAddr) + if err != nil { + log.Fatalf("Failed to get nonce: %v", err) + } + gasPrice, err := client.SuggestGasPrice(context.Background()) + if err != nil { + log.Fatalf("Failed to get gas price: %v", err) + } + + to := common.BytesToAddress([]byte{0x01, 0x00}) + var value = big.NewInt(0) + var gasLimit uint64 = 100000 + + tx := types.NewTransaction(nonce, to, value, gasLimit, gasPrice, input) + + chainID := big.NewInt(1234) + signedTx, err := types.SignTx(tx, types.NewEIP155Signer(chainID), priv) + if err != nil { + log.Fatalf("Failed to sign tx: %v", err) + } + + err = client.SendTransaction(context.Background(), signedTx) + if err != nil { + log.Fatalf("Failed to send tx: %v", err) + } + + log.Printf("Whitelisting transaction sent: %s", signedTx.Hash().Hex()) +}