{"id":14967167,"url":"https://github.com/golemfactory/erc20_payment_lib","last_synced_at":"2026-02-01T04:15:17.863Z","repository":{"id":179073219,"uuid":"662923164","full_name":"golemfactory/erc20_payment_lib","owner":"golemfactory","description":"ERC20 web3 payment library written in Rust with sqlx/sqlite db backend.","archived":false,"fork":false,"pushed_at":"2026-01-19T14:47:49.000Z","size":2024,"stargazers_count":3,"open_issues_count":12,"forks_count":2,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2026-01-19T20:46:32.258Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/golemfactory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-06T07:17:14.000Z","updated_at":"2026-01-19T14:47:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"d654164a-81bd-483d-9c0b-742aa662405f","html_url":"https://github.com/golemfactory/erc20_payment_lib","commit_stats":null,"previous_names":["golemfactory/erc20_payment_lib"],"tags_count":223,"template":false,"template_full_name":null,"purl":"pkg:github/golemfactory/erc20_payment_lib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Ferc20_payment_lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Ferc20_payment_lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Ferc20_payment_lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Ferc20_payment_lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/golemfactory","download_url":"https://codeload.github.com/golemfactory/erc20_payment_lib/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Ferc20_payment_lib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28967235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T03:46:10.227Z","status":"ssl_error","status_checked_at":"2026-02-01T03:46:01.693Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T13:37:33.666Z","updated_at":"2026-02-01T04:15:17.839Z","avatar_url":"https://github.com/golemfactory.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rust_erc20_payment\n\n# Notes\n\n* all addresses/txs in database are in hex/lowercase format. \n\n# Frontend\n\nLink to frontend repo:\nhttps://github.com/scx1332/erc20_driver_frontend\n\n# Sample environment setup\n\nETH_PRIVATE_KEY=0000000000000000000000000000000000000000000000000000000000000000\nPROVIDER_URL=https://rpc-mumbai.matic.today\nRUST_LOG=debug,sqlx::query=info,web=warn\n\n# Sample runs\n\n```\ncargo run -- transfer --plain-eth --amounts=1,2,3,4 --receivers=0xA000000000000000000000000000000000050001,0xA000000000000000000000000000000000050002,0xa000000000000000000000000000000000050003,0xa000000000000000000000000000000000050004\ncargo run -- transfer --token-addr=0x2036807b0b3aaf5b1858ee822d0e111fddac7018 --amounts=1,2,3,4 --receivers=0xA000000000000000000000000000000000050001,0xA000000000000000000000000000000000050002,0xa000000000000000000000000000000000050003,0xa000000000000000000000000000000000050004\ncargo run --example generate_transfers -- --chain-name dev --address-pool-size 10000 --amounts-pool-size 10000 --generate-count 100\n```\n\nprepare test transfers into db, it generates 100 random GLM transfers to 10 unique addresses\n\n```cargo run --example generate_transfers -- --generate-count 100 --address-pool-size 10 --amounts-pool-size=100```\n\ndry run without processing transactions\n\n```cargo run -- process --generate-tx-only=1```\n\nUseful command to see transactions being processed\n```sql\nSELECT id,\n       (CAST((julianday(broadcast_date) - 2440587.5)*86400000 AS INTEGER) - CAST((julianday(created_date) - 2440587.5)*86400000 AS INTEGER)) / 1000.0 as broadcast_delay,\n       broadcast_count,\n       (CAST((julianday(confirm_date) - 2440587.5)*86400000 AS INTEGER) - CAST((julianday(broadcast_date) - 2440587.5)*86400000 AS INTEGER)) / 1000.0 as confirm_delay,\n       tx_hash,\n       *\nFROM tx\norder by created_date desc\n```\n\nClean all transactions and transfers\n```sql\nDELETE FROM token_transfer;\nDELETE FROM tx;\n```\n\n# TODO\n\n- [x] Add error handling in gather_transactions, now SQL will loop forever, when hit error in gather\n\n# Example get balance\n\nGet balance running 4 tasks in parallel\n```\ncargo run -- account-balance --tasks 4 -c polygon -a 0x75be52afd54a13b6c98490b4db495aa79b609d58,0x7caac644722316101807e0d55f838f7851a97031,0x52a258ed593c793251a89bfd36cae158ee9fc4f8,0x04e2dc96afecdf72221882e1cee039cab4d443e0,0xa32a0edc623d86e623f58e7c4174023a80a67ddf,0x7cb53b925a79fb15c348fcfd9abcf2287854d33a,0x8cf88c473b6cb40b8d37cdd93e6c8118c14a6e60,0xa96d3f3e177687fb0b5f990d5c4000923b49430b,0x92fb36230b50a87a39ba3237c996caf5a39b230b,0x0c4d7a995aa9846ef25e1a347a8711c8b534b5a6,0x698076ae39e7e44bcd2bbe15f0486c8d44bb4e6f\n```\nBe nicer to endpoint one by one\n```\ncargo run -- account-balance --tasks 1 -c polygon -a 0x75be52afd54a13b6c98490b4db495aa79b609d58,0x7caac644722316101807e0d55f838f7851a97031,0x52a258ed593c793251a89bfd36cae158ee9fc4f8,0x04e2dc96afecdf72221882e1cee039cab4d443e0,0xa32a0edc623d86e623f58e7c4174023a80a67ddf,0x7cb53b925a79fb15c348fcfd9abcf2287854d33a,0x8cf88c473b6cb40b8d37cdd93e6c8118c14a6e60,0xa96d3f3e177687fb0b5f990d5c4000923b49430b,0x92fb36230b50a87a39ba3237c996caf5a39b230b,0x0c4d7a995aa9846ef25e1a347a8711c8b534b5a6,0x698076ae39e7e44bcd2bbe15f0486c8d44bb4e6f\n```\nBe nicer to endpoint rate limit every 2 seconds\n```\ncargo run -- account-balance --interval 2.0 -c polygon -a 0x75be52afd54a13b6c98490b4db495aa79b609d58,0x7caac644722316101807e0d55f838f7851a97031,0x52a258ed593c793251a89bfd36cae158ee9fc4f8,0x04e2dc96afecdf72221882e1cee039cab4d443e0,0xa32a0edc623d86e623f58e7c4174023a80a67ddf,0x7cb53b925a79fb15c348fcfd9abcf2287854d33a,0x8cf88c473b6cb40b8d37cdd93e6c8118c14a6e60,0xa96d3f3e177687fb0b5f990d5c4000923b49430b,0x92fb36230b50a87a39ba3237c996caf5a39b230b,0x0c4d7a995aa9846ef25e1a347a8711c8b534b5a6,0x698076ae39e7e44bcd2bbe15f0486c8d44bb4e6f\n```\n\n\n# Example attestation\n\n\nhttp://deposit.dev.golem.network:15555/erc20/api/attestation/sepolia/0xeb9b088871155d0ae32f382de5a42d0a64e946f512b722698f4ae6b32164f92d\nhttp://deposit.dev.golem.network:15555/erc20/api/attestation/sepolia/0xc8b0ceee393cdcf313945d20b3bd45a01b0ccf2484309b669da2d4da9266b4d5\nhttp://deposit.dev.golem.network:15555/erc20/api/attestation/base/0xc0f18976a498f7287562492cca4a145108e83e3606e020f10653afd3511656ef\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgolemfactory%2Ferc20_payment_lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgolemfactory%2Ferc20_payment_lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgolemfactory%2Ferc20_payment_lib/lists"}