Skip to content

Commit 44e3792

Browse files
committed
Merge branch 'develop' into fix/signature-type
2 parents 358bfad + 70ca3bc commit 44e3792

File tree

17 files changed

+6764
-11963
lines changed

17 files changed

+6764
-11963
lines changed

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
# [5.4.0](https://github.com/0xs34n/starknet.js/compare/v5.3.0...v5.4.0) (2023-04-03)
2+
3+
### Bug Fixes
4+
5+
- adjust suggested max fee response type ([78b1f81](https://github.com/0xs34n/starknet.js/commit/78b1f814f2a65fa0b28ed27912b69d3dfbc022ad))
6+
7+
### Features
8+
9+
- support cairo1 execute calldata ([1f7f001](https://github.com/0xs34n/starknet.js/commit/1f7f00155ae89ff871cdf987cd3b5238377d5450))
10+
11+
# [5.3.0](https://github.com/0xs34n/starknet.js/compare/v5.2.0...v5.3.0) (2023-03-29)
12+
13+
### Features
14+
15+
- declare v2 from account ([bc861b7](https://github.com/0xs34n/starknet.js/commit/bc861b753b443b4f75f9af7d1d9eb1a350273376))
16+
- declare v2 intermidiate ([a8fdfe3](https://github.com/0xs34n/starknet.js/commit/a8fdfe3e6f00ee08f7aec55a8babda46043f1783))
17+
- get_compiled_class_by_class_hash, get_class_by_hash, ContractClass, rpc hotfix ([fc33d19](https://github.com/0xs34n/starknet.js/commit/fc33d196adadbf899e450aec88ef9d8d7365f726))
18+
- get_state_update, fix types, fix responseParser, fix BigNumberish api response, fix OPENRPC ([50a2c29](https://github.com/0xs34n/starknet.js/commit/50a2c29b53feb960a6b2a0eea7651c55cff5fc0b))
19+
- minimal changes api ([7cec344](https://github.com/0xs34n/starknet.js/commit/7cec344c5b9a70bac9597354b20773388e5a4145))
20+
- remove version 0 invoke and declare ([08bd65c](https://github.com/0xs34n/starknet.js/commit/08bd65cf20d6db0fecb1fb014b2464f19dc64a6c))
21+
- skipValidate full impl ([8b20e2e](https://github.com/0xs34n/starknet.js/commit/8b20e2e461ae73b9b6840972ea6c17a00b3efddc))
22+
- update hashing to cairo-lang 0.11.0, cairo 1.0.0.alpha-6 ([b6669b5](https://github.com/0xs34n/starknet.js/commit/b6669b577b159bd98369a16e295ba847eea55688))
23+
124
# [5.2.0](https://github.com/0xs34n/starknet.js/compare/v5.1.1...v5.2.0) (2023-03-14)
225

326
### Features

__tests__/sequencerProvider.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ describeIfSequencer('SequencerProvider', () => {
4848
});
4949

5050
test('fetch unexpected error', async () => {
51-
fetchSpy.mockResolvedValueOnce(generateMockResponse(false, null));
51+
fetchSpy.mockResolvedValueOnce(generateMockResponse(false, 'null'));
5252
expect(sequencerProvider.fetch('')).rejects.toThrow(/^Could not GET from endpoint/);
5353
});
5454

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`JSON utility tests parse 1`] = `
4+
Object {
5+
"constructor": "c",
6+
"n0": 9007199254740991,
7+
"n1": 9007199254740992n,
8+
"n2": 12,
9+
"n3": 1.1,
10+
}
11+
`;
12+
13+
exports[`JSON utility tests parseAlwaysAsBig 1`] = `
14+
Object {
15+
"constructor": "c",
16+
"n0": 9007199254740991n,
17+
"n1": 9007199254740992n,
18+
"n2": 12n,
19+
"n3": 1.1,
20+
}
21+
`;
22+
23+
exports[`JSON utility tests stringify 1`] = `"{\\"provider\\":{\\"responseParser\\":{},\\"baseUrl\\":\\"https://alpha4-2.starknet.io\\",\\"feederGatewayUrl\\":\\"https://alpha4-2.starknet.io/feeder_gateway\\",\\"gatewayUrl\\":\\"https://alpha4-2.starknet.io/gateway\\",\\"chainId\\":\\"0x534e5f474f45524c4932\\",\\"blockIdentifier\\":\\"pending\\"}}"`;

__tests__/utils/json.test.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { defaultProvider } from '../../src';
2+
import { parse, parseAlwaysAsBig, stringify } from '../../src/utils/json';
3+
4+
const bi = (x: bigint) => BigInt(Number.MAX_SAFE_INTEGER) + x;
5+
const objString = `{"constructor":"c","n0":${bi(0n)},"n1":${bi(1n)},"n2":12,"n3":1.1}`;
6+
7+
describe('JSON utility tests', () => {
8+
test('stringify', () => {
9+
expect(stringify(defaultProvider)).toMatchSnapshot();
10+
});
11+
12+
test('parse', () => {
13+
const parsed: any = parse(objString);
14+
expect(parsed).toMatchSnapshot();
15+
expect(parsed.n0).toEqual(expect.any(Number));
16+
expect(parsed.n1).toEqual(expect.any(BigInt));
17+
});
18+
19+
test('parseAlwaysAsBig', () => {
20+
const parsed: any = parseAlwaysAsBig(objString);
21+
expect(parsed).toMatchSnapshot();
22+
expect(parsed.n0).toEqual(expect.any(BigInt));
23+
expect(parsed.n1).toEqual(expect.any(BigInt));
24+
});
25+
});
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import { Call, CallStruct } from '../../src/types';
2+
import {
3+
fromCallsToExecuteCalldata_cairo1,
4+
transformCallsToMulticallArrays_cairo1,
5+
} from '../../src/utils/transaction';
6+
7+
describe('transformCallsToMulticallArrays_cairo1', () => {
8+
it('should return an empty array when given an empty input', () => {
9+
expect(transformCallsToMulticallArrays_cairo1([])).toEqual([]);
10+
});
11+
12+
it('should transform a list of calls into an array of call structs', () => {
13+
const calls: Call[] = [
14+
{
15+
contractAddress: '0x123',
16+
entrypoint: 'transfer',
17+
calldata: [10],
18+
},
19+
{
20+
contractAddress: '0x456',
21+
entrypoint: 'mint',
22+
calldata: ['0x2000', BigInt(10000000)],
23+
},
24+
];
25+
const expected: CallStruct[] = [
26+
{
27+
to: '291',
28+
selector: '232670485425082704932579856502088130646006032362877466777181098476241604910',
29+
calldata: ['10'],
30+
},
31+
{
32+
to: '1110',
33+
selector: '1329909728320632088402217562277154056711815095720684343816173432540100887380',
34+
calldata: ['8192', '10000000'],
35+
},
36+
];
37+
expect(transformCallsToMulticallArrays_cairo1(calls)).toEqual(expected);
38+
});
39+
});
40+
41+
describe('fromCallsToExecuteCalldata_cairo1', () => {
42+
it('should return an array with a length of one when given an empty input', () => {
43+
expect(fromCallsToExecuteCalldata_cairo1([])).toEqual(['0']);
44+
});
45+
46+
it('should transform a list of calls into the full flattened calldata', () => {
47+
const calls: Call[] = [
48+
{
49+
contractAddress: '0x123',
50+
entrypoint: 'transfer',
51+
calldata: [10],
52+
},
53+
{
54+
contractAddress: '0x456',
55+
entrypoint: 'mint',
56+
calldata: ['0x2000', BigInt(10000000)],
57+
},
58+
];
59+
const expected = [
60+
'2', // Call size
61+
'291', // First call
62+
'232670485425082704932579856502088130646006032362877466777181098476241604910',
63+
'1',
64+
'10',
65+
'1110', // Second call
66+
'1329909728320632088402217562277154056711815095720684343816173432540100887380',
67+
'2',
68+
'8192',
69+
'10000000',
70+
];
71+
expect(fromCallsToExecuteCalldata_cairo1(calls)).toEqual(expected);
72+
});
73+
});

0 commit comments

Comments
 (0)