go-ethereum/.github/workflows/build.yml
Dr Q. Josef Kurk Edwards f606360f30
Add raw transaction broadcast tool with Gnosis Safe fallback (#4)
* Initial plan

* Initial plan

* cmd/pushtx, .github/workflows: add raw transaction broadcast tool with funnel fallback

Add a standalone CLI tool (pushtx) for decoding and submitting raw signed
Ethereum transactions to any JSON-RPC endpoint. Includes Gnosis Safe funnel
fallback for insufficient-funds scenarios and calldata detection for the
common RLP broadcast error.

Files added:
- cmd/pushtx/main.go: core tool with tx decode, summary, and broadcast
- cmd/pushtx/funnel.go: Gnosis Safe execTransaction fallback
- cmd/pushtx/main_test.go: tests for core functionality
- cmd/pushtx/funnel_test.go: tests for funnel and calldata detection
- .github/workflows/build.yml: CI workflow for build and test

Files modified:
- Makefile: add pushtx target
- .gitignore: add cmd/pushtx/pushtx binary

Co-authored-by: drqsatoshi <240532885+drqsatoshi@users.noreply.github.com>

* cmd/pushtx: add Tenderly simulation URL to funnel comment

Co-authored-by: drqsatoshi <240532885+drqsatoshi@users.noreply.github.com>

* Initial plan

* Initial plan

Co-authored-by: drqsatoshi <240532885+drqsatoshi@users.noreply.github.com>

* Makefile, build/ci.go: add pushtx to .PHONY and distribution archives

Co-authored-by: drqsatoshi <240532885+drqsatoshi@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: drqsatoshi <240532885+drqsatoshi@users.noreply.github.com>
2026-03-12 14:48:54 -04:00

40 lines
735 B
YAML

name: Build
on:
push:
branches:
- master
- copilot/**
pull_request:
branches:
- master
workflow_dispatch:
permissions:
contents: read
jobs:
build:
name: Build All
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: false
- uses: actions/cache@v4
with:
path: build/cache
key: ${{ runner.os }}-build-tools-cache-${{ hashFiles('build/checksums.txt') }}
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
cache: false
- name: Build all commands
run: make all
- name: Run pushtx tests
run: go test ./cmd/pushtx/ -v