lunesjs 1.5.2 → 1.5.5
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.
- package/.github/workflows/deploy.yml +23 -22
- package/.github/workflows/test.yml +18 -4
- package/Dockerfile +1 -4
- package/README.md +2 -2
- package/dist/client/transactions/BaseTransaction.d.ts +6 -0
- package/dist/client/transactions/BaseTransaction.js +2 -0
- package/dist/client/transactions/transactions.types.d.ts +10 -0
- package/dist/client/transactions/transactions.types.js +17 -0
- package/dist/client/transactions/transfer/service.transfer.d.ts +12 -0
- package/dist/client/transactions/transfer/service.transfer.js +78 -0
- package/dist/client/transactions/transfer/transfer.types.d.ts +12 -0
- package/dist/client/transactions/transfer/transfer.types.js +2 -0
- package/dist/client/transactions/transfer/validator.d.ts +9 -0
- package/dist/client/transactions/transfer/validator.js +93 -0
- package/dist/client/wallet/constants.d.ts +8 -0
- package/dist/client/wallet/constants.js +2064 -0
- package/dist/client/wallet/service.account.d.ts +20 -0
- package/dist/client/wallet/service.account.js +35 -0
- package/dist/client/wallet/wallet.types.d.ts +21 -0
- package/dist/client/wallet/wallet.types.js +11 -0
- package/dist/utils/crypto.d.ts +13 -0
- package/dist/utils/crypto.js +102 -0
- package/package.json +4 -2
- package/src/client/transactions/transfer/service.transfer.ts +15 -21
- package/src/client/transactions/transfer/validator.ts +13 -7
- package/src/client/wallet/service.account.ts +4 -4
- package/test/client/transactions/transfer/transfer.token.test.ts +10 -8
- package/tsconfig.json +12 -89
- package/.github/workflows/fmt.yml +0 -21
- package/docker/runner/Dockerfile +0 -22
@@ -1,47 +1,48 @@
|
|
1
|
-
name: Deploy
|
1
|
+
name: Deploy
|
2
2
|
|
3
3
|
on:
|
4
4
|
push:
|
5
|
-
branches: [
|
5
|
+
branches: [main]
|
6
6
|
|
7
7
|
jobs:
|
8
|
-
|
9
|
-
|
8
|
+
lint:
|
9
|
+
runs-on: ubuntu-latest
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v2
|
13
|
+
- uses: actions/setup-node@v3
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
- name: Install dependencies
|
16
|
+
run: yarn install -D
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
- name: Format Checker
|
19
|
+
run: yarn fmtc
|
20
20
|
|
21
21
|
test:
|
22
|
-
|
23
|
-
|
22
|
+
runs-on: ubuntu-latest
|
23
|
+
needs: lint
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
steps:
|
26
|
+
- uses: actions/checkout@v2
|
27
|
+
- uses: actions/setup-node@v3
|
28
28
|
|
29
|
-
|
30
|
-
|
29
|
+
- name: Install dependencies
|
30
|
+
run: yarn install -D
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
- name: Format Checker
|
33
|
+
run: yarn test
|
34
34
|
|
35
35
|
deploy-npm:
|
36
36
|
runs-on: ubuntu-latest
|
37
|
-
needs: [
|
37
|
+
needs: [lint, test]
|
38
38
|
|
39
39
|
steps:
|
40
40
|
- uses: actions/checkout@v1
|
41
41
|
- uses: actions/setup-node@v1
|
42
42
|
with:
|
43
|
-
node-version:
|
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 }}
|
@@ -1,14 +1,28 @@
|
|
1
|
-
name: Test
|
1
|
+
name: Lint & Test
|
2
2
|
|
3
3
|
on:
|
4
4
|
push:
|
5
|
-
branches: [main]
|
5
|
+
branches-ignore: [main]
|
6
6
|
pull_request:
|
7
7
|
branches: [main]
|
8
8
|
|
9
9
|
jobs:
|
10
|
-
|
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:
|
11
24
|
runs-on: ubuntu-latest
|
25
|
+
needs: lint
|
12
26
|
|
13
27
|
steps:
|
14
28
|
- uses: actions/checkout@v2
|
@@ -17,5 +31,5 @@ jobs:
|
|
17
31
|
- name: Install dependencies
|
18
32
|
run: yarn install -D
|
19
33
|
|
20
|
-
- name:
|
34
|
+
- name: Format Checker
|
21
35
|
run: yarn test
|
package/Dockerfile
CHANGED
@@ -1,9 +1,6 @@
|
|
1
|
-
FROM node:16
|
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
|
package/README.md
CHANGED
@@ -8,8 +8,8 @@
|
|
8
8
|
|
9
9
|
- Built from the WebAssembly Library for communication with nodes on the mainnet or testnet of the lunes-blockchain network Allows automation of asset submission, final issuance of token reissue, leasing, registration and creation of a new wallet.
|
10
10
|
|
11
|
-
[](https://github.com/lunes-platform/lunesjs/actions/workflows/deploy.yml)
|
12
|
+
[](https://github.com/lunes-platform/lunesjs/actions/workflows/test.yml)
|
13
13
|
[](https://github.com/lunes-platform/lunesjs/stargazers)
|
14
14
|
[](https://github.com/lunes-platform/lunesjs/releases)
|
15
15
|
[](LICENSE)
|
@@ -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,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;
|