Go implementation of the Ethereum protocol
Find a file
Pratik Patil 67fc4d87fb
Added a new RPC endpoint (bor_sendRawTransactionConditional) to support EIP-4337 Bundled Transactions (#945)
* added new api to support conditional transactions (EIP-4337) (#700)

* Refactored the code and updated the miner to check for the validity of options (#793)

* refactored the code and updated the miner to check for the validity of options

* added new errors -32003 and -32005

* added unit tests

* addressed comments

* Aa 4337 update generics (#799)

* poc

* minor bug fix

* use common.Hash

* updated UnmarshalJSON function (reference - tynes)

* fix

* done

* linters

* with test

* undo some unintentional changes

---------

Co-authored-by: Pratik Patil <pratikspatil024@gmail.com>

* handelling the block range and timestamp range, also made timestamp a pointer

---------

Co-authored-by: Evgeny Danilenko <6655321@bk.ru>

* Added filtering of conditional transactions in txpool (#920)

* added filtering of conditional transactions in txpool

* minor fix in ValidateKnownAccounts

* bug fix

* Supporting nil knownAccounts

* lints

* bundled transactions are not announced/broadcasted to the peers

* fixed after upstream merge

* few fixes

* sentry reject conditional transaction

* Changed the namespace of conditional transaction API from `eth` to `bor` (#985)

* added conditional transaction to bor namespace

* test comit

* test comit

* added conditional transaction

* namespapce changed to bor

* cleanup

* cleanup

* addressed comments

* reverted changes in ValidateKnownAccounts

* addressed comments and removed unwanted code

* addressed comments

* bug fix

* lint

* removed licence from core/types/transaction_conditional_test.go

---------

Co-authored-by: Evgeny Danilenko <6655321@bk.ru>
2023-09-13 08:28:00 +05:30
.circleci chg: Update README 2020-11-14 14:30:47 +05:30
.github ci: increase smoke test timeout 2023-09-06 13:27:23 +05:30
accounts all: implement milestones (#961) 2023-08-28 18:42:21 +05:30
beacon/engine Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
build Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
builder/files Update mumbai bootnodes 2023-09-11 11:44:36 -07:00
cmd Add CLI flags to config LevelDB table/total sizes (#981) 2023-09-12 12:09:26 +02:00
common Added a new RPC endpoint (bor_sendRawTransactionConditional) to support EIP-4337 Bundled Transactions (#945) 2023-09-13 08:28:00 +05:30
consensus Rmv:Removed GetVoteOnHash() fn from consensus/bor/api.go 2023-09-12 16:39:08 +05:30
console Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
contracts/checkpointoracle Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
core Added a new RPC endpoint (bor_sendRawTransactionConditional) to support EIP-4337 Bundled Transactions (#945) 2023-09-13 08:28:00 +05:30
crypto Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
docs Add CLI flags to config LevelDB table/total sizes (#981) 2023-09-12 12:09:26 +02:00
eth Added a new RPC endpoint (bor_sendRawTransactionConditional) to support EIP-4337 Bundled Transactions (#945) 2023-09-13 08:28:00 +05:30
ethclient all: implement milestones (#961) 2023-08-28 18:42:21 +05:30
ethdb Add CLI flags to config LevelDB table/total sizes (#981) 2023-09-12 12:09:26 +02:00
ethstats Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
event Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
graphql graphql: dev: chg: avoid greedy allocation on graphql blocks call (#958) 2023-08-11 14:37:11 +02:00
integration-tests minor chg: add new line 2022-11-25 17:50:58 +05:30
internal Added a new RPC endpoint (bor_sendRawTransactionConditional) to support EIP-4337 Bundled Transactions (#945) 2023-09-13 08:28:00 +05:30
les Add CLI flags to config LevelDB table/total sizes (#981) 2023-09-12 12:09:26 +02:00
light Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
log Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
metrics metrics/prometheus: fix count field of metric (#965) 2023-08-16 18:24:23 +05:30
miner Added a new RPC endpoint (bor_sendRawTransactionConditional) to support EIP-4337 Bundled Transactions (#945) 2023-09-13 08:28:00 +05:30
node Add CLI flags to config LevelDB table/total sizes (#981) 2023-09-12 12:09:26 +02:00
p2p miner/worker :: add : start commit work only after connecting to peers (#977) 2023-08-31 10:58:57 +05:30
packaging version change for milestones 2023-08-29 17:50:05 +05:30
params Merge pull request #998 from maticnetwork/v1.0.0-beta-candidate 2023-09-12 21:41:19 +05:30
rlp Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
rpc Added a new RPC endpoint (bor_sendRawTransactionConditional) to support EIP-4337 Bundled Transactions (#945) 2023-09-13 08:28:00 +05:30
scripts Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
signer Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
swarm Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
tests all: implement milestones (#961) 2023-08-28 18:42:21 +05:30
trie Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
.dockerignore cmd, internal/build, docker: advertise commit date in unstable build versions (#19522) 2019-05-08 16:44:28 +03:00
.gitattributes .gitattributes: enable solidity highlighting on github (#16425) 2018-04-03 15:21:24 +02:00
.gitignore dev: add: pos-944: snyk and govuln integration (#578) 2022-12-06 10:53:55 +01:00
.gitmodules new: dev: pos-398 remove duplicate git submodule 2022-07-12 17:37:44 +02:00
.golangci.yml Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
.goreleaser.yml fix : goreleaser 2023-08-03 14:55:15 +05:30
.mailmap Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
.snyk add ignore rule for net/http2 2022-12-12 12:26:12 +05:30
.travis.yml Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
appveyor.yml Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
AUTHORS Revert "Upstream merge from go-ethereum/v1.11.6 (#901)" 2023-08-03 14:42:09 +05:30
circle.yml use go-ethereum for better forked-bor release 2020-11-13 09:21:48 +05:30
COPYING use go-ethereum for better forked-bor release 2020-11-13 09:21:48 +05:30
COPYING.LESSER all: update license information 2015-07-07 14:12:44 +02:00
Dockerfile Merge branch 'qa' and 'master' into develop (#663) 2023-01-13 14:47:14 +05:30
Dockerfile.alltools mardizzone/POS-1605: go and deps upgrade (#929) 2023-07-19 11:57:45 +05:30
Dockerfile.release Merge branch 'qa' and 'master' into develop (#663) 2023-01-13 14:47:14 +05:30
fuzzbuzz.yaml fuzzers: removed fuzzbuzz configuration (#21813) 2020-11-10 21:54:59 +02:00
go.mod build(deps): bump github.com/docker/docker from 1.6.2 to v24.0.5+incompatible (#963) 2023-08-31 06:55:04 +02:00
go.sum build(deps): bump github.com/docker/docker from 1.6.2 to v24.0.5+incompatible (#963) 2023-08-31 06:55:04 +02:00
interfaces.go all: implement milestones (#961) 2023-08-28 18:42:21 +05:30
Makefile Merge tag 'v0.5.0-beta-6' of github.com:maticnetwork/bor into arpit/merge-latest-branch 2023-08-29 17:44:54 +05:30
oss-fuzz.sh V0.2.16 candidate (#373) 2022-05-06 12:31:48 +02:00
README.md Merge pull request #949 from maticnetwork/mardizzone/upstream-merge 2023-08-03 14:48:53 +05:30
RETESTBOR.md Additional reformatting and cleanup of RETESTBOR document 2023-08-13 15:21:21 -04:00
SECURITY.md dev: add: pos-944: snyk and govuln integration (#578) 2022-12-06 10:53:55 +01:00
sonar-project.properties sonarqube integration (#658) 2023-01-11 17:33:53 +01:00

Bor Overview

Bor is the Official Golang implementation of the Matic protocol. It is a fork of Go Ethereum - https://github.com/ethereum/go-ethereum and EVM compatible.

Forks Stars Languages Issues PRs MIT License contributors size lines Discord Twitter Follow

How to contribute

Contribution Guidelines

We believe one of the things that makes Polygon special is its coherent design and we seek to retain this defining characteristic. From the outset we defined some guidelines to ensure new contributions only ever enhance the project:

  • Quality: Code in the Polygon project should meet the style guidelines, with sufficient test-cases, descriptive commit messages, evidence that the contribution does not break any compatibility commitments or cause adverse feature interactions, and evidence of high-quality peer-review
  • Size: The Polygon projects culture is one of small pull-requests, regularly submitted. The larger a pull-request, the more likely it is that you will be asked to resubmit as a series of self-contained and individually reviewable smaller PRs
  • Maintainability: If the feature will require ongoing maintenance (eg support for a particular brand of database), we may ask you to accept responsibility for maintaining this feature

Submit an issue

  • Create a new issue
  • Comment on the issue (if you'd like to be assigned to it) - that way our team can assign the issue to you.
  • If you do not have a specific contribution in mind, you can also browse the issues labelled as help wanted
  • Issues that additionally have the good first issue label are considered ideal for first-timers

Fork the repository (repo)

  • If you're not sure, here's how to fork the repo

  • If this is your first time forking our repo, this is all you need to do for this step:

    $ git clone git@github.com:[your_github_handle]/bor
    
  • If you've already forked the repo, you'll want to ensure your fork is configured and that it's up to date. This will save you the headache of potential merge conflicts.

  • To configure your fork:

    $ git remote add upstream https://github.com/maticnetwork/bor
    
  • To sync your fork with the latest changes:

    $ git checkout master
    $ git fetch upstream
    $ git merge upstream/master
    

Building the source

  • Building bor requires both a Go (version 1.19 or later) and a C compiler. You can install them using your favourite package manager. Once the dependencies are installed, run

    $ make bor
    

Make awesome changes!

  1. Create new branch for your changes

    $ git checkout -b new_branch_name
    
  2. Commit and prepare for pull request (PR). In your PR commit message, reference the issue it resolves (see how to link a commit message to an issue using a keyword.

    Checkout our Git-Rules

    $ git commit -m "brief description of changes [Fixes #1234]"
    
  3. Push to your GitHub account

    $ git push
    

Submit your PR

  • After your changes are committed to your GitHub fork, submit a pull request (PR) to the master branch of the maticnetwork/bor repo
  • In your PR description, reference the issue it resolves (see linking a pull request to an issue using a keyword)
    • ex. Updates out of date content [Fixes #1234]
  • Why not say hi and draw attention to your PR in our discord server?

Wait for review

  • The team reviews every PR
  • Acceptable PRs will be approved & merged into the master branch

Release


License

The go-ethereum library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.

The go-ethereum binaries (i.e. all code inside of the cmd directory) are licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.


Join our Discord server

Join Polygon community share your ideas or just say hi over on Discord.