starknet 1.7.0 → 2.1.0
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/CHANGELOG.md +34 -1
- package/README.md +56 -5
- package/__mocks__/ArgentAccount.json +42401 -49045
- package/__mocks__/ERC20.json +3721 -3274
- package/__mocks__/Readme.md +2 -0
- package/__tests__/account.test.ts +6 -6
- package/__tests__/provider.test.ts +5 -5
- package/__tests__/signer.test.ts +1 -1
- package/__tests__/utils/__snapshots__/utils.browser.test.ts.snap +2 -2
- package/__tests__/utils/__snapshots__/utils.test.ts.snap +2 -2
- package/__tests__/utils/ellipticalCurve.test.ts +18 -6
- package/__tests__/utils/utils.test.ts +3 -3
- package/dist/provider/default.d.ts +7 -5
- package/dist/provider/default.js +12 -6
- package/dist/signer/default.js +2 -3
- package/dist/types.d.ts +6 -6
- package/dist/utils/ellipticCurve.js +1 -1
- package/dist/utils/hash.d.ts +1 -0
- package/dist/utils/hash.js +7 -15
- package/dist/utils/stark.d.ts +0 -1
- package/dist/utils/stark.js +1 -30
- package/package.json +1 -1
- package/provider/default.d.ts +11 -5
- package/provider/default.js +16 -7
- package/signer/default.js +2 -2
- package/src/provider/default.ts +22 -11
- package/src/signer/default.ts +2 -2
- package/src/types.ts +6 -6
- package/src/utils/ellipticCurve.ts +1 -1
- package/src/utils/hash.ts +6 -14
- package/src/utils/stark.ts +1 -5
- package/tsconfig.json +3 -2
- package/types.d.ts +6 -6
- package/utils/ellipticCurve.js +1 -1
- package/utils/hash.d.ts +1 -0
- package/utils/hash.js +16 -15
- package/utils/stark.d.ts +0 -1
- package/utils/stark.js +1 -45
package/types.d.ts
CHANGED
|
@@ -60,14 +60,14 @@ export declare type CallContractResponse = {
|
|
|
60
60
|
export declare type GetBlockResponse = {
|
|
61
61
|
sequence_number: number;
|
|
62
62
|
state_root: string;
|
|
63
|
-
|
|
63
|
+
block_hash: string;
|
|
64
64
|
transactions: {
|
|
65
65
|
[txHash: string]: Transaction;
|
|
66
66
|
};
|
|
67
67
|
timestamp: number;
|
|
68
68
|
transaction_receipts: {
|
|
69
69
|
[txHash: string]: {
|
|
70
|
-
|
|
70
|
+
block_hash: string;
|
|
71
71
|
transaction_hash: string;
|
|
72
72
|
l2_to_l1_messages: {
|
|
73
73
|
to_address: string;
|
|
@@ -79,7 +79,7 @@ export declare type GetBlockResponse = {
|
|
|
79
79
|
transaction_index: number;
|
|
80
80
|
};
|
|
81
81
|
};
|
|
82
|
-
|
|
82
|
+
previous_block_hash: string;
|
|
83
83
|
status: Status;
|
|
84
84
|
};
|
|
85
85
|
export declare type GetCodeResponse = {
|
|
@@ -88,12 +88,12 @@ export declare type GetCodeResponse = {
|
|
|
88
88
|
};
|
|
89
89
|
export declare type GetTransactionStatusResponse = {
|
|
90
90
|
tx_status: Status;
|
|
91
|
-
|
|
91
|
+
block_hash: string;
|
|
92
92
|
};
|
|
93
93
|
export declare type GetTransactionResponse = {
|
|
94
94
|
status: Status;
|
|
95
95
|
transaction: Transaction;
|
|
96
|
-
|
|
96
|
+
block_hash: string;
|
|
97
97
|
block_number: number;
|
|
98
98
|
transaction_index: number;
|
|
99
99
|
transaction_hash: string;
|
|
@@ -101,5 +101,5 @@ export declare type GetTransactionResponse = {
|
|
|
101
101
|
export declare type AddTransactionResponse = {
|
|
102
102
|
code: TxStatus;
|
|
103
103
|
transaction_hash: string;
|
|
104
|
-
address
|
|
104
|
+
address?: string;
|
|
105
105
|
};
|
package/utils/ellipticCurve.js
CHANGED
|
@@ -138,6 +138,6 @@ function verify(keyPair, msgHash, sig) {
|
|
|
138
138
|
(0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)),
|
|
139
139
|
'w'
|
|
140
140
|
);
|
|
141
|
-
return keyPair.verify(msgHash, sig);
|
|
141
|
+
return keyPair.verify(fixMessage(msgHash), sig);
|
|
142
142
|
}
|
|
143
143
|
exports.verify = verify;
|
package/utils/hash.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { BigNumberish } from './number';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare function starknetKeccak(value: string): BN;
|
|
12
12
|
export declare function pedersen(input: [BigNumberish, BigNumberish]): string;
|
|
13
|
+
export declare function computeHashOnElements(data: BigNumberish[]): string;
|
|
13
14
|
export declare function hashCalldata(calldata: string[]): string;
|
|
14
15
|
export declare function hashMessage(
|
|
15
16
|
account: string,
|
package/utils/hash.js
CHANGED
|
@@ -39,7 +39,12 @@ var __importDefault =
|
|
|
39
39
|
return mod && mod.__esModule ? mod : { default: mod };
|
|
40
40
|
};
|
|
41
41
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
42
|
-
exports.hashMessage =
|
|
42
|
+
exports.hashMessage =
|
|
43
|
+
exports.hashCalldata =
|
|
44
|
+
exports.computeHashOnElements =
|
|
45
|
+
exports.pedersen =
|
|
46
|
+
exports.starknetKeccak =
|
|
47
|
+
void 0;
|
|
43
48
|
var keccak_1 = require('ethereum-cryptography/keccak');
|
|
44
49
|
var minimalistic_assert_1 = __importDefault(require('minimalistic-assert'));
|
|
45
50
|
var constants_1 = require('../constants');
|
|
@@ -86,24 +91,20 @@ function pedersen(input) {
|
|
|
86
91
|
return (0, encode_1.addHexPrefix)(point.getX().toString(16));
|
|
87
92
|
}
|
|
88
93
|
exports.pedersen = pedersen;
|
|
94
|
+
function computeHashOnElements(data) {
|
|
95
|
+
return __spreadArray(__spreadArray([], __read(data), false), [data.length], false)
|
|
96
|
+
.reduce(function (x, y) {
|
|
97
|
+
return pedersen([x, y]);
|
|
98
|
+
}, 0)
|
|
99
|
+
.toString();
|
|
100
|
+
}
|
|
101
|
+
exports.computeHashOnElements = computeHashOnElements;
|
|
89
102
|
function hashCalldata(calldata) {
|
|
90
|
-
|
|
91
|
-
if (calldataCopy.length === 0) {
|
|
92
|
-
return '0';
|
|
93
|
-
}
|
|
94
|
-
if (calldataCopy.length === 1) {
|
|
95
|
-
return calldataCopy[0];
|
|
96
|
-
}
|
|
97
|
-
// calldata element will always be there as it was checked by an if statement before (!)
|
|
98
|
-
var calldataEl = calldataCopy.shift();
|
|
99
|
-
return pedersen([hashCalldata(calldataCopy), calldataEl]);
|
|
103
|
+
return computeHashOnElements(calldata);
|
|
100
104
|
}
|
|
101
105
|
exports.hashCalldata = hashCalldata;
|
|
102
106
|
function hashMessage(account, to, selector, calldata, nonce) {
|
|
103
|
-
var hash0 = pedersen([account, to]);
|
|
104
|
-
var hash1 = pedersen([hash0, selector]);
|
|
105
107
|
var calldataHash = hashCalldata(calldata);
|
|
106
|
-
|
|
107
|
-
return pedersen([hash2, nonce]);
|
|
108
|
+
return computeHashOnElements([account, to, selector, calldataHash, nonce]);
|
|
108
109
|
}
|
|
109
110
|
exports.hashMessage = hashMessage;
|
package/utils/stark.d.ts
CHANGED
|
@@ -19,4 +19,3 @@ export declare function getSelectorFromName(funcName: string): string;
|
|
|
19
19
|
export declare function randomAddress(): string;
|
|
20
20
|
export declare function makeAddress(input: string): string;
|
|
21
21
|
export declare function formatSignature(sig?: [BigNumberish, BigNumberish]): [string, string] | [];
|
|
22
|
-
export declare function computeHashOnElements(data: BigNumberish[]): BigNumberish;
|
package/utils/stark.js
CHANGED
|
@@ -1,41 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var __read =
|
|
3
|
-
(this && this.__read) ||
|
|
4
|
-
function (o, n) {
|
|
5
|
-
var m = typeof Symbol === 'function' && o[Symbol.iterator];
|
|
6
|
-
if (!m) return o;
|
|
7
|
-
var i = m.call(o),
|
|
8
|
-
r,
|
|
9
|
-
ar = [],
|
|
10
|
-
e;
|
|
11
|
-
try {
|
|
12
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
13
|
-
} catch (error) {
|
|
14
|
-
e = { error: error };
|
|
15
|
-
} finally {
|
|
16
|
-
try {
|
|
17
|
-
if (r && !r.done && (m = i['return'])) m.call(i);
|
|
18
|
-
} finally {
|
|
19
|
-
if (e) throw e.error;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return ar;
|
|
23
|
-
};
|
|
24
|
-
var __spreadArray =
|
|
25
|
-
(this && this.__spreadArray) ||
|
|
26
|
-
function (to, from, pack) {
|
|
27
|
-
if (pack || arguments.length === 2)
|
|
28
|
-
for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
29
|
-
if (ar || !(i in from)) {
|
|
30
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
31
|
-
ar[i] = from[i];
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
35
|
-
};
|
|
36
2
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
37
|
-
exports.
|
|
38
|
-
exports.formatSignature =
|
|
3
|
+
exports.formatSignature =
|
|
39
4
|
exports.makeAddress =
|
|
40
5
|
exports.randomAddress =
|
|
41
6
|
exports.getSelectorFromName =
|
|
@@ -97,12 +62,3 @@ function formatSignature(sig) {
|
|
|
97
62
|
}
|
|
98
63
|
}
|
|
99
64
|
exports.formatSignature = formatSignature;
|
|
100
|
-
function computeHashOnElements(data) {
|
|
101
|
-
return __spreadArray(__spreadArray([], __read(data), false), [data.length], false).reduce(
|
|
102
|
-
function (x, y) {
|
|
103
|
-
return (0, hash_1.pedersen)([x, y]);
|
|
104
|
-
},
|
|
105
|
-
0
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
exports.computeHashOnElements = computeHashOnElements;
|