Compare commits

..

14 Commits

Author SHA1 Message Date
Dark Sun 5dcfeeb535 Release 1.16.8 2023-11-02 14:55:39 +03:00
Dark Sun cbe40ed00f dist 2023-11-02 14:55:23 +03:00
Dark Sun 8f0533b8fb dist 2023-11-02 14:54:04 +03:00
Dark Sun 83413781f5 Release 1.16.6 2023-11-02 14:26:35 +03:00
Dark Sun 56bfcaf2bf dist 2023-11-02 14:20:01 +03:00
Dark Sun b3290710de Release 1.16.5 2023-11-02 14:13:57 +03:00
Dark Sun 4c843aa801 dist 2023-11-02 14:13:39 +03:00
Dark Sun df09b29be2 Release 1.16.4 2023-10-04 18:00:56 +05:00
Dark Sun 4db063aefb dist 2023-10-04 17:58:02 +05:00
Dark Sun e2c36196c0 Release 1.16.3 2023-10-04 17:53:56 +05:00
Dark Sun c8e11e53a8 dist 2023-10-04 17:52:41 +05:00
Dark Sun 71a05d7425 update 2023-10-04 17:51:10 +05:00
Dark Sun 522754d444 generateKeyPay (but only wif) 2023-10-04 12:37:25 +05:00
Dark Sun cb03a39184 update 2023-09-27 21:39:51 +03:00
36 changed files with 3430 additions and 508 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
# coopjs
# coopJS
CoopJS is universal core library for cooperatives.
@@ -7,7 +7,7 @@ It is based on a singleton model that accepts a configuration and provides acces
## Installation
```bash
yarn add coopjs>
yarn add https://github.com/DICoop/coopJS#<version from tags, ex. v1.0.0-beta3>
```
Create a chainsMain.ts file with the following content:
+6
View File
@@ -10,4 +10,10 @@ export declare const makeAccount: (username: string, mnemonic: string, wif: stri
export declare const makeAccountByMnemonic: (username: string, mnemonic: string) => Promise<AccountData>;
export declare const makeAccountByWif: (username: string, wif: string) => Promise<AccountData>;
export declare const generateAccount: () => Promise<AccountData>;
export declare const checkPublicKey: (accountData: any, permissionName: string, publicKeyToCheck: string) => Promise<boolean>;
export declare const generateKeyPair: () => Promise<{
mnemonic: string;
private_key: any;
public_key: any;
}>;
//# sourceMappingURL=index.d.ts.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../ts/src/auth/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,aAAoB,MAAM,4CAU1D,CAAA;AAGD,eAAO,MAAM,uBAAuB,aAAoB,MAAM,iBAK7D,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,WAAW,aAAc,MAAM,YAAY,MAAM,OAAO,MAAM,OAAO,MAAM,KAAG,WAO1F,CAAA;AAED,eAAO,MAAM,qBAAqB,aAAoB,MAAM,YAAY,MAAM,yBAO7E,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAoB,MAAM,OAAO,MAAM,yBAQnE,CAAA;AAED,eAAO,MAAM,eAAe,QAAa,QAAQ,WAAW,CAW3D,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../ts/src/auth/index.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,oBAAoB,aAAoB,MAAM,4CAU1D,CAAA;AAED,eAAO,MAAM,uBAAuB,aAAoB,MAAM,iBAK7D,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,WAAW,aAAc,MAAM,YAAY,MAAM,OAAO,MAAM,OAAO,MAAM,KAAG,WAO1F,CAAA;AAED,eAAO,MAAM,qBAAqB,aAAoB,MAAM,YAAY,MAAM,yBAO7E,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAoB,MAAM,OAAO,MAAM,yBAQnE,CAAA;AAED,eAAO,MAAM,eAAe,QAAa,QAAQ,WAAW,CAW3D,CAAA;AAED,eAAO,MAAM,cAAc,gBAAuB,GAAG,kBAAkB,MAAM,oBAAoB,MAAM,KAAG,QAAQ,OAAO,CAWxH,CAAA;AAGD,eAAO,MAAM,eAAe;;;;EAU3B,CAAA"}
+74 -2
View File
File diff suppressed because one or more lines are too long
+6
View File
@@ -0,0 +1,6 @@
export declare const encode_b58: (hex_number: string) => string;
export declare const sha256: (hex_str: string) => Promise<string>;
export declare const ab2b: (ab: ArrayBuffer) => number[];
export declare const to_hex: (bs: number[]) => string;
export declare const base64url_decode: (value: string) => ArrayBuffer;
//# sourceMappingURL=crypto.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../../ts/src/auth/keys/crypto.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,eAAgB,MAAM,KAAG,MAmB/C,CAAA;AAED,eAAO,MAAM,MAAM,YAAmB,MAAM,KAAG,QAAQ,MAAM,CAM5D,CAAC;AAEF,eAAO,MAAM,IAAI,OAAQ,WAAW,KAAG,MAAM,EAK5C,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,MAAM,EAAE,KAAG,MAOrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,WAOhD,CAAC"}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/// <reference path="../../../ts/src/eos-api.d.ts" />
export { makePublicKeyByMnemonic, generateAccount, AccountData, makeAccountByMnemonic, makeAccountByWif, } from './auth';
export { makePublicKeyByMnemonic, generateAccount, AccountData, makeAccountByMnemonic, makeAccountByWif, generateKeyPair, checkPublicKey } from './auth';
export { isValidWif } from './auth/keys/ecc';
export { default as ChainsSingleton } from './blockchain/chainsSingleton';
export { default as ReadApi } from './blockchain/readApi';
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,gBAAgB,GACnB,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,6BAA6B,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACjB,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,6BAA6B,CAAA"}
+4 -2
View File
@@ -4,12 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseContract = exports.ReadApi = exports.ChainsSingleton = exports.isValidWif = exports.makeAccountByWif = exports.makeAccountByMnemonic = exports.generateAccount = exports.makePublicKeyByMnemonic = void 0;
exports.BaseContract = exports.ReadApi = exports.ChainsSingleton = exports.isValidWif = exports.checkPublicKey = exports.generateKeyPair = exports.makeAccountByWif = exports.makeAccountByMnemonic = exports.generateAccount = exports.makePublicKeyByMnemonic = void 0;
var auth_1 = require("./auth");
Object.defineProperty(exports, "makePublicKeyByMnemonic", { enumerable: true, get: function () { return auth_1.makePublicKeyByMnemonic; } });
Object.defineProperty(exports, "generateAccount", { enumerable: true, get: function () { return auth_1.generateAccount; } });
Object.defineProperty(exports, "makeAccountByMnemonic", { enumerable: true, get: function () { return auth_1.makeAccountByMnemonic; } });
Object.defineProperty(exports, "makeAccountByWif", { enumerable: true, get: function () { return auth_1.makeAccountByWif; } });
Object.defineProperty(exports, "generateKeyPair", { enumerable: true, get: function () { return auth_1.generateKeyPair; } });
Object.defineProperty(exports, "checkPublicKey", { enumerable: true, get: function () { return auth_1.checkPublicKey; } });
var ecc_1 = require("./auth/keys/ecc");
Object.defineProperty(exports, "isValidWif", { enumerable: true, get: function () { return ecc_1.isValidWif; } });
var chainsSingleton_1 = require("./blockchain/chainsSingleton");
@@ -18,4 +20,4 @@ var readApi_1 = require("./blockchain/readApi");
Object.defineProperty(exports, "ReadApi", { enumerable: true, get: function () { return __importDefault(readApi_1).default; } });
var base_1 = require("./blockchain/contracts/base");
Object.defineProperty(exports, "BaseContract", { enumerable: true, get: function () { return __importDefault(base_1).default; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVDQUF1Qzs7Ozs7O0FBRXZDLCtCQU1lO0FBTFgsK0dBQUEsdUJBQXVCLE9BQUE7QUFDdkIsdUdBQUEsZUFBZSxPQUFBO0FBRWYsNkdBQUEscUJBQXFCLE9BQUE7QUFDckIsd0dBQUEsZ0JBQWdCLE9BQUE7QUFHcEIsdUNBQTBDO0FBQWxDLGlHQUFBLFVBQVUsT0FBQTtBQUVsQixnRUFBdUU7QUFBL0QsbUlBQUEsT0FBTyxPQUFtQjtBQUVsQyxnREFBdUQ7QUFBL0MsbUhBQUEsT0FBTyxPQUFXO0FBRTFCLG9EQUFtRTtBQUEzRCxxSEFBQSxPQUFPLE9BQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vZW9zLWFwaS5kLnRzXCIgLz5cblxuZXhwb3J0IHtcbiAgICBtYWtlUHVibGljS2V5QnlNbmVtb25pYyxcbiAgICBnZW5lcmF0ZUFjY291bnQsXG4gICAgQWNjb3VudERhdGEsXG4gICAgbWFrZUFjY291bnRCeU1uZW1vbmljLFxuICAgIG1ha2VBY2NvdW50QnlXaWYsXG59IGZyb20gJy4vYXV0aCdcblxuZXhwb3J0IHtpc1ZhbGlkV2lmfSBmcm9tICcuL2F1dGgva2V5cy9lY2MnXG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBDaGFpbnNTaW5nbGV0b259IGZyb20gJy4vYmxvY2tjaGFpbi9jaGFpbnNTaW5nbGV0b24nXG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBSZWFkQXBpfSBmcm9tICcuL2Jsb2NrY2hhaW4vcmVhZEFwaSdcbmV4cG9ydCB7VGFibGVDb2RlQ29uZmlnfSBmcm9tICcuL2Jsb2NrY2hhaW4vdHlwZXMnXG5leHBvcnQge2RlZmF1bHQgYXMgQmFzZUNvbnRyYWN0fSBmcm9tICcuL2Jsb2NrY2hhaW4vY29udHJhY3RzL2Jhc2UnXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVDQUF1Qzs7Ozs7O0FBRXZDLCtCQVFlO0FBUFgsK0dBQUEsdUJBQXVCLE9BQUE7QUFDdkIsdUdBQUEsZUFBZSxPQUFBO0FBRWYsNkdBQUEscUJBQXFCLE9BQUE7QUFDckIsd0dBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsdUdBQUEsZUFBZSxPQUFBO0FBQ2Ysc0dBQUEsY0FBYyxPQUFBO0FBR2xCLHVDQUEwQztBQUFsQyxpR0FBQSxVQUFVLE9BQUE7QUFFbEIsZ0VBQXVFO0FBQS9ELG1JQUFBLE9BQU8sT0FBbUI7QUFFbEMsZ0RBQXVEO0FBQS9DLG1IQUFBLE9BQU8sT0FBVztBQUUxQixvREFBbUU7QUFBM0QscUhBQUEsT0FBTyxPQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL2Vvcy1hcGkuZC50c1wiIC8+XG5cbmV4cG9ydCB7XG4gICAgbWFrZVB1YmxpY0tleUJ5TW5lbW9uaWMsXG4gICAgZ2VuZXJhdGVBY2NvdW50LFxuICAgIEFjY291bnREYXRhLFxuICAgIG1ha2VBY2NvdW50QnlNbmVtb25pYyxcbiAgICBtYWtlQWNjb3VudEJ5V2lmLFxuICAgIGdlbmVyYXRlS2V5UGFpcixcbiAgICBjaGVja1B1YmxpY0tleVxufSBmcm9tICcuL2F1dGgnXG5cbmV4cG9ydCB7aXNWYWxpZFdpZn0gZnJvbSAnLi9hdXRoL2tleXMvZWNjJ1xuXG5leHBvcnQge2RlZmF1bHQgYXMgQ2hhaW5zU2luZ2xldG9ufSBmcm9tICcuL2Jsb2NrY2hhaW4vY2hhaW5zU2luZ2xldG9uJ1xuXG5leHBvcnQge2RlZmF1bHQgYXMgUmVhZEFwaX0gZnJvbSAnLi9ibG9ja2NoYWluL3JlYWRBcGknXG5leHBvcnQge1RhYmxlQ29kZUNvbmZpZ30gZnJvbSAnLi9ibG9ja2NoYWluL3R5cGVzJ1xuZXhwb3J0IHtkZWZhdWx0IGFzIEJhc2VDb250cmFjdH0gZnJvbSAnLi9ibG9ja2NoYWluL2NvbnRyYWN0cy9iYXNlJ1xuIl19
+6
View File
@@ -10,4 +10,10 @@ export declare const makeAccount: (username: string, mnemonic: string, wif: stri
export declare const makeAccountByMnemonic: (username: string, mnemonic: string) => Promise<AccountData>;
export declare const makeAccountByWif: (username: string, wif: string) => Promise<AccountData>;
export declare const generateAccount: () => Promise<AccountData>;
export declare const checkPublicKey: (accountData: any, permissionName: string, publicKeyToCheck: string) => Promise<boolean>;
export declare const generateKeyPair: () => Promise<{
mnemonic: string;
private_key: any;
public_key: any;
}>;
//# sourceMappingURL=index.d.ts.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../ts/src/auth/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,aAAoB,MAAM,4CAU1D,CAAA;AAGD,eAAO,MAAM,uBAAuB,aAAoB,MAAM,iBAK7D,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,WAAW,aAAc,MAAM,YAAY,MAAM,OAAO,MAAM,OAAO,MAAM,KAAG,WAO1F,CAAA;AAED,eAAO,MAAM,qBAAqB,aAAoB,MAAM,YAAY,MAAM,yBAO7E,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAoB,MAAM,OAAO,MAAM,yBAQnE,CAAA;AAED,eAAO,MAAM,eAAe,QAAa,QAAQ,WAAW,CAW3D,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../ts/src/auth/index.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,oBAAoB,aAAoB,MAAM,4CAU1D,CAAA;AAED,eAAO,MAAM,uBAAuB,aAAoB,MAAM,iBAK7D,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,WAAW,aAAc,MAAM,YAAY,MAAM,OAAO,MAAM,OAAO,MAAM,KAAG,WAO1F,CAAA;AAED,eAAO,MAAM,qBAAqB,aAAoB,MAAM,YAAY,MAAM,yBAO7E,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAoB,MAAM,OAAO,MAAM,yBAQnE,CAAA;AAED,eAAO,MAAM,eAAe,QAAa,QAAQ,WAAW,CAW3D,CAAA;AAED,eAAO,MAAM,cAAc,gBAAuB,GAAG,kBAAkB,MAAM,oBAAoB,MAAM,KAAG,QAAQ,OAAO,CAWxH,CAAA;AAGD,eAAO,MAAM,eAAe;;;;EAU3B,CAAA"}
+60 -1
View File
File diff suppressed because one or more lines are too long
+6
View File
@@ -0,0 +1,6 @@
export declare const encode_b58: (hex_number: string) => string;
export declare const sha256: (hex_str: string) => Promise<string>;
export declare const ab2b: (ab: ArrayBuffer) => number[];
export declare const to_hex: (bs: number[]) => string;
export declare const base64url_decode: (value: string) => ArrayBuffer;
//# sourceMappingURL=crypto.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../../ts/src/auth/keys/crypto.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,eAAgB,MAAM,KAAG,MAmB/C,CAAA;AAED,eAAO,MAAM,MAAM,YAAmB,MAAM,KAAG,QAAQ,MAAM,CAM5D,CAAC;AAEF,eAAO,MAAM,IAAI,OAAQ,WAAW,KAAG,MAAM,EAK5C,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,MAAM,EAAE,KAAG,MAOrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,WAOhD,CAAC"}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/// <reference path="../../../ts/src/eos-api.d.ts" />
export { makePublicKeyByMnemonic, generateAccount, AccountData, makeAccountByMnemonic, makeAccountByWif, } from './auth';
export { makePublicKeyByMnemonic, generateAccount, AccountData, makeAccountByMnemonic, makeAccountByWif, generateKeyPair, checkPublicKey } from './auth';
export { isValidWif } from './auth/keys/ecc';
export { default as ChainsSingleton } from './blockchain/chainsSingleton';
export { default as ReadApi } from './blockchain/readApi';
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,gBAAgB,GACnB,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,6BAA6B,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACjB,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,6BAA6B,CAAA"}
+2 -2
View File
@@ -1,7 +1,7 @@
/// <reference path="./eos-api.d.ts" />
export { makePublicKeyByMnemonic, generateAccount, makeAccountByMnemonic, makeAccountByWif, } from './auth';
export { makePublicKeyByMnemonic, generateAccount, makeAccountByMnemonic, makeAccountByWif, generateKeyPair, checkPublicKey } from './auth';
export { isValidWif } from './auth/keys/ecc';
export { default as ChainsSingleton } from './blockchain/chainsSingleton';
export { default as ReadApi } from './blockchain/readApi';
export { default as BaseContract } from './blockchain/contracts/base';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBRXZDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsZUFBZSxFQUVmLHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSxRQUFRLENBQUE7QUFFZixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUE7QUFFMUMsT0FBTyxFQUFDLE9BQU8sSUFBSSxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQTtBQUV2RSxPQUFPLEVBQUMsT0FBTyxJQUFJLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFBO0FBRXZELE9BQU8sRUFBQyxPQUFPLElBQUksWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9lb3MtYXBpLmQudHNcIiAvPlxuXG5leHBvcnQge1xuICAgIG1ha2VQdWJsaWNLZXlCeU1uZW1vbmljLFxuICAgIGdlbmVyYXRlQWNjb3VudCxcbiAgICBBY2NvdW50RGF0YSxcbiAgICBtYWtlQWNjb3VudEJ5TW5lbW9uaWMsXG4gICAgbWFrZUFjY291bnRCeVdpZixcbn0gZnJvbSAnLi9hdXRoJ1xuXG5leHBvcnQge2lzVmFsaWRXaWZ9IGZyb20gJy4vYXV0aC9rZXlzL2VjYydcblxuZXhwb3J0IHtkZWZhdWx0IGFzIENoYWluc1NpbmdsZXRvbn0gZnJvbSAnLi9ibG9ja2NoYWluL2NoYWluc1NpbmdsZXRvbidcblxuZXhwb3J0IHtkZWZhdWx0IGFzIFJlYWRBcGl9IGZyb20gJy4vYmxvY2tjaGFpbi9yZWFkQXBpJ1xuZXhwb3J0IHtUYWJsZUNvZGVDb25maWd9IGZyb20gJy4vYmxvY2tjaGFpbi90eXBlcydcbmV4cG9ydCB7ZGVmYXVsdCBhcyBCYXNlQ29udHJhY3R9IGZyb20gJy4vYmxvY2tjaGFpbi9jb250cmFjdHMvYmFzZSdcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBRXZDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsZUFBZSxFQUVmLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGNBQWMsRUFDakIsTUFBTSxRQUFRLENBQUE7QUFFZixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUE7QUFFMUMsT0FBTyxFQUFDLE9BQU8sSUFBSSxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQTtBQUV2RSxPQUFPLEVBQUMsT0FBTyxJQUFJLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFBO0FBRXZELE9BQU8sRUFBQyxPQUFPLElBQUksWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9lb3MtYXBpLmQudHNcIiAvPlxuXG5leHBvcnQge1xuICAgIG1ha2VQdWJsaWNLZXlCeU1uZW1vbmljLFxuICAgIGdlbmVyYXRlQWNjb3VudCxcbiAgICBBY2NvdW50RGF0YSxcbiAgICBtYWtlQWNjb3VudEJ5TW5lbW9uaWMsXG4gICAgbWFrZUFjY291bnRCeVdpZixcbiAgICBnZW5lcmF0ZUtleVBhaXIsXG4gICAgY2hlY2tQdWJsaWNLZXlcbn0gZnJvbSAnLi9hdXRoJ1xuXG5leHBvcnQge2lzVmFsaWRXaWZ9IGZyb20gJy4vYXV0aC9rZXlzL2VjYydcblxuZXhwb3J0IHtkZWZhdWx0IGFzIENoYWluc1NpbmdsZXRvbn0gZnJvbSAnLi9ibG9ja2NoYWluL2NoYWluc1NpbmdsZXRvbidcblxuZXhwb3J0IHtkZWZhdWx0IGFzIFJlYWRBcGl9IGZyb20gJy4vYmxvY2tjaGFpbi9yZWFkQXBpJ1xuZXhwb3J0IHtUYWJsZUNvZGVDb25maWd9IGZyb20gJy4vYmxvY2tjaGFpbi90eXBlcydcbmV4cG9ydCB7ZGVmYXVsdCBhcyBCYXNlQ29udHJhY3R9IGZyb20gJy4vYmxvY2tjaGFpbi9jb250cmFjdHMvYmFzZSdcbiJdfQ==
+6
View File
@@ -10,4 +10,10 @@ export declare const makeAccount: (username: string, mnemonic: string, wif: stri
export declare const makeAccountByMnemonic: (username: string, mnemonic: string) => Promise<AccountData>;
export declare const makeAccountByWif: (username: string, wif: string) => Promise<AccountData>;
export declare const generateAccount: () => Promise<AccountData>;
export declare const checkPublicKey: (accountData: any, permissionName: string, publicKeyToCheck: string) => Promise<boolean>;
export declare const generateKeyPair: () => Promise<{
mnemonic: string;
private_key: any;
public_key: any;
}>;
//# sourceMappingURL=index.d.ts.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../ts/src/auth/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,aAAoB,MAAM,4CAU1D,CAAA;AAGD,eAAO,MAAM,uBAAuB,aAAoB,MAAM,iBAK7D,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,WAAW,aAAc,MAAM,YAAY,MAAM,OAAO,MAAM,OAAO,MAAM,KAAG,WAO1F,CAAA;AAED,eAAO,MAAM,qBAAqB,aAAoB,MAAM,YAAY,MAAM,yBAO7E,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAoB,MAAM,OAAO,MAAM,yBAQnE,CAAA;AAED,eAAO,MAAM,eAAe,QAAa,QAAQ,WAAW,CAW3D,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../ts/src/auth/index.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,oBAAoB,aAAoB,MAAM,4CAU1D,CAAA;AAED,eAAO,MAAM,uBAAuB,aAAoB,MAAM,iBAK7D,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,WAAW,aAAc,MAAM,YAAY,MAAM,OAAO,MAAM,OAAO,MAAM,KAAG,WAO1F,CAAA;AAED,eAAO,MAAM,qBAAqB,aAAoB,MAAM,YAAY,MAAM,yBAO7E,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAoB,MAAM,OAAO,MAAM,yBAQnE,CAAA;AAED,eAAO,MAAM,eAAe,QAAa,QAAQ,WAAW,CAW3D,CAAA;AAED,eAAO,MAAM,cAAc,gBAAuB,GAAG,kBAAkB,MAAM,oBAAoB,MAAM,KAAG,QAAQ,OAAO,CAWxH,CAAA;AAGD,eAAO,MAAM,eAAe;;;;EAU3B,CAAA"}
+71 -1
View File
File diff suppressed because one or more lines are too long
+6
View File
@@ -0,0 +1,6 @@
export declare const encode_b58: (hex_number: string) => string;
export declare const sha256: (hex_str: string) => Promise<string>;
export declare const ab2b: (ab: ArrayBuffer) => number[];
export declare const to_hex: (bs: number[]) => string;
export declare const base64url_decode: (value: string) => ArrayBuffer;
//# sourceMappingURL=crypto.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../../ts/src/auth/keys/crypto.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,eAAgB,MAAM,KAAG,MAmB/C,CAAA;AAED,eAAO,MAAM,MAAM,YAAmB,MAAM,KAAG,QAAQ,MAAM,CAM5D,CAAC;AAEF,eAAO,MAAM,IAAI,OAAQ,WAAW,KAAG,MAAM,EAK5C,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,MAAM,EAAE,KAAG,MAOrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,WAOhD,CAAC"}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/// <reference path="../../../ts/src/eos-api.d.ts" />
export { makePublicKeyByMnemonic, generateAccount, AccountData, makeAccountByMnemonic, makeAccountByWif, } from './auth';
export { makePublicKeyByMnemonic, generateAccount, AccountData, makeAccountByMnemonic, makeAccountByWif, generateKeyPair, checkPublicKey } from './auth';
export { isValidWif } from './auth/keys/ecc';
export { default as ChainsSingleton } from './blockchain/chainsSingleton';
export { default as ReadApi } from './blockchain/readApi';
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,gBAAgB,GACnB,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,6BAA6B,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACjB,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,6BAA6B,CAAA"}
+2 -2
View File
@@ -1,7 +1,7 @@
/// <reference path="./eos-api.d.ts" />
export { makePublicKeyByMnemonic, generateAccount, makeAccountByMnemonic, makeAccountByWif, } from './auth';
export { makePublicKeyByMnemonic, generateAccount, makeAccountByMnemonic, makeAccountByWif, generateKeyPair, checkPublicKey } from './auth';
export { isValidWif } from './auth/keys/ecc';
export { default as ChainsSingleton } from './blockchain/chainsSingleton';
export { default as ReadApi } from './blockchain/readApi';
export { default as BaseContract } from './blockchain/contracts/base';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBRXZDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsZUFBZSxFQUVmLHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSxRQUFRLENBQUE7QUFFZixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUE7QUFFMUMsT0FBTyxFQUFDLE9BQU8sSUFBSSxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQTtBQUV2RSxPQUFPLEVBQUMsT0FBTyxJQUFJLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFBO0FBRXZELE9BQU8sRUFBQyxPQUFPLElBQUksWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9lb3MtYXBpLmQudHNcIiAvPlxuXG5leHBvcnQge1xuICAgIG1ha2VQdWJsaWNLZXlCeU1uZW1vbmljLFxuICAgIGdlbmVyYXRlQWNjb3VudCxcbiAgICBBY2NvdW50RGF0YSxcbiAgICBtYWtlQWNjb3VudEJ5TW5lbW9uaWMsXG4gICAgbWFrZUFjY291bnRCeVdpZixcbn0gZnJvbSAnLi9hdXRoJ1xuXG5leHBvcnQge2lzVmFsaWRXaWZ9IGZyb20gJy4vYXV0aC9rZXlzL2VjYydcblxuZXhwb3J0IHtkZWZhdWx0IGFzIENoYWluc1NpbmdsZXRvbn0gZnJvbSAnLi9ibG9ja2NoYWluL2NoYWluc1NpbmdsZXRvbidcblxuZXhwb3J0IHtkZWZhdWx0IGFzIFJlYWRBcGl9IGZyb20gJy4vYmxvY2tjaGFpbi9yZWFkQXBpJ1xuZXhwb3J0IHtUYWJsZUNvZGVDb25maWd9IGZyb20gJy4vYmxvY2tjaGFpbi90eXBlcydcbmV4cG9ydCB7ZGVmYXVsdCBhcyBCYXNlQ29udHJhY3R9IGZyb20gJy4vYmxvY2tjaGFpbi9jb250cmFjdHMvYmFzZSdcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBRXZDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsZUFBZSxFQUVmLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGNBQWMsRUFDakIsTUFBTSxRQUFRLENBQUE7QUFFZixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUE7QUFFMUMsT0FBTyxFQUFDLE9BQU8sSUFBSSxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQTtBQUV2RSxPQUFPLEVBQUMsT0FBTyxJQUFJLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFBO0FBRXZELE9BQU8sRUFBQyxPQUFPLElBQUksWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9lb3MtYXBpLmQudHNcIiAvPlxuXG5leHBvcnQge1xuICAgIG1ha2VQdWJsaWNLZXlCeU1uZW1vbmljLFxuICAgIGdlbmVyYXRlQWNjb3VudCxcbiAgICBBY2NvdW50RGF0YSxcbiAgICBtYWtlQWNjb3VudEJ5TW5lbW9uaWMsXG4gICAgbWFrZUFjY291bnRCeVdpZixcbiAgICBnZW5lcmF0ZUtleVBhaXIsXG4gICAgY2hlY2tQdWJsaWNLZXlcbn0gZnJvbSAnLi9hdXRoJ1xuXG5leHBvcnQge2lzVmFsaWRXaWZ9IGZyb20gJy4vYXV0aC9rZXlzL2VjYydcblxuZXhwb3J0IHtkZWZhdWx0IGFzIENoYWluc1NpbmdsZXRvbn0gZnJvbSAnLi9ibG9ja2NoYWluL2NoYWluc1NpbmdsZXRvbidcblxuZXhwb3J0IHtkZWZhdWx0IGFzIFJlYWRBcGl9IGZyb20gJy4vYmxvY2tjaGFpbi9yZWFkQXBpJ1xuZXhwb3J0IHtUYWJsZUNvZGVDb25maWd9IGZyb20gJy4vYmxvY2tjaGFpbi90eXBlcydcbmV4cG9ydCB7ZGVmYXVsdCBhcyBCYXNlQ29udHJhY3R9IGZyb20gJy4vYmxvY2tjaGFpbi9jb250cmFjdHMvYmFzZSdcbiJdfQ==
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "unicore",
"version": "1.16.2",
"version": "1.16.8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "unicore",
"version": "1.16.2",
"version": "1.16.8",
"license": "UNLICENSE",
"dependencies": {
"@jsdevtools/ono": "^7.1.3",
+4 -2
View File
@@ -1,6 +1,6 @@
{
"name": "coopjs",
"version": "1.16.2",
"version": "1.16.8",
"type": "commonjs",
"main": "./dist/cjs/src/index.js",
"types": "./dist/cjs/src/index.d.ts",
@@ -18,7 +18,7 @@
"test": "mocha --ui qunit",
"testall": "mocha --ui qunit dist/test",
"prepack": "npm run clean && npm run build",
"release": "yarn prepack && git add . && git commit -a -m 'dist' && release-it && npm publish"
"release": "yarn prepack && git add . && git commit -a -m 'dist' && release-it"
},
"license": "UNLICENSE",
"private": true,
@@ -54,7 +54,9 @@
"eos-encrypt": "^1.0.2",
"eosjs": "^22.1.0",
"eosjs-api": "^7.0.4",
"hash.js": "^1.1.7",
"isomorphic-fetch": "^3.0.0",
"ripemd160-js": "^2.0.2",
"text-encoding": "^0.7.0",
"tiny-secp256k1": "^2.2.3",
"util": "^0.12.4",
+87 -1
View File
@@ -6,6 +6,11 @@ import { hdNodeToPublicKeyBuffer, hdNodeToPrivateKeyBuffer, hdToFirstHdNode, see
import {hdPublicToEccPublicKey, hdPrivateToWif, isValidWif, privateKeyToPublic, wifToPrivateKey} from './keys/ecc'
import { generateAccountName } from "./utils";
import {to_hex, ab2b, sha256, encode_b58, base64url_decode} from "./keys/crypto";
import hash from 'hash.js';
const { subtle } = globalThis.crypto;
export const makeHdNodeByMnemonic = async (mnemonic: string) => {
if (!isValidMnemonic(mnemonic)) {
throw ono(new UniCoreMnemonicParseError('Invalid mnemonic'))
@@ -18,7 +23,6 @@ export const makeHdNodeByMnemonic = async (mnemonic: string) => {
return hdFirstNode
}
export const makePublicKeyByMnemonic = async (mnemonic: string) => {
const hdFirstNode = await makeHdNodeByMnemonic(mnemonic)
const hdPublicKeyBuffer = hdNodeToPublicKeyBuffer(hdFirstNode)
@@ -73,3 +77,85 @@ export const generateAccount = async (): Promise<AccountData> => {
return makeAccount(name, mnemonic, hdPrivateToWif(hdPrivateKeyBuffer), hdPublicToEccPublicKey(hdPublicKeyBuffer))
}
export const checkPublicKey = async (accountData: any, permissionName: string, publicKeyToCheck: string): Promise<boolean> => {
if (!accountData || !permissionName || !publicKeyToCheck) {
return false;
}
const permission = accountData.permissions.find((p: any) => p.perm_name === permissionName);
if (!permission) {
return false;
}
return permission.required_auth.keys.some((key: any) => key.key === publicKeyToCheck);
}
export const generateKeyPair = async() => {
const mnemonic = generateMnemonic()
const seed = await mnemonicToSeed(mnemonic)
const hdBase = seedToHd(seed)
const hdFirstNode = hdToFirstHdNode(hdBase)
const hdPublicKeyBuffer = hdNodeToPublicKeyBuffer(hdFirstNode)
const hdPrivateKeyBuffer = hdNodeToPrivateKeyBuffer(hdFirstNode)
return {mnemonic, private_key: hdPrivateToWif(hdPrivateKeyBuffer), public_key: hdPublicToEccPublicKey(hdPublicKeyBuffer)}
}
// export const generateKeyPair = async() => {
// const { privateKey, publicKey } = await subtle.generateKey(
// {
// name: "ECDSA",
// namedCurve: "P-256",
// },
// true,
// ["sign", "verify"]
// );
// let private_jwk = await subtle.exportKey("jwk", privateKey)
// let private_hex = to_hex(ab2b(base64url_decode(private_jwk.d!)))
// //SHA-256 hash with a 0x80 byte in front
// let private_m256 = await sha256('80'+ private_hex )
// //SHA-256 hash of the private key
// let private_sha256 = await sha256(private_m256)
// //first 4 bytes of the second SHA-256 hash
// let private_four = private_sha256.substr(0,8);
// //Base58 encode the binary data to get EOS private key
// let private_wif = encode_b58('80'+ private_hex + private_four)
// console.log("private_jwk: ", private_jwk)
// let public_jwk = await subtle.exportKey("jwk", publicKey);
// console.log("public_jwk: ", public_jwk)
// const x_binary = ab2b(base64url_decode(public_jwk.x!));
// const y_binary = ab2b(base64url_decode(public_jwk.y!));
// const public_binary = x_binary.concat(y_binary);
// console.log("public_binary: ", public_binary)
// const public_ripemd160 = hash.ripemd160().update(new Uint8Array(public_binary)).digest('hex');
// console.log("public_ripemd160: ", public_ripemd160)
// let checksum = public_ripemd160.substr(0, 8); // Первые 4 байта, но в hex формате
// let public_with_checksum = public_binary.concat(
// public_ripemd160.substr(0, 8).split('').map(x => parseInt(x, 16))
// );
// console.log("public_with_checksum: ", public_with_checksum)
// let public_base58 = encode_b58(public_with_checksum.map(x => x.toString(16)).join(''));
// console.log("public_base58: ", public_base58)
// let public_key = "PUB_R1_" + public_base58;
// console.log("public_key: ", public_key)
// return {private_wif, public_key}
// }
+53
View File
@@ -0,0 +1,53 @@
export const encode_b58 = (hex_number: string): string => {
const base58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; // Преобразовано в строку для удобства
let num = BigInt(`0x${hex_number}`);
const fifty8 = BigInt(58);
let remainder: BigInt;
let b58_encoded_buffer = '';
while (num > BigInt(0)) {
remainder = num % fifty8;
b58_encoded_buffer = base58[Number(remainder)] + b58_encoded_buffer; // Преобразование BigInt в number здесь допустимо, потому что remainder всегда будет меньше 58
num = num / fifty8;
}
while (hex_number.match(/^00/)) {
b58_encoded_buffer = '1' + b58_encoded_buffer;
hex_number = hex_number.substring(2);
}
return b58_encoded_buffer;
}
export const sha256 = async (hex_str: string): Promise<string> => {
const typedArray: Uint8Array = new Uint8Array(hex_str.match(/[\da-f]{2}/gi)!.map((h) => parseInt(h, 16)));
const hashBuffer: ArrayBuffer = await crypto.subtle.digest('SHA-256', typedArray);
const hashArray: number[] = Array.from(new Uint8Array(hashBuffer));
const hashHex: string = hashArray.map((bytes) => bytes.toString(16).padStart(2, '0')).join('');
return hashHex;
};
export const ab2b = (ab: ArrayBuffer): number[] => {
const buffer: number[] = [];
const view: Uint8Array = new Uint8Array(ab);
for (let i = 0; i < ab.byteLength; i++) buffer[i] = view[i];
return buffer;
};
export const to_hex = (bs: number[]): string => {
const encoded: string[] = [];
for (let i = 0; i < bs.length; i++) {
encoded.push('0123456789abcdef'[(bs[i] >> 4) & 15]);
encoded.push('0123456789abcdef'[bs[i] & 15]);
}
return encoded.join('');
};
export const base64url_decode = (value: string): ArrayBuffer => {
const m: number = value.length % 4;
return Uint8Array.from(atob(
value.replace(/-/g, '+')
.replace(/_/g, '/')
.padEnd(value.length + (m === 0 ? 0 : 4 - m), '=')
), (c: string) => c.charCodeAt(0)).buffer;
};
+2
View File
@@ -6,6 +6,8 @@ export {
AccountData,
makeAccountByMnemonic,
makeAccountByWif,
generateKeyPair,
checkPublicKey
} from './auth'
export {isValidWif} from './auth/keys/ecc'
+1
View File
@@ -6,6 +6,7 @@
"declarationMap": true,
"inlineSourceMap": true,
"inlineSources": true,
"noImplicitAny": true,
"lib": [
"es6",
"es2021",
+2762
View File
File diff suppressed because it is too large Load Diff
+13 -482
View File
File diff suppressed because it is too large Load Diff