@thalalabs/surf 1.7.3 → 1.7.4
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 +6 -0
- package/build/cjs/core/createEntryPayload.js +1 -3
- package/build/cjs/core/createEntryPayload.js.map +1 -1
- package/build/esm/core/createEntryPayload.js +1 -3
- package/build/esm/core/createEntryPayload.js.map +1 -1
- package/build/types/core/createEntryPayload.d.ts.map +1 -1
- package/build/types/types/common.d.ts +2 -2
- package/build/types/types/common.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/__tests__/createEntryPayload.test.ts +32 -0
- package/src/core/createEntryPayload.ts +3 -4
- package/src/types/common.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,9 +7,7 @@ function createEntryPayload(abi, payload) {
|
|
|
7
7
|
throw new Error(`Function ${payload.function} not found in ABI`);
|
|
8
8
|
const typeArguments = payload.typeArguments;
|
|
9
9
|
const valArguments = payload.functionArguments;
|
|
10
|
-
const abiArgs = fnAbi.params
|
|
11
|
-
? fnAbi.params.slice(1)
|
|
12
|
-
: fnAbi.params;
|
|
10
|
+
const abiArgs = fnAbi.params.slice(fnAbi.params.findIndex((param) => param !== '&signer'));
|
|
13
11
|
if (fnAbi === undefined)
|
|
14
12
|
throw new Error(`Function ${payload.function} not found in ABI`);
|
|
15
13
|
if (abiArgs.length !== valArguments.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEntryPayload.js","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":";;;AA2BA,SAAgB,kBAAkB,CAGhC,GAAM,EAAE,OAA0C;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CACnC,CAAC,CAAC,CAAC,CAAC;IAEL,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IAGnE,MAAM,aAAa,GAAa,OAAO,CAAC,aAAsB,CAAC;IAG/D,MAAM,YAAY,GAAU,OAAO,CAAC,iBAA0B,CAAC;IAC/D,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"createEntryPayload.js","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":";;;AA2BA,SAAgB,kBAAkB,CAGhC,GAAM,EAAE,OAA0C;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CACnC,CAAC,CAAC,CAAC,CAAC;IAEL,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IAGnE,MAAM,aAAa,GAAa,OAAO,CAAC,aAAsB,CAAC;IAG/D,MAAM,YAAY,GAAU,OAAO,CAAC,iBAA0B,CAAC;IAC/D,MAAM,OAAO,GAAI,KAAK,CAAC,MAAmB,CAAC,KAAK,CAC9C,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CACvD,CAAC;IAGF,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;QACxC,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,MAAM,CAAC,MAAM,mBAAmB,OAAO,CAAC,iBAAiB,CAAC,MAAM,gBAAgB,CAC/H,CAAC;IACJ,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;QAC3D,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,mBAAmB,CAAC,MAAM,wBAAwB,OAAO,CAAC,aAAa,CAAC,MAAM,gBAAgB,CAC7I,CAAC;IAEJ,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,aAAa;QAEpC,iBAAiB,EAAE,OAAO,CAAC,iBAAwB;QACnD,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;KAChF,CAAC;AACJ,CAAC;AAtCD,gDAsCC"}
|
|
@@ -4,9 +4,7 @@ export function createEntryPayload(abi, payload) {
|
|
|
4
4
|
throw new Error(`Function ${payload.function} not found in ABI`);
|
|
5
5
|
const typeArguments = payload.typeArguments;
|
|
6
6
|
const valArguments = payload.functionArguments;
|
|
7
|
-
const abiArgs = fnAbi.params
|
|
8
|
-
? fnAbi.params.slice(1)
|
|
9
|
-
: fnAbi.params;
|
|
7
|
+
const abiArgs = fnAbi.params.slice(fnAbi.params.findIndex((param) => param !== '&signer'));
|
|
10
8
|
if (fnAbi === undefined)
|
|
11
9
|
throw new Error(`Function ${payload.function} not found in ABI`);
|
|
12
10
|
if (abiArgs.length !== valArguments.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEntryPayload.js","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,kBAAkB,CAGhC,GAAM,EAAE,OAA0C;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CACnC,CAAC,CAAC,CAAC,CAAC;IAEL,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IAGnE,MAAM,aAAa,GAAa,OAAO,CAAC,aAAsB,CAAC;IAG/D,MAAM,YAAY,GAAU,OAAO,CAAC,iBAA0B,CAAC;IAC/D,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"createEntryPayload.js","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,kBAAkB,CAGhC,GAAM,EAAE,OAA0C;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CACnC,CAAC,CAAC,CAAC,CAAC;IAEL,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IAGnE,MAAM,aAAa,GAAa,OAAO,CAAC,aAAsB,CAAC;IAG/D,MAAM,YAAY,GAAU,OAAO,CAAC,iBAA0B,CAAC;IAC/D,MAAM,OAAO,GAAI,KAAK,CAAC,MAAmB,CAAC,KAAK,CAC9C,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CACvD,CAAC;IAGF,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;QACxC,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,MAAM,CAAC,MAAM,mBAAmB,OAAO,CAAC,iBAAiB,CAAC,MAAM,gBAAgB,CAC/H,CAAC;IACJ,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;QAC3D,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,CAAC,QAAQ,YAAY,KAAK,CAAC,mBAAmB,CAAC,MAAM,wBAAwB,OAAO,CAAC,aAAa,CAAC,MAAM,gBAAgB,CAC7I,CAAC;IAEJ,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,aAAa;QAEpC,iBAAiB,EAAE,OAAO,CAAC,iBAAwB;QACnD,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;KAChF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEntryPayload.d.ts","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,EACtC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"createEntryPayload.d.ts","sourceRoot":"","sources":["../../../src/core/createEntryPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,OAAO,EACjB,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,EACtC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,YAAY,CAmClE"}
|
|
@@ -2,7 +2,7 @@ export type UnknownStruct<_T extends string> = unknown;
|
|
|
2
2
|
export type AnyNumber = number | bigint | string;
|
|
3
3
|
export type OmitSigner<T extends readonly string[]> = T extends readonly [
|
|
4
4
|
'&signer' | 'signer',
|
|
5
|
-
...infer Rest
|
|
6
|
-
] ? Rest : T;
|
|
5
|
+
...infer Rest extends readonly string[]
|
|
6
|
+
] ? OmitSigner<Rest> : T;
|
|
7
7
|
export type OmitInner<T extends string> = T extends `${infer TOuter}<${infer _TInner}>` ? `${TOuter}` : T;
|
|
8
8
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,MAAM,IAAI,OAAO,CAAC;AAEvD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAIjD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,SAAS;IACvE,SAAS,GAAG,QAAQ;IACpB,GAAG,MAAM,IAAI;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,MAAM,IAAI,OAAO,CAAC;AAEvD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAIjD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,SAAS;IACvE,SAAS,GAAG,QAAQ;IACpB,GAAG,MAAM,IAAI,SAAS,SAAS,MAAM,EAAE;CACxC,GACG,UAAU,CAAC,IAAI,CAAC,GAChB,CAAC,CAAC;AAIN,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IACpC,CAAC,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -200,6 +200,20 @@ describe('createEntryPayload', () => {
|
|
|
200
200
|
typeArguments: [],
|
|
201
201
|
});
|
|
202
202
|
});
|
|
203
|
+
|
|
204
|
+
it('signer', async () => {
|
|
205
|
+
createEntryPayload(TEST_ABI, {
|
|
206
|
+
function: 'signer_as_input',
|
|
207
|
+
functionArguments: [true],
|
|
208
|
+
typeArguments: [],
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
createEntryPayload(TEST_ABI, {
|
|
212
|
+
function: 'two_signer_as_input',
|
|
213
|
+
functionArguments: [true],
|
|
214
|
+
typeArguments: [],
|
|
215
|
+
});
|
|
216
|
+
});
|
|
203
217
|
});
|
|
204
218
|
|
|
205
219
|
const TEST_ABI = {
|
|
@@ -216,6 +230,24 @@ const TEST_ABI = {
|
|
|
216
230
|
params: ['address', 'address'],
|
|
217
231
|
return: [],
|
|
218
232
|
},
|
|
233
|
+
{
|
|
234
|
+
name: 'signer_as_input',
|
|
235
|
+
visibility: 'public',
|
|
236
|
+
is_entry: true,
|
|
237
|
+
is_view: false,
|
|
238
|
+
generic_type_params: [],
|
|
239
|
+
params: ['&signer', 'bool'],
|
|
240
|
+
return: [],
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
name: 'two_signer_as_input',
|
|
244
|
+
visibility: 'public',
|
|
245
|
+
is_entry: true,
|
|
246
|
+
is_view: false,
|
|
247
|
+
generic_type_params: [],
|
|
248
|
+
params: ['&signer', '&signer', 'bool'],
|
|
249
|
+
return: [],
|
|
250
|
+
},
|
|
219
251
|
{
|
|
220
252
|
name: 'bool_as_input',
|
|
221
253
|
visibility: 'public',
|
|
@@ -41,10 +41,9 @@ export function createEntryPayload<
|
|
|
41
41
|
|
|
42
42
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
43
|
const valArguments: any[] = payload.functionArguments as any[];
|
|
44
|
-
const abiArgs =
|
|
45
|
-
fnAbi.params
|
|
46
|
-
|
|
47
|
-
: (fnAbi.params as string[]);
|
|
44
|
+
const abiArgs = (fnAbi.params as string[]).slice(
|
|
45
|
+
fnAbi.params.findIndex((param) => param !== '&signer'),
|
|
46
|
+
);
|
|
48
47
|
|
|
49
48
|
// Validations
|
|
50
49
|
if (fnAbi === undefined)
|
package/src/types/common.ts
CHANGED
|
@@ -6,9 +6,9 @@ export type AnyNumber = number | bigint | string;
|
|
|
6
6
|
// need to care about those args. `signer` and `&signer` are required be in the front of the argument list.
|
|
7
7
|
export type OmitSigner<T extends readonly string[]> = T extends readonly [
|
|
8
8
|
'&signer' | 'signer',
|
|
9
|
-
...infer Rest,
|
|
9
|
+
...infer Rest extends readonly string[],
|
|
10
10
|
]
|
|
11
|
-
? Rest
|
|
11
|
+
? OmitSigner<Rest>
|
|
12
12
|
: T;
|
|
13
13
|
|
|
14
14
|
// Remove the inner type of a string.
|