dequanto 0.2.8 → 0.2.12
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/lib/cjs/clients/debug/ClientDebugMethods.js +3 -13
- package/lib/cjs/clients/debug/ClientDebugMethods.js.map +1 -1
- package/lib/cjs/hardhat/HardhatProvider.js +7 -2
- package/lib/cjs/hardhat/HardhatProvider.js.map +1 -1
- package/lib/cjs/hardhat/HardhatWeb3Client.js +4 -0
- package/lib/cjs/hardhat/HardhatWeb3Client.js.map +1 -1
- package/lib/cjs/txs/TxDataBuilder.js +20 -0
- package/lib/cjs/txs/TxDataBuilder.js.map +1 -1
- package/lib/cjs/utils/$color.js +2 -2
- package/lib/cjs/utils/$color.js.map +1 -1
- package/lib/cjs/utils/$contract.js +10 -0
- package/lib/cjs/utils/$contract.js.map +1 -1
- package/lib/cjs/utils/$require.js +7 -0
- package/lib/cjs/utils/$require.js.map +1 -1
- package/lib/cjs/utils/$traces.js +492 -0
- package/lib/cjs/utils/$traces.js.map +1 -0
- package/lib/esm/clients/debug/ClientDebugMethods.js.map +1 -1
- package/lib/esm/clients/debug/ClientDebugMethods.mjs +3 -13
- package/lib/esm/hardhat/HardhatProvider.js.map +1 -1
- package/lib/esm/hardhat/HardhatProvider.mjs +7 -2
- package/lib/esm/hardhat/HardhatWeb3Client.js.map +1 -1
- package/lib/esm/hardhat/HardhatWeb3Client.mjs +4 -0
- package/lib/esm/txs/TxDataBuilder.js.map +1 -1
- package/lib/esm/txs/TxDataBuilder.mjs +20 -0
- package/lib/esm/utils/$color.js.map +1 -1
- package/lib/esm/utils/$color.mjs +1 -1
- package/lib/esm/utils/$contract.js.map +1 -1
- package/lib/esm/utils/$contract.mjs +10 -0
- package/lib/esm/utils/$require.js.map +1 -1
- package/lib/esm/utils/$require.mjs +7 -0
- package/lib/esm/utils/$traces.js.map +1 -0
- package/lib/esm/utils/$traces.mjs +486 -0
- package/lib/types/clients/debug/ClientDebugMethods.d.ts +18 -0
- package/lib/types/clients/interfaces/IWeb3Client.d.ts +4 -0
- package/lib/types/models/TEth.d.ts +2 -2
- package/lib/types/utils/$color.d.ts +62 -0
- package/lib/types/utils/$contract.d.ts +8 -0
- package/lib/types/utils/$require.d.ts +2 -0
- package/lib/types/utils/$traces.d.ts +18 -0
- package/package.json +1 -1
- package/src/clients/debug/ClientDebugMethods.ts +23 -14
- package/src/clients/interfaces/IWeb3Client.ts +4 -0
- package/src/hardhat/HardhatProvider.ts +8 -3
- package/src/hardhat/HardhatWeb3Client.ts +4 -0
- package/src/models/TEth.ts +2 -2
- package/src/txs/TxDataBuilder.ts +20 -0
- package/src/types/TAbi.ts +1 -1
- package/src/utils/$color.ts +1 -1
- package/src/utils/$contract.ts +17 -1
- package/src/utils/$require.ts +9 -0
- package/src/utils/$traces.ts +600 -0
- package/lib/cjs/utils/$sign.js +0 -118
- package/lib/cjs/utils/$sign.js.map +0 -1
- package/lib/esm/utils/$sign.js.map +0 -1
- package/lib/esm/utils/$sign.mjs +0 -117
- package/lib/types/utils/$sign.d.ts +0 -1
- package/src/utils/$sign.ts +0 -136
package/lib/cjs/utils/$sign.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
throw new Error(`Deprecated. Use @dequanto/utils/$sig instead.`);
|
|
4
|
-
// export namespace $sign {
|
|
5
|
-
// export type TSignature = {
|
|
6
|
-
// v: string
|
|
7
|
-
// r: string
|
|
8
|
-
// s: string
|
|
9
|
-
// signature?: string
|
|
10
|
-
// signatureVRS?: string
|
|
11
|
-
// };
|
|
12
|
-
// /** Adds "Ethereum Signed Message" */
|
|
13
|
-
// export async function signEIPHashed (client: Web3Client, message: string, account: EoAccount, accountPss?: string): Promise<TSignature> {
|
|
14
|
-
// const web3 = await client.getWeb3();
|
|
15
|
-
// //const buffer = toBuffer(message);
|
|
16
|
-
// //const hash = hashPersonalMessage(buffer as Buffer);
|
|
17
|
-
// const str = message;
|
|
18
|
-
// const key = account.key != null
|
|
19
|
-
// ? account.key
|
|
20
|
-
// : null;
|
|
21
|
-
// if (key != null) {
|
|
22
|
-
// let sig = web3.eth.accounts.sign(str, key);
|
|
23
|
-
// let r = sig.r.substring(2)
|
|
24
|
-
// let s = sig.s.substring(2)
|
|
25
|
-
// let v = sig.v.substring(2);
|
|
26
|
-
// return toSignature({ r, s, v });
|
|
27
|
-
// }
|
|
28
|
-
// let signature = accountPss == null
|
|
29
|
-
// ? await web3.eth.sign(message.toString(), account.address)
|
|
30
|
-
// : await web3.eth.personal.sign(message.toString(), account.address, accountPss);
|
|
31
|
-
// return toSignature(splitSignature(signature));
|
|
32
|
-
// }
|
|
33
|
-
// export async function signTx (client: Web3Client, tx: TEth.Tx, account: EoAccount, accountPss?: string): Promise<ReturnType<typeof splitSignature>> {
|
|
34
|
-
// const web3 = await client.getWeb3();
|
|
35
|
-
// const key = account.key != null
|
|
36
|
-
// ? account.key
|
|
37
|
-
// : null;
|
|
38
|
-
// if (key != null) {
|
|
39
|
-
// if (typeof tx.chainId === 'string') {
|
|
40
|
-
// // chainIDBN in @ethereumjs supports HEX only if base is specified, otherwise 10 base is taken, and hex numbers are wrongly parsed to a number
|
|
41
|
-
// tx.chainId = Number(tx.chainId);
|
|
42
|
-
// }
|
|
43
|
-
// let sig = await web3.eth.accounts.signTransaction(tx, key);
|
|
44
|
-
// return toSignature(sig);
|
|
45
|
-
// }
|
|
46
|
-
// let signed = accountPss == null
|
|
47
|
-
// ? await web3.eth.signTransaction(tx)
|
|
48
|
-
// : await web3.eth.personal.signTransaction(tx, accountPss);
|
|
49
|
-
// return toSignature(signed.tx);
|
|
50
|
-
// }
|
|
51
|
-
// export async function serializeTx (tx, signature: string | TSignature): Promise<string> {
|
|
52
|
-
// let sig = getSignature(signature);
|
|
53
|
-
// if (Number(sig.v) === 0) {
|
|
54
|
-
// // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md
|
|
55
|
-
// sig.v = '0x25';
|
|
56
|
-
// }
|
|
57
|
-
// return ethers.utils.serializeTransaction(tx, {
|
|
58
|
-
// ...sig,
|
|
59
|
-
// v: Number(sig.v)
|
|
60
|
-
// });
|
|
61
|
-
// }
|
|
62
|
-
// export async function recoverTx(client: Web3Client, tx: TransactionConfig, signature: string | TSignature) {
|
|
63
|
-
// const web3 = await client.getWeb3();
|
|
64
|
-
// const sig = getSignature(signature);
|
|
65
|
-
// const rawTransaction = await serializeTx(tx, sig);
|
|
66
|
-
// return web3.eth.accounts.recoverTransaction(rawTransaction);
|
|
67
|
-
// }
|
|
68
|
-
// function splitSignature (signature: string): TSignature {
|
|
69
|
-
// let r = signature.substring(2, 2 + 64);
|
|
70
|
-
// let s = signature.substring(2 + 64, 2 + 64 + 64);
|
|
71
|
-
// let v = signature.substring(2 + 64 + 64);
|
|
72
|
-
// return { r, s ,v };
|
|
73
|
-
// }
|
|
74
|
-
// function toSignature (sign: { r, s, v }) {
|
|
75
|
-
// let { r, s, v } = sign;
|
|
76
|
-
// r = remove0x(r);
|
|
77
|
-
// s = remove0x(s);
|
|
78
|
-
// if (typeof v === 'number') {
|
|
79
|
-
// v = v.toString(16);
|
|
80
|
-
// }
|
|
81
|
-
// v = remove0x(v);
|
|
82
|
-
// return {
|
|
83
|
-
// v: `0x${v}`,
|
|
84
|
-
// r: `0x${r}`,
|
|
85
|
-
// s: `0x${s}`,
|
|
86
|
-
// signature: `0x${r}${s}${v}`,
|
|
87
|
-
// signatureVRS: `0x${v}${r}${s}`
|
|
88
|
-
// }
|
|
89
|
-
// }
|
|
90
|
-
// function remove0x(hex:string) {
|
|
91
|
-
// return hex.startsWith('0x') ? hex.substring(2) : hex;
|
|
92
|
-
// }
|
|
93
|
-
// function toBuffer (message: string | TBytes, opts?: { encoding?: 'utf8' | 'hex' }) {
|
|
94
|
-
// if (typeof message === 'string') {
|
|
95
|
-
// let encoding = opts?.encoding;
|
|
96
|
-
// if (encoding == null && $is.Hex(message)) {
|
|
97
|
-
// encoding = 'hex';
|
|
98
|
-
// message = message.substring(2);
|
|
99
|
-
// }
|
|
100
|
-
// if (encoding === 'hex') {
|
|
101
|
-
// return $buffer.fromHex(message);
|
|
102
|
-
// }
|
|
103
|
-
// return $buffer.fromString(message, opts?.encoding ?? 'utf8');
|
|
104
|
-
// }
|
|
105
|
-
// return message;
|
|
106
|
-
// }
|
|
107
|
-
// function getSignature(signature: string | TSignature): TSignature {
|
|
108
|
-
// let sig = typeof signature === 'string'
|
|
109
|
-
// ? splitSignature(signature)
|
|
110
|
-
// : signature;
|
|
111
|
-
// if (sig?.r == null || sig?.v == null || sig?.s == null) {
|
|
112
|
-
// throw new Error(`Invalid signature ${JSON.stringify(sig)}`);
|
|
113
|
-
// }
|
|
114
|
-
// return sig;
|
|
115
|
-
// }
|
|
116
|
-
// }
|
|
117
|
-
//# sourceMappingURL=$sign.js.map
|
|
118
|
-
//# sourceMappingURL=$sign.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"$sign.js","sourceRoot":"","sources":["../../../src/utils/$sign.ts"],"names":[],"mappings":";;AAMA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAEjE,2BAA2B;AAC3B,iCAAiC;AACjC,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,6BAA6B;AAC7B,gCAAgC;AAChC,SAAS;AAET,6CAA6C;AAC7C,gJAAgJ;AAChJ,+CAA+C;AAC/C,8CAA8C;AAC9C,gEAAgE;AAChE,+BAA+B;AAC/B,0CAA0C;AAC1C,4BAA4B;AAC5B,sBAAsB;AAEtB,6BAA6B;AAC7B,0DAA0D;AAC1D,yCAAyC;AACzC,yCAAyC;AACzC,0CAA0C;AAC1C,+CAA+C;AAC/C,YAAY;AAEZ,8CAA8C;AAC9C,yEAAyE;AACzE,+FAA+F;AAE/F,yDAAyD;AAEzD,QAAQ;AAER,4JAA4J;AAC5J,+CAA+C;AAC/C,0CAA0C;AAC1C,4BAA4B;AAC5B,sBAAsB;AAEtB,6BAA6B;AAC7B,oDAAoD;AACpD,iKAAiK;AACjK,mDAAmD;AACnD,gBAAgB;AAChB,0EAA0E;AAC1E,uCAAuC;AACvC,YAAY;AAEZ,2CAA2C;AAC3C,mDAAmD;AACnD,yEAAyE;AAEzE,yCAAyC;AACzC,QAAQ;AAER,gGAAgG;AAChG,6CAA6C;AAC7C,qCAAqC;AACrC,8EAA8E;AAC9E,8BAA8B;AAC9B,YAAY;AACZ,yDAAyD;AACzD,sBAAsB;AACtB,+BAA+B;AAC/B,cAAc;AACd,QAAQ;AACR,mHAAmH;AACnH,+CAA+C;AAC/C,+CAA+C;AAC/C,6DAA6D;AAC7D,uEAAuE;AACvE,QAAQ;AAER,gEAAgE;AAChE,kDAAkD;AAClD,4DAA4D;AAC5D,oDAAoD;AACpD,8BAA8B;AAC9B,QAAQ;AACR,iDAAiD;AACjD,kCAAkC;AAClC,2BAA2B;AAC3B,2BAA2B;AAC3B,uCAAuC;AACvC,kCAAkC;AAClC,YAAY;AACZ,2BAA2B;AAC3B,mBAAmB;AACnB,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,2CAA2C;AAC3C,6CAA6C;AAC7C,YAAY;AACZ,QAAQ;AACR,sCAAsC;AACtC,gEAAgE;AAChE,QAAQ;AAER,2FAA2F;AAC3F,6CAA6C;AAC7C,6CAA6C;AAC7C,0DAA0D;AAC1D,oCAAoC;AACpC,kDAAkD;AAClD,gBAAgB;AAChB,wCAAwC;AACxC,mDAAmD;AACnD,gBAAgB;AAChB,4EAA4E;AAC5E,YAAY;AACZ,0BAA0B;AAC1B,QAAQ;AAGR,0EAA0E;AAC1E,kDAAkD;AAClD,8CAA8C;AAC9C,+BAA+B;AAE/B,oEAAoE;AACpE,2EAA2E;AAC3E,YAAY;AACZ,sBAAsB;AACtB,QAAQ;AACR,IAAI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"$sign.js","sourceRoot":"","sources":["../../../src/utils/$sign.ts"],"names":[],"mappings":";;AAMA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAEjE,2BAA2B;AAC3B,iCAAiC;AACjC,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,6BAA6B;AAC7B,gCAAgC;AAChC,SAAS;AAET,6CAA6C;AAC7C,gJAAgJ;AAChJ,+CAA+C;AAC/C,8CAA8C;AAC9C,gEAAgE;AAChE,+BAA+B;AAC/B,0CAA0C;AAC1C,4BAA4B;AAC5B,sBAAsB;AAEtB,6BAA6B;AAC7B,0DAA0D;AAC1D,yCAAyC;AACzC,yCAAyC;AACzC,0CAA0C;AAC1C,+CAA+C;AAC/C,YAAY;AAEZ,8CAA8C;AAC9C,yEAAyE;AACzE,+FAA+F;AAE/F,yDAAyD;AAEzD,QAAQ;AAER,4JAA4J;AAC5J,+CAA+C;AAC/C,0CAA0C;AAC1C,4BAA4B;AAC5B,sBAAsB;AAEtB,6BAA6B;AAC7B,oDAAoD;AACpD,iKAAiK;AACjK,mDAAmD;AACnD,gBAAgB;AAChB,0EAA0E;AAC1E,uCAAuC;AACvC,YAAY;AAEZ,2CAA2C;AAC3C,mDAAmD;AACnD,yEAAyE;AAEzE,yCAAyC;AACzC,QAAQ;AAER,gGAAgG;AAChG,6CAA6C;AAC7C,qCAAqC;AACrC,8EAA8E;AAC9E,8BAA8B;AAC9B,YAAY;AACZ,yDAAyD;AACzD,sBAAsB;AACtB,+BAA+B;AAC/B,cAAc;AACd,QAAQ;AACR,mHAAmH;AACnH,+CAA+C;AAC/C,+CAA+C;AAC/C,6DAA6D;AAC7D,uEAAuE;AACvE,QAAQ;AAER,gEAAgE;AAChE,kDAAkD;AAClD,4DAA4D;AAC5D,oDAAoD;AACpD,8BAA8B;AAC9B,QAAQ;AACR,iDAAiD;AACjD,kCAAkC;AAClC,2BAA2B;AAC3B,2BAA2B;AAC3B,uCAAuC;AACvC,kCAAkC;AAClC,YAAY;AACZ,2BAA2B;AAC3B,mBAAmB;AACnB,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B,2CAA2C;AAC3C,6CAA6C;AAC7C,YAAY;AACZ,QAAQ;AACR,sCAAsC;AACtC,gEAAgE;AAChE,QAAQ;AAER,2FAA2F;AAC3F,6CAA6C;AAC7C,6CAA6C;AAC7C,0DAA0D;AAC1D,oCAAoC;AACpC,kDAAkD;AAClD,gBAAgB;AAChB,wCAAwC;AACxC,mDAAmD;AACnD,gBAAgB;AAChB,4EAA4E;AAC5E,YAAY;AACZ,0BAA0B;AAC1B,QAAQ;AAGR,0EAA0E;AAC1E,kDAAkD;AAClD,8CAA8C;AAC9C,+BAA+B;AAE/B,oEAAoE;AACpE,2EAA2E;AAC3E,YAAY;AACZ,sBAAsB;AACtB,QAAQ;AACR,IAAI"}
|
package/lib/esm/utils/$sign.mjs
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
throw new Error(`Deprecated. Use @dequanto/utils/$sig instead.`);
|
|
2
|
-
export {};
|
|
3
|
-
// export namespace $sign {
|
|
4
|
-
// export type TSignature = {
|
|
5
|
-
// v: string
|
|
6
|
-
// r: string
|
|
7
|
-
// s: string
|
|
8
|
-
// signature?: string
|
|
9
|
-
// signatureVRS?: string
|
|
10
|
-
// };
|
|
11
|
-
// /** Adds "Ethereum Signed Message" */
|
|
12
|
-
// export async function signEIPHashed (client: Web3Client, message: string, account: EoAccount, accountPss?: string): Promise<TSignature> {
|
|
13
|
-
// const web3 = await client.getWeb3();
|
|
14
|
-
// //const buffer = toBuffer(message);
|
|
15
|
-
// //const hash = hashPersonalMessage(buffer as Buffer);
|
|
16
|
-
// const str = message;
|
|
17
|
-
// const key = account.key != null
|
|
18
|
-
// ? account.key
|
|
19
|
-
// : null;
|
|
20
|
-
// if (key != null) {
|
|
21
|
-
// let sig = web3.eth.accounts.sign(str, key);
|
|
22
|
-
// let r = sig.r.substring(2)
|
|
23
|
-
// let s = sig.s.substring(2)
|
|
24
|
-
// let v = sig.v.substring(2);
|
|
25
|
-
// return toSignature({ r, s, v });
|
|
26
|
-
// }
|
|
27
|
-
// let signature = accountPss == null
|
|
28
|
-
// ? await web3.eth.sign(message.toString(), account.address)
|
|
29
|
-
// : await web3.eth.personal.sign(message.toString(), account.address, accountPss);
|
|
30
|
-
// return toSignature(splitSignature(signature));
|
|
31
|
-
// }
|
|
32
|
-
// export async function signTx (client: Web3Client, tx: TEth.Tx, account: EoAccount, accountPss?: string): Promise<ReturnType<typeof splitSignature>> {
|
|
33
|
-
// const web3 = await client.getWeb3();
|
|
34
|
-
// const key = account.key != null
|
|
35
|
-
// ? account.key
|
|
36
|
-
// : null;
|
|
37
|
-
// if (key != null) {
|
|
38
|
-
// if (typeof tx.chainId === 'string') {
|
|
39
|
-
// // chainIDBN in @ethereumjs supports HEX only if base is specified, otherwise 10 base is taken, and hex numbers are wrongly parsed to a number
|
|
40
|
-
// tx.chainId = Number(tx.chainId);
|
|
41
|
-
// }
|
|
42
|
-
// let sig = await web3.eth.accounts.signTransaction(tx, key);
|
|
43
|
-
// return toSignature(sig);
|
|
44
|
-
// }
|
|
45
|
-
// let signed = accountPss == null
|
|
46
|
-
// ? await web3.eth.signTransaction(tx)
|
|
47
|
-
// : await web3.eth.personal.signTransaction(tx, accountPss);
|
|
48
|
-
// return toSignature(signed.tx);
|
|
49
|
-
// }
|
|
50
|
-
// export async function serializeTx (tx, signature: string | TSignature): Promise<string> {
|
|
51
|
-
// let sig = getSignature(signature);
|
|
52
|
-
// if (Number(sig.v) === 0) {
|
|
53
|
-
// // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md
|
|
54
|
-
// sig.v = '0x25';
|
|
55
|
-
// }
|
|
56
|
-
// return ethers.utils.serializeTransaction(tx, {
|
|
57
|
-
// ...sig,
|
|
58
|
-
// v: Number(sig.v)
|
|
59
|
-
// });
|
|
60
|
-
// }
|
|
61
|
-
// export async function recoverTx(client: Web3Client, tx: TransactionConfig, signature: string | TSignature) {
|
|
62
|
-
// const web3 = await client.getWeb3();
|
|
63
|
-
// const sig = getSignature(signature);
|
|
64
|
-
// const rawTransaction = await serializeTx(tx, sig);
|
|
65
|
-
// return web3.eth.accounts.recoverTransaction(rawTransaction);
|
|
66
|
-
// }
|
|
67
|
-
// function splitSignature (signature: string): TSignature {
|
|
68
|
-
// let r = signature.substring(2, 2 + 64);
|
|
69
|
-
// let s = signature.substring(2 + 64, 2 + 64 + 64);
|
|
70
|
-
// let v = signature.substring(2 + 64 + 64);
|
|
71
|
-
// return { r, s ,v };
|
|
72
|
-
// }
|
|
73
|
-
// function toSignature (sign: { r, s, v }) {
|
|
74
|
-
// let { r, s, v } = sign;
|
|
75
|
-
// r = remove0x(r);
|
|
76
|
-
// s = remove0x(s);
|
|
77
|
-
// if (typeof v === 'number') {
|
|
78
|
-
// v = v.toString(16);
|
|
79
|
-
// }
|
|
80
|
-
// v = remove0x(v);
|
|
81
|
-
// return {
|
|
82
|
-
// v: `0x${v}`,
|
|
83
|
-
// r: `0x${r}`,
|
|
84
|
-
// s: `0x${s}`,
|
|
85
|
-
// signature: `0x${r}${s}${v}`,
|
|
86
|
-
// signatureVRS: `0x${v}${r}${s}`
|
|
87
|
-
// }
|
|
88
|
-
// }
|
|
89
|
-
// function remove0x(hex:string) {
|
|
90
|
-
// return hex.startsWith('0x') ? hex.substring(2) : hex;
|
|
91
|
-
// }
|
|
92
|
-
// function toBuffer (message: string | TBytes, opts?: { encoding?: 'utf8' | 'hex' }) {
|
|
93
|
-
// if (typeof message === 'string') {
|
|
94
|
-
// let encoding = opts?.encoding;
|
|
95
|
-
// if (encoding == null && $is.Hex(message)) {
|
|
96
|
-
// encoding = 'hex';
|
|
97
|
-
// message = message.substring(2);
|
|
98
|
-
// }
|
|
99
|
-
// if (encoding === 'hex') {
|
|
100
|
-
// return $buffer.fromHex(message);
|
|
101
|
-
// }
|
|
102
|
-
// return $buffer.fromString(message, opts?.encoding ?? 'utf8');
|
|
103
|
-
// }
|
|
104
|
-
// return message;
|
|
105
|
-
// }
|
|
106
|
-
// function getSignature(signature: string | TSignature): TSignature {
|
|
107
|
-
// let sig = typeof signature === 'string'
|
|
108
|
-
// ? splitSignature(signature)
|
|
109
|
-
// : signature;
|
|
110
|
-
// if (sig?.r == null || sig?.v == null || sig?.s == null) {
|
|
111
|
-
// throw new Error(`Invalid signature ${JSON.stringify(sig)}`);
|
|
112
|
-
// }
|
|
113
|
-
// return sig;
|
|
114
|
-
// }
|
|
115
|
-
// }
|
|
116
|
-
//# sourceMappingURL=$sign.js.map
|
|
117
|
-
//# sourceMappingURL=$sign.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/src/utils/$sign.ts
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { Web3Client } from '@dequanto/clients/Web3Client';
|
|
2
|
-
import { EoAccount } from '@dequanto/models/TAccount';
|
|
3
|
-
import { $buffer, TBytes } from './$buffer';
|
|
4
|
-
import { $is } from './$is';
|
|
5
|
-
import { TEth } from '@dequanto/models/TEth';
|
|
6
|
-
|
|
7
|
-
throw new Error(`Deprecated. Use @dequanto/utils/$sig instead.`);
|
|
8
|
-
|
|
9
|
-
// export namespace $sign {
|
|
10
|
-
// export type TSignature = {
|
|
11
|
-
// v: string
|
|
12
|
-
// r: string
|
|
13
|
-
// s: string
|
|
14
|
-
// signature?: string
|
|
15
|
-
// signatureVRS?: string
|
|
16
|
-
// };
|
|
17
|
-
|
|
18
|
-
// /** Adds "Ethereum Signed Message" */
|
|
19
|
-
// export async function signEIPHashed (client: Web3Client, message: string, account: EoAccount, accountPss?: string): Promise<TSignature> {
|
|
20
|
-
// const web3 = await client.getWeb3();
|
|
21
|
-
// //const buffer = toBuffer(message);
|
|
22
|
-
// //const hash = hashPersonalMessage(buffer as Buffer);
|
|
23
|
-
// const str = message;
|
|
24
|
-
// const key = account.key != null
|
|
25
|
-
// ? account.key
|
|
26
|
-
// : null;
|
|
27
|
-
|
|
28
|
-
// if (key != null) {
|
|
29
|
-
// let sig = web3.eth.accounts.sign(str, key);
|
|
30
|
-
// let r = sig.r.substring(2)
|
|
31
|
-
// let s = sig.s.substring(2)
|
|
32
|
-
// let v = sig.v.substring(2);
|
|
33
|
-
// return toSignature({ r, s, v });
|
|
34
|
-
// }
|
|
35
|
-
|
|
36
|
-
// let signature = accountPss == null
|
|
37
|
-
// ? await web3.eth.sign(message.toString(), account.address)
|
|
38
|
-
// : await web3.eth.personal.sign(message.toString(), account.address, accountPss);
|
|
39
|
-
|
|
40
|
-
// return toSignature(splitSignature(signature));
|
|
41
|
-
|
|
42
|
-
// }
|
|
43
|
-
|
|
44
|
-
// export async function signTx (client: Web3Client, tx: TEth.Tx, account: EoAccount, accountPss?: string): Promise<ReturnType<typeof splitSignature>> {
|
|
45
|
-
// const web3 = await client.getWeb3();
|
|
46
|
-
// const key = account.key != null
|
|
47
|
-
// ? account.key
|
|
48
|
-
// : null;
|
|
49
|
-
|
|
50
|
-
// if (key != null) {
|
|
51
|
-
// if (typeof tx.chainId === 'string') {
|
|
52
|
-
// // chainIDBN in @ethereumjs supports HEX only if base is specified, otherwise 10 base is taken, and hex numbers are wrongly parsed to a number
|
|
53
|
-
// tx.chainId = Number(tx.chainId);
|
|
54
|
-
// }
|
|
55
|
-
// let sig = await web3.eth.accounts.signTransaction(tx, key);
|
|
56
|
-
// return toSignature(sig);
|
|
57
|
-
// }
|
|
58
|
-
|
|
59
|
-
// let signed = accountPss == null
|
|
60
|
-
// ? await web3.eth.signTransaction(tx)
|
|
61
|
-
// : await web3.eth.personal.signTransaction(tx, accountPss);
|
|
62
|
-
|
|
63
|
-
// return toSignature(signed.tx);
|
|
64
|
-
// }
|
|
65
|
-
|
|
66
|
-
// export async function serializeTx (tx, signature: string | TSignature): Promise<string> {
|
|
67
|
-
// let sig = getSignature(signature);
|
|
68
|
-
// if (Number(sig.v) === 0) {
|
|
69
|
-
// // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md
|
|
70
|
-
// sig.v = '0x25';
|
|
71
|
-
// }
|
|
72
|
-
// return ethers.utils.serializeTransaction(tx, {
|
|
73
|
-
// ...sig,
|
|
74
|
-
// v: Number(sig.v)
|
|
75
|
-
// });
|
|
76
|
-
// }
|
|
77
|
-
// export async function recoverTx(client: Web3Client, tx: TransactionConfig, signature: string | TSignature) {
|
|
78
|
-
// const web3 = await client.getWeb3();
|
|
79
|
-
// const sig = getSignature(signature);
|
|
80
|
-
// const rawTransaction = await serializeTx(tx, sig);
|
|
81
|
-
// return web3.eth.accounts.recoverTransaction(rawTransaction);
|
|
82
|
-
// }
|
|
83
|
-
|
|
84
|
-
// function splitSignature (signature: string): TSignature {
|
|
85
|
-
// let r = signature.substring(2, 2 + 64);
|
|
86
|
-
// let s = signature.substring(2 + 64, 2 + 64 + 64);
|
|
87
|
-
// let v = signature.substring(2 + 64 + 64);
|
|
88
|
-
// return { r, s ,v };
|
|
89
|
-
// }
|
|
90
|
-
// function toSignature (sign: { r, s, v }) {
|
|
91
|
-
// let { r, s, v } = sign;
|
|
92
|
-
// r = remove0x(r);
|
|
93
|
-
// s = remove0x(s);
|
|
94
|
-
// if (typeof v === 'number') {
|
|
95
|
-
// v = v.toString(16);
|
|
96
|
-
// }
|
|
97
|
-
// v = remove0x(v);
|
|
98
|
-
// return {
|
|
99
|
-
// v: `0x${v}`,
|
|
100
|
-
// r: `0x${r}`,
|
|
101
|
-
// s: `0x${s}`,
|
|
102
|
-
// signature: `0x${r}${s}${v}`,
|
|
103
|
-
// signatureVRS: `0x${v}${r}${s}`
|
|
104
|
-
// }
|
|
105
|
-
// }
|
|
106
|
-
// function remove0x(hex:string) {
|
|
107
|
-
// return hex.startsWith('0x') ? hex.substring(2) : hex;
|
|
108
|
-
// }
|
|
109
|
-
|
|
110
|
-
// function toBuffer (message: string | TBytes, opts?: { encoding?: 'utf8' | 'hex' }) {
|
|
111
|
-
// if (typeof message === 'string') {
|
|
112
|
-
// let encoding = opts?.encoding;
|
|
113
|
-
// if (encoding == null && $is.Hex(message)) {
|
|
114
|
-
// encoding = 'hex';
|
|
115
|
-
// message = message.substring(2);
|
|
116
|
-
// }
|
|
117
|
-
// if (encoding === 'hex') {
|
|
118
|
-
// return $buffer.fromHex(message);
|
|
119
|
-
// }
|
|
120
|
-
// return $buffer.fromString(message, opts?.encoding ?? 'utf8');
|
|
121
|
-
// }
|
|
122
|
-
// return message;
|
|
123
|
-
// }
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
// function getSignature(signature: string | TSignature): TSignature {
|
|
127
|
-
// let sig = typeof signature === 'string'
|
|
128
|
-
// ? splitSignature(signature)
|
|
129
|
-
// : signature;
|
|
130
|
-
|
|
131
|
-
// if (sig?.r == null || sig?.v == null || sig?.s == null) {
|
|
132
|
-
// throw new Error(`Invalid signature ${JSON.stringify(sig)}`);
|
|
133
|
-
// }
|
|
134
|
-
// return sig;
|
|
135
|
-
// }
|
|
136
|
-
// }
|