{"id":31769189,"url":"https://github.com/second-state/linear-timelock-user-interface","last_synced_at":"2026-07-17T21:37:26.647Z","repository":{"id":98615306,"uuid":"450696559","full_name":"second-state/linear-timelock-user-interface","owner":"second-state","description":"Interface for LinearTimelock.sol smart contract","archived":false,"fork":false,"pushed_at":"2022-04-27T08:17:05.000Z","size":13143,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-07-17T21:37:23.757Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/second-state.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":"2022-01-22T02:23:37.000Z","updated_at":"2022-05-17T17:35:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"0a0b318f-1baf-4473-8092-dfaff6671570","html_url":"https://github.com/second-state/linear-timelock-user-interface","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/second-state/linear-timelock-user-interface","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Flinear-timelock-user-interface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Flinear-timelock-user-interface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Flinear-timelock-user-interface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Flinear-timelock-user-interface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/second-state","download_url":"https://codeload.github.com/second-state/linear-timelock-user-interface/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Flinear-timelock-user-interface/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35597010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-17T02:00:06.162Z","response_time":116,"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-10-10T02:41:34.652Z","updated_at":"2026-07-17T21:37:26.639Z","avatar_url":"https://github.com/second-state.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linear timelock token User Interface (UI)\n\n# What does it do?\n\nInteracts with the linear timelock smart contract, which allows users to linearly unlock tokens.\n\n![linear-timelock](https://user-images.githubusercontent.com/9831342/150708583-bd727000-3b9f-4f02-af2e-958774f0d8a3.jpg)\n\n# How do end users interact with the timelock UI\n\nUsers simply load the page, (the user's account details are automatically pre-filled in the address input box). \n\nThe user's available (un-lockable) balance is calculated automatically. \n\nThe user then simply clicks the \"Unlock Your Tokens\" button (please note: the maximum amount of available tokens are automatically pre-filled in the amount input box). \n\nIt is recommended to also click the \"Refresh/Calculate Balances\" button after any transfers.\n\n![Screen Shot 2022-01-10 at 7 20 09 am](https://user-images.githubusercontent.com/9831342/148701427-3217e79a-3e02-4b71-b4b1-20d93729ac94.png)\n\n# Where is the linear timelock smart contract\n\nThe [timelock smart contract](https://github.com/second-state/linear-timelock-smart-contract/) is deployed on the Ethereum mainnet and then this UI source code us updated with the timelocks ABI, bytecode, contract address and deployment transaction hash. This timelock UI instantiates the timelock contract in order to interact and transfer tokens to end users and so forth.\n\n# How to deploy this UI\n\nClone this repository\n\n```\ngit clone git@github.com:second-state/linear-timelock-user-interface.git\n```\n\n## ABI and address of Timelock\n\nPaste the ABI **and the address** of the linear timelock's successfully deployed contract instance, into the helper.js file\n\n## Contract address of ERC20 (NOT timelock)\n\nIn addition to that, also paste the contract address of the **ERC20 contract** into the helper.js file. You will see the two addresses are clearly marked.\n\n## Installing\n\nThen simply type\n\n```\nnpm install\n```\n\n## Running\n\n### Localhost for testing\n\nTo test on local hardware (localhost) simply type\n\n```\nnode server.js\n```\n\n### Publish externally\n\n**Please note:** A disclaimer may be required, whereby the user must accept in order to unlock tokens. If this is the case then a disclaimer needs to be implemented in the UI. In addition the wording for the disclaimer has to be added to the code. The operation of the disclaimer needs to be tested before the UI is publicly deployed.\n\nAn example of how a disclaimer was recently implemented in Simple Timelock UI can be found at the following GitHub commit. A change to the HTML button, some inline HTML text and additional CSS are required (as shown in the commit details in the following link)\nhttps://github.com/second-state/claim-parastate-erc20-token_locking-na_cliff-na_vesting-na/commit/2d59a91812be4fe482ba42f48dddd41d9730ea2b\n\nAlso, please attend to any open issues in this repository to ensure correct and optimal operation.\n\nTo publish/deploy at GitHub pages, open `package.json` and edit accordingly, then simply type\n\n```\nnpm run deploy\n```\n\nThe site will then be hosted to [https://second-state.github.io/linear-timelock-user-interface/html/](https://second-state.github.io/linear-timelock-token-user-interface/html/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsecond-state%2Flinear-timelock-user-interface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsecond-state%2Flinear-timelock-user-interface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsecond-state%2Flinear-timelock-user-interface/lists"}