starknet 3.18.2 → 4.0.1

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.
Files changed (165) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +1 -2
  3. package/__tests__/account.test.ts +11 -56
  4. package/__tests__/contract.test.ts +11 -49
  5. package/__tests__/defaultProvider.test.ts +321 -0
  6. package/__tests__/fixtures.ts +32 -11
  7. package/__tests__/jest.setup.ts +2 -3
  8. package/__tests__/rpcProvider.test.ts +17 -0
  9. package/__tests__/sequencerProvider.test.ts +45 -0
  10. package/account/default.d.ts +54 -77
  11. package/account/default.js +271 -596
  12. package/account/index.js +18 -31
  13. package/account/interface.d.ts +66 -95
  14. package/account/interface.js +20 -30
  15. package/constants.d.ts +17 -19
  16. package/constants.js +2038 -2059
  17. package/contract/contractFactory.d.ts +25 -29
  18. package/contract/contractFactory.js +94 -210
  19. package/contract/default.d.ts +117 -146
  20. package/contract/default.js +582 -776
  21. package/contract/index.js +19 -32
  22. package/contract/interface.d.ts +72 -92
  23. package/contract/interface.js +6 -5
  24. package/dist/account/default.d.ts +5 -9
  25. package/dist/account/default.js +35 -169
  26. package/dist/account/interface.d.ts +3 -15
  27. package/dist/contract/contractFactory.js +4 -4
  28. package/dist/contract/default.d.ts +3 -3
  29. package/dist/contract/default.js +3 -2
  30. package/dist/contract/interface.d.ts +2 -2
  31. package/dist/provider/default.d.ts +18 -134
  32. package/dist/provider/default.js +47 -411
  33. package/dist/provider/index.d.ts +2 -0
  34. package/dist/provider/index.js +2 -0
  35. package/dist/provider/interface.d.ts +45 -50
  36. package/dist/provider/rpc.d.ts +57 -0
  37. package/dist/provider/rpc.js +364 -0
  38. package/dist/provider/sequencer.d.ts +66 -0
  39. package/dist/provider/sequencer.js +444 -0
  40. package/dist/types/account.d.ts +2 -3
  41. package/dist/types/api/index.d.ts +16 -0
  42. package/dist/types/api/index.js +18 -0
  43. package/dist/types/api/rpc.d.ts +221 -0
  44. package/dist/types/{api.js → api/rpc.js} +0 -0
  45. package/dist/types/api/sequencer.d.ts +289 -0
  46. package/dist/types/api/sequencer.js +2 -0
  47. package/dist/types/index.d.ts +3 -1
  48. package/dist/types/index.js +15 -1
  49. package/dist/types/lib.d.ts +3 -1
  50. package/dist/types/provider.d.ts +86 -0
  51. package/dist/types/provider.js +2 -0
  52. package/dist/utils/fetchPonyfill.d.ts +2 -0
  53. package/dist/utils/fetchPonyfill.js +6 -0
  54. package/dist/utils/provider.d.ts +4 -0
  55. package/dist/utils/provider.js +38 -0
  56. package/dist/utils/responseParser/index.d.ts +11 -0
  57. package/dist/utils/responseParser/index.js +9 -0
  58. package/dist/utils/responseParser/rpc.d.ts +13 -0
  59. package/dist/utils/responseParser/rpc.js +96 -0
  60. package/dist/utils/responseParser/sequencer.d.ts +13 -0
  61. package/dist/utils/responseParser/sequencer.js +124 -0
  62. package/index.js +42 -75
  63. package/package.json +2 -3
  64. package/provider/default.d.ts +21 -175
  65. package/provider/default.js +139 -704
  66. package/provider/errors.d.ts +4 -4
  67. package/provider/errors.js +30 -40
  68. package/provider/index.d.ts +2 -0
  69. package/provider/index.js +22 -33
  70. package/provider/interface.d.ts +104 -131
  71. package/provider/interface.js +6 -5
  72. package/provider/rpc.d.ts +57 -0
  73. package/provider/rpc.js +364 -0
  74. package/provider/sequencer.d.ts +66 -0
  75. package/provider/sequencer.js +444 -0
  76. package/provider/utils.d.ts +7 -9
  77. package/provider/utils.js +39 -44
  78. package/signer/default.d.ts +5 -9
  79. package/signer/default.js +72 -177
  80. package/signer/index.js +18 -31
  81. package/signer/interface.d.ts +29 -33
  82. package/signer/interface.js +6 -5
  83. package/src/account/default.ts +26 -146
  84. package/src/account/interface.ts +5 -20
  85. package/src/contract/contractFactory.ts +3 -6
  86. package/src/contract/default.ts +6 -4
  87. package/src/contract/interface.ts +2 -2
  88. package/src/provider/default.ts +63 -395
  89. package/src/provider/index.ts +2 -0
  90. package/src/provider/interface.ts +68 -63
  91. package/src/provider/rpc.ts +299 -0
  92. package/src/provider/sequencer.ts +385 -0
  93. package/src/types/account.ts +2 -3
  94. package/src/types/api/index.ts +17 -0
  95. package/src/types/api/rpc.ts +247 -0
  96. package/src/types/api/sequencer.ts +331 -0
  97. package/src/types/index.ts +3 -1
  98. package/src/types/lib.ts +3 -1
  99. package/src/types/provider.ts +108 -0
  100. package/src/utils/fetchPonyfill.ts +4 -0
  101. package/src/utils/provider.ts +28 -0
  102. package/src/utils/responseParser/index.ts +28 -0
  103. package/src/utils/responseParser/rpc.ts +93 -0
  104. package/src/utils/responseParser/sequencer.ts +127 -0
  105. package/types/account.d.ts +5 -7
  106. package/types/account.js +2 -2
  107. package/types/api/index.d.ts +16 -0
  108. package/types/api/index.js +18 -0
  109. package/types/api/rpc.d.ts +221 -0
  110. package/types/api/rpc.js +2 -0
  111. package/types/api/sequencer.d.ts +289 -0
  112. package/types/api/sequencer.js +2 -0
  113. package/types/contract.d.ts +1 -1
  114. package/types/contract.js +2 -2
  115. package/types/index.d.ts +3 -1
  116. package/types/index.js +35 -34
  117. package/types/lib.d.ts +36 -41
  118. package/types/lib.js +2 -2
  119. package/types/provider.d.ts +86 -0
  120. package/types/provider.js +2 -0
  121. package/types/signer.d.ts +2 -2
  122. package/types/signer.js +2 -2
  123. package/utils/address.js +26 -37
  124. package/utils/ellipticCurve.d.ts +1 -6
  125. package/utils/ellipticCurve.js +73 -137
  126. package/utils/encode.js +49 -85
  127. package/utils/fetchPonyfill.d.ts +2 -0
  128. package/utils/fetchPonyfill.js +6 -0
  129. package/utils/hash.d.ts +4 -31
  130. package/utils/hash.js +76 -141
  131. package/utils/json.d.ts +13 -45
  132. package/utils/json.js +15 -22
  133. package/utils/number.d.ts +2 -9
  134. package/utils/number.js +47 -81
  135. package/utils/provider.d.ts +4 -0
  136. package/utils/provider.js +38 -0
  137. package/utils/responseParser/index.d.ts +11 -0
  138. package/utils/responseParser/index.js +9 -0
  139. package/utils/responseParser/rpc.d.ts +13 -0
  140. package/utils/responseParser/rpc.js +96 -0
  141. package/utils/responseParser/sequencer.d.ts +13 -0
  142. package/utils/responseParser/sequencer.js +124 -0
  143. package/utils/shortString.js +13 -21
  144. package/utils/stark.d.ts +0 -1
  145. package/utils/stark.js +59 -93
  146. package/utils/transaction.d.ts +3 -6
  147. package/utils/transaction.js +50 -81
  148. package/utils/typedData/index.d.ts +3 -15
  149. package/utils/typedData/index.js +109 -175
  150. package/utils/typedData/types.d.ts +9 -9
  151. package/utils/typedData/types.js +2 -2
  152. package/utils/typedData/utils.js +6 -6
  153. package/utils/uint256.d.ts +5 -5
  154. package/utils/uint256.js +16 -26
  155. package/www/docs/API/account.md +3 -4
  156. package/www/docs/API/contract.md +2 -2
  157. package/www/docs/API/contractFactory.md +2 -2
  158. package/www/docs/API/provider.md +185 -74
  159. package/www/guides/account.md +1 -8
  160. package/www/guides/erc20.md +3 -0
  161. package/__tests__/provider.test.ts +0 -168
  162. package/dist/types/api.d.ts +0 -261
  163. package/src/types/api.ts +0 -303
  164. package/types/api.d.ts +0 -287
  165. package/types/api.js +0 -2
@@ -1,48 +1,32 @@
1
- 'use strict';
2
- var __read =
3
- (this && this.__read) ||
4
- function (o, n) {
5
- var m = typeof Symbol === 'function' && o[Symbol.iterator];
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
6
4
  if (!m) return o;
7
- var i = m.call(o),
8
- r,
9
- ar = [],
10
- e;
5
+ var i = m.call(o), r, ar = [], e;
11
6
  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
- }
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
21
15
  }
22
16
  return ar;
23
- };
24
- var __importDefault =
25
- (this && this.__importDefault) ||
26
- function (mod) {
27
- return mod && mod.__esModule ? mod : { default: mod };
28
- };
29
- Object.defineProperty(exports, '__esModule', { value: true });
30
- exports.verify =
31
- exports.sign =
32
- exports.getKeyPairFromPublicKey =
33
- exports.getStarkKey =
34
- exports.getKeyPair =
35
- exports.genKeyPair =
36
- exports.ec =
37
- void 0;
38
- var elliptic_1 = require('elliptic');
39
- var hash_js_1 = __importDefault(require('hash.js'));
40
- var minimalistic_assert_1 = __importDefault(require('minimalistic-assert'));
41
- var constants_1 = require('../constants');
42
- var encode_1 = require('./encode');
43
- var number_1 = require('./number');
44
- exports.ec = new elliptic_1.ec(
45
- new elliptic_1.curves.PresetCurve({
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.verify = exports.sign = exports.getKeyPairFromPublicKey = exports.getStarkKey = exports.getKeyPair = exports.genKeyPair = exports.ec = void 0;
23
+ var elliptic_1 = require("elliptic");
24
+ var hash_js_1 = __importDefault(require("hash.js"));
25
+ var minimalistic_assert_1 = __importDefault(require("minimalistic-assert"));
26
+ var constants_1 = require("../constants");
27
+ var encode_1 = require("./encode");
28
+ var number_1 = require("./number");
29
+ exports.ec = new elliptic_1.ec(new elliptic_1.curves.PresetCurve({
46
30
  type: 'short',
47
31
  prime: null,
48
32
  p: constants_1.FIELD_PRIME,
@@ -52,37 +36,34 @@ exports.ec = new elliptic_1.ec(
52
36
  hash: hash_js_1.default.sha256,
53
37
  gRed: false,
54
38
  g: constants_1.CONSTANT_POINTS[1],
55
- })
56
- );
39
+ }));
57
40
  /*
58
41
  The function _truncateToN in lib/elliptic/ec/index.js does a shift-right of 4 bits
59
42
  in some cases. This function does the opposite operation so that
60
43
  _truncateToN(fixMessage(msg)) == msg.
61
44
  */
62
45
  function fixMessage(msg) {
63
- var pureHex = msg.replace(/^0x0*/, '');
64
- if (pureHex.length <= 62) {
65
- // In this case, pureHex should not be transformed, as the byteLength() is at most 31,
66
- // so delta < 0 (see _truncateToN).
67
- return pureHex;
68
- }
69
- (0, minimalistic_assert_1.default)(pureHex.length === 63);
70
- // In this case delta will be 4 so we perform a shift-left of 4 bits by adding a ZERO_BN.
71
- return ''.concat(pureHex, '0');
46
+ var pureHex = msg.replace(/^0x0*/, '');
47
+ if (pureHex.length <= 62) {
48
+ // In this case, pureHex should not be transformed, as the byteLength() is at most 31,
49
+ // so delta < 0 (see _truncateToN).
50
+ return pureHex;
51
+ }
52
+ (0, minimalistic_assert_1.default)(pureHex.length === 63);
53
+ // In this case delta will be 4 so we perform a shift-left of 4 bits by adding a ZERO_BN.
54
+ return "".concat(pureHex, "0");
72
55
  }
73
56
  exports.genKeyPair = exports.ec.genKeyPair.bind(exports.ec);
74
57
  function getKeyPair(pk) {
75
- var pkBn = (0, number_1.toBN)(pk);
76
- return exports.ec.keyFromPrivate((0, encode_1.removeHexPrefix)((0, number_1.toHex)(pkBn)), 'hex');
58
+ var pkBn = (0, number_1.toBN)(pk);
59
+ return exports.ec.keyFromPrivate((0, encode_1.removeHexPrefix)((0, number_1.toHex)(pkBn)), 'hex');
77
60
  }
78
61
  exports.getKeyPair = getKeyPair;
79
62
  function getStarkKey(keyPair) {
80
- // this method needs to be run to generate the .pub property used below
81
- // the result can be dumped
82
- keyPair.getPublic(true, 'hex');
83
- return (0, encode_1.addHexPrefix)(
84
- (0, encode_1.sanitizeBytes)(keyPair.pub.getX().toString(16), 2)
85
- );
63
+ // this method needs to be run to generate the .pub property used below
64
+ // the result can be dumped
65
+ keyPair.getPublic(true, 'hex');
66
+ return (0, encode_1.addHexPrefix)((0, encode_1.sanitizeBytes)(keyPair.pub.getX().toString(16), 2));
86
67
  }
87
68
  exports.getStarkKey = getStarkKey;
88
69
  /**
@@ -92,11 +73,8 @@ exports.getStarkKey = getStarkKey;
92
73
  * @returns keyPair with public key only, which can be used to verify signatures, but cant sign anything
93
74
  */
94
75
  function getKeyPairFromPublicKey(publicKey) {
95
- var publicKeyBn = (0, number_1.toBN)(publicKey);
96
- return exports.ec.keyFromPublic(
97
- (0, encode_1.removeHexPrefix)((0, number_1.toHex)(publicKeyBn)),
98
- 'hex'
99
- );
76
+ var publicKeyBn = (0, number_1.toBN)(publicKey);
77
+ return exports.ec.keyFromPublic((0, encode_1.removeHexPrefix)((0, number_1.toHex)(publicKeyBn)), 'hex');
100
78
  }
101
79
  exports.getKeyPairFromPublicKey = getKeyPairFromPublicKey;
102
80
  /*
@@ -105,46 +83,23 @@ exports.getKeyPairFromPublicKey = getKeyPairFromPublicKey;
105
83
  Returns an Signature.
106
84
  */
107
85
  function sign(keyPair, msgHash) {
108
- var msgHashBN = (0, number_1.toBN)((0, encode_1.addHexPrefix)(msgHash));
109
- // Verify message hash has valid length.
110
- (0, number_1.assertInRange)(
111
- msgHashBN,
112
- constants_1.ZERO,
113
- (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)),
114
- 'msgHash'
115
- );
116
- var msgSignature = keyPair.sign(fixMessage(msgHash));
117
- var r = msgSignature.r,
118
- s = msgSignature.s;
119
- var w = s.invm(exports.ec.n);
120
- // Verify signature has valid length.
121
- (0, number_1.assertInRange)(
122
- r,
123
- constants_1.ONE,
124
- (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)),
125
- 'r'
126
- );
127
- (0, number_1.assertInRange)(
128
- s,
129
- constants_1.ONE,
130
- (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.EC_ORDER)),
131
- 's'
132
- );
133
- (0, number_1.assertInRange)(
134
- w,
135
- constants_1.ONE,
136
- (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)),
137
- 'w'
138
- );
139
- return [r.toString(), s.toString()];
86
+ var msgHashBN = (0, number_1.toBN)((0, encode_1.addHexPrefix)(msgHash));
87
+ // Verify message hash has valid length.
88
+ (0, number_1.assertInRange)(msgHashBN, constants_1.ZERO, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)), 'msgHash');
89
+ var msgSignature = keyPair.sign(fixMessage(msgHash));
90
+ var r = msgSignature.r, s = msgSignature.s;
91
+ var w = s.invm(exports.ec.n);
92
+ // Verify signature has valid length.
93
+ (0, number_1.assertInRange)(r, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)), 'r');
94
+ (0, number_1.assertInRange)(s, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.EC_ORDER)), 's');
95
+ (0, number_1.assertInRange)(w, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)), 'w');
96
+ return [r.toString(), s.toString()];
140
97
  }
141
98
  exports.sign = sign;
142
99
  function chunkArray(arr, n) {
143
- return Array(Math.ceil(arr.length / n))
144
- .fill('')
145
- .map(function (_, i) {
146
- return arr.slice(i * n, i * n + n);
147
- });
100
+ return Array(Math.ceil(arr.length / n))
101
+ .fill('')
102
+ .map(function (_, i) { return arr.slice(i * n, i * n + n); });
148
103
  }
149
104
  /*
150
105
  Verifies a message using the provided key.
@@ -153,40 +108,21 @@ function chunkArray(arr, n) {
153
108
  Returns a boolean true if the verification succeeds.
154
109
  */
155
110
  function verify(keyPair, msgHash, sig) {
156
- var keyPairArray = Array.isArray(keyPair) ? keyPair : [keyPair];
157
- var msgHashBN = (0, number_1.toBN)((0, encode_1.addHexPrefix)(msgHash));
158
- (0, minimalistic_assert_1.default)(
159
- sig.length % 2 === 0,
160
- 'Signature must be an array of length dividable by 2'
161
- );
162
- (0, number_1.assertInRange)(
163
- msgHashBN,
164
- constants_1.ZERO,
165
- (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)),
166
- 'msgHash'
167
- );
168
- (0, minimalistic_assert_1.default)(
169
- keyPairArray.length === sig.length / 2,
170
- 'Signature and keyPair length must be equal'
171
- );
172
- return chunkArray(sig, 2).every(function (_a, i) {
173
- var _b;
174
- var _c = __read(_a, 2),
175
- r = _c[0],
176
- s = _c[1];
177
- var rBN = (0, number_1.toBN)(r);
178
- var sBN = (0, number_1.toBN)(s);
179
- var w = sBN.invm(exports.ec.n);
180
- (0,
181
- number_1.assertInRange)(rBN, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)), 'r');
182
- (0,
183
- number_1.assertInRange)(sBN, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.EC_ORDER)), 's');
184
- (0,
185
- number_1.assertInRange)(w, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)), 'w');
186
- return (_b = exports.ec.verify(fixMessage(msgHash), { r: rBN, s: sBN }, keyPairArray[i])) !==
187
- null && _b !== void 0
188
- ? _b
189
- : false;
190
- });
111
+ var keyPairArray = Array.isArray(keyPair) ? keyPair : [keyPair];
112
+ var msgHashBN = (0, number_1.toBN)((0, encode_1.addHexPrefix)(msgHash));
113
+ (0, minimalistic_assert_1.default)(sig.length % 2 === 0, 'Signature must be an array of length dividable by 2');
114
+ (0, number_1.assertInRange)(msgHashBN, constants_1.ZERO, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)), 'msgHash');
115
+ (0, minimalistic_assert_1.default)(keyPairArray.length === sig.length / 2, 'Signature and keyPair length must be equal');
116
+ return chunkArray(sig, 2).every(function (_a, i) {
117
+ var _b;
118
+ var _c = __read(_a, 2), r = _c[0], s = _c[1];
119
+ var rBN = (0, number_1.toBN)(r);
120
+ var sBN = (0, number_1.toBN)(s);
121
+ var w = sBN.invm(exports.ec.n);
122
+ (0, number_1.assertInRange)(rBN, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)), 'r');
123
+ (0, number_1.assertInRange)(sBN, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.EC_ORDER)), 's');
124
+ (0, number_1.assertInRange)(w, constants_1.ONE, (0, number_1.toBN)((0, encode_1.addHexPrefix)(constants_1.MAX_ECDSA_VAL)), 'w');
125
+ return (_b = exports.ec.verify(fixMessage(msgHash), { r: rBN, s: sBN }, keyPairArray[i])) !== null && _b !== void 0 ? _b : false;
126
+ });
191
127
  }
192
128
  exports.verify = verify;
package/utils/encode.js CHANGED
@@ -1,70 +1,44 @@
1
- 'use strict';
2
- var __read =
3
- (this && this.__read) ||
4
- function (o, n) {
5
- var m = typeof Symbol === 'function' && o[Symbol.iterator];
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
6
4
  if (!m) return o;
7
- var i = m.call(o),
8
- r,
9
- ar = [],
10
- e;
5
+ var i = m.call(o), r, ar = [], e;
11
6
  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
- }
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
21
15
  }
22
16
  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++) {
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
29
20
  if (ar || !(i in from)) {
30
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
31
- ar[i] = from[i];
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
32
23
  }
33
- }
24
+ }
34
25
  return to.concat(ar || Array.prototype.slice.call(from));
35
- };
36
- Object.defineProperty(exports, '__esModule', { value: true });
37
- exports.utf8ToArray =
38
- exports.sanitizeHex =
39
- exports.sanitizeBytes =
40
- exports.calcByteLength =
41
- exports.padLeft =
42
- exports.addHexPrefix =
43
- exports.removeHexPrefix =
44
- exports.buf2hex =
45
- exports.btoaUniversal =
46
- exports.arrayBufferToString =
47
- exports.IS_BROWSER =
48
- void 0;
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.utf8ToArray = exports.sanitizeHex = exports.sanitizeBytes = exports.calcByteLength = exports.padLeft = exports.addHexPrefix = exports.removeHexPrefix = exports.buf2hex = exports.btoaUniversal = exports.arrayBufferToString = exports.IS_BROWSER = void 0;
49
29
  /* eslint-disable no-param-reassign */
50
30
  exports.IS_BROWSER = typeof window !== 'undefined';
51
31
  var STRING_ZERO = '0';
52
32
  function arrayBufferToString(array) {
53
- return new Uint8Array(array).reduce(function (data, byte) {
54
- return data + String.fromCharCode(byte);
55
- }, '');
33
+ return new Uint8Array(array).reduce(function (data, byte) { return data + String.fromCharCode(byte); }, '');
56
34
  }
57
35
  exports.arrayBufferToString = arrayBufferToString;
58
36
  function btoaUniversal(b) {
59
- return exports.IS_BROWSER ? btoa(arrayBufferToString(b)) : Buffer.from(b).toString('base64');
37
+ return exports.IS_BROWSER ? btoa(arrayBufferToString(b)) : Buffer.from(b).toString('base64');
60
38
  }
61
39
  exports.btoaUniversal = btoaUniversal;
62
40
  function buf2hex(buffer) {
63
- return __spreadArray([], __read(buffer), false)
64
- .map(function (x) {
65
- return x.toString(16).padStart(2, '0');
66
- })
67
- .join('');
41
+ return __spreadArray([], __read(buffer), false).map(function (x) { return x.toString(16).padStart(2, '0'); }).join('');
68
42
  }
69
43
  exports.buf2hex = buf2hex;
70
44
  /**
@@ -72,61 +46,51 @@ exports.buf2hex = buf2hex;
72
46
  * enc-utils is no dependency to avoid using `Buffer` which just works in node and no browsers
73
47
  */
74
48
  function removeHexPrefix(hex) {
75
- return hex.replace(/^0x/, '');
49
+ return hex.replace(/^0x/, '');
76
50
  }
77
51
  exports.removeHexPrefix = removeHexPrefix;
78
52
  function addHexPrefix(hex) {
79
- return '0x'.concat(removeHexPrefix(hex));
53
+ return "0x".concat(removeHexPrefix(hex));
80
54
  }
81
55
  exports.addHexPrefix = addHexPrefix;
82
56
  function padString(str, length, left, padding) {
83
- if (padding === void 0) {
84
- padding = STRING_ZERO;
85
- }
86
- var diff = length - str.length;
87
- var result = str;
88
- if (diff > 0) {
89
- var pad = padding.repeat(diff);
90
- result = left ? pad + str : str + pad;
91
- }
92
- return result;
57
+ if (padding === void 0) { padding = STRING_ZERO; }
58
+ var diff = length - str.length;
59
+ var result = str;
60
+ if (diff > 0) {
61
+ var pad = padding.repeat(diff);
62
+ result = left ? pad + str : str + pad;
63
+ }
64
+ return result;
93
65
  }
94
66
  function padLeft(str, length, padding) {
95
- if (padding === void 0) {
96
- padding = STRING_ZERO;
97
- }
98
- return padString(str, length, true, padding);
67
+ if (padding === void 0) { padding = STRING_ZERO; }
68
+ return padString(str, length, true, padding);
99
69
  }
100
70
  exports.padLeft = padLeft;
101
71
  function calcByteLength(length, byteSize) {
102
- if (byteSize === void 0) {
103
- byteSize = 8;
104
- }
105
- var remainder = length % byteSize;
106
- return remainder ? ((length - remainder) / byteSize) * byteSize + byteSize : length;
72
+ if (byteSize === void 0) { byteSize = 8; }
73
+ var remainder = length % byteSize;
74
+ return remainder ? ((length - remainder) / byteSize) * byteSize + byteSize : length;
107
75
  }
108
76
  exports.calcByteLength = calcByteLength;
109
77
  function sanitizeBytes(str, byteSize, padding) {
110
- if (byteSize === void 0) {
111
- byteSize = 8;
112
- }
113
- if (padding === void 0) {
114
- padding = STRING_ZERO;
115
- }
116
- return padLeft(str, calcByteLength(str.length, byteSize), padding);
78
+ if (byteSize === void 0) { byteSize = 8; }
79
+ if (padding === void 0) { padding = STRING_ZERO; }
80
+ return padLeft(str, calcByteLength(str.length, byteSize), padding);
117
81
  }
118
82
  exports.sanitizeBytes = sanitizeBytes;
119
83
  function sanitizeHex(hex) {
120
- hex = removeHexPrefix(hex);
121
- hex = sanitizeBytes(hex, 2);
122
- if (hex) {
123
- hex = addHexPrefix(hex);
124
- }
125
- return hex;
84
+ hex = removeHexPrefix(hex);
85
+ hex = sanitizeBytes(hex, 2);
86
+ if (hex) {
87
+ hex = addHexPrefix(hex);
88
+ }
89
+ return hex;
126
90
  }
127
91
  exports.sanitizeHex = sanitizeHex;
128
92
  // implemented using TextEncoder to make it isomorphic
129
93
  function utf8ToArray(str) {
130
- return new TextEncoder().encode(str);
94
+ return new TextEncoder().encode(str);
131
95
  }
132
96
  exports.utf8ToArray = utf8ToArray;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (typeof window !== 'undefined' && window.fetch) || // use buildin fetch in browser if available
4
+ (typeof global !== 'undefined' && global.fetch) || // use buildin fetch in node, react-native and service worker if available
5
+ // eslint-disable-next-line global-require
6
+ require('isomorphic-fetch'); // ponyfill fetch in node and browsers that don't have it
package/utils/hash.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import BN from 'bn.js';
2
-
3
2
  import { StarknetChainId, TransactionHashPrefix } from '../constants';
4
3
  import { RawCalldata } from '../types/lib';
5
4
  import { BigNumberish } from './number';
@@ -23,33 +22,7 @@ export declare function starknetKeccak(value: string): BN;
23
22
  export declare function getSelectorFromName(funcName: string): string;
24
23
  export declare function pedersen(input: [BigNumberish, BigNumberish]): string;
25
24
  export declare function computeHashOnElements(data: BigNumberish[]): string;
26
- export declare function calculateTransactionHashCommon(
27
- txHashPrefix: TransactionHashPrefix,
28
- version: BigNumberish,
29
- contractAddress: BigNumberish,
30
- entryPointSelector: BigNumberish,
31
- calldata: BigNumberish[],
32
- maxFee: BigNumberish,
33
- chainId: StarknetChainId,
34
- additionalData?: BigNumberish[]
35
- ): string;
36
- export declare function calculateDeployTransactionHash(
37
- contractAddress: BigNumberish,
38
- constructorCalldata: BigNumberish[],
39
- version: BigNumberish,
40
- chainId: StarknetChainId
41
- ): string;
42
- export declare function calculcateTransactionHash(
43
- contractAddress: BigNumberish,
44
- version: BigNumberish,
45
- entryPointSelector: BigNumberish,
46
- calldata: BigNumberish[],
47
- maxFee: BigNumberish,
48
- chainId: StarknetChainId
49
- ): string;
50
- export declare function calculateContractAddressFromHash(
51
- salt: BigNumberish,
52
- classHash: BigNumberish,
53
- constructorCalldata: RawCalldata,
54
- deployerAddress: BigNumberish
55
- ): string;
25
+ export declare function calculateTransactionHashCommon(txHashPrefix: TransactionHashPrefix, version: BigNumberish, contractAddress: BigNumberish, entryPointSelector: BigNumberish, calldata: BigNumberish[], maxFee: BigNumberish, chainId: StarknetChainId, additionalData?: BigNumberish[]): string;
26
+ export declare function calculateDeployTransactionHash(contractAddress: BigNumberish, constructorCalldata: BigNumberish[], version: BigNumberish, chainId: StarknetChainId): string;
27
+ export declare function calculcateTransactionHash(contractAddress: BigNumberish, version: BigNumberish, entryPointSelector: BigNumberish, calldata: BigNumberish[], maxFee: BigNumberish, chainId: StarknetChainId): string;
28
+ export declare function calculateContractAddressFromHash(salt: BigNumberish, classHash: BigNumberish, constructorCalldata: RawCalldata, deployerAddress: BigNumberish): string;