{"id":21470545,"url":"https://github.com/manifoldfinance/qabiencode","last_synced_at":"2025-06-24T21:10:04.507Z","repository":{"id":103410943,"uuid":"395696582","full_name":"manifoldfinance/qAbiEncode","owner":"manifoldfinance","description":"KDB+ library for abi encoding ethereum functions","archived":false,"fork":false,"pushed_at":"2021-09-30T10:09:06.000Z","size":18,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-18T02:48:58.824Z","etag":null,"topics":["blockchain","ethereum","kdb","kdb-library","keccak","q"],"latest_commit_sha":null,"homepage":"","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/manifoldfinance.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}},"created_at":"2021-08-13T15:06:53.000Z","updated_at":"2023-11-09T00:55:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"f46809dd-7267-4351-a3b7-b99f1c8ad8b8","html_url":"https://github.com/manifoldfinance/qAbiEncode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/manifoldfinance/qAbiEncode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2FqAbiEncode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2FqAbiEncode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2FqAbiEncode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2FqAbiEncode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manifoldfinance","download_url":"https://codeload.github.com/manifoldfinance/qAbiEncode/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2FqAbiEncode/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261756769,"owners_count":23205160,"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":["blockchain","ethereum","kdb","kdb-library","keccak","q"],"created_at":"2024-11-23T09:28:12.443Z","updated_at":"2025-06-24T21:10:04.488Z","avatar_url":"https://github.com/manifoldfinance.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qAbiEncode\nKDB+ library for abi encoding ethereum functions. Specifications at:\n\nhttps://docs.soliditylang.org/en/v0.5.3/abi-spec.html\n\nSupports encoding of static and dynamic types. Fixed types have not been included as they are not currently used in our application.\n\n## Install\nDownload repo contents and compile C library e.g.\n```shell\n$ git clone https://github.com/manifoldfinance/qAbiEncode.git\n$ cd qAbiEncode\n$ make\n```\n\n## Usage\nCall .abi.encode, passing function signature and values i.e.\n\n```q\nq)\\l abi.q\nq).abi.encode[\"sam(bytes,bool,uint256[])\";(\"dave\";1b;(1 2 3))]\n0xa5643bf20000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000464617665000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003\n\n```\n\nCompare results with,\nhttps://docs.soliditylang.org/en/v0.5.3/abi-spec.html\n\nor\n\nhttps://abi.hashex.org/\n\n## qKeccak256\nEthereum Keccak C library for kdb+ integration. Ethereum sha3 differs from modern sha3 in the padding constant; \n\npadding (keccak) = 0x01\n\npadding (sha3) = 0x06\n\nModified from the original sha3 library at:\n\nhttps://github.com/mjosaarinen/tiny_sha3\nby Dr. Markku-Juhani O. Saarinen\n\nbased on Keccak algo:\nhttps://keccak.team/keccak_specs_summary.html\n\n### Keccak Usage\n\n```q\nq)sha3: `qKeccak 2:(`qKeccak256;2)\nq)sha3[\"sam(bytes,bool,uint256[])\";count \"sam(bytes,bool,uint256[])\"]\n0xa5643bf27e2786816613d3eeb0b62650200b5a98766dfcfd4428f296fb56d043\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanifoldfinance%2Fqabiencode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanifoldfinance%2Fqabiencode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanifoldfinance%2Fqabiencode/lists"}