lunesjs 1.5.8 → 1.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ export { transferTokenFactory } from "./client/transactions/transfer/service.transfer";
2
+ export { accountFactory } from "./client/wallet/service.account";
3
+ export { WalletTypes } from "./client/wallet/wallet.types";
4
+ import cryptoUtils from "./utils/crypto";
5
+ export default cryptoUtils;
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WalletTypes = exports.accountFactory = exports.transferTokenFactory = void 0;
7
+ var service_transfer_1 = require("./client/transactions/transfer/service.transfer");
8
+ Object.defineProperty(exports, "transferTokenFactory", { enumerable: true, get: function () { return service_transfer_1.transferTokenFactory; } });
9
+ var service_account_1 = require("./client/wallet/service.account");
10
+ Object.defineProperty(exports, "accountFactory", { enumerable: true, get: function () { return service_account_1.accountFactory; } });
11
+ var wallet_types_1 = require("./client/wallet/wallet.types");
12
+ Object.defineProperty(exports, "WalletTypes", { enumerable: true, get: function () { return wallet_types_1.WalletTypes; } });
13
+ const crypto_1 = __importDefault(require("./utils/crypto"));
14
+ exports.default = crypto_1.default;
package/package.json CHANGED
@@ -1,9 +1,15 @@
1
1
  {
2
2
  "name": "lunesjs",
3
- "version": "1.5.8",
4
- "description": "Library for communication with nodes in mainnet or testnet of the lunes-blockchain network",
5
- "main": "dist/**/*.js",
6
- "types": "dist/**/*/*.d.ts",
3
+ "version": "1.5.9",
4
+ "description": "Li™brary for communication with nodes in mainnet or testnet of the lunes-blockchain network",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "/dist",
9
+ "LICENSE",
10
+ "README.md",
11
+ "package.json"
12
+ ],
7
13
  "repository": "git@git.lunes.io:blockchain/labs/lunesjs.git",
8
14
  "keywords": [
9
15
  "blockchain",
@@ -1,14 +0,0 @@
1
- {
2
- "name": "Existing Dockerfile",
3
- "context": "..",
4
- "dockerFile": "../Dockerfile",
5
- "settings": {},
6
- "extensions": [
7
- "donjayamanne.githistory",
8
- "esbenp.prettier-vscode",
9
- "mhutchie.git-graph",
10
- "Tyriar.sort-lines",
11
- "eamodio.gitlens"
12
- ],
13
- "postCreateCommand": "yarn install && yarn upgrade --latest"
14
- }
@@ -1,48 +0,0 @@
1
- name: Deploy
2
-
3
- on:
4
- push:
5
- branches: [main]
6
-
7
- jobs:
8
- lint:
9
- runs-on: ubuntu-latest
10
-
11
- steps:
12
- - uses: actions/checkout@v2
13
- - uses: actions/setup-node@v3
14
-
15
- - name: Install dependencies
16
- run: yarn install -D
17
-
18
- - name: Format Checker
19
- run: yarn fmtc
20
-
21
- test:
22
- runs-on: ubuntu-latest
23
- needs: lint
24
-
25
- steps:
26
- - uses: actions/checkout@v2
27
- - uses: actions/setup-node@v3
28
-
29
- - name: Install dependencies
30
- run: yarn install -D
31
-
32
- - name: Format Checker
33
- run: yarn test
34
-
35
- deploy-npm:
36
- runs-on: ubuntu-latest
37
- needs: [lint, test]
38
-
39
- steps:
40
- - uses: actions/checkout@v1
41
- - uses: actions/setup-node@v1
42
- with:
43
- node-version: 14
44
- - run: yarn install
45
- - run: yarn build
46
- - uses: JS-DevTools/npm-publish@v1
47
- with:
48
- token: ${{ secrets.NPM_TOKEN }}
@@ -1,35 +0,0 @@
1
- name: Lint & Test
2
-
3
- on:
4
- push:
5
- branches-ignore: [main]
6
- pull_request:
7
- branches: [main]
8
-
9
- jobs:
10
- lint:
11
- runs-on: ubuntu-latest
12
-
13
- steps:
14
- - uses: actions/checkout@v2
15
- - uses: actions/setup-node@v3
16
-
17
- - name: Install dependencies
18
- run: yarn install -D
19
-
20
- - name: Format Checker
21
- run: yarn fmtc
22
-
23
- test:
24
- runs-on: ubuntu-latest
25
- needs: lint
26
-
27
- steps:
28
- - uses: actions/checkout@v2
29
- - uses: actions/setup-node@v3
30
-
31
- - name: Install dependencies
32
- run: yarn install -D
33
-
34
- - name: Format Checker
35
- run: yarn test
@@ -1,21 +0,0 @@
1
- image: node:14.18.2-alpine3.14
2
-
3
- stages:
4
- - test
5
-
6
- before_script:
7
- - yarn install
8
-
9
- CreateReportTests:
10
- stage: test
11
- script:
12
- - yarn test
13
- artifacts:
14
- when: always
15
- reports:
16
- junit: junit.xml
17
-
18
- LintChecker:
19
- stage: test
20
- script:
21
- - yarn fmt
@@ -1,13 +0,0 @@
1
- # Bug Issue _Error Name_
2
-
3
- ## Expected behavior
4
-
5
- ## Actual behavior
6
-
7
- ## Steps for do **Error Name**
8
-
9
- ## Your Setup
10
-
11
- - Version Application
12
- - OS Version
13
- - And more...
@@ -1,5 +0,0 @@
1
- # Proposal Issue _Name_
2
-
3
- ## _What_ should this issue solve?
4
-
5
- ## _How_ should this issue solve?
@@ -1,7 +0,0 @@
1
- ## MR template
2
-
3
- - [ ] CODE WITHOUT TEST WILL BE REJECTED
4
-
5
- - [ ] CODE WITHOUT DOCS WILL BE REJECTED
6
-
7
- - [ ] COMMITS OUTSIDE THE CONVENTIONAL WILL BE REJECTED
package/.prettierignore DELETED
@@ -1 +0,0 @@
1
- dist/*
package/.prettierrc.yml DELETED
@@ -1,3 +0,0 @@
1
- tabWidth: 4
2
- semi: false
3
- trailingComma: none
package/CONTRIBUTING.md DELETED
@@ -1,51 +0,0 @@
1
- # CONTRIBUTING
2
-
3
- ## What is the workflow?
4
-
5
- 1. Create and describe your **proposal/bug** in an _issue_.
6
- 2. Create a new **branch** and **merge request** with the pattern `1-my-feature`.
7
- 3. Commit your code to the commit convention.
8
-
9
- ---
10
-
11
- ## Convention of Commits and Semantic Version
12
-
13
- ### **Commit Structure**
14
-
15
- ```
16
- type(escope): short description
17
-
18
- What does the modification do?
19
- why was it modified?
20
-
21
- #issue
22
- ```
23
-
24
- - **fix** Fix a bug
25
- - **add** Add a new feature
26
- - **remove** Remove a peace of code
27
- - **deprecate** compatibility break
28
- - **update** Update any thing. e.g. feature, piece, refact
29
-
30
- ### **Semantic Version**
31
-
32
- - **deprecate** -> _Major_
33
- - **add** -> _Minor_
34
- - **fix** -> _Patch_
35
-
36
- ---
37
-
38
- ## References
39
-
40
- - [Good Practices](https://bestpractices.coreinfrastructure.org/pt-BR)
41
- - [Semantic Versioning](https://semver.org/lang/pt-BR/)
42
- - [More about Versioning](http://www.modelcvs.org/versioning/)
43
- - [Versioning Automate](https://bhuwanupadhyay.github.io/2020/04/applying-semantic-versioning-with-git-repository/)
44
- - [Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits)
45
- - [Default Angular Commit](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines)
46
- - [Global hook for repositories](https://docs.gitlab.com/ce/administration/server_hooks.html#set-a-global-server-hook-for-all-repositories)
47
- - [More about Commits](https://chris.beams.io/posts/git-commit/)
48
- - [Quick Actions for Commits](https://docs.gitlab.com/ee/user/project/quick_actions.html)
49
- - [Commits examples](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#)
50
- - [Full Tutorial Add Convetional Commit as default](https://prahladyeri.com/blog/2019/06/how-to-enforce-conventional-commit-messages-using-git-hooks.html)
51
- - [Create a global git commit hook](https://coderwall.com/p/jp7d5q/create-a-global-git-commit-hook)
package/Dockerfile DELETED
@@ -1,6 +0,0 @@
1
- FROM node:16-alpine
2
-
3
- RUN apk --update --upgrade add git openssh curl zsh
4
- RUN sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
5
-
6
- RUN npm install -g npm@latest
package/jest.config.js DELETED
@@ -1,11 +0,0 @@
1
- /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2
- const root = "./"
3
-
4
- module.exports = {
5
- reporters: ["default", "jest-junit"],
6
- rootDir: root,
7
- displayName: "based-tests",
8
- testMatch: ["<rootDir>/test/**/*.test.ts"],
9
- testEnvironment: "node",
10
- preset: "ts-jest"
11
- }
@@ -1,7 +0,0 @@
1
- import { WalletTypes } from "../wallet/wallet.types"
2
-
3
- export interface BaseTransaction {
4
- sign(privateKey: WalletTypes.PrivateKey): object
5
- transaction(): object
6
- send(): object
7
- }
@@ -1,11 +0,0 @@
1
- export namespace TransactionsTypes {
2
- export enum TransferToken {
3
- int = 4,
4
- fee = 1000000
5
- }
6
- export enum IssueToken {
7
- int = 5,
8
- fee = 1000000000
9
- }
10
- //...
11
- }
@@ -1,58 +0,0 @@
1
- import { TransactionsTypes } from "../transactions.types"
2
- import { WalletTypes } from "../../wallet/wallet.types"
3
- import { BaseTransaction } from "../BaseTransaction"
4
- import { ITransfer } from "./transfer.types"
5
- import validator from "./validator"
6
- import * as wasm from "lunesrs"
7
-
8
- class TransferToken implements BaseTransaction {
9
- private tx: ITransfer
10
- constructor(tx: ITransfer) {
11
- this.tx = tx
12
- }
13
-
14
- transaction(): ITransfer {
15
- return this.tx
16
- }
17
-
18
- sign(privateKey: WalletTypes.PrivateKey): ITransfer {
19
- this.tx.signature = validator.sign(privateKey, this.tx)
20
- return this.tx
21
- }
22
-
23
- async send() {
24
- validator.send(this.tx)
25
- }
26
- }
27
-
28
- export function transferTokenFactory(
29
- senderPublicKey: string,
30
- recipient: string,
31
- amount: number,
32
- assetId?: string,
33
- chain?: WalletTypes.Chain,
34
- timestamp?: number,
35
- feeAsset?: string,
36
- fee?: number
37
- ): TransferToken {
38
- const chain_id = chain != undefined ? chain : WalletTypes.Chain.Mainnet
39
- if (
40
- false == validator.ready(senderPublicKey, recipient, amount, chain_id)
41
- ) {
42
- throw new Error("dados invalidos")
43
- }
44
- return new TransferToken({
45
- senderPublicKey: senderPublicKey,
46
- recipient: recipient,
47
- amount: amount,
48
- sender: wasm.arrayToBase58(
49
- wasm.toAddress(1, chain_id, wasm.base58ToArray(senderPublicKey))
50
- ),
51
- timestamp: timestamp != undefined ? timestamp : new Date().getTime(),
52
- feeAsset: feeAsset != undefined ? feeAsset : "",
53
- assetId: assetId != undefined ? assetId : "",
54
- type: TransactionsTypes.TransferToken.int,
55
- fee: fee != undefined ? fee : TransactionsTypes.TransferToken.fee,
56
- signature: ""
57
- })
58
- }
@@ -1,12 +0,0 @@
1
- export interface ITransfer {
2
- senderPublicKey: string
3
- timestamp: number
4
- signature: string
5
- recipient: string
6
- feeAsset: string
7
- assetId: string
8
- amount: number
9
- sender: string
10
- type: number
11
- fee: number
12
- }
@@ -1,92 +0,0 @@
1
- import { WalletTypes } from "../../wallet/wallet.types"
2
- import { TransactionsTypes } from "../transactions.types"
3
- import cryptoUtils from "../../../utils/crypto"
4
- import { ITransfer } from "./transfer.types"
5
- import * as wasm from "lunesrs"
6
- import axios from "axios"
7
-
8
- const validator = {
9
- serialize: (
10
- senderPublicKey: string,
11
- assetId: string,
12
- feeAsset: string,
13
- timestamp: number,
14
- amount: number,
15
- fee: number,
16
- recipient: string
17
- ) => {
18
- const tokenId: Uint8Array =
19
- assetId != ""
20
- ? new Uint8Array([1, ...wasm.base58ToArray(assetId)])
21
- : new Uint8Array([0])
22
- const tokenFee: Uint8Array =
23
- feeAsset != ""
24
- ? new Uint8Array([1, ...wasm.base58ToArray(feeAsset)])
25
- : new Uint8Array([0])
26
-
27
- return new Uint8Array([
28
- ...[TransactionsTypes.TransferToken.int],
29
- ...wasm.base58ToArray(senderPublicKey),
30
- ...tokenId,
31
- ...tokenFee,
32
- ...wasm.serializeUInteger(BigInt(timestamp)),
33
- ...wasm.serializeUInteger(BigInt(amount)),
34
- ...wasm.serializeUInteger(BigInt(fee)),
35
- ...wasm.base58ToArray(recipient)
36
- ])
37
- },
38
- ready: (
39
- senderPublicKey: string,
40
- recipient: string,
41
- amount: number,
42
- chain: WalletTypes.Chain
43
- ): boolean => {
44
- const sender = wasm.arrayToBase58(
45
- wasm.toAddress(1, chain, wasm.base58ToArray(senderPublicKey))
46
- )
47
- if (amount <= 0) {
48
- return false
49
- } else if (
50
- !(
51
- cryptoUtils.validateAddress(sender, chain) === true &&
52
- cryptoUtils.validateAddress(recipient, chain) === true
53
- )
54
- ) {
55
- return false
56
- } else {
57
- return true
58
- }
59
- },
60
- sign: (privateKey: WalletTypes.PrivateKey, tx: ITransfer): string => {
61
- const message = validator.serialize(
62
- tx.senderPublicKey,
63
- tx.assetId,
64
- tx.feeAsset,
65
- tx.timestamp,
66
- tx.amount,
67
- tx.fee,
68
- tx.recipient
69
- )
70
-
71
- return cryptoUtils.fastSignature(
72
- privateKey,
73
- wasm.arrayToBase58(new Uint8Array(message))
74
- )
75
- },
76
- send: async (tx: ITransfer) => {
77
- await axios
78
- .request({
79
- url: "https://lunesnode.lunes.io/transactions/broadcast",
80
- method: "post",
81
- data: tx
82
- })
83
- .then((x) => {
84
- console.log(x)
85
- })
86
- .catch((error) => {
87
- console.error(error.response.data)
88
- })
89
- }
90
- }
91
-
92
- export default validator