saito-js 0.0.4 → 0.0.6
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/browser/index.js +3669 -0
- package/configs.d.ts +26 -0
- package/configs.d.ts.map +1 -0
- package/index.node.d.ts +12 -0
- package/index.node.d.ts.map +1 -0
- package/index.web.d.ts +12 -0
- package/index.web.d.ts.map +1 -0
- package/lib/block.d.ts +18 -0
- package/lib/block.d.ts.map +1 -0
- package/lib/blockchain.d.ts +8 -0
- package/lib/blockchain.d.ts.map +1 -0
- package/lib/custom/custom_shared_methods.d.ts +22 -0
- package/lib/custom/custom_shared_methods.d.ts.map +1 -0
- package/lib/custom/shared_methods.web.d.ts +15 -0
- package/lib/custom/shared_methods.web.d.ts.map +1 -0
- package/lib/factory.d.ts +16 -0
- package/lib/factory.d.ts.map +1 -0
- package/lib/peer.d.ts +15 -0
- package/lib/peer.d.ts.map +1 -0
- package/lib/saito_factory.d.ts +1 -0
- package/lib/saito_factory.d.ts.map +1 -0
- package/lib/slip.d.ts +43 -0
- package/lib/slip.d.ts.map +1 -0
- package/lib/transaction.d.ts +70 -0
- package/lib/transaction.d.ts.map +1 -0
- package/lib/wallet.d.ts +18 -0
- package/lib/wallet.d.ts.map +1 -0
- package/package.json +2 -2
- package/saito.d.ts +52 -0
- package/saito.d.ts.map +1 -0
- package/server/index.js +3731 -0
- package/{shared_methods.ts → shared_methods.d.ts} +1 -18
- package/shared_methods.d.ts.map +1 -0
- package/tests/index.test.d.ts +1 -0
- package/tests/index.test.d.ts.map +1 -0
- package/.github/workflows/publish.yml +0 -50
- package/.prettierrc.json +0 -3
- package/babel.config.json +0 -13
- package/configs.ts +0 -26
- package/index.node.ts +0 -51
- package/index.web.ts +0 -47
- package/lib/block.ts +0 -42
- package/lib/blockchain.ts +0 -14
- package/lib/custom/custom_shared_methods.ts +0 -92
- package/lib/custom/shared_methods.web.ts +0 -123
- package/lib/factory.ts +0 -32
- package/lib/peer.ts +0 -50
- package/lib/saito_factory.ts +0 -18
- package/lib/slip.ts +0 -119
- package/lib/transaction.ts +0 -179
- package/lib/wallet.ts +0 -61
- package/saito.ts +0 -404
- package/tests/index.test.ts +0 -35
- package/tsconfig.json +0 -111
- package/tsconfig.testing.json +0 -19
- package/webpack.config.js +0 -136
- package/webpack.prod.config.js +0 -136
package/configs.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
type Configs = {
|
|
2
|
+
server: {
|
|
3
|
+
host: string;
|
|
4
|
+
port: number;
|
|
5
|
+
protocol: string;
|
|
6
|
+
endpoint: {
|
|
7
|
+
host: string;
|
|
8
|
+
port: number;
|
|
9
|
+
protocol: string;
|
|
10
|
+
};
|
|
11
|
+
verification_threads: number;
|
|
12
|
+
channel_size: number;
|
|
13
|
+
stat_timer_in_ms: number;
|
|
14
|
+
reconnection_wait_time: number;
|
|
15
|
+
thread_sleep_time_in_ms: number;
|
|
16
|
+
block_fetch_batch_size: number;
|
|
17
|
+
};
|
|
18
|
+
peers: {
|
|
19
|
+
host: string;
|
|
20
|
+
port: number;
|
|
21
|
+
protocol: string;
|
|
22
|
+
synctype: string;
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
25
|
+
export default Configs;
|
|
26
|
+
//# sourceMappingURL=configs.d.ts.map
|
package/configs.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../configs.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG;IACX,MAAM,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,oBAAoB,EAAE,MAAM,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,uBAAuB,EAAE,MAAM,CAAC;QAChC,sBAAsB,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,KAAK,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAA;KACnB,EAAE,CAAA;CACN,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
package/index.node.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Saito from "./saito";
|
|
2
|
+
import SharedMethods from "./shared_methods";
|
|
3
|
+
import Configs from "./configs";
|
|
4
|
+
import Factory from "./lib/factory";
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param configs
|
|
8
|
+
* @param sharedMethods
|
|
9
|
+
*/
|
|
10
|
+
export declare function initialize(configs: Configs, sharedMethods: SharedMethods, factory: Factory, privateKey: string): Promise<void>;
|
|
11
|
+
export default Saito;
|
|
12
|
+
//# sourceMappingURL=index.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../index.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,OAAO,MAAM,WAAW,CAAC;AAKhC,OAAO,OAAO,MAAM,eAAe,CAAC;AAUpC;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,iBAsBnB;AAED,eAAe,KAAK,CAAC"}
|
package/index.web.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Saito from "./saito";
|
|
2
|
+
import SharedMethods from "./shared_methods";
|
|
3
|
+
import Configs from "./configs";
|
|
4
|
+
import Factory from "./lib/factory";
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param configs
|
|
8
|
+
* @param sharedMethods
|
|
9
|
+
*/
|
|
10
|
+
export declare function initialize(configs: Configs, sharedMethods: SharedMethods, factory: Factory, privateKey: string): Promise<any>;
|
|
11
|
+
export default Saito;
|
|
12
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../index.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,OAAO,MAAM,WAAW,CAAC;AAKhC,OAAO,OAAO,MAAM,eAAe,CAAC;AAIpC;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,gBAwBnB;AAED,eAAe,KAAK,CAAC"}
|
package/lib/block.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { WasmBlock } from 'saito-wasm/dist/types/pkg/node/index_bg';
|
|
2
|
+
import Transaction from "./transaction";
|
|
3
|
+
export declare enum BlockType {
|
|
4
|
+
Ghost = 0,
|
|
5
|
+
Header = 1,
|
|
6
|
+
Pruned = 2,
|
|
7
|
+
Full = 3
|
|
8
|
+
}
|
|
9
|
+
export default class Block {
|
|
10
|
+
protected block: WasmBlock;
|
|
11
|
+
static Type: any;
|
|
12
|
+
constructor(block?: WasmBlock);
|
|
13
|
+
get transactions(): Array<Transaction>;
|
|
14
|
+
get id(): bigint;
|
|
15
|
+
get hash(): string;
|
|
16
|
+
serialize(): Uint8Array;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../lib/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AACvE,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,oBAAY,SAAS;IACjB,KAAK,IAAI;IACT,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;CACX;AAGD,MAAM,CAAC,OAAO,OAAO,KAAK;IACtB,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,OAAc,IAAI,EAAE,GAAG,CAAC;gBAEZ,KAAK,CAAC,EAAE,SAAS;IAQ7B,IAAW,YAAY,IAAI,KAAK,CAAC,WAAW,CAAC,CAI5C;IAED,IAAW,EAAE,IAAI,MAAM,CAEtB;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,SAAS,IAAI,UAAU;CAGjC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { WasmBlockchain } from "saito-wasm/dist/types/pkg/node/index_bg";
|
|
2
|
+
export default class Blockchain {
|
|
3
|
+
protected blockchain: WasmBlockchain;
|
|
4
|
+
static Type: any;
|
|
5
|
+
constructor(blockchain: WasmBlockchain);
|
|
6
|
+
reset(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=blockchain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockchain.d.ts","sourceRoot":"","sources":["../../lib/blockchain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAE5E,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC;IACrC,OAAc,IAAI,EAAE,GAAG,CAAC;gBAEZ,UAAU,EAAE,cAAc;IAIzB,KAAK;CAGrB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import SharedMethods from "../../shared_methods";
|
|
2
|
+
export default class CustomSharedMethods implements SharedMethods {
|
|
3
|
+
processApiCall(buffer: Uint8Array, msgIndex: number, peerIndex: bigint): Promise<void>;
|
|
4
|
+
connectToPeer(peerData: any): void;
|
|
5
|
+
disconnectFromPeer(peerIndex: bigint): void;
|
|
6
|
+
fetchBlockFromPeer(url: string): Promise<Uint8Array>;
|
|
7
|
+
isExistingFile(key: string): boolean;
|
|
8
|
+
loadBlockFileList(): Array<string>;
|
|
9
|
+
processApiError(buffer: Uint8Array, msgIndex: number, peerIndex: bigint): void;
|
|
10
|
+
processApiSuccess(buffer: Uint8Array, msgIndex: number, peerIndex: bigint): void;
|
|
11
|
+
readValue(key: string): Uint8Array | null;
|
|
12
|
+
removeValue(key: string): void;
|
|
13
|
+
sendMessage(peerIndex: bigint, buffer: Uint8Array): void;
|
|
14
|
+
sendMessageToAll(buffer: Uint8Array, exceptions: Array<bigint>): void;
|
|
15
|
+
writeValue(key: string, value: Uint8Array): void;
|
|
16
|
+
sendInterfaceEvent(event: String, peerIndex: bigint): void;
|
|
17
|
+
saveWallet(): void;
|
|
18
|
+
loadWallet(): void;
|
|
19
|
+
saveBlockchain(): void;
|
|
20
|
+
loadBlockchain(): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=custom_shared_methods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom_shared_methods.d.ts","sourceRoot":"","sources":["../../../lib/custom/custom_shared_methods.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,sBAAsB,CAAC;AAKjD,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,aAAa;IAC/D,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItF,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAIlC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI3C,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIpC,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC;IAIlC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAW9E,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAWhF,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAIzC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAIxD,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;IAIrE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAIhD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAI1D,UAAU,IAAI,IAAI;IAIlB,UAAU,IAAI,IAAI;IAIlB,cAAc,IAAI,IAAI;IAItB,cAAc,IAAI,IAAI;CAGvB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import CustomSharedMethods from "./custom_shared_methods";
|
|
2
|
+
export default class WebSharedMethods extends CustomSharedMethods {
|
|
3
|
+
connectToPeer(peerData: any): void;
|
|
4
|
+
disconnectFromPeer(peerIndex: bigint): void;
|
|
5
|
+
fetchBlockFromPeer(url: string): Promise<Uint8Array>;
|
|
6
|
+
isExistingFile(key: string): boolean;
|
|
7
|
+
loadBlockFileList(): Array<string>;
|
|
8
|
+
readValue(key: string): Uint8Array | null;
|
|
9
|
+
removeValue(key: string): void;
|
|
10
|
+
sendMessage(peerIndex: bigint, buffer: Uint8Array): void;
|
|
11
|
+
sendMessageToAll(buffer: Uint8Array, exceptions: Array<bigint>): void;
|
|
12
|
+
writeValue(key: string, value: Uint8Array): void;
|
|
13
|
+
sendInterfaceEvent(event: String, peerIndex: bigint): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=shared_methods.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared_methods.web.d.ts","sourceRoot":"","sources":["../../../lib/custom/shared_methods.web.ts"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,mBAAmB;IAC7D,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IA+BlC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI3C,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUpD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASpC,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC;IAalC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAezC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ9B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAMxD,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;IAUrE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAQhD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAGtD"}
|
package/lib/factory.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import Block from "./block";
|
|
2
|
+
import Transaction from "./transaction";
|
|
3
|
+
import Slip from "./slip";
|
|
4
|
+
import Peer from "./peer";
|
|
5
|
+
import Wallet from "./wallet";
|
|
6
|
+
import Blockchain from "./blockchain";
|
|
7
|
+
export default class Factory {
|
|
8
|
+
constructor();
|
|
9
|
+
createBlock(data?: any): Block;
|
|
10
|
+
createTransaction<T extends Transaction>(data?: any): Transaction;
|
|
11
|
+
createSlip(data?: any): Slip;
|
|
12
|
+
createPeer(data?: any): Peer;
|
|
13
|
+
createWallet(data: any): Wallet;
|
|
14
|
+
createBlockchain(data: any): Blockchain;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../lib/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,OAAO;;IAGnB,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK;IAI9B,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,WAAW;IAIjE,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI5B,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAG5B,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAG/B,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU;CAG/C"}
|
package/lib/peer.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WasmPeer } from "saito-wasm/dist/types/pkg/node/index_bg";
|
|
2
|
+
export default class Peer {
|
|
3
|
+
protected peer: WasmPeer;
|
|
4
|
+
static Type: any;
|
|
5
|
+
constructor(peer?: WasmPeer, peerIndex?: bigint);
|
|
6
|
+
get publicKey(): string;
|
|
7
|
+
get keyList(): Array<string>;
|
|
8
|
+
get peerIndex(): bigint;
|
|
9
|
+
get synctype(): string;
|
|
10
|
+
get services(): string[];
|
|
11
|
+
set services(s: string[]);
|
|
12
|
+
hasService(service: string): boolean;
|
|
13
|
+
isMainPeer(): boolean;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=peer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../lib/peer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,yCAAyC,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;IACzB,OAAc,IAAI,EAAE,GAAG,CAAC;gBAEZ,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM;IAQ/C,IAAW,SAAS,IAAI,MAAM,CAE7B;IAMD,IAAW,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAElC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,QAAQ,IAAI,MAAM,EAAE,CAE9B;IAED,IAAW,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAE9B;IAEM,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpC,UAAU,IAAI,OAAO;CAG/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=saito_factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saito_factory.d.ts","sourceRoot":"","sources":["../../lib/saito_factory.ts"],"names":[],"mappings":""}
|
package/lib/slip.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { WasmSlip } from 'saito-wasm/dist/types/pkg/node/index_bg';
|
|
2
|
+
export declare enum SlipType {
|
|
3
|
+
Normal = 0,
|
|
4
|
+
ATR = 1,
|
|
5
|
+
VipInput = 2,
|
|
6
|
+
VipOutput = 3,
|
|
7
|
+
MinerInput = 4,
|
|
8
|
+
MinerOutput = 5,
|
|
9
|
+
RouterInput = 6,
|
|
10
|
+
RouterOutput = 7,
|
|
11
|
+
Other = 8
|
|
12
|
+
}
|
|
13
|
+
export default class Slip {
|
|
14
|
+
private slip;
|
|
15
|
+
static Type: any;
|
|
16
|
+
constructor(slip?: WasmSlip, json?: any);
|
|
17
|
+
get wasmSlip(): WasmSlip;
|
|
18
|
+
get type(): SlipType;
|
|
19
|
+
set type(type: SlipType);
|
|
20
|
+
get amount(): bigint;
|
|
21
|
+
set amount(amount: bigint | number);
|
|
22
|
+
get publicKey(): string;
|
|
23
|
+
set publicKey(key: string);
|
|
24
|
+
set index(index: number);
|
|
25
|
+
get index(): number;
|
|
26
|
+
set blockId(id: bigint);
|
|
27
|
+
get blockId(): bigint;
|
|
28
|
+
set txOrdinal(ordinal: bigint);
|
|
29
|
+
get txOrdinal(): bigint;
|
|
30
|
+
set utxoKey(key: string);
|
|
31
|
+
get utxoKey(): string;
|
|
32
|
+
toJson(): {
|
|
33
|
+
blockId: bigint;
|
|
34
|
+
utxoKey: string;
|
|
35
|
+
amount: bigint;
|
|
36
|
+
index: number;
|
|
37
|
+
publicKey: string;
|
|
38
|
+
txOrdinal: bigint;
|
|
39
|
+
type: any;
|
|
40
|
+
};
|
|
41
|
+
clone(): Slip;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=slip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slip.d.ts","sourceRoot":"","sources":["../../lib/slip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,yCAAyC,CAAC;AAEtE,oBAAY,QAAQ;IAChB,MAAM,IAAI;IACV,GAAG,IAAI;IACP,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,UAAU,IAAI;IACd,WAAW,IAAI;IACf,WAAW,IAAI;IACf,YAAY,IAAI;IAChB,KAAK,IAAI;CACZ;AAED,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,OAAO,CAAC,IAAI,CAAW;IACvB,OAAc,IAAI,EAAE,GAAG,CAAC;gBAEL,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG;IAiB9C,IAAW,QAAQ,IAAI,QAAQ,CAE9B;IAED,IAAW,IAAI,IAAI,QAAQ,CAE1B;IAED,IAAW,IAAI,CAAC,IAAI,EAAE,QAAQ,EAE7B;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAExC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,GAAG,EAAE,MAAM,EAE/B;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,OAAO,CAAC,EAAE,EAAE,MAAM,EAE5B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,SAAS,CAAC,OAAO,EAAE,MAAM,EAEnC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,OAAO,CAAC,GAAG,EAAE,MAAM,EAE7B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAEM,MAAM,IAAI;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC;KACb;IAYM,KAAK;CAGf"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { WasmTransaction } from "saito-wasm/dist/types/pkg/node/index_bg";
|
|
2
|
+
import Slip from "./slip";
|
|
3
|
+
import Factory from "./factory";
|
|
4
|
+
export declare enum TransactionType {
|
|
5
|
+
Normal = 0,
|
|
6
|
+
Fee = 1,
|
|
7
|
+
GoldenTicket = 2,
|
|
8
|
+
ATR = 3,
|
|
9
|
+
Vip = 4,
|
|
10
|
+
SPV = 5,
|
|
11
|
+
Issuance = 6,
|
|
12
|
+
Other = 7
|
|
13
|
+
}
|
|
14
|
+
export default class Transaction {
|
|
15
|
+
protected tx: WasmTransaction;
|
|
16
|
+
static Type: any;
|
|
17
|
+
msg: any;
|
|
18
|
+
constructor(tx?: WasmTransaction, json?: any);
|
|
19
|
+
get wasmTransaction(): WasmTransaction;
|
|
20
|
+
addFromSlip(slip: Slip): void;
|
|
21
|
+
addToSlip(slip: Slip): void;
|
|
22
|
+
get to(): Array<Slip>;
|
|
23
|
+
get from(): Array<Slip>;
|
|
24
|
+
get type(): TransactionType;
|
|
25
|
+
set type(type: TransactionType);
|
|
26
|
+
get timestamp(): number;
|
|
27
|
+
set timestamp(timestamp: bigint | number);
|
|
28
|
+
set signature(sig: string);
|
|
29
|
+
get signature(): string;
|
|
30
|
+
set data(buffer: Uint8Array);
|
|
31
|
+
get data(): Uint8Array;
|
|
32
|
+
set txs_replacements(r: number);
|
|
33
|
+
get txs_replacements(): number;
|
|
34
|
+
get total_fees(): bigint;
|
|
35
|
+
sign(): Promise<void>;
|
|
36
|
+
signAndEncrypt(): Promise<void>;
|
|
37
|
+
isFrom(key: string): boolean;
|
|
38
|
+
isTo(key: string): boolean;
|
|
39
|
+
toJson(): {
|
|
40
|
+
to: {
|
|
41
|
+
blockId: bigint;
|
|
42
|
+
utxoKey: string;
|
|
43
|
+
amount: bigint;
|
|
44
|
+
index: number;
|
|
45
|
+
publicKey: string;
|
|
46
|
+
txOrdinal: bigint;
|
|
47
|
+
type: any;
|
|
48
|
+
}[];
|
|
49
|
+
from: {
|
|
50
|
+
blockId: bigint;
|
|
51
|
+
utxoKey: string;
|
|
52
|
+
amount: bigint;
|
|
53
|
+
index: number;
|
|
54
|
+
publicKey: string;
|
|
55
|
+
txOrdinal: bigint;
|
|
56
|
+
type: any;
|
|
57
|
+
}[];
|
|
58
|
+
type: TransactionType;
|
|
59
|
+
timestamp: number;
|
|
60
|
+
signature: string;
|
|
61
|
+
buffer: string;
|
|
62
|
+
txs_replacements: number;
|
|
63
|
+
total_fees: bigint;
|
|
64
|
+
};
|
|
65
|
+
static deserialize(buffer: Uint8Array, factory: Factory): Transaction | null;
|
|
66
|
+
serialize(): Uint8Array;
|
|
67
|
+
packData(): void;
|
|
68
|
+
unpackData(): void;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,yCAAyC,CAAC;AAC7E,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,oBAAY,eAAe;IACvB,MAAM,IAAI;IACV,GAAG,IAAI;IACP,YAAY,IAAI;IAChB,GAAG,IAAI;IACP,GAAG,IAAI;IACP,GAAG,IAAI;IACP,QAAQ,IAAI;IACZ,KAAK,IAAI;CACZ;AAED,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,SAAS,CAAC,EAAE,EAAE,eAAe,CAAC;IAC9B,OAAc,IAAI,EAAE,GAAG,CAAC;IACjB,GAAG,EAAE,GAAG,CAAM;gBAGT,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,GAAG;IAuB5C,IAAW,eAAe,IAAI,eAAe,CAE5C;IAEM,WAAW,CAAC,IAAI,EAAE,IAAI;IAItB,SAAS,CAAC,IAAI,EAAE,IAAI;IAI3B,IAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,CAI3B;IAED,IAAW,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAI7B;IAED,IAAW,IAAI,IAAI,eAAe,CAEjC;IAED,IAAW,IAAI,CAAC,IAAI,EAAE,eAAe,EAEpC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAE9C;IAED,IAAW,SAAS,CAAC,GAAG,EAAE,MAAM,EAE/B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,IAAI,CAAC,MAAM,EAAE,UAAU,EAEjC;IAED,IAAW,IAAI,IAAI,UAAU,CAE5B;IAED,IAAW,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAEpC;IAED,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAEY,IAAI;IAIJ,cAAc;IAIpB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI1B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;WAcC,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI;IAU5E,SAAS,IAAI,UAAU;IAIvB,QAAQ;IAQR,UAAU;CAapB"}
|
package/lib/wallet.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { WasmWallet } from "saito-wasm/dist/types/pkg/node/index_bg";
|
|
2
|
+
export declare const DefaultEmptyPrivateKey = "0000000000000000000000000000000000000000000000000000000000000000";
|
|
3
|
+
export declare const DefaultEmptyPublicKey = "000000000000000000000000000000000000000000000000000000000000000000";
|
|
4
|
+
export default class Wallet {
|
|
5
|
+
protected wallet: WasmWallet;
|
|
6
|
+
static Type: any;
|
|
7
|
+
constructor(wallet: WasmWallet);
|
|
8
|
+
save(): Promise<void>;
|
|
9
|
+
load(): Promise<void>;
|
|
10
|
+
reset(): Promise<void>;
|
|
11
|
+
getPublicKey(): Promise<string>;
|
|
12
|
+
setPublicKey(key: string): Promise<void>;
|
|
13
|
+
getPrivateKey(): Promise<string>;
|
|
14
|
+
setPrivateKey(key: string): Promise<void>;
|
|
15
|
+
getBalance(): Promise<bigint>;
|
|
16
|
+
getPendingTxs(): Promise<import("./transaction").default[]>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../lib/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAG1E,eAAO,MAAM,sBAAsB,qEACiC,CAAC;AACrE,eAAO,MAAM,qBAAqB,uEACoC,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7B,OAAc,IAAI,EAAE,GAAG,CAAC;gBAEZ,MAAM,EAAE,UAAU;IAIjB,IAAI;IAIJ,IAAI;IAIJ,KAAK;IAIL,YAAY;IAKZ,YAAY,CAAC,GAAG,EAAE,MAAM;IAOxB,aAAa;IAKb,aAAa,CAAC,GAAG,EAAE,MAAM;IAOzB,UAAU;IAIV,aAAa;CAI3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "saito-js",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "js wrappings around saito-core using wasm",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "env TS_NODE_PROJECT=\"tsconfig.testing.json\" mocha --require ts-node/register 'tests/**/*.ts'",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"buffer": "^6.0.3",
|
|
39
39
|
"cookie-parser": "~1.4.6",
|
|
40
|
-
"saito-wasm": "^0.0.
|
|
40
|
+
"saito-wasm": "^0.0.4",
|
|
41
41
|
"cors": "^2.8.5",
|
|
42
42
|
"debug": "~4.3.4",
|
|
43
43
|
"express": "~4.18.2",
|
package/saito.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import SharedMethods from "./shared_methods";
|
|
2
|
+
import Transaction from "./lib/transaction";
|
|
3
|
+
import Block from "./lib/block";
|
|
4
|
+
import Factory from "./lib/factory";
|
|
5
|
+
import Peer from "./lib/peer";
|
|
6
|
+
import Wallet from "./lib/wallet";
|
|
7
|
+
import Blockchain from "./lib/blockchain";
|
|
8
|
+
export default class Saito {
|
|
9
|
+
private static instance;
|
|
10
|
+
private static libInstance;
|
|
11
|
+
sockets: Map<bigint, any>;
|
|
12
|
+
nextIndex: bigint;
|
|
13
|
+
factory: Factory;
|
|
14
|
+
promises: Map<number, any>;
|
|
15
|
+
private callbackIndex;
|
|
16
|
+
private wallet;
|
|
17
|
+
private blockchain;
|
|
18
|
+
static initialize(configs: any, sharedMethods: SharedMethods, factory: Factory | undefined, privateKey: string): Promise<void>;
|
|
19
|
+
constructor(factory: Factory);
|
|
20
|
+
static getInstance(): Saito;
|
|
21
|
+
static getLibInstance(): any;
|
|
22
|
+
static setLibInstance(instance: any): void;
|
|
23
|
+
addNewSocket(socket: any): bigint;
|
|
24
|
+
getSocket(index: bigint): any | null;
|
|
25
|
+
removeSocket(index: bigint): void;
|
|
26
|
+
initialize(configs: any): Promise<any>;
|
|
27
|
+
getLatestBlockHash(): Promise<string>;
|
|
28
|
+
getBlock<B extends Block>(blockHash: string): Promise<B>;
|
|
29
|
+
processNewPeer(index: bigint, peer_config: any): Promise<void>;
|
|
30
|
+
processPeerDisconnection(peer_index: bigint): Promise<void>;
|
|
31
|
+
processMsgBufferFromPeer(buffer: Uint8Array, peer_index: bigint): Promise<void>;
|
|
32
|
+
processFetchedBlock(buffer: Uint8Array, hash: Uint8Array, peer_index: bigint): Promise<void>;
|
|
33
|
+
processTimerEvent(duration_in_ms: bigint): Promise<void>;
|
|
34
|
+
hash(buffer: Uint8Array): string;
|
|
35
|
+
signBuffer(buffer: Uint8Array, privateKey: String): string;
|
|
36
|
+
verifySignature(buffer: Uint8Array, signature: string, publicKey: string): boolean;
|
|
37
|
+
createTransaction<T extends Transaction>(publickey?: string, amount?: bigint, fee?: bigint, force_merge?: boolean): Promise<T>;
|
|
38
|
+
getPeers(): Promise<Array<Peer>>;
|
|
39
|
+
getPeer(index: bigint): Promise<Peer | null>;
|
|
40
|
+
generatePrivateKey(): string;
|
|
41
|
+
generatePublicKey(privateKey: string): string;
|
|
42
|
+
propagateTransaction(tx: Transaction): Promise<any>;
|
|
43
|
+
sendApiCall(buffer: Uint8Array, peerIndex: bigint, waitForReply: boolean): Promise<Uint8Array>;
|
|
44
|
+
sendApiSuccess(msgId: number, buffer: Uint8Array, peerIndex: bigint): Promise<void>;
|
|
45
|
+
sendApiError(msgId: number, buffer: Uint8Array, peerIndex: bigint): Promise<void>;
|
|
46
|
+
sendTransactionWithCallback(transaction: Transaction, callback?: any, peerIndex?: bigint): Promise<any>;
|
|
47
|
+
propagateServices(peerIndex: bigint, services: string[]): Promise<any>;
|
|
48
|
+
sendRequest(message: string, data?: any, callback?: any, peerIndex?: bigint): Promise<any>;
|
|
49
|
+
getWallet(): Promise<Wallet>;
|
|
50
|
+
getBlockchain(): Promise<Blockchain>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=saito.d.ts.map
|
package/saito.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saito.d.ts","sourceRoot":"","sources":["../saito.ts"],"names":[],"mappings":"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"}
|