{"id":18285953,"url":"https://github.com/exodusmovement/exodussignup","last_synced_at":"2025-04-05T08:30:46.893Z","repository":{"id":66093552,"uuid":"247661432","full_name":"ExodusMovement/exodussignup","owner":"ExodusMovement","description":"Smart contract for creating EOS accounts","archived":false,"fork":false,"pushed_at":"2024-03-15T12:48:30.000Z","size":31,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-03-15T14:03:31.777Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/ExodusMovement.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.TXT","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}},"created_at":"2020-03-16T09:31:24.000Z","updated_at":"2024-03-15T12:48:34.000Z","dependencies_parsed_at":"2023-04-13T08:34:21.405Z","dependency_job_id":null,"html_url":"https://github.com/ExodusMovement/exodussignup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExodusMovement%2Fexodussignup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExodusMovement%2Fexodussignup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExodusMovement%2Fexodussignup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExodusMovement%2Fexodussignup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ExodusMovement","download_url":"https://codeload.github.com/ExodusMovement/exodussignup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223174744,"owners_count":17100272,"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","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-11-05T13:18:20.398Z","updated_at":"2024-11-05T13:18:21.028Z","avatar_url":"https://github.com/ExodusMovement.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# exodussignup\n\nSmart contract for creating EOS accounts for users of Exodus. EOS can be sent to this contract with a memo formatted as ```\u003caccount_name\u003e-\u003cpublick_key\u003e```, and the account `account_name` will be created and permissions for controlling the account will be assgined to `public_key`. For the account approximately 4k of RAM will be purchaed and some amount of EOS may be staked. The remaining EOS will be sent to the created account for immediate use.\n\n## Set Up Environment\n\n1. Install a fresh Ubuntu 18.04 LTS\n\n2. Install `eosio v2.0.7` from https://github.com/EOSIO/eos/releases\n\n3. Install `eosio.cdt v1.7.0` from https://github.com/EOSIO/eosio.cdt/releases\n\n4. Create `contracts` directory somewherei and `cd contracts`\n\n5. Download `eosio.contracts v1.9.0` from  https://github.com/EOSIO/eosio.contracts/releases\n\n6. Unpack and prepare `eosio.contracts`:    \n   ```\n   tar xzf v1.9.0.tar.gz\n   ln -s eosio.contracts-1.9.0 eosio.contracts\n   ```\n\n7. Clone the `exodussignup` repo: ```git clone git@github.com:ExodusMovement/exodussignup.git```\n\n8. Build the contract:\n   ```\n   cd exodussingup\n   make\n\n   ```\n\n9. Deploy the contract, assuming you have the `exodussignup` account set up:\n   ```\n   make deploy\n   ```\n\n\n## Prepare EOS wallet\n```\n# start the wallet daemon\nkeosd --wallet-dir $WALLET_DIR \u0026\n\n# create the default wallet\nwallet  wallet create --to-console\nCreating wallet: default\nSave password to use in the future to unlock this wallet.\nWithout password imported keys will not be retrievable.\n\"PW5...\"\n\n# import private key for the active permission of the 'exodussignup' account\ncleos wallet import --private-key \"...\"\n\n# check public key in wallet\ncleos wallet list keys\nWallets:\n[\n  \"default *\"\n]\n[\n  \"EOS6AtonxqWfiQwoBEUsdGf3BSoobTeeQGgvDQnL4WWfpvkWqBiX9\",\n]\n\n# wallet will self-lock after a short period of inactivity, unlock with:\ncleos wallet unlock\n```\n\n## Deploy and test contract\n\nThis assumes the account `exodussignup` is already created and has enough RAM for the contract and enough staked for uploading the contract. Staked EOS is not required for contract operation, but you need enough EOS staked for deploying the contract. Choose a node that works for you and set the NODE variable accordingly.\n```\nNODE=https://eu.eosdac.io\ncleos -u $NODE set contract exodussignup exodussignup\ncleos -u $NODE set account permission exodussignup active '{\"threshold\": 1,\"keys\": [{\"key\": \"EOS6AtonxqWfiQwoBEUsdGf3BSoobTeeQGgvDQnL4WWfpvkWqBiX9\",\"weight\": 1}],\"accounts\": [{\"permission\":{\"actor\":\"exodussignup\",\"permission\":\"eosio.code\"},\"weight\":1}]}' owner -p exodussignup\n```\n\nTest contract from your wallet. Choose an account name, that does not exists and verify at a block browser. Prepare a public/private key pair, so you have control of the resulting account. \n```\ncleos wallet create_key\nCreated new private key with a public key of: \"EOS7...WpM\"\n```\n\nForm your wallet send enough EOS to 'exodussignup', with a memo like `\u003caccount_name\u003e-\u003cpublic-key\u003e`. Or from an account with a key in your local wallet:\n```\ncleos -u $NODE transfer \u003cmy_account\u003e exodussignup \"3.0000 EOS\" \"account_name-public_key\"\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexodusmovement%2Fexodussignup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexodusmovement%2Fexodussignup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexodusmovement%2Fexodussignup/lists"}