UNPKG

hermes-wrap-test

Version:

hermes protocol javascript sdk for client side

253 lines (223 loc) 4.11 kB
# hermes-js hermes-wrap JS SDK to implement a client for Hermes protocol ## Installation ```console $ npm install hermes-wrap-test ``` ## Developing ### Build With - [Stellar SDK](https://www.stellar.org/developers/js-stellar-sdk/reference/) - [Ethereum JS](https://github.com/ethereumjs) - [Web3](https://github.com/ethereum/web3.js/) ### Prerequisites - Knowledge of Hermes Contract [here](https://gitlab.com/lightnet-cn/hermes-contract) - Knowledge of EER-2 (Evrynet Enhancement Request) [here](https://gitlab.com/lightnet-cn/hermes-client) - User needs to `setApprovalForAll(address _operator, bool _approved)` and let a custodian contract as an operator. - For custom credit contract, user needs to `SetMinter(uint256 indexed _typeID, address _minter);` and let let a custodian contract as a minter. ### Building For local development ```console $ yarn run build:local ``` or ```console $ yarn run build:development ``` For production use ```console $ yarn run build:production ``` ## Versioning We use a [SemVer](https://semver.org/) for versioning. Please see the [release](https://gitlab.com/lightnet-cn/hermes-js/releases). ## Tests For unit testing ```console $ yarn run test ``` For unit testing with coverage ```console $ yarn run test-coverage ``` Jest as well as Enzyme has been used for testing libraries. ## Style guide Eslint has been used for linting as well as prettier - For Lint check, run: ```console $ yarn run lint ``` - For prettier format, run: ```console $ yarn run format ``` ## Api Reference Please see [this link](https://gitlab.com/lightnet-cn/hermes-js) ## Function examples You can find example at hermes-js example #### Get available assets - Request ``` evry.getWhitelistAssets() ``` - Response ``` assets: [ { code: "XLM", issuer: "", decimal: 7, typeID: "1" } ] ``` #### Get user's Evrynet account balance - Request ``` evry.getBalance({ address: "0x1234", asset: { code: "EVRY", issuer: "issuer", decimal: 18, typeID: "2" } }) ``` - Response ``` balance: 10 ``` #### Get user's Evrynet account nonce - Request ``` evry.getNonce({ address: "0x1234" }) ``` - Response ``` nonce: "1234" ``` #### Get user's Stellar account balance - Request ``` stellar.getBalance({ address: "stellar public key", asset: { code: "vTHB", issuer: "issuer", decimal: 2, typeID: "3" } }) ``` - Response ``` balance: "10" ``` #### Get user's Stellar account trustlines - Request ``` stellar.getTrustlines({ address: "stellar public key" }) ``` - Response ``` assets:[ { code: "EVRY", issuer: "issuer" } ] ``` #### Get user's Stellar account sequence number - Request ``` stellar.getSequenceNumber({ address: "stellar public key" }) ``` - Response ``` sequenceNumber: "1234" ``` #### Generate stellar lock transaction - Request ``` stellar.newLockTx({ secret: "stellar private key", amount: "1234", asset: { code: "XLM", issuer: "" } }) ``` - Response ``` xdr: "" ``` #### Generate stellar unlock transaction - Request ``` stellar.newUnlockTx({ secret: "stellar private key", amount: "1234", asset: { code: "XLM", issuer: "" } }) ``` - Response ``` xdr: "" ``` #### Generate evrynet lock transaction - Request ``` evry.newLockTx({ secret: "evrynet private key", amount: "1234", asset: { code: "XLM", issuer: "", decimal: 7, typeID: "1" } }) ``` - Response ``` rawTx: "0xabcd" ``` #### Generate evrynet unlock transaction - Request ``` evry.newUnlockTx({ secret: "evrynet private key", amount: "1234", asset: { code: "XLM", issuer: "", decimal: 7, typeID: "1" } }) ``` - Response ``` rawTx: "0xabcd" ``` #### Transfer asset from stellar to evrynet - Request ``` hermes.toEvrynet({ rawTx: "0xabcd", xdr: "", }) ``` - Response ``` { stellarTxHash: "0x1234", evrynetTxHash: "0x1234" } ``` #### Transfer asset from evrynet to stellar - Request ``` hermes.toStellar({ rawTx: "0xabcd", xdr: "", }) ``` - Response ``` { stellarTxHash: "0x1234", evrynetTxHash: "0x1234" } ```