https://github.com/jian-yu/hsnjs
The JavaScript Lib for HSN wallet
https://github.com/jian-yu/hsnjs
Last synced: 3 months ago
JSON representation
The JavaScript Lib for HSN wallet
- Host: GitHub
- URL: https://github.com/jian-yu/hsnjs
- Owner: jian-yu
- License: mit
- Created: 2019-11-20T02:13:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T19:08:20.000Z (over 2 years ago)
- Last Synced: 2025-02-08T06:35:36.833Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 153 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HSN JavaScript Library
*Transplant from [Cosmostation](https://github.com/cosmostation/cosmosjs) and Developing by [HSN](https://www.hsn.link/)*
## Installation
### NPM
```shell
npm install hsnjs
```### Import
```javascript
const HSN = require('hsnjs');
```### Usage
#### local
1. Generate mnemonic
```javascript
const HSN = require('hsnjs');
...
const hsn = HSN.network("https://hsn.link","hsn");
let mnemonic = hsn.genMnemonic();
console.log(mnemonic)
//entry age emotion elbow output paper nut pumpkin eagle fancy indicate inspire
```2. Get address from mnemonic
```javascript
const HSN = require('hsnjs');
...
const hsn = HSN.network("https://hsn.link","hsn");
let address = hsn.getAddress(mnemonic);
console.log(address);
//hsn1jqs9tu58ws7n0h9sxg0qjaurcskmyrjcqn72je
```3. Get Prikey from mnemonic
```javascript
const HSN = require('hsnjs');
...
const hsn = HSN.network("https://hsn.link","hsn");
let priKey = hsn.getECPairPriv(mnemonic)
//other code
```Get account infomation from HSN LCD
```javascript
const HSN = require('hsnjs');
...
const hsn = HSN.network("https://hsn.link","hsn");
hsn.getAccounts(address).then(data =>{
console.log("the account_number is ",data.value.account_number);
console.log("the sequence is ",data.value.sequence);
//more data.value
})
```> The response jsons maybe found in [HSN-LCD-API](https://documenter.getpostman.com/view/1975930/SVfNuUWc?version=latest)
#### Msg
- MsgSend
```javascript
let stdSignMsg = hsn.NewStdMsg({
type: "cosmos-sdk/MsgSend",
from_address: address,
to_address: "hsn1jqs9tu58ws7n0h9sxg0qjaurcskmyrjcqn72je",
amountDenom: "hsn",
amount: 1000000,
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```- MsgDelegate
```javascript
let stdSignMsg = hsn.NewStdMsg({
type: "cosmos-sdk/MsgDelegate",
delegator_address: address,
validator_address: "hsnvaloper1clpqr4nrk4khgkxj78fcwwh6dl3uw4epsluffn",
amountDenom: "hsn",
amount: 1000000,
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```- MsgUndelegate
```javascript
let stdSignMsg = hsn.NewStdMsg({
type: "cosmos-sdk/MsgUndelegate",
delegator_address: address,
validator_address: "hsnvaloper1clpqr4nrk4khgkxj78fcwwh6dl3uw4epsluffn",
amountDenom: "hsn",
amount: 1000000,
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```- MsgWithdrawDelegationReward
```javascript
let stdSignMsg = hsn..NewStdMsg({
type: "cosmos-sdk/MsgWithdrawDelegationReward",
delegator_address: address,
validator_address: "hsnvaloper1clpqr4nrk4khgkxj78fcwwh6dl3uw4epsluffn",
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```- MsgSubmitProposal
```javascript
let stdSignMsg = hsn.NewStdMsg({
type: "cosmos-sdk/MsgSubmitProposal",
title: "Activate the Community Pool",
description: "hsnhub is coming",
initialDepositDenom: "hsn",
initialDepositAmount: 1000000,
proposal_type: "Text",
proposer: address,
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```- MsgDeposit
```javascript
let stdSignMsg = hsn.NewStdMsg({
type: "cosmos-sdk/MsgDeposit",
depositor: address,
proposal_id: 1,
amountDenom: "hsn",
amount: 1000000,
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```- MsgBeginRedelegate
```javascript
let stdSignMsg =hsn.NewStdMsg({
type: "cosmos-sdk/MsgBeginRedelegate",
delegator_address: address,
validator_src_address: "hsnvaloper1clpqr4nrk4khgkxj78fcwwh6dl3uw4epsluffn",
validator_dst_address: "hsnvaloper1ec3p6a75mqwkv33zt543n6cnxqwun37rr5xlqv",
amountDenom: "hsn",
amount: 1000000,
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```- MsgModifyWithdrawAddress
```javascript
let stdSignMsg = hsn.NewStdMsg({
type: "cosmos-sdk/MsgModifyWithdrawAddress",
delegator_address: address,
withdraw_address: "hsn1jqs9tu58ws7n0h9sxg0qjaurcskmyrjcqn72je",
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```- MsgVote
```javascript
let stdSignMsg = hsn.NewStdMsg({
type: "cosmos-sdk/MsgVote",
voter: address,
proposal_id: 1,
option: "Yes", // Yes, No, NowithVeto, Abstain
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
```## Example
Here is a complete transfer process:
```javascript
const HSN = require('hsnjs');
...
const hsn = HSN.network("https://hsn.link","hsn");
hsn.getAccounts(address).then(data =>{
let stdSignMsg = hsn.NewStdMsg({
type: "cosmos-sdk/MsgSend",
from_address: address,
to_address: "hsn1jqs9tu58ws7n0h9sxg0qjaurcskmyrjcqn72je",
amountDenom: "hsn",
amount: 1000000,
feeDenom: "hsn",
fee: 5000,
gas: 200000,
memo: "",
account_number: data.value.account_number,
sequence: data.value.sequence
});
});
//...
const signedTx = hsn.sign(stdSignMsg, privKey);//the privKey could generate by your mnemonic
cosmos.broadcast(signedTx).then(response => {
//do something after broadcasting the Tx
});
```> Other functions are coming!