{"id":24067882,"url":"https://github.com/waykichain/wicc-wallet-utils-js","last_synced_at":"2025-04-24T00:07:22.731Z","repository":{"id":48024420,"uuid":"163787383","full_name":"WaykiChain/wicc-wallet-utils-js","owner":"WaykiChain","description":"WaykiChain Wallet Library for Offline Operations written in JavaScript","archived":false,"fork":false,"pushed_at":"2023-01-01T04:21:24.000Z","size":2310,"stargazers_count":1,"open_issues_count":8,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-24T00:07:16.952Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WaykiChain.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}},"created_at":"2019-01-02T02:58:47.000Z","updated_at":"2020-09-21T08:11:58.000Z","dependencies_parsed_at":"2023-01-31T20:46:10.909Z","dependency_job_id":null,"html_url":"https://github.com/WaykiChain/wicc-wallet-utils-js","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaykiChain%2Fwicc-wallet-utils-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaykiChain%2Fwicc-wallet-utils-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaykiChain%2Fwicc-wallet-utils-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaykiChain%2Fwicc-wallet-utils-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WaykiChain","download_url":"https://codeload.github.com/WaykiChain/wicc-wallet-utils-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250535099,"owners_count":21446508,"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":"2025-01-09T12:39:30.288Z","updated_at":"2025-04-24T00:07:22.718Z","avatar_url":"https://github.com/WaykiChain.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wicc-wallet-utils-js v2.0\nOfficial JavaScript library that provides WICC Offline Wallet capabilities\n\n# Installation\n### CDN\n```html\n\u003cscript src=\"https://sw91.net/devops/wicc-wallet-utils/wicc-wallet-lib-2.0.0.js\"\u003e\u003c/script\u003e\n```\n### NPM\n```\nnpm install wicc-wallet-lib\n```\n# Usage\n```javascript\nconst { Wallet, WalletManager, WaykiTransaction, BaasClient } = require(\"wicc-wallet-lib\")\n```\n## Key Classes\n### Wallet —— Constructor of a blockchain wallet\n[Demo](demo/test-wallet.js)\n```javascript\nconst privKeyWIF = \"Y6J4aK6Wcs4A3Ex4HXdfjJ6ZsHpNZfjaS4B9w7xqEnmFEYMqQd13\"\nconst wallet = new Wallet(privKeyWIF) \n//{privateKey: 'Y6J4aK6Wcs4A3Ex4HXdfjJ6ZsHpNZfjaS4B9w7xqEnmFEYMqQd13', address: 'wLKf2NqwtHk3BfzK5wMDfbKYN1SC3weyR4' }\n```\n#### Instance Methods\n- **signMessage**\n\n    Message signature method\n\n```javascript\nconst msg = \"wicc test\"\nconst signTx = wallet.signMessage(msg) \n```\n- **publicKeyAsHex**\n\n    Get wallet public key\n\n```javascript\nconst pubKey = wallet.publicKeyAsHex()\n```\n\n### WalletManager —— Constructor of wallet management\n[Demo](demo/test-walletmanager.js)\n```javascript\nconst networkType = \"testnet\"\nvar walletManager = new WalletManager(networkType)\n```\n#### Instance Methods\n- **randomMnemonicCodes**\n\n    Generate a mnemonic randomly\n```javascript\nconst lang = \"ENGLISH\" // or CHINESE\nconst mnemonics = walletManager.randomMnemonicCodes(lang) \n//mnemonics = \"clinic dose kingdom fetch away industry squirrel cheese purchase mean slide mixed\"\n```\n- **switchMnemonicCodes**\n\n    Switching from mnemonics in the current language to mnemonics in another language, both can generate the same wallet\n```javascript\nvar mnemonics1 = walletManager.randomMnemonicCodes(\"ENGLISH\") \nvar wallet1 = walletManager.importWalletFromMnemonic(mnemonics)\n\nvar mnemonics2 = walletManager.switchMnemonicCodes(mnemonics1, \"CHINESE\") \nvar wallet2 = walletManager.importWalletFromMnemonic(mnemonics2)\n\nwallet1.address === wallet2.address\n```\n- **createWallet**\n\n    Create a blockchain wallet from valid mnemonics, returns a instance object of **Wallet**\n```javascript\nvar wallet = walletManager.createWallet(mnemonics)\n```\n- **importWalletFromMnemonic**\n\n    Import an existing wallet from its mnemonics \n```javascript\nvar wallet = walletManager.importWalletFromMnemonic(mnemonics)\n```\n- **importWalletFromPrivateKey**\n\n    Import an existing wallet from its private key \n```javascript\nvar wallet = walletManager.importWalletFromPrivateKey(privateKeyWIF)\n```\n\n### WaykiTransaction —— Constructor of transaction signature \n```javascript\nvar wallet = new Wallet(privKeyWIF) \nvar txParams = {\n  nTxType: 15, // transaction type\n  nValidHeight: 34400,    // create height\n  srcRegId: '0-1',    // sender's regId\n  appId: \"24555-1\",  // app regId\n  feeSymbol: \"WICC\",\n  coinSymbol: \"WUSD\",\n  fees: 1000000,         // fees pay for miner\n  amount: 8,              // amount of WICC to be sent to the app account\n  vContract: \"f018\"      // contract method, hex format string\n};\nvar transaction = new WaykiTransaction(txParams, wallet)\n```\n\n#### Instance Methods\n- **genRawTx**\n```javascript\nvar rawTx = transaction.genRawTx()\n```\n### List of all transactions\n| Transaction type  | nTxType  | Demo |\n| :------------ |:---------------:| -----:|\n| ACCOUNT_REGISTER_TX      | 2 | [test-registeraccounttx.js](demo/test-registeraccounttx.js) |\n| BCOIN_TRANSFER_TX      | 3 | [test-commontx.js](demo/test-commontx.js) |\n| LCONTRACT_INVOKE_TX      | 4 | [test-callcontracttx.js](demo/test-callcontracttx.js) |\n| LCONTRACT_DEPLOY_TX      | 5 | [test-registercontracttx.js](demo/test-registercontracttx.js) |\n| DELEGATE_VOTE_TX      | 6 | [test-delegatetx.js](demo/test-delegatetx.js) |\n| ASSET_ISSUE_TX      | 9 | [test-assetcreatetx.js](demo/test-assetcreatetx.js) |\n| ASSET_UPDATE_TX      | 10 | [test-assetupdatetx.js](demo/test-assetupdatetx.js) |\n| UCOIN_TRANSFER_TX      | 11 | [test-ucointransfertx.js](demo/test-ucointransfertx.js) |\n| UCOIN_CONTRACT_INVOKE_TX      | 15 | [test-ucontractinvoketx.js](demo/test-ucontractinvoketx.js) |\n| CDP_STAKE_TX      | 21 | [test-cdpstaketx.js](demo/test-cdpstaketx.js) |\n| CDP_REDEEMP_TX      | 22 | [test-cdpredeemtx.js](demo/test-cdpredeemtx.js) |\n| CDP_LIQUIDATE_TX      | 23 | [test-cdpliquidatetx.js](demo/test-cdpliquidatetx.js) |\n| DEX_LIMIT_BUY_ORDER_TX      | 84 | [test-dexbuylimitordertx.js](demo/test-dexbuylimitordertx.js) |\n| DEX_LIMIT_SELL_ORDER_TX      | 85 | [test-dexselllimitordertx.js](demo/test-dexselllimitordertx.js) |\n| DEX_MARKET_BUY_ORDER_TX      | 86 | [test-dexbuymarketordertx.js](demo/test-dexbuymarketordertx.js) |\n| DEX_MARKET_SELL_ORDER_TX      | 87 | [test-dexsellmarketordertx.js](demo/test-dexsellmarketordertx.js) |\n| DEX_CANCEL_ORDER_TX      | 88 | [test-dexcancelordertx.js](demo/test-dexcancelordertx.js) |\n\n### BaasClient —— Contains some of Baas (Blockchain as a Service) API; HTTP requerts\n[Demo](demo/test-baasclient.js)\n```javascript\nvar baasClient = new BaasClient(BaasUrl)\n```\n\n| BaasNetwork  | BaasUrl  | Remarks |\n| :------------ |:---------------:| -----:|\n| TestNetwork      | https://baas-test.wiccdev.org/v2/api | [documentation](https://baas-test.wiccdev.org/v2/api/swagger-ui.html#!/) |\n| ProdNetwork     | https://baas.wiccdev.org/v2/api        |   [documentation](https://baas.wiccdev.org/v2/api/swagger-ui.html#!/) |\n\n#### Instance Methods\n- **getAccountInfo**\n\n    Get information of a specific wallet address, returns a Promise\n```javascript\nconst address = \"whiRBzMprDzY5wq3oPsHvAnyDV8ggYNaZE\"\nconst response = baasClient.getAccountInfo(address)\nresponse.then(data =\u003e {\n    console.log(data)\n})\n```\n- **getBlockCount**\n\n    Get the current block height, returns a Promise\n```javascript\nconst response = baasClient.getBlockCount()\nresponse.then(data =\u003e {\n    console.log(data)\n})\n```\n- **sendRawTx**\n\n    Broadcast transaction signature data to blockchain, returns a Promise\n```javascript\nconst rawTx = \"0301818c760200011476c6077b5679c8ef47f4243ca25537d5c3f7fad883e1ac009f80e7eeef000d74657374207472616e73666572473045022100e2853b6dfb8a892659de4a43181f8a02e983cca319def2457ea7b0a14c8966ea0220733ce86e172bff8aba750d104b6f39b737c897df7c33413142bd13b2415ce2f2\"\nconst response = baasClient.sendRawTx(rawTx)\nresponse.then(data =\u003e {\n    console.log(data)\n})\n```\n- **decodeRawTx**\n\n    Get the original transaction detail based on the signature data, returns a Promise\n```javascript\nconst rawTx = \"0301818c760200011476c6077b5679c8ef47f4243ca25537d5c3f7fad883e1ac009f80e7eeef000d74657374207472616e73666572473045022100e2853b6dfb8a892659de4a43181f8a02e983cca319def2457ea7b0a14c8966ea0220733ce86e172bff8aba750d104b6f39b737c897df7c33413142bd13b2415ce2f2\"\nconst response = baasClient.decodeRawTx(rawTx)\nresponse.then(data =\u003e {\n    console.log(data)\n})\n```\n\n# Development \u0026 Tests\n\n```sh\n$ git clone https://github.com/WaykiChain/wicc-wallet-utils-js.git\n$ cd wicc-wallet-utils-js\n$ npm install\n```\n\n### Build (you will get a UMD module):\n- Execution Command\n```sh\n$ npm run build \n```\n- Output\n```\ndist/wicc-wallet-lib-2.0.js\n```\n## Examples\n\nRun all the Demos:\n\n```sh\n$ npm run test\n```\n# Reference Projects\n[bitpay/bitcore-lib](https://github.com/bitpay/bitcore-lib)\n\n# Contact us\nTo get community assistance and ask for help with implementation questions\n\n* Telegram group: https://t.me/waykichaindeveng\n* Wechat ID: wjlT2D2\n\n# License\n\nCode released under [the MIT license](https://github.com/WaykiChain/wicc-wallet-utils-js/blob/master/LICENSE).\n\n\u0026copy; 2017-present WaykiChain, Inc. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaykichain%2Fwicc-wallet-utils-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaykichain%2Fwicc-wallet-utils-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaykichain%2Fwicc-wallet-utils-js/lists"}