@thalalabs/surf 1.7.0 → 1.7.2
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 +13 -0
- package/build/cjs/core/Client.js +7 -4
- package/build/cjs/core/Client.js.map +1 -1
- package/build/esm/core/Client.js +7 -4
- package/build/esm/core/Client.js.map +1 -1
- package/build/types/core/Client.d.ts +1 -1
- package/build/types/core/Client.d.ts.map +1 -1
- package/build/types/types/convertor/returnConvertor.d.ts +5 -1
- package/build/types/types/convertor/returnConvertor.d.ts.map +1 -1
- package/build/types/types/convertor/structConvertor.d.ts +4 -2
- package/build/types/types/convertor/structConvertor.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/Client.ts +61 -42
- package/src/core/__tests__/accountResource.test.ts +23 -0
- package/src/core/__tests__/view.test.ts +77 -11
- package/src/types/convertor/returnConvertor.ts +24 -18
- package/src/types/convertor/structConvertor.ts +6 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @thalalabs/surf
|
|
2
2
|
|
|
3
|
+
## 1.7.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fa03792: support 0x1::object::Object and 0x1::option::Option for view function returns
|
|
8
|
+
- 6113067: support 0x1::object::Object type in struct
|
|
9
|
+
|
|
10
|
+
## 1.7.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- df5280a: Fix failed to override resource abi address
|
|
15
|
+
|
|
3
16
|
## 1.7.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
package/build/cjs/core/Client.js
CHANGED
|
@@ -45,7 +45,10 @@ class Client {
|
|
|
45
45
|
}))[0];
|
|
46
46
|
}
|
|
47
47
|
async fetchABI(address, moduleName) {
|
|
48
|
-
return (await this.client.getAccountModule({
|
|
48
|
+
return (await this.client.getAccountModule({
|
|
49
|
+
accountAddress: address,
|
|
50
|
+
moduleName: moduleName,
|
|
51
|
+
})).abi;
|
|
49
52
|
}
|
|
50
53
|
useABI(abi, address) {
|
|
51
54
|
return {
|
|
@@ -63,7 +66,7 @@ class Client {
|
|
|
63
66
|
payload,
|
|
64
67
|
options: {
|
|
65
68
|
ledgerVersion: args[0].ledgerVersion,
|
|
66
|
-
}
|
|
69
|
+
},
|
|
67
70
|
});
|
|
68
71
|
};
|
|
69
72
|
},
|
|
@@ -102,10 +105,10 @@ class Client {
|
|
|
102
105
|
const account = args[0].account;
|
|
103
106
|
return this.client.getAccountResource({
|
|
104
107
|
accountAddress: account,
|
|
105
|
-
resourceType: `${abi.address}::${abi.name}::${structName}`,
|
|
108
|
+
resourceType: `${address ?? abi.address}::${abi.name}::${structName}`,
|
|
106
109
|
options: {
|
|
107
110
|
ledgerVersion: args[0].ledgerVersion,
|
|
108
|
-
}
|
|
111
|
+
},
|
|
109
112
|
});
|
|
110
113
|
};
|
|
111
114
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAC3D,mEAA6D;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"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"}
|
package/build/esm/core/Client.js
CHANGED
|
@@ -41,7 +41,10 @@ export class Client {
|
|
|
41
41
|
}))[0];
|
|
42
42
|
}
|
|
43
43
|
async fetchABI(address, moduleName) {
|
|
44
|
-
return (await this.client.getAccountModule({
|
|
44
|
+
return (await this.client.getAccountModule({
|
|
45
|
+
accountAddress: address,
|
|
46
|
+
moduleName: moduleName,
|
|
47
|
+
})).abi;
|
|
45
48
|
}
|
|
46
49
|
useABI(abi, address) {
|
|
47
50
|
return {
|
|
@@ -59,7 +62,7 @@ export class Client {
|
|
|
59
62
|
payload,
|
|
60
63
|
options: {
|
|
61
64
|
ledgerVersion: args[0].ledgerVersion,
|
|
62
|
-
}
|
|
65
|
+
},
|
|
63
66
|
});
|
|
64
67
|
};
|
|
65
68
|
},
|
|
@@ -98,10 +101,10 @@ export class Client {
|
|
|
98
101
|
const account = args[0].account;
|
|
99
102
|
return this.client.getAccountResource({
|
|
100
103
|
accountAddress: account,
|
|
101
|
-
resourceType: `${abi.address}::${abi.name}::${structName}`,
|
|
104
|
+
resourceType: `${address ?? abi.address}::${abi.name}::${structName}`,
|
|
102
105
|
options: {
|
|
103
106
|
ledgerVersion: args[0].ledgerVersion,
|
|
104
|
-
}
|
|
107
|
+
},
|
|
105
108
|
});
|
|
106
109
|
};
|
|
107
110
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ABIEntryClient, ABIViewClient, ABIRoot, EntryPayload, ViewPayload, DefaultABITable, ABIResourceClient } from '../types/index.js';
|
|
2
2
|
import { ABITable } from '../types/defaultABITable.js';
|
|
3
|
-
import { Aptos, LedgerVersionArg, MoveValue, Account, CommittedTransactionResponse, PublicKey, AccountAddressInput, UserTransactionResponse, WaitForTransactionOptions } from
|
|
3
|
+
import { Aptos, LedgerVersionArg, MoveValue, Account, CommittedTransactionResponse, PublicKey, AccountAddressInput, UserTransactionResponse, WaitForTransactionOptions } from '@aptos-labs/ts-sdk';
|
|
4
4
|
/**
|
|
5
5
|
* Create a client to interact with Aptos smart contract.
|
|
6
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,aAAa,EACb,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/core/Client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,aAAa,EACb,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,4BAA4B,EAC5B,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,QAAQ,GAAG,eAAe,EAC3E,WAAW,EAAE,KAAK,GACjB,MAAM,CAAC,SAAS,CAAC,CAEnB;AACD,qBAAa,MAAM,CAAC,SAAS,SAAS,QAAQ;IAC5C,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,KAAK;IAIzB;;;;;;;;;;;;;OAaG;IACU,IAAI,CAAC,OAAO,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE;QACnD,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,gBAAgB,CAAC;KAC5B,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpB;;;;;;;;;;;;;;;;;;OAkBG;IACU,iBAAiB,CAAC,IAAI,EAAE;QACnC,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,YAAY,CAAC;QACtB,OAAO,CAAC,EAAE,yBAAyB,CAAC;KACrC,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAqBzC;;;;;;;;;;;;;;;;;;;OAmBG;IACU,mBAAmB,CAAC,IAAI,EAAE;QACrC,SAAS,EAAE,SAAS,CAAC;QACrB,MAAM,EAAE,mBAAmB,CAAC;QAC5B,OAAO,EAAE,YAAY,CAAC;KACvB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAcpC;;;;;;;;OAQG;IACU,QAAQ,CAAC,CAAC,SAAS,OAAO,EACrC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;IAWb;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;QAErD;;;;;;;;WAQG;;QAqBH;;;;;;;;;WASG;;QA2BH;;;;;;;;WAQG;;;CAsBR"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* for return value of view functions.
|
|
4
4
|
*/
|
|
5
5
|
import { UnknownStruct } from '../common.js';
|
|
6
|
+
import { DefaultABITable } from '../defaultABITable.js';
|
|
6
7
|
import { MoveNonStructTypes, MovePrimitive } from '../moveTypes.js';
|
|
8
|
+
import { ConvertStructFieldOptionType } from './structConvertor.js';
|
|
7
9
|
/**
|
|
8
10
|
* Convert an array of return types.
|
|
9
11
|
*/
|
|
@@ -16,6 +18,8 @@ export type ConvertReturns<T extends readonly string[]> = T extends readonly [
|
|
|
16
18
|
*/
|
|
17
19
|
type ConvertReturnType<TMoveType extends string> = TMoveType extends MoveNonStructTypes ? ConvertNonStructReturnType<TMoveType> : UnknownStruct<TMoveType>;
|
|
18
20
|
type ConvertPrimitiveReturnType<TMoveType extends MovePrimitive> = TMoveType extends 'bool' ? boolean : TMoveType extends 'u8' ? number : TMoveType extends 'u16' ? number : TMoveType extends 'u32' ? number : TMoveType extends 'u64' ? string : TMoveType extends 'u128' ? string : TMoveType extends 'u256' ? string : TMoveType extends 'address' ? `0x${string}` : TMoveType extends '0x1::string::String' ? string : never;
|
|
19
|
-
type ConvertNonStructReturnType<TMoveType extends MoveNonStructTypes> = TMoveType extends MovePrimitive ? ConvertPrimitiveReturnType<TMoveType> : TMoveType extends `vector<${infer TInner}>` ? ConvertReturnType<TInner>[] :
|
|
21
|
+
type ConvertNonStructReturnType<TMoveType extends MoveNonStructTypes> = TMoveType extends MovePrimitive ? ConvertPrimitiveReturnType<TMoveType> : TMoveType extends `vector<${infer TInner}>` ? ConvertReturnType<TInner>[] : TMoveType extends `0x1::object::Object<${string}>` ? {
|
|
22
|
+
inner: `0x${string}`;
|
|
23
|
+
} : TMoveType extends `0x1::option::Option<${infer TInner}>` ? ConvertStructFieldOptionType<DefaultABITable, TInner> : UnknownStruct<TMoveType>;
|
|
20
24
|
export {};
|
|
21
25
|
//# sourceMappingURL=returnConvertor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"returnConvertor.d.ts","sourceRoot":"","sources":["../../../../src/types/convertor/returnConvertor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,SAAS;IAC3E,MAAM,IAAI,SAAS,MAAM;IACzB,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE;CAChC,GACG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,GACnD,EAAE,CAAC;AAEP;;GAEG;AACH,KAAK,iBAAiB,CAAC,SAAS,SAAS,MAAM,IAC7C,SAAS,SAAS,kBAAkB,GAEhC,0BAA0B,CAAC,SAAS,CAAC,GAErC,aAAa,CAAC,SAAS,CAAC,CAAC;AAE/B,KAAK,0BAA0B,CAAC,SAAS,SAAS,aAAa,IAC7D,SAAS,SAAS,MAAM,GACpB,OAAO,GACP,SAAS,SAAS,IAAI,
|
|
1
|
+
{"version":3,"file":"returnConvertor.d.ts","sourceRoot":"","sources":["../../../../src/types/convertor/returnConvertor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,SAAS;IAC3E,MAAM,IAAI,SAAS,MAAM;IACzB,GAAG,MAAM,KAAK,SAAS,MAAM,EAAE;CAChC,GACG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,GACnD,EAAE,CAAC;AAEP;;GAEG;AACH,KAAK,iBAAiB,CAAC,SAAS,SAAS,MAAM,IAC7C,SAAS,SAAS,kBAAkB,GAEhC,0BAA0B,CAAC,SAAS,CAAC,GAErC,aAAa,CAAC,SAAS,CAAC,CAAC;AAE/B,KAAK,0BAA0B,CAAC,SAAS,SAAS,aAAa,IAC7D,SAAS,SAAS,MAAM,GACpB,OAAO,GACP,SAAS,SAAS,IAAI,GACpB,MAAM,GACN,SAAS,SAAS,KAAK,GACrB,MAAM,GACN,SAAS,SAAS,KAAK,GACrB,MAAM,GACN,SAAS,SAAS,KAAK,GACrB,MAAM,GACN,SAAS,SAAS,MAAM,GACtB,MAAM,GACN,SAAS,SAAS,MAAM,GACtB,MAAM,GACN,SAAS,SAAS,SAAS,GACzB,KAAK,MAAM,EAAE,GACb,SAAS,SAAS,qBAAqB,GACrC,MAAM,GACN,KAAK,CAAC;AAE5B,KAAK,0BAA0B,CAAC,SAAS,SAAS,kBAAkB,IAClE,SAAS,SAAS,aAAa,GAC3B,0BAA0B,CAAC,SAAS,CAAC,GACrC,SAAS,SAAS,UAAU,MAAM,MAAM,GAAG,GACzC,iBAAiB,CAAC,MAAM,CAAC,EAAE,GAC3B,SAAS,SAAS,uBAAuB,MAAM,GAAG,GAChD;IAAE,KAAK,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,GACxB,SAAS,SAAS,uBAAuB,MAAM,MAAM,GAAG,GACtD,4BAA4B,CAAC,eAAe,EAAE,MAAM,CAAC,GACrD,aAAa,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -10,8 +10,10 @@ export type ConvertStructFieldType<TABITable extends ABITable, TMoveType extends
|
|
|
10
10
|
* Internal
|
|
11
11
|
*/
|
|
12
12
|
type ConvertPrimitiveStructField<T extends MovePrimitive> = T extends 'bool' ? boolean : T extends 'u8' ? number : T extends 'u16' ? number : T extends 'u32' ? number : T extends 'u64' ? string : T extends 'u128' ? string : T extends 'u256' ? string : T extends 'address' ? `0x${string}` : T extends '0x1::string::String' ? string : never;
|
|
13
|
-
type ConvertStructFieldNonStructType<TABITable extends ABITable, TMoveType extends MoveNonStructTypes> = TMoveType extends MovePrimitive ? ConvertPrimitiveStructField<TMoveType> : TMoveType extends `vector<${infer TInner}>` ? ConvertStructFieldType<TABITable, TInner>[] : TMoveType extends `0x1::
|
|
14
|
-
|
|
13
|
+
type ConvertStructFieldNonStructType<TABITable extends ABITable, TMoveType extends MoveNonStructTypes> = TMoveType extends MovePrimitive ? ConvertPrimitiveStructField<TMoveType> : TMoveType extends `vector<${infer TInner}>` ? ConvertStructFieldType<TABITable, TInner>[] : TMoveType extends `0x1::object::Object<${string}>` ? {
|
|
14
|
+
inner: `0x${string}`;
|
|
15
|
+
} : TMoveType extends `0x1::option::Option<${infer TInner}>` ? ConvertStructFieldOptionType<TABITable, TInner> : UnknownStruct<TMoveType>;
|
|
16
|
+
export type ConvertStructFieldOptionType<TABITable extends ABITable, TMoveType extends string> = {
|
|
15
17
|
vec: [ConvertStructFieldType<TABITable, TMoveType>] | [];
|
|
16
18
|
};
|
|
17
19
|
type ConvertStructFieldStructType<TABITable extends ABITable, TMoveType extends string> = TMoveType extends `${infer TAccountAddress}::${infer TModuleName}::${infer TStructName}${'' | `<${infer _TInnerType}>`}` ? OmitInner<TStructName> extends ResourceStructName<Extract<TABITable[number], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structConvertor.d.ts","sourceRoot":"","sources":["../../../../src/types/convertor/structConvertor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGpE,MAAM,MAAM,sBAAsB,CAChC,SAAS,SAAS,QAAQ,EAC1B,SAAS,SAAS,MAAM,IACtB,SAAS,SAAS,kBAAkB,GAEpC,+BAA+B,CAAC,SAAS,EAAE,SAAS,CAAC,GAErD,4BAA4B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAEvD;;GAEG;AACH,KAAK,2BAA2B,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,MAAM,GACxE,OAAO,GACP,CAAC,SAAS,IAAI,GACZ,MAAM,GACN,CAAC,SAAS,KAAK,GACb,MAAM,GACN,CAAC,SAAS,KAAK,GACb,MAAM,GACN,CAAC,SAAS,KAAK,GACb,MAAM,GACN,CAAC,SAAS,MAAM,GACd,MAAM,GACN,CAAC,SAAS,MAAM,GACd,MAAM,GACN,CAAC,SAAS,SAAS,GACjB,KAAK,MAAM,EAAE,GACb,CAAC,SAAS,qBAAqB,GAC7B,MAAM,GACN,KAAK,CAAC;AAG1B,KAAK,+BAA+B,CAClC,SAAS,SAAS,QAAQ,EAC1B,SAAS,SAAS,kBAAkB,IAClC,SAAS,SAAS,aAAa,GAC/B,2BAA2B,CAAC,SAAS,CAAC,GACtC,SAAS,SAAS,UAAU,MAAM,MAAM,GAAG,GACzC,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,GAC3C,SAAS,SAAS,uBAAuB,MAAM,MAAM,GAAG,GACtD,4BAA4B,CAAC,SAAS,EAAE,MAAM,CAAC,GAC/C,aAAa,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"structConvertor.d.ts","sourceRoot":"","sources":["../../../../src/types/convertor/structConvertor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGpE,MAAM,MAAM,sBAAsB,CAChC,SAAS,SAAS,QAAQ,EAC1B,SAAS,SAAS,MAAM,IACtB,SAAS,SAAS,kBAAkB,GAEpC,+BAA+B,CAAC,SAAS,EAAE,SAAS,CAAC,GAErD,4BAA4B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAEvD;;GAEG;AACH,KAAK,2BAA2B,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,MAAM,GACxE,OAAO,GACP,CAAC,SAAS,IAAI,GACZ,MAAM,GACN,CAAC,SAAS,KAAK,GACb,MAAM,GACN,CAAC,SAAS,KAAK,GACb,MAAM,GACN,CAAC,SAAS,KAAK,GACb,MAAM,GACN,CAAC,SAAS,MAAM,GACd,MAAM,GACN,CAAC,SAAS,MAAM,GACd,MAAM,GACN,CAAC,SAAS,SAAS,GACjB,KAAK,MAAM,EAAE,GACb,CAAC,SAAS,qBAAqB,GAC7B,MAAM,GACN,KAAK,CAAC;AAG1B,KAAK,+BAA+B,CAClC,SAAS,SAAS,QAAQ,EAC1B,SAAS,SAAS,kBAAkB,IAClC,SAAS,SAAS,aAAa,GAC/B,2BAA2B,CAAC,SAAS,CAAC,GACtC,SAAS,SAAS,UAAU,MAAM,MAAM,GAAG,GACzC,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,GAC3C,SAAS,SAAS,uBAAuB,MAAM,GAAG,GAChD;IAAE,KAAK,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,GACxB,SAAS,SAAS,uBAAuB,MAAM,MAAM,GAAG,GACtD,4BAA4B,CAAC,SAAS,EAAE,MAAM,CAAC,GAC/C,aAAa,CAAC,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,4BAA4B,CACtC,SAAS,SAAS,QAAQ,EAC1B,SAAS,SAAS,MAAM,IACtB;IACF,GAAG,EAAE,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;CAC1D,CAAC;AAGF,KAAK,4BAA4B,CAC/B,SAAS,SAAS,QAAQ,EAC1B,SAAS,SAAS,MAAM,IACtB,SAAS,SAAS,GAAG,MAAM,eAAe,KAAK,MAAM,WAAW,KAAK,MAAM,WAAW,GACtF,EAAE,GACF,IAAI,MAAM,WAAW,GAAG,EAAE,GAC1B,SAAS,CAAC,WAAW,CAAC,SAAS,kBAAkB,CAC/C,OAAO,CACL,SAAS,CAAC,MAAM,CAAC,EACjB;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAChD,CACF,GACC,iBAAiB,CACf,SAAS,EACT,OAAO,CACL,SAAS,CAAC,MAAM,CAAC,EACjB;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAChD,EACD,SAAS,CAAC,WAAW,CAAC,CACvB,GAED,aAAa,CAAC,SAAS,CAAC,GAC1B,aAAa,CAAC,SAAS,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/core/Client.ts
CHANGED
|
@@ -7,10 +7,20 @@ import {
|
|
|
7
7
|
EntryPayload,
|
|
8
8
|
ViewPayload,
|
|
9
9
|
DefaultABITable,
|
|
10
|
-
ABIResourceClient
|
|
10
|
+
ABIResourceClient,
|
|
11
11
|
} from '../types/index.js';
|
|
12
12
|
import { ABITable } from '../types/defaultABITable.js';
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
Aptos,
|
|
15
|
+
LedgerVersionArg,
|
|
16
|
+
MoveValue,
|
|
17
|
+
Account,
|
|
18
|
+
CommittedTransactionResponse,
|
|
19
|
+
PublicKey,
|
|
20
|
+
AccountAddressInput,
|
|
21
|
+
UserTransactionResponse,
|
|
22
|
+
WaitForTransactionOptions,
|
|
23
|
+
} from '@aptos-labs/ts-sdk';
|
|
14
24
|
|
|
15
25
|
/**
|
|
16
26
|
* Create a client to interact with Aptos smart contract.
|
|
@@ -20,9 +30,9 @@ import { Aptos, LedgerVersionArg, MoveValue, Account, CommittedTransactionRespon
|
|
|
20
30
|
* @example
|
|
21
31
|
* const client = createSurfClient(new Aptos());
|
|
22
32
|
*/
|
|
23
|
-
export function createSurfClient<
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
export function createSurfClient<TABITable extends ABITable = DefaultABITable>(
|
|
34
|
+
aptosClient: Aptos,
|
|
35
|
+
): Client<TABITable> {
|
|
26
36
|
return new Client<TABITable>(aptosClient);
|
|
27
37
|
}
|
|
28
38
|
export class Client<TABITable extends ABITable> {
|
|
@@ -47,7 +57,7 @@ export class Client<TABITable extends ABITable> {
|
|
|
47
57
|
* const [balance] = await client.view({ payload });
|
|
48
58
|
*/
|
|
49
59
|
public async view<TReturn extends MoveValue[]>(args: {
|
|
50
|
-
payload: ViewPayload<TReturn
|
|
60
|
+
payload: ViewPayload<TReturn>;
|
|
51
61
|
options?: LedgerVersionArg;
|
|
52
62
|
}): Promise<TReturn> {
|
|
53
63
|
return await this.client.view(args);
|
|
@@ -73,9 +83,9 @@ export class Client<TABITable extends ABITable> {
|
|
|
73
83
|
* });
|
|
74
84
|
*/
|
|
75
85
|
public async submitTransaction(args: {
|
|
76
|
-
signer: Account
|
|
77
|
-
payload: EntryPayload
|
|
78
|
-
options?: WaitForTransactionOptions
|
|
86
|
+
signer: Account;
|
|
87
|
+
payload: EntryPayload;
|
|
88
|
+
options?: WaitForTransactionOptions;
|
|
79
89
|
}): Promise<CommittedTransactionResponse> {
|
|
80
90
|
const transaction = await this.client.transaction.build.simple({
|
|
81
91
|
sender: args.signer.accountAddress.toString(),
|
|
@@ -83,10 +93,11 @@ export class Client<TABITable extends ABITable> {
|
|
|
83
93
|
});
|
|
84
94
|
|
|
85
95
|
// Submit the transaction
|
|
86
|
-
const transactionRes =
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
96
|
+
const transactionRes =
|
|
97
|
+
await this.client.transaction.signAndSubmitTransaction({
|
|
98
|
+
signer: args.signer,
|
|
99
|
+
transaction,
|
|
100
|
+
});
|
|
90
101
|
|
|
91
102
|
// Wait for the transaction to finish
|
|
92
103
|
// throws an error if the tx fails or not confirmed after timeout
|
|
@@ -117,34 +128,44 @@ export class Client<TABITable extends ABITable> {
|
|
|
117
128
|
* });
|
|
118
129
|
*/
|
|
119
130
|
public async simulateTransaction(args: {
|
|
120
|
-
publicKey: PublicKey
|
|
121
|
-
sender: AccountAddressInput
|
|
122
|
-
payload: EntryPayload
|
|
131
|
+
publicKey: PublicKey;
|
|
132
|
+
sender: AccountAddressInput;
|
|
133
|
+
payload: EntryPayload;
|
|
123
134
|
}): Promise<UserTransactionResponse> {
|
|
124
135
|
const transaction = await this.client.transaction.build.simple({
|
|
125
136
|
sender: args.sender,
|
|
126
137
|
data: args.payload,
|
|
127
138
|
});
|
|
128
139
|
|
|
129
|
-
return (
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
140
|
+
return (
|
|
141
|
+
await this.client.transaction.simulate.simple({
|
|
142
|
+
signerPublicKey: args.publicKey,
|
|
143
|
+
transaction,
|
|
144
|
+
})
|
|
145
|
+
)[0]!;
|
|
133
146
|
}
|
|
134
147
|
|
|
135
148
|
/**
|
|
136
149
|
* Builds ABI from a provided address and module name for given client. ABI name can be taken from abi.name
|
|
137
|
-
*
|
|
150
|
+
*
|
|
138
151
|
* @param address The module address
|
|
139
152
|
* @param moduleName The module name
|
|
140
153
|
* @returns The constructed ABI
|
|
141
154
|
* @example
|
|
142
155
|
* const abi = await client.fetchABI(address = '0x1', moduleName = 'AptosCoin');
|
|
143
156
|
*/
|
|
144
|
-
public async fetchABI<T extends ABIRoot>(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
157
|
+
public async fetchABI<T extends ABIRoot>(
|
|
158
|
+
address: string,
|
|
159
|
+
moduleName: string,
|
|
160
|
+
): Promise<T> {
|
|
161
|
+
// Fetches ABI fom address and module name for given client
|
|
162
|
+
// throws if inexistent module name in address for given client
|
|
163
|
+
return (
|
|
164
|
+
await this.client.getAccountModule({
|
|
165
|
+
accountAddress: address,
|
|
166
|
+
moduleName: moduleName,
|
|
167
|
+
})
|
|
168
|
+
).abi as unknown as T;
|
|
148
169
|
}
|
|
149
170
|
|
|
150
171
|
/**
|
|
@@ -184,7 +205,7 @@ export class Client<TABITable extends ABITable> {
|
|
|
184
205
|
payload,
|
|
185
206
|
options: {
|
|
186
207
|
ledgerVersion: args[0].ledgerVersion,
|
|
187
|
-
}
|
|
208
|
+
},
|
|
188
209
|
});
|
|
189
210
|
};
|
|
190
211
|
},
|
|
@@ -214,14 +235,14 @@ export class Client<TABITable extends ABITable> {
|
|
|
214
235
|
const account: Account = args[0].account;
|
|
215
236
|
return args[0].isSimulation
|
|
216
237
|
? this.simulateTransaction({
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
238
|
+
publicKey: account.publicKey,
|
|
239
|
+
sender: account.accountAddress.toString(),
|
|
240
|
+
payload,
|
|
241
|
+
})
|
|
221
242
|
: this.submitTransaction({
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
243
|
+
signer: args[0].account,
|
|
244
|
+
payload,
|
|
245
|
+
});
|
|
225
246
|
};
|
|
226
247
|
},
|
|
227
248
|
}),
|
|
@@ -244,15 +265,13 @@ export class Client<TABITable extends ABITable> {
|
|
|
244
265
|
}
|
|
245
266
|
|
|
246
267
|
const account: AccountAddressInput = args[0].account;
|
|
247
|
-
return this.client.getAccountResource(
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
}
|
|
255
|
-
);
|
|
268
|
+
return this.client.getAccountResource({
|
|
269
|
+
accountAddress: account,
|
|
270
|
+
resourceType: `${address ?? abi.address}::${abi.name}::${structName}`,
|
|
271
|
+
options: {
|
|
272
|
+
ledgerVersion: args[0].ledgerVersion,
|
|
273
|
+
},
|
|
274
|
+
});
|
|
256
275
|
};
|
|
257
276
|
},
|
|
258
277
|
}),
|
|
@@ -120,6 +120,17 @@ describe('get account resource', () => {
|
|
|
120
120
|
// @ts-expect-error out of index, option only has 0 or 1 item
|
|
121
121
|
expect(data.supply.vec[1]).toBeUndefined();
|
|
122
122
|
}, 60000);
|
|
123
|
+
|
|
124
|
+
it('object type', async () => {
|
|
125
|
+
async () => {
|
|
126
|
+
const data = await client.useABI(TEST_ABI).resource.TestObjectStruct({
|
|
127
|
+
typeArguments: [],
|
|
128
|
+
account: '0x1',
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
expect(data.objects[0]!.inner).toBeDefined();
|
|
132
|
+
};
|
|
133
|
+
}, 60000);
|
|
123
134
|
});
|
|
124
135
|
|
|
125
136
|
const TEST_ABI = {
|
|
@@ -156,5 +167,17 @@ const TEST_ABI = {
|
|
|
156
167
|
},
|
|
157
168
|
],
|
|
158
169
|
},
|
|
170
|
+
{
|
|
171
|
+
name: 'TestObjectStruct',
|
|
172
|
+
is_native: false,
|
|
173
|
+
abilities: ['key'],
|
|
174
|
+
generic_type_params: [],
|
|
175
|
+
fields: [
|
|
176
|
+
{
|
|
177
|
+
name: 'objects',
|
|
178
|
+
type: 'vector<0x1::object::Object<0x123::abc::Abc>>',
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
},
|
|
159
182
|
],
|
|
160
183
|
} as const;
|
|
@@ -9,21 +9,17 @@ import { createViewPayload } from '../createViewPayload.js';
|
|
|
9
9
|
|
|
10
10
|
describe('call view functions', () => {
|
|
11
11
|
const client = createSurfClient(
|
|
12
|
-
new Aptos(
|
|
13
|
-
new AptosConfig({ network: Network.TESTNET })
|
|
14
|
-
)
|
|
12
|
+
new Aptos(new AptosConfig({ network: Network.TESTNET })),
|
|
15
13
|
);
|
|
16
|
-
|
|
14
|
+
|
|
17
15
|
const clientMain = createSurfClient(
|
|
18
|
-
new Aptos(
|
|
19
|
-
new AptosConfig({ network: Network.MAINNET })
|
|
20
|
-
)
|
|
16
|
+
new Aptos(new AptosConfig({ network: Network.MAINNET })),
|
|
21
17
|
);
|
|
22
18
|
// Act before assertions
|
|
23
|
-
beforeAll(async () => {
|
|
19
|
+
beforeAll(async () => {});
|
|
24
20
|
|
|
25
21
|
// Teardown (cleanup) after assertions
|
|
26
|
-
afterAll(() => {
|
|
22
|
+
afterAll(() => {});
|
|
27
23
|
|
|
28
24
|
it('basic', async () => {
|
|
29
25
|
const viewPayload = createViewPayload(COIN_ABI, {
|
|
@@ -58,9 +54,10 @@ describe('call view functions', () => {
|
|
|
58
54
|
typeArguments: ['0x1::aptos_coin::AptosCoin'],
|
|
59
55
|
});
|
|
60
56
|
const result = await client.view({
|
|
61
|
-
payload: viewPayload,
|
|
57
|
+
payload: viewPayload,
|
|
58
|
+
options: {
|
|
62
59
|
ledgerVersion: 562606728,
|
|
63
|
-
}
|
|
60
|
+
},
|
|
64
61
|
});
|
|
65
62
|
expect(result).toMatchInlineSnapshot(`
|
|
66
63
|
[
|
|
@@ -83,6 +80,49 @@ describe('call view functions', () => {
|
|
|
83
80
|
expect((result[0] as any).v).toBeDefined();
|
|
84
81
|
expect(typeof (result[0] as any).v).toEqual('string');
|
|
85
82
|
}, 60000);
|
|
83
|
+
|
|
84
|
+
it('return objects', async () => {
|
|
85
|
+
// no need to run, type check only.
|
|
86
|
+
async () => {
|
|
87
|
+
const viewPayload = createViewPayload(TIERED_ORACLE_ABI, {
|
|
88
|
+
function: 'get_objects',
|
|
89
|
+
functionArguments: [],
|
|
90
|
+
typeArguments: ['0x1::aptos_coin::AptosCoin'],
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// The declaration in Move:
|
|
94
|
+
// struct FixedPoint64 has copy, drop, store { value: u128 }
|
|
95
|
+
const result = await clientMain.view({ payload: viewPayload });
|
|
96
|
+
|
|
97
|
+
result[0][0]!.inner;
|
|
98
|
+
|
|
99
|
+
// @ts-expect-error
|
|
100
|
+
result[0][0].abc;
|
|
101
|
+
};
|
|
102
|
+
}, 60000);
|
|
103
|
+
|
|
104
|
+
it('return options', async () => {
|
|
105
|
+
// no need to run, type check only.
|
|
106
|
+
async () => {
|
|
107
|
+
const viewPayload = createViewPayload(TIERED_ORACLE_ABI, {
|
|
108
|
+
function: 'get_options',
|
|
109
|
+
functionArguments: [],
|
|
110
|
+
typeArguments: ['0x1::aptos_coin::AptosCoin'],
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
// The declaration in Move:
|
|
114
|
+
// struct FixedPoint64 has copy, drop, store { value: u128 }
|
|
115
|
+
const result = await clientMain.view({ payload: viewPayload });
|
|
116
|
+
|
|
117
|
+
result[0][0]!.vec[0];
|
|
118
|
+
|
|
119
|
+
// @ts-expect-error out of range, option only has 0 or 1 item
|
|
120
|
+
result[0][0]!.vec[1];
|
|
121
|
+
|
|
122
|
+
// @ts-expect-error
|
|
123
|
+
result[0][0].abc;
|
|
124
|
+
};
|
|
125
|
+
}, 60000);
|
|
86
126
|
});
|
|
87
127
|
|
|
88
128
|
const TIERED_ORACLE_ABI = {
|
|
@@ -107,6 +147,32 @@ const TIERED_ORACLE_ABI = {
|
|
|
107
147
|
'0x4dcae85fc5559071906cd5c76b7420fcbb4b0a92f00ab40ffc394aadbbff5ee9::fixed_point64::FixedPoint64',
|
|
108
148
|
],
|
|
109
149
|
},
|
|
150
|
+
{
|
|
151
|
+
name: 'get_objects',
|
|
152
|
+
visibility: 'public',
|
|
153
|
+
is_entry: false,
|
|
154
|
+
is_view: true,
|
|
155
|
+
generic_type_params: [
|
|
156
|
+
{
|
|
157
|
+
constraints: [],
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
params: [],
|
|
161
|
+
return: ['vector<0x1::object::Object<0x123::abc::Abc>>'],
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: 'get_options',
|
|
165
|
+
visibility: 'public',
|
|
166
|
+
is_entry: false,
|
|
167
|
+
is_view: true,
|
|
168
|
+
generic_type_params: [
|
|
169
|
+
{
|
|
170
|
+
constraints: [],
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
params: [],
|
|
174
|
+
return: ['vector<0x1::option::Option<0x123::abc::Abc>>'],
|
|
175
|
+
},
|
|
110
176
|
],
|
|
111
177
|
structs: [],
|
|
112
178
|
} as const;
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { UnknownStruct } from '../common.js';
|
|
7
|
+
import { DefaultABITable } from '../defaultABITable.js';
|
|
7
8
|
import { MoveNonStructTypes, MovePrimitive } from '../moveTypes.js';
|
|
9
|
+
import { ConvertStructFieldOptionType } from './structConvertor.js';
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* Convert an array of return types.
|
|
@@ -30,26 +32,30 @@ type ConvertPrimitiveReturnType<TMoveType extends MovePrimitive> =
|
|
|
30
32
|
TMoveType extends 'bool'
|
|
31
33
|
? boolean
|
|
32
34
|
: TMoveType extends 'u8'
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
? number
|
|
36
|
+
: TMoveType extends 'u16'
|
|
37
|
+
? number
|
|
38
|
+
: TMoveType extends 'u32'
|
|
39
|
+
? number
|
|
40
|
+
: TMoveType extends 'u64'
|
|
41
|
+
? string
|
|
42
|
+
: TMoveType extends 'u128'
|
|
43
|
+
? string
|
|
44
|
+
: TMoveType extends 'u256'
|
|
45
|
+
? string
|
|
46
|
+
: TMoveType extends 'address'
|
|
47
|
+
? `0x${string}`
|
|
48
|
+
: TMoveType extends '0x1::string::String'
|
|
49
|
+
? string
|
|
50
|
+
: never;
|
|
49
51
|
|
|
50
52
|
type ConvertNonStructReturnType<TMoveType extends MoveNonStructTypes> =
|
|
51
53
|
TMoveType extends MovePrimitive
|
|
52
54
|
? ConvertPrimitiveReturnType<TMoveType>
|
|
53
55
|
: TMoveType extends `vector<${infer TInner}>`
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
? ConvertReturnType<TInner>[]
|
|
57
|
+
: TMoveType extends `0x1::object::Object<${string}>`
|
|
58
|
+
? { inner: `0x${string}` }
|
|
59
|
+
: TMoveType extends `0x1::option::Option<${infer TInner}>`
|
|
60
|
+
? ConvertStructFieldOptionType<DefaultABITable, TInner>
|
|
61
|
+
: UnknownStruct<TMoveType>;
|
|
@@ -50,11 +50,13 @@ type ConvertStructFieldNonStructType<
|
|
|
50
50
|
? ConvertPrimitiveStructField<TMoveType>
|
|
51
51
|
: TMoveType extends `vector<${infer TInner}>`
|
|
52
52
|
? ConvertStructFieldType<TABITable, TInner>[]
|
|
53
|
-
: TMoveType extends `0x1::
|
|
54
|
-
?
|
|
55
|
-
:
|
|
53
|
+
: TMoveType extends `0x1::object::Object<${string}>`
|
|
54
|
+
? { inner: `0x${string}` }
|
|
55
|
+
: TMoveType extends `0x1::option::Option<${infer TInner}>`
|
|
56
|
+
? ConvertStructFieldOptionType<TABITable, TInner>
|
|
57
|
+
: UnknownStruct<TMoveType>;
|
|
56
58
|
|
|
57
|
-
type ConvertStructFieldOptionType<
|
|
59
|
+
export type ConvertStructFieldOptionType<
|
|
58
60
|
TABITable extends ABITable,
|
|
59
61
|
TMoveType extends string,
|
|
60
62
|
> = {
|