├── .dockerignore ├── .github └── workflows │ └── docker-publish.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── cmd └── main.go ├── config ├── default.yaml ├── ethereum-openrpc.json └── grafana.json ├── docker-compose.yaml ├── docs ├── README_ZH.md ├── architecture.png ├── grafana1.jpg ├── grafana2.jpg ├── grafana3.png └── icon.png ├── go.mod ├── go.sum ├── internal ├── app │ ├── agent │ │ ├── agent_module.go │ │ ├── controller │ │ │ ├── agent_controller.go │ │ │ └── other_controller.go │ │ ├── repository │ │ │ ├── tenant_repository.go │ │ │ └── tenant_repository_mock.go │ │ └── service │ │ │ ├── agent_service.go │ │ │ ├── agent_service_mock.go │ │ │ ├── agent_service_test.go │ │ │ ├── cache.go │ │ │ ├── endpoint_service.go │ │ │ ├── tenant_service.go │ │ │ ├── tenant_service_mock.go │ │ │ └── tenant_service_test.go │ ├── application.go │ ├── bootstrap.go │ ├── database │ │ ├── database.go │ │ ├── database_mock.go │ │ ├── schema │ │ │ ├── base.go │ │ │ └── tenant.go │ │ └── seeds │ │ │ └── tenant_seeder.go │ ├── router.go │ └── shared │ │ ├── amqp.go │ │ ├── config.go │ │ ├── etcd.go │ │ ├── logger.go │ │ ├── redis.go │ │ ├── redis_scripts.go │ │ ├── redis_scripts │ │ └── balance.go │ │ ├── redis_scripts_mock.go │ │ ├── shared_module.go │ │ ├── transport.go │ │ └── watcher.go ├── common │ ├── app.go │ ├── chain.go │ ├── config.go │ ├── error.go │ └── profile.go └── core │ ├── client.go │ ├── endpoint │ ├── cache.go │ ├── client.go │ ├── endpoint.go │ ├── http_client.go │ ├── provider.go │ ├── selector.go │ └── websocket_client.go │ ├── reqctx │ └── reqctxs.go │ └── rpc │ ├── jsonrpc.go │ └── jsonrpc_schema.go ├── providers └── web3-rpc-provider │ └── web3_rpc_provider.go └── utils ├── config ├── conf.go └── config.go ├── general ├── constants │ └── constansts.go ├── general.go ├── names │ └── names.go └── types │ └── types.go ├── helpers ├── compression.go ├── number.go ├── runtime.go ├── sha256.go ├── shortstr.go ├── slice.go └── strings.go └── metrics.go /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/workflows/docker-publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/.github/workflows/docker-publish.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/README.md -------------------------------------------------------------------------------- /cmd/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/cmd/main.go -------------------------------------------------------------------------------- /config/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/config/default.yaml -------------------------------------------------------------------------------- /config/ethereum-openrpc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/config/ethereum-openrpc.json -------------------------------------------------------------------------------- /config/grafana.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/config/grafana.json -------------------------------------------------------------------------------- /docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/docker-compose.yaml -------------------------------------------------------------------------------- /docs/README_ZH.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/docs/README_ZH.md -------------------------------------------------------------------------------- /docs/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/docs/architecture.png -------------------------------------------------------------------------------- /docs/grafana1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/docs/grafana1.jpg -------------------------------------------------------------------------------- /docs/grafana2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/docs/grafana2.jpg -------------------------------------------------------------------------------- /docs/grafana3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/docs/grafana3.png -------------------------------------------------------------------------------- /docs/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/docs/icon.png -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/go.sum -------------------------------------------------------------------------------- /internal/app/agent/agent_module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/agent_module.go -------------------------------------------------------------------------------- /internal/app/agent/controller/agent_controller.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/controller/agent_controller.go -------------------------------------------------------------------------------- /internal/app/agent/controller/other_controller.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/controller/other_controller.go -------------------------------------------------------------------------------- /internal/app/agent/repository/tenant_repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/repository/tenant_repository.go -------------------------------------------------------------------------------- /internal/app/agent/repository/tenant_repository_mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/repository/tenant_repository_mock.go -------------------------------------------------------------------------------- /internal/app/agent/service/agent_service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/service/agent_service.go -------------------------------------------------------------------------------- /internal/app/agent/service/agent_service_mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/service/agent_service_mock.go -------------------------------------------------------------------------------- /internal/app/agent/service/agent_service_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/service/agent_service_test.go -------------------------------------------------------------------------------- /internal/app/agent/service/cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/service/cache.go -------------------------------------------------------------------------------- /internal/app/agent/service/endpoint_service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/service/endpoint_service.go -------------------------------------------------------------------------------- /internal/app/agent/service/tenant_service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/service/tenant_service.go -------------------------------------------------------------------------------- /internal/app/agent/service/tenant_service_mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/service/tenant_service_mock.go -------------------------------------------------------------------------------- /internal/app/agent/service/tenant_service_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/agent/service/tenant_service_test.go -------------------------------------------------------------------------------- /internal/app/application.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/application.go -------------------------------------------------------------------------------- /internal/app/bootstrap.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/bootstrap.go -------------------------------------------------------------------------------- /internal/app/database/database.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/database/database.go -------------------------------------------------------------------------------- /internal/app/database/database_mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/database/database_mock.go -------------------------------------------------------------------------------- /internal/app/database/schema/base.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/database/schema/base.go -------------------------------------------------------------------------------- /internal/app/database/schema/tenant.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/database/schema/tenant.go -------------------------------------------------------------------------------- /internal/app/database/seeds/tenant_seeder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/database/seeds/tenant_seeder.go -------------------------------------------------------------------------------- /internal/app/router.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/router.go -------------------------------------------------------------------------------- /internal/app/shared/amqp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/amqp.go -------------------------------------------------------------------------------- /internal/app/shared/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/config.go -------------------------------------------------------------------------------- /internal/app/shared/etcd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/etcd.go -------------------------------------------------------------------------------- /internal/app/shared/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/logger.go -------------------------------------------------------------------------------- /internal/app/shared/redis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/redis.go -------------------------------------------------------------------------------- /internal/app/shared/redis_scripts.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/redis_scripts.go -------------------------------------------------------------------------------- /internal/app/shared/redis_scripts/balance.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/redis_scripts/balance.go -------------------------------------------------------------------------------- /internal/app/shared/redis_scripts_mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/redis_scripts_mock.go -------------------------------------------------------------------------------- /internal/app/shared/shared_module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/shared_module.go -------------------------------------------------------------------------------- /internal/app/shared/transport.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/transport.go -------------------------------------------------------------------------------- /internal/app/shared/watcher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/app/shared/watcher.go -------------------------------------------------------------------------------- /internal/common/app.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/common/app.go -------------------------------------------------------------------------------- /internal/common/chain.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/common/chain.go -------------------------------------------------------------------------------- /internal/common/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/common/config.go -------------------------------------------------------------------------------- /internal/common/error.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/common/error.go -------------------------------------------------------------------------------- /internal/common/profile.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/common/profile.go -------------------------------------------------------------------------------- /internal/core/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/client.go -------------------------------------------------------------------------------- /internal/core/endpoint/cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/endpoint/cache.go -------------------------------------------------------------------------------- /internal/core/endpoint/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/endpoint/client.go -------------------------------------------------------------------------------- /internal/core/endpoint/endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/endpoint/endpoint.go -------------------------------------------------------------------------------- /internal/core/endpoint/http_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/endpoint/http_client.go -------------------------------------------------------------------------------- /internal/core/endpoint/provider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/endpoint/provider.go -------------------------------------------------------------------------------- /internal/core/endpoint/selector.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/endpoint/selector.go -------------------------------------------------------------------------------- /internal/core/endpoint/websocket_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/endpoint/websocket_client.go -------------------------------------------------------------------------------- /internal/core/reqctx/reqctxs.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/reqctx/reqctxs.go -------------------------------------------------------------------------------- /internal/core/rpc/jsonrpc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/rpc/jsonrpc.go -------------------------------------------------------------------------------- /internal/core/rpc/jsonrpc_schema.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/internal/core/rpc/jsonrpc_schema.go -------------------------------------------------------------------------------- /providers/web3-rpc-provider/web3_rpc_provider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/providers/web3-rpc-provider/web3_rpc_provider.go -------------------------------------------------------------------------------- /utils/config/conf.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/config/conf.go -------------------------------------------------------------------------------- /utils/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/config/config.go -------------------------------------------------------------------------------- /utils/general/constants/constansts.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/general/constants/constansts.go -------------------------------------------------------------------------------- /utils/general/general.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/general/general.go -------------------------------------------------------------------------------- /utils/general/names/names.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/general/names/names.go -------------------------------------------------------------------------------- /utils/general/types/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/general/types/types.go -------------------------------------------------------------------------------- /utils/helpers/compression.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/helpers/compression.go -------------------------------------------------------------------------------- /utils/helpers/number.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/helpers/number.go -------------------------------------------------------------------------------- /utils/helpers/runtime.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/helpers/runtime.go -------------------------------------------------------------------------------- /utils/helpers/sha256.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/helpers/sha256.go -------------------------------------------------------------------------------- /utils/helpers/shortstr.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/helpers/shortstr.go -------------------------------------------------------------------------------- /utils/helpers/slice.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/helpers/slice.go -------------------------------------------------------------------------------- /utils/helpers/strings.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/helpers/strings.go -------------------------------------------------------------------------------- /utils/metrics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DODOEX/web3-rpc-proxy/HEAD/utils/metrics.go --------------------------------------------------------------------------------