{"id":29792979,"url":"https://github.com/blockful/ethsamba-workshop","last_synced_at":"2025-07-28T02:08:08.443Z","repository":{"id":228635105,"uuid":"774406440","full_name":"blockful/ETHSamba-Workshop","owner":"blockful","description":"Repository to store the code that will be used in the Blockful's workshop at ETHSamba","archived":false,"fork":false,"pushed_at":"2024-04-04T15:15:46.000Z","size":3331,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-11T15:54:18.007Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blockful.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-03-19T13:52:10.000Z","updated_at":"2024-03-19T18:00:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"24e7a6f0-615a-4a59-9b53-50a4213a6958","html_url":"https://github.com/blockful/ETHSamba-Workshop","commit_stats":null,"previous_names":["blockful-io/ethsamba-workshop","blockful/ethsamba-workshop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/blockful/ETHSamba-Workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockful%2FETHSamba-Workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockful%2FETHSamba-Workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockful%2FETHSamba-Workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockful%2FETHSamba-Workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blockful","download_url":"https://codeload.github.com/blockful/ETHSamba-Workshop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockful%2FETHSamba-Workshop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267451489,"owners_count":24089312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-07-28T02:08:07.202Z","updated_at":"2025-07-28T02:08:08.425Z","avatar_url":"https://github.com/blockful.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ENS Workshop\nO objetivo do workshop é que possamos deployar um contrato de Resolver da ENS com algumas informações pessoais, criar um domínio da ENS e depois usar esse proprio contrato que deployamos junto a interface frontend da ENS.\n\n## Mint de eth na Sepholia\nPara assinar a transação e criar um domínio de teste ENS, é necessário obter um pouco de ether na carteira. Para fazer isso, siga os próximos passos:\n\n- Acesse um dos faucets da Sepolia, como https://sepolia-faucet.pk910.de/#/\nResolva o captcha e insira o endereço da sua carteira:\n![](\u003cimages/get sepholia eth.png\u003e)\n\n- Start mining to get founds:\n![](\u003cimages/start mining eth.png\u003e)\n\n- Depois de um minuto, clique em Parar de mineirar, e então os fundos vão ser transferidos para o seu endereço.\n![](\u003cimages/mining result.png\u003e)\n\n## Create ENS domain\n\nAgora que já temos fundos na cadeia da Sepolia, é possível comprar nosso domínio de teste na ENS.\n\n- Acesse o aplicativo da ENS (https://app.ens.domains/) e conecte sua carteira:\n![](\u003cimages/connect metamask at ens.png\u003e)\n\n- Selecione sua conta com seploliaETH minerado.\n![](\u003cimages/connect metamask 2.0.png\u003e)\n\n- Escolha um nome para o seu domínio ENS.\n![](\u003cimages/select ens name.png\u003e)\n\n- Selecione a duração do domínio.\n![](\u003cimages/domain time.png\u003e)\n\n- Inicie a transação.\n![](\u003cimages/start transaction.png\u003e)\n\n- Aguarde a conclusão da transação.\n![](\u003cimages/waiting transaction.png\u003e)\n\n- Confirmar transação.\n![](\u003cimages/confirm transaction again.png\u003e)\n\n- Profile criado!\n![](cimages/reated.png)\n\n## Deploy do Resolver\n\n### Requirements\n\n- [Metamask](https://metamask.io)\n- [Foundry](https://book.getfoundry.sh/)\n\n## Remix Deploy\n\n[Remix Ethereum IDE](https://remix.ethereum.org)\n\n```solidity\n// SPDX-License-Identifier: GPL-3.0\npragma solidity \u003e=0.8.2 \u003c0.9.0;\n\nimport \"https://github.com/ensdomains/ens-contracts/blob/staging/contracts/resolvers/PublicResolver.sol\";\n\ncontract MyResolver is PublicResolver {\n    \n    constructor(\n        ENS _ens,\n        INameWrapper wrapperAddress,\n        address _trustedETHController,\n        address _trustedReverseRegistrar\n    ) PublicResolver(\n         _ens,\n         wrapperAddress,\n         _trustedETHController,\n         _trustedReverseRegistrar\n    ) {\n\n    }\n}\n```\n\n## Local deploy\n\n### Installation\n\n```shell\ncurl -L https://foundry.paradigm.xyz | bash\nfoundryup\n```\n\n### Start project\n\n```shell\nforge init eth-samba-ens\n```\n\nRemove `lib/forge-std` and add it as a submodule:\n\n```shell\nrm -rf lib/forge-std\nforge install https://github.com/foundry-rs/forge-std --no-commit \n```\n\nCreate `.gitignore`\n\n```gitignore\n.env\nout/\ncache/\n```\n\n### Deploy Public Resolver on localhost\n\n```shell\nforge create src/Counter.sol:Counter \\\n--rpc-url http://localhost:8545 \\\n--private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80\n```\n\n#### Interact\n\n```shell\n# Set number\ncast send 0x5fbdb2315678afecb367f032d93f642f64180aa3 \"function setNumber(uint256 newNumber)\" \\\n--private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \\\n--rpc-url http://localhost:8545 10\n\n# Read number\ncast call 0x5fbdb2315678afecb367f032d93f642f64180aa3 \"function number()(uint256)\" \\\n--private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \\\n--rpc-url http://localhost:8545\n```\n\n### Deploy Public Resolver on Sepolia testnet\n\n[ENS Contracts Sepolia deployments](https://github.com/ensdomains/ens-contracts/tree/staging/deployments/sepolia)\n[Constructor argumetns reference](https://github.com/ensdomains/ens-contracts/blob/staging/deploy/resolvers/00_deploy_public_resolver.ts)\n\n1. Registry: 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\n2. NameWrapper: 0x0635513f179D50A207757E05759CbD106d7dFcE8\n3. ETHRegistrarController: 0xFED6a969AaA60E4961FCD3EBF1A2e8913ac65B72\n4. ReverseRegistrar: 0xA0a1AbcDAe1a2a4A2EF8e9113Ff0e02DD81DC0C6\n\n```shell\nforge create lib/ens-contracts/contracts/resolvers/PublicResolver.sol:PublicResolver \\\n--constructor-args \\\n0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e \\\n0x0635513f179D50A207757E05759CbD106d7dFcE8 \\\n0xFED6a969AaA60E4961FCD3EBF1A2e8913ac65B72 \\\n0xA0a1AbcDAe1a2a4A2EF8e9113Ff0e02DD81DC0C6 \\\n--private-key \u003cprivate_key\u003e\n```\n\n#### Interact\n\n[Public Resolver interface](https://docs.ens.domains/resolvers/interfaces)\n[Namehash online](https://swolfeyes.github.io/ethereum-namehash-calculator/)\n\n```shell\n# Read Ethereum address\ncast call 0x2E662240DDF295d3055071a84a7a0d100AAD8b30 \"addr(bytes32 node)(address)\" \\\n0x2ea8501801807d961e71597b8b554a157afb1f744488938033fd69f66117b721\n\n# Change Ethereum address\ncast send 0x2E662240DDF295d3055071a84a7a0d100AAD8b30 \"setAddr(bytes32 node, address addr)\" \\\n--private-key \u003cprivate-key\u003e \\\n--rpc-url \u003crpc-url\u003e \\\n0x2ea8501801807d961e71597b8b554a157afb1f744488938033fd69f66117b721 \\\n0x86f012BC12B986FcF58AD672f03817cD210528ed\n\n# Read twitter handle\ncast call 0x2E662240DDF295d3055071a84a7a0d100AAD8b30 \"text(bytes32 node, string calldata key)(string)\" \\\n0xf790f34d644b981e4f85ed0b8ed66e48d4117829e666903f2efcd597c14f5de1 avatar\n\n# Change twitter handle\ncast send 0x2E662240DDF295d3055071a84a7a0d100AAD8b30 \"setText(bytes32 node,string key,string value)\" \\\n--private-key \u003cprivate-key\u003e \\\n--rpc-url \u003crpc-url\u003e \\\n0xf790f34d644b981e4f85ed0b8ed66e48d4117829e666903f2efcd597c14f5de1 avatar blockful.png\n```\n\n## Discord\n\nJoin us on Discord:\n\n![](images/qr-code.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblockful%2Fethsamba-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblockful%2Fethsamba-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblockful%2Fethsamba-workshop/lists"}