lunesjs 1.5.3 → 1.5.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. package/.github/workflows/deploy.yml +19 -18
  2. package/.github/workflows/test.yml +17 -17
  3. package/Dockerfile +1 -4
  4. package/dist/client/transactions/BaseTransaction.d.ts +6 -0
  5. package/dist/client/transactions/BaseTransaction.js +2 -0
  6. package/dist/client/transactions/transactions.types.d.ts +10 -0
  7. package/dist/client/transactions/transactions.types.js +17 -0
  8. package/dist/client/transactions/transfer/service.transfer.d.ts +12 -0
  9. package/dist/client/transactions/transfer/service.transfer.js +78 -0
  10. package/dist/client/transactions/transfer/transfer.types.d.ts +12 -0
  11. package/dist/client/transactions/transfer/transfer.types.js +2 -0
  12. package/dist/client/transactions/transfer/validator.d.ts +9 -0
  13. package/dist/client/transactions/transfer/validator.js +93 -0
  14. package/dist/client/wallet/constants.d.ts +8 -0
  15. package/dist/client/wallet/constants.js +2064 -0
  16. package/dist/client/wallet/service.account.d.ts +20 -0
  17. package/dist/client/wallet/service.account.js +35 -0
  18. package/dist/client/wallet/wallet.types.d.ts +21 -0
  19. package/dist/client/wallet/wallet.types.js +11 -0
  20. package/dist/utils/crypto.d.ts +13 -0
  21. package/dist/utils/crypto.js +102 -0
  22. package/package.json +5 -3
  23. package/src/client/transactions/transfer/service.transfer.ts +15 -21
  24. package/src/client/transactions/transfer/validator.ts +13 -7
  25. package/src/client/wallet/service.account.ts +4 -4
  26. package/test/client/transactions/transfer/transfer.token.test.ts +10 -8
  27. package/tsconfig.json +12 -89
  28. package/docker/runner/Dockerfile +0 -22
@@ -6,31 +6,31 @@ on:
6
6
 
7
7
  jobs:
8
8
  lint:
9
- runs-on: ubuntu-latest
9
+ runs-on: ubuntu-latest
10
10
 
11
- steps:
12
- - uses: actions/checkout@v2
13
- - uses: actions/setup-node@v3
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - uses: actions/setup-node@v3
14
14
 
15
- - name: Install dependencies
16
- run: yarn install -D
15
+ - name: Install dependencies
16
+ run: yarn install -D
17
17
 
18
- - name: Format Checker
19
- run: yarn fmtc
18
+ - name: Format Checker
19
+ run: yarn fmtc
20
20
 
21
21
  test:
22
- runs-on: ubuntu-latest
23
- needs: lint
22
+ runs-on: ubuntu-latest
23
+ needs: lint
24
24
 
25
- steps:
26
- - uses: actions/checkout@v2
27
- - uses: actions/setup-node@v3
25
+ steps:
26
+ - uses: actions/checkout@v2
27
+ - uses: actions/setup-node@v3
28
28
 
29
- - name: Install dependencies
30
- run: yarn install -D
29
+ - name: Install dependencies
30
+ run: yarn install -D
31
31
 
32
- - name: Format Checker
33
- run: yarn test
32
+ - name: Format Checker
33
+ run: yarn test
34
34
 
35
35
  deploy-npm:
36
36
  runs-on: ubuntu-latest
@@ -40,8 +40,9 @@ jobs:
40
40
  - uses: actions/checkout@v1
41
41
  - uses: actions/setup-node@v1
42
42
  with:
43
- node-version: 16
43
+ node-version: 14
44
44
  - run: yarn install
45
+ - run: yarn build
45
46
  - uses: JS-DevTools/npm-publish@v1
46
47
  with:
47
48
  token: ${{ secrets.NPM_TOKEN }}
@@ -8,28 +8,28 @@ on:
8
8
 
9
9
  jobs:
10
10
  lint:
11
- runs-on: ubuntu-latest
11
+ runs-on: ubuntu-latest
12
12
 
13
- steps:
14
- - uses: actions/checkout@v2
15
- - uses: actions/setup-node@v3
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+ - uses: actions/setup-node@v3
16
16
 
17
- - name: Install dependencies
18
- run: yarn install -D
17
+ - name: Install dependencies
18
+ run: yarn install -D
19
19
 
20
- - name: Format Checker
21
- run: yarn fmtc
20
+ - name: Format Checker
21
+ run: yarn fmtc
22
22
 
23
23
  test:
24
- runs-on: ubuntu-latest
25
- needs: lint
24
+ runs-on: ubuntu-latest
25
+ needs: lint
26
26
 
27
- steps:
28
- - uses: actions/checkout@v2
29
- - uses: actions/setup-node@v3
27
+ steps:
28
+ - uses: actions/checkout@v2
29
+ - uses: actions/setup-node@v3
30
30
 
31
- - name: Install dependencies
32
- run: yarn install -D
31
+ - name: Install dependencies
32
+ run: yarn install -D
33
33
 
34
- - name: Format Checker
35
- run: yarn test
34
+ - name: Format Checker
35
+ run: yarn test
package/Dockerfile CHANGED
@@ -1,9 +1,6 @@
1
- FROM node:16.13.2-alpine3.14
1
+ FROM node:16-alpine
2
2
 
3
3
  RUN apk --update --upgrade add git openssh curl zsh
4
4
  RUN sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
5
5
 
6
6
  RUN npm install -g npm@latest
7
- RUN npm install -g commitizen
8
- RUN npm install -g --save-dev --save-exact prettier
9
- RUN npm install -g jest
@@ -0,0 +1,6 @@
1
+ import { WalletTypes } from "../wallet/wallet.types";
2
+ export interface BaseTransaction {
3
+ sign(privateKey: WalletTypes.PrivateKey): object;
4
+ transaction(): object;
5
+ send(): object;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ export declare namespace TransactionsTypes {
2
+ enum TransferToken {
3
+ int = 4,
4
+ fee = 1000000
5
+ }
6
+ enum IssueToken {
7
+ int = 5,
8
+ fee = 1000000000
9
+ }
10
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionsTypes = void 0;
4
+ var TransactionsTypes;
5
+ (function (TransactionsTypes) {
6
+ let TransferToken;
7
+ (function (TransferToken) {
8
+ TransferToken[TransferToken["int"] = 4] = "int";
9
+ TransferToken[TransferToken["fee"] = 1000000] = "fee";
10
+ })(TransferToken = TransactionsTypes.TransferToken || (TransactionsTypes.TransferToken = {}));
11
+ let IssueToken;
12
+ (function (IssueToken) {
13
+ IssueToken[IssueToken["int"] = 5] = "int";
14
+ IssueToken[IssueToken["fee"] = 1000000000] = "fee";
15
+ })(IssueToken = TransactionsTypes.IssueToken || (TransactionsTypes.IssueToken = {}));
16
+ //...
17
+ })(TransactionsTypes = exports.TransactionsTypes || (exports.TransactionsTypes = {}));
@@ -0,0 +1,12 @@
1
+ import { WalletTypes } from "../../wallet/wallet.types";
2
+ import { BaseTransaction } from "../BaseTransaction";
3
+ import { ITransfer } from "./transfer.types";
4
+ declare class TransferToken implements BaseTransaction {
5
+ private tx;
6
+ constructor(tx: ITransfer);
7
+ transaction(): ITransfer;
8
+ sign(privateKey: WalletTypes.PrivateKey): ITransfer;
9
+ send(): Promise<void>;
10
+ }
11
+ export declare function transferTokenFactory(senderPublicKey: string, recipient: string, amount: number, chain?: WalletTypes.Chain, timestamp?: number, feeAsset?: string, assetId?: string, fee?: number): TransferToken;
12
+ export {};
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.transferTokenFactory = void 0;
39
+ const transactions_types_1 = require("../transactions.types");
40
+ const wallet_types_1 = require("../../wallet/wallet.types");
41
+ const validator_1 = __importDefault(require("./validator"));
42
+ const wasm = __importStar(require("lunesrs"));
43
+ class TransferToken {
44
+ constructor(tx) {
45
+ this.tx = tx;
46
+ }
47
+ transaction() {
48
+ return this.tx;
49
+ }
50
+ sign(privateKey) {
51
+ this.tx.signature = validator_1.default.sign(privateKey, this.tx);
52
+ return this.tx;
53
+ }
54
+ send() {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ validator_1.default.send(this.tx);
57
+ });
58
+ }
59
+ }
60
+ function transferTokenFactory(senderPublicKey, recipient, amount, chain, timestamp, feeAsset, assetId, fee) {
61
+ const chain_id = chain != undefined ? chain : wallet_types_1.WalletTypes.Chain.Mainnet;
62
+ if (false == validator_1.default.ready(senderPublicKey, recipient, amount, chain_id)) {
63
+ throw new Error("dados invalidos");
64
+ }
65
+ return new TransferToken({
66
+ senderPublicKey: senderPublicKey,
67
+ recipient: recipient,
68
+ amount: amount,
69
+ sender: wasm.arrayToBase58(wasm.toAddress(1, chain_id, wasm.base58ToArray(senderPublicKey))),
70
+ timestamp: timestamp != undefined ? timestamp : new Date().getTime(),
71
+ feeAsset: feeAsset != undefined ? feeAsset : "",
72
+ assetId: assetId != undefined ? assetId : "",
73
+ type: transactions_types_1.TransactionsTypes.TransferToken.int,
74
+ fee: fee != undefined ? fee : transactions_types_1.TransactionsTypes.TransferToken.fee,
75
+ signature: ""
76
+ });
77
+ }
78
+ exports.transferTokenFactory = transferTokenFactory;
@@ -0,0 +1,12 @@
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
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { WalletTypes } from "../../wallet/wallet.types";
2
+ import { ITransfer } from "./transfer.types";
3
+ declare const validator: {
4
+ serialize: (senderPublicKey: string, assetId: string, feeAsset: string, timestamp: number, amount: number, fee: number, recipient: string) => Uint8Array;
5
+ ready: (senderPublicKey: string, recipient: string, amount: number, chain: WalletTypes.Chain) => boolean;
6
+ sign: (privateKey: WalletTypes.PrivateKey, tx: ITransfer) => string;
7
+ send: (tx: ITransfer) => Promise<void>;
8
+ };
9
+ export default validator;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const transactions_types_1 = require("../transactions.types");
39
+ const crypto_1 = __importDefault(require("../../../utils/crypto"));
40
+ const wasm = __importStar(require("lunesrs"));
41
+ const axios_1 = __importDefault(require("axios"));
42
+ const validator = {
43
+ serialize: (senderPublicKey, assetId, feeAsset, timestamp, amount, fee, recipient) => {
44
+ const tokenId = assetId != ""
45
+ ? new Uint8Array([1, ...wasm.base58ToArray(assetId)])
46
+ : new Uint8Array([0]);
47
+ const tokenFee = feeAsset != ""
48
+ ? new Uint8Array([1, ...wasm.base58ToArray(feeAsset)])
49
+ : new Uint8Array([0]);
50
+ return new Uint8Array([
51
+ ...[transactions_types_1.TransactionsTypes.TransferToken.int],
52
+ ...wasm.base58ToArray(senderPublicKey),
53
+ ...tokenId,
54
+ ...tokenFee,
55
+ ...wasm.serializeUInteger(BigInt(timestamp)),
56
+ ...wasm.serializeUInteger(BigInt(amount)),
57
+ ...wasm.serializeUInteger(BigInt(fee)),
58
+ ...wasm.base58ToArray(recipient)
59
+ ]);
60
+ },
61
+ ready: (senderPublicKey, recipient, amount, chain) => {
62
+ const sender = wasm.arrayToBase58(wasm.toAddress(1, chain, wasm.base58ToArray(senderPublicKey)));
63
+ if (amount <= 0) {
64
+ return false;
65
+ }
66
+ else if (!(crypto_1.default.validateAddress(sender, chain) === true &&
67
+ crypto_1.default.validateAddress(recipient, chain) === true)) {
68
+ return false;
69
+ }
70
+ else {
71
+ return true;
72
+ }
73
+ },
74
+ sign: (privateKey, tx) => {
75
+ const message = validator.serialize(tx.senderPublicKey, tx.assetId, tx.feeAsset, tx.timestamp, tx.amount, tx.fee, tx.recipient);
76
+ return crypto_1.default.fastSignature(privateKey, wasm.arrayToBase58(new Uint8Array(message)));
77
+ },
78
+ send: (tx) => __awaiter(void 0, void 0, void 0, function* () {
79
+ yield axios_1.default
80
+ .request({
81
+ url: "https://lunesnode.lunes.io/transactions/broadcast",
82
+ method: "post",
83
+ data: tx
84
+ })
85
+ .then((x) => {
86
+ console.log(x);
87
+ })
88
+ .catch((error) => {
89
+ console.error(error.response.data);
90
+ });
91
+ })
92
+ };
93
+ exports.default = validator;
@@ -0,0 +1,8 @@
1
+ declare const walletConstants: {
2
+ addressVersion: number;
3
+ addressChecksumLength: number;
4
+ addressHashLength: number;
5
+ addressLength: number;
6
+ wordsList: string[];
7
+ };
8
+ export default walletConstants;