Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce advanced Web3.go capabilities (Devel Branch)... #140

Closed
wants to merge 80 commits into from
Closed

Conversation

0x19
Copy link
Contributor

@0x19 0x19 commented Nov 26, 2023

Just a ton of new stuff that will be added to solgo, however in very early stages right now. As soon as packages and updates are ready will branch off specific incremental update and push new PR.

Basically this playground brings pretty much Advanced Web3.go capabilities to the solgo including ability to fork and stimulate mainnet!

Personally I am not interested in NFT-s at this moment and will not do anything related to NFT besides ability that's already present to understand if ERC-721 standard is discovered.

Deadline: End of March 2024

Milestones

Release package priority (Highest first)

Basically to summarize how should package be released in order for this insanity of the branch to be delivered to the main branch.

  • Accounts package
  • AST, IR, Clients package improvements.
  • Bindings package
  • Simulator package
  • Storage package
  • Liquidity package
  • Exchanges package
  • Tokens package
  • Inspector package
  • Contracts package
  • Observers package
  • Web3.go

It is going to be approximately 11 new packages pushed to the SolGo!

Having this released, you can build full fledged etherscan if you wish to and you'll be able to finally use golang on a way how you can use web3.js, ethers or python libraries to interact with the network.

Released packages

Known Bugs To Fix

  • Simulator clients in token package needs to be optimized.
  • Simulator package GetClient() sometimes does not listen and spins up client at the same block. Possibly miss configuration in token package.
  • Simulator mutexes needs to be implemented when reading and writing new nodes.
  • AST to ABI decoding, especially with structs is not fully working.
  • AST in general needs more care about types that is returning. Sometimes it returns corrupted types.
  • AST signature building due to types can be corrupted.

Account package upgrades

  • Default keystores in the tests/data won't quite work...
  • Additional keystore generator functionality should be added.

Bindings package

  • Bindings package manager.
  • Support for ERC-20 interface.
  • Support for UniswapV2, UniswapV3, SushiSwap, PancakeswapV2 interfaces.
  • Support for simulator interface.

Exchanges package

  • Manager functionality.
  • UniswapV2 exchange
  • UniswapV3 exchange
  • SushiSwap exchange
  • Pancakeswap exchange

Tokens package

  • Ability to support multiple token types.
  • In the beginning, supporting only ERC-20 interface.
  • Tokens require exchange package as well as binding package.
  • Requires simulator package.

Inspector Release Requirements:

  • Detector logic itself with extra capability to call out specific inspectors.
  • Detectors should be able to return error in case traversing won't be used by the detector.
  • Detector execution precedence should be available as for some detectors we need order!
  • There should be a way to insist which detectors have to exist prior detector is executed.
  • Simulator package has to be released.
  • Accounts package has to be released.
  • Storage package has to be released.

Simulator Release Requirements:

  • Anvil is choosen as the simulator for now. Thinking about building our own with erigon help.
  • Accounts package needs to be released.
  • Bindings package needs to be released.
  • Zombie process whatchtower
  • Loading existing processes upon abrupt exit of the node

Storage Release Requirements:

Packages bellow need to be ready for the release in order for storage package to be functional in master.

  • Accounts package
  • Simulator package
  • Storage Package
  • Inspector Package
  • Contracts Package
  • IR Package
  • AST Package
  • Shitload of unit tests....
    • Including simulator with custom contracts that do have all of the type possibilities defined.
    • Use local contracts instead of going towards the etherscan.
  • Godoc
  • Map, Struct and Dynamic Arrays still needs to be sorted out.

Contracts Release Requirements:

  • Accounts package
  • Simulator package
  • Bindings package
  • Exchanges package
  • Tokens package
  • Inspector package
  • Storage package

@0x19 0x19 added future work Something we should do in the future ast Abstract Syntax Tree contracts Contracts opcode Operational Codes metadata Metadata bytecode Bytecode ir Intermediate Representation eip Ethereum Improvement Proposals security Security Vulnerability Detectors clients Ethereum Clients accounts Accounts management package labels Nov 26, 2023
@0x19 0x19 self-assigned this Nov 26, 2023
@0x19 0x19 mentioned this pull request Dec 21, 2023
…is missing. Resolved some recursive panic stack issues with abi builder. Resolved AST path identification resolver when name of the path includes contract
@0x19
Copy link
Contributor Author

0x19 commented Apr 17, 2024

Closing as reference PR, in the future proper PRs will be build and some are already in the main.

@0x19 0x19 closed this Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accounts Accounts management package ast Abstract Syntax Tree bytecode Bytecode clients Ethereum Clients contracts Contracts eip Ethereum Improvement Proposals future work Something we should do in the future ir Intermediate Representation metadata Metadata opcode Operational Codes security Security Vulnerability Detectors
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant