@kynesyslabs/demosdk 2.2.35 → 2.2.38
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/build/bridge/index.d.ts +1 -1
- package/build/bridge/nativeBridge.d.ts +12 -6
- package/build/bridge/nativeBridge.js +23 -8
- package/build/bridge/nativeBridge.js.map +1 -1
- package/build/bridge/nativeBridgeTypes.d.ts +17 -5
- package/build/bridge/nativeBridgeTypes.js.map +1 -1
- package/build/types/blockchain/Transaction.d.ts +2 -2
- package/build/websdk/DemosWebAuth.d.ts +1 -1
- package/build/websdk/DemosWebAuth.js +21 -53
- package/build/websdk/DemosWebAuth.js.map +1 -1
- package/package.json +1 -1
package/build/bridge/index.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ import RubicBridge from "./rubicBridge";
|
|
|
4
4
|
export { BLOCKCHAIN_NAME, CROSS_CHAIN_TRADE_TYPE, CrossChainTrade, RubicSdkError, WrappedCrossChainTrade, } from "rubic-sdk";
|
|
5
5
|
import { methods as NativeBridgeMethods } from "./nativeBridge";
|
|
6
6
|
export { NativeBridgeMethods };
|
|
7
|
-
export { BridgeOperation as NativeBridgeOperation,
|
|
7
|
+
export { BridgeOperation as NativeBridgeOperation, BridgeOperationCompiled as NativeBridgeOperationCompiled, SupportedChain as NativeBridgeSupportedChain, SupportedStablecoin as NativeBridgeSupportedStablecoin, SupportedEVMChain as NativeBridgeSupportedEVMChain, supportedChains as NativeBridgeSupportedChains, supportedStablecoins as NativeBridgeSupportedStablecoins, supportedEVMChains as NativeBridgeSupportedEVMChains, usdcContracts as NativeBridgeUSDCContracts, usdcAbi as NativeBridgeUSDCAbi, } from "./nativeBridgeTypes";
|
|
8
8
|
export { RubicBridge };
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BridgeOperationCompiled } from "./nativeBridgeTypes";
|
|
2
2
|
import { Transaction } from "../types/blockchain/Transaction";
|
|
3
3
|
export declare const methods: {
|
|
4
4
|
/**
|
|
5
|
-
* Generates a new operation,
|
|
5
|
+
* Generates a new operation, ready to be sent to the node as a nodeCall
|
|
6
6
|
* TODO Implement the params
|
|
7
|
+
* REVIEW Should we use the identity somehow or we keep using the private key?
|
|
7
8
|
*/
|
|
8
|
-
generateOperation():
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
generateOperation(privateKey: string): BridgeOperationCompiled;
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* @param compiled operation
|
|
13
|
+
* @param signature
|
|
14
|
+
* @param rpc
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
generateOperationTx(compiled: BridgeOperationCompiled): Transaction;
|
|
12
18
|
};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.methods = void 0;
|
|
4
|
-
const
|
|
4
|
+
const encryption_1 = require("../encryption");
|
|
5
5
|
exports.methods = {
|
|
6
6
|
/**
|
|
7
|
-
* Generates a new operation,
|
|
7
|
+
* Generates a new operation, ready to be sent to the node as a nodeCall
|
|
8
8
|
* TODO Implement the params
|
|
9
|
+
* REVIEW Should we use the identity somehow or we keep using the private key?
|
|
9
10
|
*/
|
|
10
|
-
generateOperation() {
|
|
11
|
+
generateOperation(privateKey) {
|
|
11
12
|
// Defining the operation
|
|
12
13
|
const operation = {
|
|
13
14
|
demoAddress: "",
|
|
@@ -20,11 +21,25 @@ exports.methods = {
|
|
|
20
21
|
txHash: "",
|
|
21
22
|
status: "empty",
|
|
22
23
|
};
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
// TODO Generate the operation based on parameters
|
|
25
|
+
// REVIEW Sign the operation
|
|
26
|
+
let opHash = encryption_1.Hashing.sha256(JSON.stringify(operation));
|
|
27
|
+
let signature = encryption_1.Cryptography.sign(opHash, privateKey);
|
|
28
|
+
// TODO Call the node to send the operation
|
|
29
|
+
// TODO Await the response
|
|
30
|
+
// TODO Return the response
|
|
31
|
+
return null;
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* @param compiled operation
|
|
36
|
+
* @param signature
|
|
37
|
+
* @param rpc
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
generateOperationTx(compiled) {
|
|
41
|
+
// TODO Implement the transaction once we have the compiled operation
|
|
42
|
+
return null;
|
|
28
43
|
}
|
|
29
44
|
};
|
|
30
45
|
//# sourceMappingURL=nativeBridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeBridge.js","sourceRoot":"","sources":["../../../src/bridge/nativeBridge.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"nativeBridge.js","sourceRoot":"","sources":["../../../src/bridge/nativeBridge.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAMvC,QAAA,OAAO,GAAG;IAEnB;;;;MAIE;IACF,iBAAiB,CAAC,UAAkB;QAChC,yBAAyB;QACzB,MAAM,SAAS,GAAoB;YAC/B,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,IAAI;YACtB,aAAa,EAAE,EAAE;YACjB,kBAAkB,EAAE,EAAE;YACtB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,OAAO;SAClB,CAAA;QACD,kDAAkD;QAClD,4BAA4B;QAC5B,IAAI,MAAM,GAAG,oBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;QACtD,IAAI,SAAS,GAAG,yBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACrD,2CAA2C;QAC3C,0BAA0B;QAC1B,2BAA2B;QAC3B,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAiC;QACjD,qEAAqE;QACrE,OAAO,IAAI,CAAA;IACf,CAAC;CACJ,CAAA"}
|
|
@@ -11,8 +11,20 @@ export type BridgeOperation = {
|
|
|
11
11
|
txHash: string;
|
|
12
12
|
status: "empty" | "pending" | "completed" | "failed";
|
|
13
13
|
};
|
|
14
|
-
export type
|
|
15
|
-
|
|
14
|
+
export type BridgeOperationCompiled = {
|
|
15
|
+
content: {
|
|
16
|
+
operation: BridgeOperation;
|
|
17
|
+
amountExpected: number;
|
|
18
|
+
} & ({
|
|
19
|
+
originChain: "EVM";
|
|
20
|
+
contractAddress: string;
|
|
21
|
+
contractABI: string[];
|
|
22
|
+
} | {
|
|
23
|
+
originChain: "SOLANA";
|
|
24
|
+
solanaAddress: string;
|
|
25
|
+
});
|
|
26
|
+
signature: string;
|
|
27
|
+
rpc: string;
|
|
16
28
|
};
|
|
17
29
|
export declare const supportedEVMChains: readonly ["eth", "polygon", "bsc", "arbitrum", "optimism", "avalanche", "base"];
|
|
18
30
|
export declare const usdcContracts: {
|
|
@@ -26,6 +38,6 @@ export declare const usdcContracts: {
|
|
|
26
38
|
SOLANA: string;
|
|
27
39
|
};
|
|
28
40
|
export declare const usdcAbi: string[];
|
|
29
|
-
export type SupportedChain = typeof supportedChains[number];
|
|
30
|
-
export type SupportedStablecoin = typeof supportedStablecoins[number];
|
|
31
|
-
export type SupportedEVMChain = typeof supportedEVMChains[number];
|
|
41
|
+
export type SupportedChain = (typeof supportedChains)[number];
|
|
42
|
+
export type SupportedStablecoin = (typeof supportedStablecoins)[number];
|
|
43
|
+
export type SupportedEVMChain = (typeof supportedEVMChains)[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeBridgeTypes.js","sourceRoot":"","sources":["../../../src/bridge/nativeBridgeTypes.ts"],"names":[],"mappings":";AAAA,8FAA8F;;;AAE9F,mCAAmC;AACtB,QAAA,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAA;AAC5C,QAAA,oBAAoB,GAAG,CAAC,MAAM,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"nativeBridgeTypes.js","sourceRoot":"","sources":["../../../src/bridge/nativeBridgeTypes.ts"],"names":[],"mappings":";AAAA,8FAA8F;;;AAE9F,mCAAmC;AACtB,QAAA,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAA;AAC5C,QAAA,oBAAoB,GAAG,CAAC,MAAM,CAAU,CAAA;AAqCrD,2BAA2B;AACd,QAAA,kBAAkB,GAAG;IAC9B,KAAK;IACL,SAAS;IACT,KAAK;IACL,UAAU;IACV,UAAU;IACV,WAAW;IACX,MAAM;CACA,CAAA;AAEV,mEAAmE;AACtD,QAAA,aAAa,GAAG;IACzB,QAAQ,EAAE,4CAA4C,EAAE,eAAe;IACvE,OAAO,EAAE,4CAA4C,EAAE,cAAc;IACrE,GAAG,EAAE,4CAA4C,EAAE,mBAAmB;IACtE,QAAQ,EAAE,4CAA4C,EAAE,wBAAwB;IAChF,QAAQ,EAAE,4CAA4C,EAAE,wBAAwB;IAChF,SAAS,EAAE,4CAA4C,EAAE,YAAY;IACrE,IAAI,EAAE,4CAA4C,EAAE,oBAAoB;IACxE,MAAM,EAAE,8CAA8C,EAAE,qBAAqB;CAChF,CAAA;AAED,gCAAgC;AACnB,QAAA,OAAO,GAAG;IACnB,0DAA0D;IAC1D,0CAA0C;CAC7C,CAAA"}
|
|
@@ -9,8 +9,8 @@ import { INativePayload } from "../native";
|
|
|
9
9
|
import { SubnetPayload } from "../../l2ps";
|
|
10
10
|
import { IdentityPayload } from "../abstraction";
|
|
11
11
|
import { InstantMessagingPayload } from "../instantMessaging";
|
|
12
|
-
import {
|
|
13
|
-
export type TransactionContentData = ["web2Request", IWeb2Payload] | ["crosschainOperation", XMScript] | ["native", INativePayload] | ["demoswork", DemoScript] | ["subnet", SubnetPayload] | ["identity", IdentityPayload] | ["instantMessaging", InstantMessagingPayload] | ["nativeBridge",
|
|
12
|
+
import { BridgeOperationCompiled } from "../../bridge/nativeBridgeTypes";
|
|
13
|
+
export type TransactionContentData = ["web2Request", IWeb2Payload] | ["crosschainOperation", XMScript] | ["native", INativePayload] | ["demoswork", DemoScript] | ["subnet", SubnetPayload] | ["identity", IdentityPayload] | ["instantMessaging", InstantMessagingPayload] | ["nativeBridge", BridgeOperationCompiled];
|
|
14
14
|
export interface TransactionContent {
|
|
15
15
|
type: "web2Request" | "crosschainOperation" | "subnet" | "native" | "demoswork" | "genesis" | "NODE_ONLINE" | "identity" | "instantMessaging" | "nativeBridge";
|
|
16
16
|
from: forge.pki.ed25519.BinaryBuffer | forge.pki.PublicKey | ISignature;
|
|
@@ -32,6 +32,6 @@ export declare class DemosWebAuth {
|
|
|
32
32
|
**/
|
|
33
33
|
logout(): Promise<(string | boolean)[]>;
|
|
34
34
|
sign(message: any): Promise<{}[]>;
|
|
35
|
-
verify(message:
|
|
35
|
+
verify(message: string | Uint8Array, signature: string | Uint8Array, publicKey: string | Uint8Array): Promise<(string | boolean)[]>;
|
|
36
36
|
rsa(): RSA;
|
|
37
37
|
}
|
|
@@ -1,37 +1,4 @@
|
|
|
1
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 () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
@@ -41,7 +8,6 @@ exports.DemosWebAuth = void 0;
|
|
|
41
8
|
// @ts-ignore
|
|
42
9
|
const node_forge_1 = __importDefault(require("node-forge"));
|
|
43
10
|
const required_1 = require("./utils/required");
|
|
44
|
-
const forge_converter = __importStar(require("./utils/forge_converter"));
|
|
45
11
|
const rsa_1 = require("./rsa");
|
|
46
12
|
const Cryptography_1 = require("../encryption/Cryptography");
|
|
47
13
|
// TODO Could this be an universal "Sign in with DEMOS" ? Maybe
|
|
@@ -83,8 +49,8 @@ class DemosWebAuth {
|
|
|
83
49
|
this.loggedIn = true;
|
|
84
50
|
// Stringify the keypair
|
|
85
51
|
this.stringified_keypair = {
|
|
86
|
-
privateKey:
|
|
87
|
-
publicKey:
|
|
52
|
+
privateKey: new TextDecoder().decode(this.keypair.privateKey),
|
|
53
|
+
publicKey: new TextDecoder().decode(this.keypair.publicKey),
|
|
88
54
|
};
|
|
89
55
|
result = [true, this.stringified_keypair];
|
|
90
56
|
}
|
|
@@ -134,8 +100,8 @@ class DemosWebAuth {
|
|
|
134
100
|
privateKey: privKey,
|
|
135
101
|
});
|
|
136
102
|
this.stringified_keypair = {
|
|
137
|
-
privateKey:
|
|
138
|
-
publicKey:
|
|
103
|
+
privateKey: new TextDecoder().decode(this.keypair.privateKey),
|
|
104
|
+
publicKey: new TextDecoder().decode(this.keypair.publicKey),
|
|
139
105
|
};
|
|
140
106
|
this.loggedIn = true;
|
|
141
107
|
return [true, "Successfully logged in!"];
|
|
@@ -165,16 +131,13 @@ class DemosWebAuth {
|
|
|
165
131
|
// If needed, we derive the keys from the strings
|
|
166
132
|
if (!this.keypair) {
|
|
167
133
|
this.keypair = {
|
|
168
|
-
privateKey:
|
|
169
|
-
publicKey:
|
|
134
|
+
privateKey: new TextEncoder().encode(this.stringified_keypair?.privateKey),
|
|
135
|
+
publicKey: new TextEncoder().encode(this.stringified_keypair?.publicKey),
|
|
170
136
|
};
|
|
171
137
|
}
|
|
172
138
|
let result = [true, {}];
|
|
173
139
|
try {
|
|
174
|
-
const sign_result =
|
|
175
|
-
message: message,
|
|
176
|
-
privateKey: this.keypair.privateKey,
|
|
177
|
-
});
|
|
140
|
+
const sign_result = Cryptography_1.Cryptography.sign(message, this.keypair.privateKey);
|
|
178
141
|
result = [true, sign_result];
|
|
179
142
|
}
|
|
180
143
|
catch (e) {
|
|
@@ -182,11 +145,20 @@ class DemosWebAuth {
|
|
|
182
145
|
}
|
|
183
146
|
return result; // Is already a [boolean, string]
|
|
184
147
|
}
|
|
185
|
-
async verify(message,
|
|
148
|
+
async verify(message, signature, publicKey) {
|
|
186
149
|
let result = [true, ""];
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
150
|
+
// If the message is a Uint8Array, we convert it to a string
|
|
151
|
+
if (typeof message === "object" && message instanceof Uint8Array) {
|
|
152
|
+
message = new TextDecoder().decode(message);
|
|
153
|
+
}
|
|
154
|
+
// If the signature is a string, we convert it to a Uint8Array
|
|
155
|
+
if (typeof signature === "string") {
|
|
156
|
+
signature = new TextEncoder().encode(signature);
|
|
157
|
+
}
|
|
158
|
+
// If the public key is a string, we convert it to a Uint8Array
|
|
159
|
+
if (typeof publicKey === "string") {
|
|
160
|
+
publicKey = new TextEncoder().encode(publicKey);
|
|
161
|
+
}
|
|
190
162
|
if (!signature) {
|
|
191
163
|
return [false, "Invalid signature"];
|
|
192
164
|
}
|
|
@@ -194,11 +166,7 @@ class DemosWebAuth {
|
|
|
194
166
|
return [false, "Invalid public key"];
|
|
195
167
|
}
|
|
196
168
|
try {
|
|
197
|
-
const verify_result =
|
|
198
|
-
message: message,
|
|
199
|
-
signature: signature,
|
|
200
|
-
publicKey: publicKey,
|
|
201
|
-
});
|
|
169
|
+
const verify_result = Cryptography_1.Cryptography.verify(message, signature, publicKey);
|
|
202
170
|
result = [true, verify_result];
|
|
203
171
|
}
|
|
204
172
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemosWebAuth.js","sourceRoot":"","sources":["../../../src/websdk/DemosWebAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DemosWebAuth.js","sourceRoot":"","sources":["../../../src/websdk/DemosWebAuth.ts"],"names":[],"mappings":"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"}
|