From b2e6cbd9ae832f5e464d7bcf348bdae03a9d5b25 Mon Sep 17 00:00:00 2001 From: Cheng Wang Date: Tue, 1 Oct 2024 12:34:50 +0200 Subject: [PATCH 1/5] Update multicall interface --- artifacts/ts/Add.ts | 17 +++++++++-------- artifacts/ts/DeprecatedNFTTest1.ts | 16 ++++++++++++---- artifacts/ts/DeprecatedNFTTest2.ts | 16 ++++++++++++---- artifacts/ts/DeprecatedNFTTest3.ts | 16 ++++++++++++---- artifacts/ts/DeprecatedNFTTest4.ts | 16 ++++++++++++---- artifacts/ts/DeprecatedNFTTest5.ts | 16 ++++++++++++---- artifacts/ts/DeprecatedNFTTest6.ts | 16 ++++++++++++---- artifacts/ts/DeprecatedNFTTest7.ts | 16 ++++++++++++---- artifacts/ts/FakeTokenTest.ts | 16 ++++++++++++---- artifacts/ts/Greeter.ts | 17 +++++++++-------- artifacts/ts/MapTest.ts | 17 +++++++++-------- artifacts/ts/NFTCollectionTest.ts | 16 ++++++++++++---- artifacts/ts/NFTCollectionWithRoyaltyTest.ts | 18 ++++++++++++++---- artifacts/ts/NFTTest.ts | 17 +++++++++-------- artifacts/ts/NFTTestStd.ts | 16 ++++++++++++---- artifacts/ts/Sub.ts | 17 +++++++++-------- artifacts/ts/TokenTest.ts | 16 ++++++++++++---- artifacts/ts/TokenTestStd.ts | 16 ++++++++++++---- artifacts/ts/Transact.ts | 16 ++++++++++++---- artifacts/ts/UserAccount.ts | 16 ++++++++++++---- artifacts/ts/WrongNFTTest.ts | 16 ++++++++++++---- packages/cli/src/codegen.ts | 12 +++++++++--- packages/web3/src/contract/contract.ts | 7 +++++-- 23 files changed, 253 insertions(+), 109 deletions(-) diff --git a/artifacts/ts/Add.ts b/artifacts/ts/Add.ts index dc39b8f8d..5d0d1d787 100644 --- a/artifacts/ts/Add.ts +++ b/artifacts/ts/Add.ts @@ -403,14 +403,15 @@ export class AddInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( - Add, - this, - callss, - getContractByCodeHash - )) as AddTypes.MulticallReturnType; + callss: Callss + ): Promise>; + async multicall< + Callss extends AddTypes.MultiCallParams | AddTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods(Add, this, callss, getContractByCodeHash); } } diff --git a/artifacts/ts/DeprecatedNFTTest1.ts b/artifacts/ts/DeprecatedNFTTest1.ts index 6ccd6fe42..d3b179ea4 100644 --- a/artifacts/ts/DeprecatedNFTTest1.ts +++ b/artifacts/ts/DeprecatedNFTTest1.ts @@ -166,14 +166,22 @@ export class DeprecatedNFTTest1Instance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | DeprecatedNFTTest1Types.MultiCallParams + | DeprecatedNFTTest1Types.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( DeprecatedNFTTest1, this, callss, getContractByCodeHash - )) as DeprecatedNFTTest1Types.MulticallReturnType; + ); } } diff --git a/artifacts/ts/DeprecatedNFTTest2.ts b/artifacts/ts/DeprecatedNFTTest2.ts index 908ee13be..fb1331205 100644 --- a/artifacts/ts/DeprecatedNFTTest2.ts +++ b/artifacts/ts/DeprecatedNFTTest2.ts @@ -205,14 +205,22 @@ export class DeprecatedNFTTest2Instance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | DeprecatedNFTTest2Types.MultiCallParams + | DeprecatedNFTTest2Types.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( DeprecatedNFTTest2, this, callss, getContractByCodeHash - )) as DeprecatedNFTTest2Types.MulticallReturnType; + ); } } diff --git a/artifacts/ts/DeprecatedNFTTest3.ts b/artifacts/ts/DeprecatedNFTTest3.ts index 137791cdb..9c989e8f3 100644 --- a/artifacts/ts/DeprecatedNFTTest3.ts +++ b/artifacts/ts/DeprecatedNFTTest3.ts @@ -205,14 +205,22 @@ export class DeprecatedNFTTest3Instance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | DeprecatedNFTTest3Types.MultiCallParams + | DeprecatedNFTTest3Types.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( DeprecatedNFTTest3, this, callss, getContractByCodeHash - )) as DeprecatedNFTTest3Types.MulticallReturnType; + ); } } diff --git a/artifacts/ts/DeprecatedNFTTest4.ts b/artifacts/ts/DeprecatedNFTTest4.ts index 7dd2c367f..5ebec8d3d 100644 --- a/artifacts/ts/DeprecatedNFTTest4.ts +++ b/artifacts/ts/DeprecatedNFTTest4.ts @@ -198,14 +198,22 @@ export class DeprecatedNFTTest4Instance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | DeprecatedNFTTest4Types.MultiCallParams + | DeprecatedNFTTest4Types.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( DeprecatedNFTTest4, this, callss, getContractByCodeHash - )) as DeprecatedNFTTest4Types.MulticallReturnType; + ); } } diff --git a/artifacts/ts/DeprecatedNFTTest5.ts b/artifacts/ts/DeprecatedNFTTest5.ts index 349847fbd..ecd6e7f5e 100644 --- a/artifacts/ts/DeprecatedNFTTest5.ts +++ b/artifacts/ts/DeprecatedNFTTest5.ts @@ -212,14 +212,22 @@ export class DeprecatedNFTTest5Instance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | DeprecatedNFTTest5Types.MultiCallParams + | DeprecatedNFTTest5Types.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( DeprecatedNFTTest5, this, callss, getContractByCodeHash - )) as DeprecatedNFTTest5Types.MulticallReturnType; + ); } } diff --git a/artifacts/ts/DeprecatedNFTTest6.ts b/artifacts/ts/DeprecatedNFTTest6.ts index c1ef998bb..4b46bbe5a 100644 --- a/artifacts/ts/DeprecatedNFTTest6.ts +++ b/artifacts/ts/DeprecatedNFTTest6.ts @@ -198,14 +198,22 @@ export class DeprecatedNFTTest6Instance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | DeprecatedNFTTest6Types.MultiCallParams + | DeprecatedNFTTest6Types.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( DeprecatedNFTTest6, this, callss, getContractByCodeHash - )) as DeprecatedNFTTest6Types.MulticallReturnType; + ); } } diff --git a/artifacts/ts/DeprecatedNFTTest7.ts b/artifacts/ts/DeprecatedNFTTest7.ts index 23bce92bc..6e1796e1c 100644 --- a/artifacts/ts/DeprecatedNFTTest7.ts +++ b/artifacts/ts/DeprecatedNFTTest7.ts @@ -212,14 +212,22 @@ export class DeprecatedNFTTest7Instance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | DeprecatedNFTTest7Types.MultiCallParams + | DeprecatedNFTTest7Types.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( DeprecatedNFTTest7, this, callss, getContractByCodeHash - )) as DeprecatedNFTTest7Types.MulticallReturnType; + ); } } diff --git a/artifacts/ts/FakeTokenTest.ts b/artifacts/ts/FakeTokenTest.ts index feb3cfaae..360a4f6d5 100644 --- a/artifacts/ts/FakeTokenTest.ts +++ b/artifacts/ts/FakeTokenTest.ts @@ -293,14 +293,22 @@ export class FakeTokenTestInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | FakeTokenTestTypes.MultiCallParams + | FakeTokenTestTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( FakeTokenTest, this, callss, getContractByCodeHash - )) as FakeTokenTestTypes.MulticallReturnType; + ); } } diff --git a/artifacts/ts/Greeter.ts b/artifacts/ts/Greeter.ts index 52a29acd9..7b4e21a17 100644 --- a/artifacts/ts/Greeter.ts +++ b/artifacts/ts/Greeter.ts @@ -168,14 +168,15 @@ export class GreeterInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( - Greeter, - this, - callss, - getContractByCodeHash - )) as GreeterTypes.MulticallReturnType; + callss: Callss + ): Promise>; + async multicall< + Callss extends GreeterTypes.MultiCallParams | GreeterTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods(Greeter, this, callss, getContractByCodeHash); } } diff --git a/artifacts/ts/MapTest.ts b/artifacts/ts/MapTest.ts index 4620a2837..1cc29f303 100644 --- a/artifacts/ts/MapTest.ts +++ b/artifacts/ts/MapTest.ts @@ -263,14 +263,15 @@ export class MapTestInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( - MapTest, - this, - callss, - getContractByCodeHash - )) as MapTestTypes.MulticallReturnType; + callss: Callss + ): Promise>; + async multicall< + Callss extends MapTestTypes.MultiCallParams | MapTestTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods(MapTest, this, callss, getContractByCodeHash); } } diff --git a/artifacts/ts/NFTCollectionTest.ts b/artifacts/ts/NFTCollectionTest.ts index 0ef429f36..d9c55e8e9 100644 --- a/artifacts/ts/NFTCollectionTest.ts +++ b/artifacts/ts/NFTCollectionTest.ts @@ -314,14 +314,22 @@ export class NFTCollectionTestInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | NFTCollectionTestTypes.MultiCallParams + | NFTCollectionTestTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( NFTCollectionTest, this, callss, getContractByCodeHash - )) as NFTCollectionTestTypes.MulticallReturnType; + ); } } diff --git a/artifacts/ts/NFTCollectionWithRoyaltyTest.ts b/artifacts/ts/NFTCollectionWithRoyaltyTest.ts index bab20ca28..8c85c60fa 100644 --- a/artifacts/ts/NFTCollectionWithRoyaltyTest.ts +++ b/artifacts/ts/NFTCollectionWithRoyaltyTest.ts @@ -484,16 +484,26 @@ export class NFTCollectionWithRoyaltyTestInstance extends ContractInstance { }, }; + async multicall< + Calls extends NFTCollectionWithRoyaltyTestTypes.MultiCallParams + >( + calls: Calls + ): Promise>; async multicall< Callss extends NFTCollectionWithRoyaltyTestTypes.MultiCallParams[] >( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | NFTCollectionWithRoyaltyTestTypes.MultiCallParams + | NFTCollectionWithRoyaltyTestTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( NFTCollectionWithRoyaltyTest, this, callss, getContractByCodeHash - )) as NFTCollectionWithRoyaltyTestTypes.MulticallReturnType; + ); } } diff --git a/artifacts/ts/NFTTest.ts b/artifacts/ts/NFTTest.ts index 0f2ceae00..60b268bf0 100644 --- a/artifacts/ts/NFTTest.ts +++ b/artifacts/ts/NFTTest.ts @@ -199,14 +199,15 @@ export class NFTTestInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( - NFTTest, - this, - callss, - getContractByCodeHash - )) as NFTTestTypes.MulticallReturnType; + callss: Callss + ): Promise>; + async multicall< + Callss extends NFTTestTypes.MultiCallParams | NFTTestTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods(NFTTest, this, callss, getContractByCodeHash); } } diff --git a/artifacts/ts/NFTTestStd.ts b/artifacts/ts/NFTTestStd.ts index 5d17f9555..6cecbe24f 100644 --- a/artifacts/ts/NFTTestStd.ts +++ b/artifacts/ts/NFTTestStd.ts @@ -236,14 +236,22 @@ export class NFTTestStdInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | NFTTestStdTypes.MultiCallParams + | NFTTestStdTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( NFTTestStd, this, callss, getContractByCodeHash - )) as NFTTestStdTypes.MulticallReturnType; + ); } } diff --git a/artifacts/ts/Sub.ts b/artifacts/ts/Sub.ts index fc9a4c9eb..d6b781f00 100644 --- a/artifacts/ts/Sub.ts +++ b/artifacts/ts/Sub.ts @@ -171,14 +171,15 @@ export class SubInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( - Sub, - this, - callss, - getContractByCodeHash - )) as SubTypes.MulticallReturnType; + callss: Callss + ): Promise>; + async multicall< + Callss extends SubTypes.MultiCallParams | SubTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods(Sub, this, callss, getContractByCodeHash); } } diff --git a/artifacts/ts/TokenTest.ts b/artifacts/ts/TokenTest.ts index a4240bd10..e8b73e4f9 100644 --- a/artifacts/ts/TokenTest.ts +++ b/artifacts/ts/TokenTest.ts @@ -262,14 +262,22 @@ export class TokenTestInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | TokenTestTypes.MultiCallParams + | TokenTestTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( TokenTest, this, callss, getContractByCodeHash - )) as TokenTestTypes.MulticallReturnType; + ); } } diff --git a/artifacts/ts/TokenTestStd.ts b/artifacts/ts/TokenTestStd.ts index 74cb3e457..00c7d342d 100644 --- a/artifacts/ts/TokenTestStd.ts +++ b/artifacts/ts/TokenTestStd.ts @@ -294,14 +294,22 @@ export class TokenTestStdInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | TokenTestStdTypes.MultiCallParams + | TokenTestStdTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( TokenTestStd, this, callss, getContractByCodeHash - )) as TokenTestStdTypes.MulticallReturnType; + ); } } diff --git a/artifacts/ts/Transact.ts b/artifacts/ts/Transact.ts index b0ebadaca..c60d22257 100644 --- a/artifacts/ts/Transact.ts +++ b/artifacts/ts/Transact.ts @@ -322,14 +322,22 @@ export class TransactInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | TransactTypes.MultiCallParams + | TransactTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( Transact, this, callss, getContractByCodeHash - )) as TransactTypes.MulticallReturnType; + ); } } diff --git a/artifacts/ts/UserAccount.ts b/artifacts/ts/UserAccount.ts index e5853b1dc..94c4e1c34 100644 --- a/artifacts/ts/UserAccount.ts +++ b/artifacts/ts/UserAccount.ts @@ -232,14 +232,22 @@ export class UserAccountInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | UserAccountTypes.MultiCallParams + | UserAccountTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( UserAccount, this, callss, getContractByCodeHash - )) as UserAccountTypes.MulticallReturnType; + ); } } diff --git a/artifacts/ts/WrongNFTTest.ts b/artifacts/ts/WrongNFTTest.ts index 81626448f..66bc40462 100644 --- a/artifacts/ts/WrongNFTTest.ts +++ b/artifacts/ts/WrongNFTTest.ts @@ -209,14 +209,22 @@ export class WrongNFTTestInstance extends ContractInstance { }, }; + async multicall( + calls: Calls + ): Promise>; async multicall( - ...callss: Callss - ): Promise> { - return (await multicallMethods( + callss: Callss + ): Promise>; + async multicall< + Callss extends + | WrongNFTTestTypes.MultiCallParams + | WrongNFTTestTypes.MultiCallParams[] + >(callss: Callss): Promise { + return await multicallMethods( WrongNFTTest, this, callss, getContractByCodeHash - )) as WrongNFTTestTypes.MulticallReturnType; + ); } } diff --git a/packages/cli/src/codegen.ts b/packages/cli/src/codegen.ts index 59d0000dd..3cd12ec11 100644 --- a/packages/cli/src/codegen.ts +++ b/packages/cli/src/codegen.ts @@ -463,10 +463,16 @@ function genMulticall(contract: Contract): string { const supportMulticall = contract.functions.filter((functionSig) => functionSig.returnTypes.length > 0).length > 0 return supportMulticall ? ` + async multicall( + calls: Calls + ): Promise<${types}.MultiCallResults> async multicall( - ...callss: Callss - ): Promise<${types}.MulticallReturnType> { - return (await multicallMethods(${contract.name}, this, callss, getContractByCodeHash)) as ${types}.MulticallReturnType + callss: Callss + ): Promise<${types}.MulticallReturnType> + async multicall( + callss: Callss + ): Promise { + return (await multicallMethods(${contract.name}, this, callss, getContractByCodeHash)) } ` : '' diff --git a/packages/web3/src/contract/contract.ts b/packages/web3/src/contract/contract.ts index 43ba8e5fc..f429a2cd0 100644 --- a/packages/web3/src/contract/contract.ts +++ b/packages/web3/src/contract/contract.ts @@ -2046,12 +2046,14 @@ function toFieldsSig(contractName: string, functionSig: FunctionSig): FieldsSig } } +type Calls = Record, 'args'>> export async function multicallMethods( contract: ContractFactory, instance: ContractInstance, - callss: Record, 'args'>>[], + _callss: Calls | Calls[], getContractByCodeHash: (codeHash: string) => Contract ): Promise>[] | Record>> { + const callss = Array.isArray(_callss) ? _callss : [_callss] const callEntries = callss.map((calls) => Object.entries(calls)) const callsParams = callEntries.map((entries) => { return entries.map((entry) => { @@ -2068,7 +2070,7 @@ export async function multicallMethods { + const results = callsParams.map((calls, index0) => { const callsResult: Record> = {} const entries = callEntries[`${index0}`] calls.forEach((call, index1) => { @@ -2085,6 +2087,7 @@ export async function multicallMethods { From 96ec2b44e121bbb660e8cb93afd20f5b948768c3 Mon Sep 17 00:00:00 2001 From: Cheng Wang Date: Tue, 1 Oct 2024 12:46:08 +0200 Subject: [PATCH 2/5] Update node&explorer version --- docker/docker-compose.yml | 2 +- packages/web3/package.json | 4 +- packages/web3/src/api/api-alephium.ts | 145 +++++++++++++++++++++++++- packages/web3/src/api/api-explorer.ts | 79 ++++++++++++++ 4 files changed, 226 insertions(+), 4 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index e67a71b41..9bcb90e04 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -29,7 +29,7 @@ services: condition: service_healthy alephium: - image: alephium/alephium:v3.6.2 + image: alephium/alephium:v3.7.0 restart: unless-stopped ports: - 19973:19973/tcp diff --git a/packages/web3/package.json b/packages/web3/package.json index cc3e6f2fe..36c02afb9 100644 --- a/packages/web3/package.json +++ b/packages/web3/package.json @@ -33,8 +33,8 @@ }, "author": "Alephium dev ", "config": { - "alephium_version": "3.6.2", - "explorer_backend_version": "2.0.0" + "alephium_version": "3.7.0", + "explorer_backend_version": "2.2.3" }, "scripts": { "build": "rm -rf dist/* && npx tsc --build . && webpack", diff --git a/packages/web3/src/api/api-alephium.ts b/packages/web3/src/api/api-alephium.ts index f1e9a4b2c..d943d1066 100644 --- a/packages/web3/src/api/api-alephium.ts +++ b/packages/web3/src/api/api-alephium.ts @@ -926,6 +926,97 @@ export interface RevealMnemonicResult { mnemonic: string } +/** RichAssetInput */ +export interface RichAssetInput { + /** @format int32 */ + hint: number + /** @format 32-byte-hash */ + key: string + /** @format hex-string */ + unlockScript: string + /** @format uint256 */ + attoAlphAmount: string + /** @format address */ + address: string + tokens: Token[] +} + +/** RichBlockAndEvents */ +export interface RichBlockAndEvents { + block: RichBlockEntry + events: ContractEventByBlockHash[] +} + +/** RichBlockEntry */ +export interface RichBlockEntry { + /** @format block-hash */ + hash: string + /** @format int64 */ + timestamp: number + /** @format int32 */ + chainFrom: number + /** @format int32 */ + chainTo: number + /** @format int32 */ + height: number + deps: string[] + transactions: RichTransaction[] + /** @format hex-string */ + nonce: string + version: number + /** @format 32-byte-hash */ + depStateHash: string + /** @format 32-byte-hash */ + txsHash: string + /** @format hex-string */ + target: string + ghostUncles: GhostUncleBlockEntry[] +} + +/** RichBlocksAndEventsPerTimeStampRange */ +export interface RichBlocksAndEventsPerTimeStampRange { + blocksAndEvents: RichBlockAndEvents[][] +} + +/** RichContractInput */ +export interface RichContractInput { + /** @format int32 */ + hint: number + /** @format 32-byte-hash */ + key: string + /** @format uint256 */ + attoAlphAmount: string + /** @format address */ + address: string + tokens: Token[] +} + +/** RichTransaction */ +export interface RichTransaction { + unsigned: RichUnsignedTx + scriptExecutionOk: boolean + contractInputs: RichContractInput[] + generatedOutputs: Output[] + inputSignatures: string[] + scriptSignatures: string[] +} + +/** RichUnsignedTx */ +export interface RichUnsignedTx { + /** @format 32-byte-hash */ + txId: string + version: number + networkId: number + /** @format script */ + scriptOpt?: string + /** @format int32 */ + gasAmount: number + /** @format uint256 */ + gasPrice: string + inputs: RichAssetInput[] + fixedOutputs: FixedAssetOutput[] +} + /** Script */ export interface Script { code: string @@ -1512,7 +1603,7 @@ export class HttpClient { /** * @title Alephium API - * @version 3.6.2 + * @version 3.7.0 * @baseUrl ../ */ export class Api extends HttpClient { @@ -2169,6 +2260,40 @@ export class Api extends HttpClient + this.request< + RichBlocksAndEventsPerTimeStampRange, + BadRequest | Unauthorized | NotFound | InternalServerError | ServiceUnavailable + >({ + path: `/blockflow/rich-blocks`, + method: 'GET', + query: query, + format: 'json', + ...params + }).then(convertHttpResponse), + /** * No description * @@ -2217,6 +2342,24 @@ export class Api extends HttpClient + this.request( + { + path: `/blockflow/rich-blocks/${blockHash}`, + method: 'GET', + format: 'json', + ...params + } + ).then(convertHttpResponse), + /** * No description * diff --git a/packages/web3/src/api/api-explorer.ts b/packages/web3/src/api/api-explorer.ts index 9401557d3..89b36c1b8 100644 --- a/packages/web3/src/api/api-explorer.ts +++ b/packages/web3/src/api/api-explorer.ts @@ -190,6 +190,7 @@ export interface AssetOutput { /** NFT */ export interface NFT { + id: string type: string } @@ -217,6 +218,14 @@ export interface AcceptedTransaction { timestamp: number } +/** HolderInfo */ +export interface HolderInfo { + /** @format address */ + address: string + /** @format uint256 */ + balance: string +} + /** TokenSupply */ export interface TokenSupply { /** @format uint256 */ @@ -317,6 +326,8 @@ export enum TokenStdInterfaceId { export interface ExplorerInfo { releaseVersion: string commit: string + /** @format int64 */ + lastHoldersUpdate: number /** @format int32 */ migrationsVersion: number /** @format int64 */ @@ -367,6 +378,7 @@ export interface Transaction { /** FungibleToken */ export interface FungibleToken { + id: string type: string } @@ -1588,6 +1600,40 @@ export class Api extends HttpClient + this.request({ + path: `/tokens/holders/token/${tokenId}`, + method: 'GET', + query: query, + format: 'json', + ...params + }).then(convertHttpResponse), + /** * @description List token transactions * @@ -1676,6 +1722,39 @@ export class Api extends HttpClient + this.request({ + path: `/tokens/holders/alph`, + method: 'GET', + query: query, + format: 'json', + ...params + }).then(convertHttpResponse), + /** * @description Return metadata for the given nft tokens, if metadata doesn't exist or token isn't a nft, it won't be in the output list * From e7d24b616946f804ec63b5e530763e0132176b7f Mon Sep 17 00:00:00 2001 From: Cheng Wang Date: Tue, 1 Oct 2024 12:46:25 +0200 Subject: [PATCH 3/5] Run codegen --- .project.json | 2 +- artifacts/add/Add.ral.json | 2 +- artifacts/add/AddMain.ral.json | 2 +- artifacts/add/DestroyAdd.ral.json | 2 +- artifacts/greeter/Greeter.ral.json | 2 +- artifacts/greeter/GreeterMain.ral.json | 2 +- artifacts/nft/DeprecatedNFTTest1.ral.json | 2 +- artifacts/nft/DeprecatedNFTTest2.ral.json | 2 +- artifacts/nft/DeprecatedNFTTest3.ral.json | 2 +- artifacts/nft/DeprecatedNFTTest4.ral.json | 2 +- artifacts/nft/DeprecatedNFTTest5.ral.json | 2 +- artifacts/nft/DeprecatedNFTTest6.ral.json | 2 +- artifacts/nft/DeprecatedNFTTest7.ral.json | 2 +- artifacts/nft/MintNFTTest.ral.json | 2 +- artifacts/nft/NFTCollectionTest.ral.json | 2 +- artifacts/nft/NFTCollectionWithRoyaltyTest.ral.json | 2 +- artifacts/nft/NFTTest.ral.json | 2 +- artifacts/nft/NFTTestStd.ral.json | 2 +- artifacts/nft/WithdrawNFTCollectionTest.ral.json | 2 +- artifacts/nft/WrongNFTTest.ral.json | 2 +- artifacts/sub/Sub.ral.json | 2 +- artifacts/test/Assert.ral.json | 2 +- artifacts/test/CallScript0.ral.json | 2 +- artifacts/test/CallScript1.ral.json | 2 +- artifacts/test/Debug.ral.json | 2 +- artifacts/test/InsertIntoMap.ral.json | 2 +- artifacts/test/MapTest.ral.json | 2 +- artifacts/test/MapTestWrapper.ral.json | 2 +- artifacts/test/MetaData.ral.json | 2 +- artifacts/test/MultiDeposit.ral.json | 2 +- artifacts/test/MultiWithdraw.ral.json | 2 +- artifacts/test/OwnerOnly.ral.json | 2 +- artifacts/test/RemoveFromMap.ral.json | 2 +- artifacts/test/TemplateArrayVar.ral.json | 2 +- artifacts/test/TestAssert.ral.json | 2 +- artifacts/test/Transact.ral.json | 2 +- artifacts/test/UpdateMapValue.ral.json | 2 +- artifacts/test/UpdateUserAccount.ral.json | 2 +- artifacts/test/UserAccount.ral.json | 2 +- artifacts/test/Warnings.ral.json | 2 +- artifacts/token/FakeTokenTest.ral.json | 2 +- artifacts/token/TokenTest.ral.json | 2 +- artifacts/token/TokenTestStd.ral.json | 2 +- 43 files changed, 43 insertions(+), 43 deletions(-) diff --git a/.project.json b/.project.json index 6b02c55df..f597732fb 100644 --- a/.project.json +++ b/.project.json @@ -1,5 +1,5 @@ { - "fullNodeVersion": "v3.6.2", + "fullNodeVersion": "v3.7.0", "compilerOptionsUsed": { "ignoreUnusedConstantsWarnings": false, "ignoreUnusedVariablesWarnings": false, diff --git a/artifacts/add/Add.ral.json b/artifacts/add/Add.ral.json index 6644d61e7..0cd3d840a 100644 --- a/artifacts/add/Add.ral.json +++ b/artifacts/add/Add.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "Add", "bytecode": "0206124024404f407440a140af010002100205d34fbb20db1600160100020201000c0c0205d36a51f82d1600160100020200000202021805160016015f06160016015f075da00016002a16012aa100a000160016010e0dce000100020103040c0011d319adf50e1300641600130164170517041603d1a21601160216041605c118010104060015d3f6ce55a6130064160013016417051704160316021340c8ac1603d1a21601160216041605c118010201010003d320f98f621600b0", "codeHash": "6a1f1415a68d55365e205b39e5418cd1f6fc8c2c7926d3662c77d69b55c92681", diff --git a/artifacts/add/AddMain.ral.json b/artifacts/add/AddMain.ral.json index 8801262c2..2346e9271 100644 --- a/artifacts/add/AddMain.ral.json +++ b/artifacts/add/AddMain.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "AddMain", "bytecodeTemplate": "0101030002000c{1}{2}17011700160016010e0e{0}01001818", "fieldsSig": { diff --git a/artifacts/add/DestroyAdd.ral.json b/artifacts/add/DestroyAdd.ral.json index e7a393ccc..3d5523901 100644 --- a/artifacts/add/DestroyAdd.ral.json +++ b/artifacts/add/DestroyAdd.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "DestroyAdd", "bytecodeTemplate": "01010300000005{1}0d0c{0}0105", "fieldsSig": { diff --git a/artifacts/greeter/Greeter.ral.json b/artifacts/greeter/Greeter.ral.json index e1e771ac4..5d86b7d54 100644 --- a/artifacts/greeter/Greeter.ral.json +++ b/artifacts/greeter/Greeter.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "Greeter", "bytecode": "190111010000000106d3952f757b030c7bce0002", "codeHash": "4bbf82c83dcb0a3df905c290fbc12a19ce5160a7b655c1a347913481da12d747", diff --git a/artifacts/greeter/GreeterMain.ral.json b/artifacts/greeter/GreeterMain.ral.json index a893d38ef..3d52470e8 100644 --- a/artifacts/greeter/GreeterMain.ral.json +++ b/artifacts/greeter/GreeterMain.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "GreeterMain", "bytecodeTemplate": "01010300020014{0}17000c0d160001000d2f0c7b{0}17010c0d1601d4952f757b0d2f0c7b", "fieldsSig": { diff --git a/artifacts/nft/DeprecatedNFTTest1.ral.json b/artifacts/nft/DeprecatedNFTTest1.ral.json index 34cd385c0..f42df4c37 100644 --- a/artifacts/nft/DeprecatedNFTTest1.ral.json +++ b/artifacts/nft/DeprecatedNFTTest1.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "DeprecatedNFTTest1", "bytecode": "02010e010000000103d3ee6a5cd5ce0102", "codeHash": "cc6928c9c6777077abcb5b9c4f7c5d620d6cae07ec6f00f5e8b0efe6a7b913c4", diff --git a/artifacts/nft/DeprecatedNFTTest2.ral.json b/artifacts/nft/DeprecatedNFTTest2.ral.json index 463b8e84d..562ded2a2 100644 --- a/artifacts/nft/DeprecatedNFTTest2.ral.json +++ b/artifacts/nft/DeprecatedNFTTest2.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "DeprecatedNFTTest2", "bytecode": "02020e1c010000000103d3ee6a5cd5ce0102010000000103d33e65d93dce0002", "codeHash": "ade9aee476ee752050a1e9e1b19039f05261cb3f53941152617174faf9eae572", diff --git a/artifacts/nft/DeprecatedNFTTest3.ral.json b/artifacts/nft/DeprecatedNFTTest3.ral.json index 91cd25388..9622f83aa 100644 --- a/artifacts/nft/DeprecatedNFTTest3.ral.json +++ b/artifacts/nft/DeprecatedNFTTest3.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "DeprecatedNFTTest3", "bytecode": "02020e19010000000103d3ee6a5cd5ce0102010000000001d34d12f529", "codeHash": "465bc3739cd1649e58e0470971bd2fabf21363ab9fc2c15052fb2440dd06ada5", diff --git a/artifacts/nft/DeprecatedNFTTest4.ral.json b/artifacts/nft/DeprecatedNFTTest4.ral.json index 806ad4a63..23e328087 100644 --- a/artifacts/nft/DeprecatedNFTTest4.ral.json +++ b/artifacts/nft/DeprecatedNFTTest4.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "DeprecatedNFTTest4", "bytecode": "02020e1b010000000103d3ee6a5cd5ce0102010000000103d35f9a418a0402", "codeHash": "a5de0fa0b3580303ac63423f09ce5ed95fccbf789679b32130a53c26fef182e9", diff --git a/artifacts/nft/DeprecatedNFTTest5.ral.json b/artifacts/nft/DeprecatedNFTTest5.ral.json index 13990be2d..d90859197 100644 --- a/artifacts/nft/DeprecatedNFTTest5.ral.json +++ b/artifacts/nft/DeprecatedNFTTest5.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "DeprecatedNFTTest5", "bytecode": "02020e1e010000000103d3ee6a5cd5ce0102010000000305d35c9ec8a3ce000c0c02", "codeHash": "8b1374f39db98c485af3dd05d0b0ce861e9528f290ca9dc0d7108e8b48b50161", diff --git a/artifacts/nft/DeprecatedNFTTest6.ral.json b/artifacts/nft/DeprecatedNFTTest6.ral.json index c0890ca9f..6f0b007bd 100644 --- a/artifacts/nft/DeprecatedNFTTest6.ral.json +++ b/artifacts/nft/DeprecatedNFTTest6.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "DeprecatedNFTTest6", "bytecode": "02020e1c010000000103d3ee6a5cd5ce0102010000000204d30e0a3ac10c0d02", "codeHash": "8bc0d39f0607d4a771ec70ae1057b71dbcde404177cb3b25fd7d93d553a2b8cd", diff --git a/artifacts/nft/DeprecatedNFTTest7.ral.json b/artifacts/nft/DeprecatedNFTTest7.ral.json index 3eb5e10c7..162c230d5 100644 --- a/artifacts/nft/DeprecatedNFTTest7.ral.json +++ b/artifacts/nft/DeprecatedNFTTest7.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "DeprecatedNFTTest7", "bytecode": "02020e1d010000000103d3ee6a5cd5ce0102010000000204d3289dd321ce000b02", "codeHash": "b95c9acf088b090f5d9d34f28ab079cf22b9e53af8ae6864113c71172231ef4c", diff --git a/artifacts/nft/MintNFTTest.ral.json b/artifacts/nft/MintNFTTest.ral.json index abb09bd7c..f20e228e1 100644 --- a/artifacts/nft/MintNFTTest.ral.json +++ b/artifacts/nft/MintNFTTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "MintNFTTest", "bytecodeTemplate": "01010300000015{2}4c0ab413c40de0b6b3a7640000a2{1}0d0d{0}0107184a09b413c40de0b6b3a7640000a2{1}0d0d{0}010418", "fieldsSig": { diff --git a/artifacts/nft/NFTCollectionTest.ral.json b/artifacts/nft/NFTCollectionTest.ral.json index 1d2fa4529..5a6d6bb6a 100644 --- a/artifacts/nft/NFTCollectionTest.ral.json +++ b/artifacts/nft/NFTCollectionTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "NFTCollectionTest", "bytecode": "04050912402d4040408a010000000102ce0102010000000102a0000201000102010f16000001310c7b160040cb17011601c50d7b16010201000203000816010002170216001602410e7b01030105011fd3b8b591eeb41701b1a00016001406414c5048000313046413006417031702160113c40de0b6b3a7640000a2a00040ce00160216030d1601c91704a0000d2aa100160402", "codeHash": "087f9292bb326a4d39a6fac09928cb25edf2837718f830f3a166a937f8724779", diff --git a/artifacts/nft/NFTCollectionWithRoyaltyTest.ral.json b/artifacts/nft/NFTCollectionWithRoyaltyTest.ral.json index 33d556a80..bea6907af 100644 --- a/artifacts/nft/NFTCollectionWithRoyaltyTest.ral.json +++ b/artifacts/nft/NFTCollectionWithRoyaltyTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "NFTCollectionWithRoyaltyTest", "bytecode": "06080912402d40404050405b406c40b6010000000102ce0102010000000102a0000201000102010f16000001310c7b160040cb17011601c50d7b16010201000203000816010002170216001602410e7b0100020201061601ce032c1367102d0201010202000316001601a9010202020008b4ce02450f7b16001601a801030105011fd3b8b591eeb41701b1a00016001406414c5048000313046413006417031702160113c40de0b6b3a7640000a2a00040ce00160216030d1601c91704a0000d2aa100160402", "codeHash": "3b64d5e360566a4e4f568f773536a3ea74e66d12231aa44f19d2214ba87b38d6", diff --git a/artifacts/nft/NFTTest.ral.json b/artifacts/nft/NFTTest.ral.json index e2e9525e6..8d65b5dec 100644 --- a/artifacts/nft/NFTTest.ral.json +++ b/artifacts/nft/NFTTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "NFTTest", "bytecode": "04020914010000000102ce0202010000000203ce00ce0102", "codeHash": "4897086210869e612d82995b765a447c5319a55a56e8a0c3c07b4d9ca81e15b1", diff --git a/artifacts/nft/NFTTestStd.ral.json b/artifacts/nft/NFTTestStd.ral.json index cb5692d39..4567efc95 100644 --- a/artifacts/nft/NFTTestStd.ral.json +++ b/artifacts/nft/NFTTestStd.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "NFTTestStd", "bytecode": "040309144020010000000102ce0202010000000203ce00ce0102010000000002d36811cfdd02", "codeHash": "b7ff3fa8dfacc7ae5edbabd6573d0699dffc5a0f07ad14023f682a201b7bce55", diff --git a/artifacts/nft/WithdrawNFTCollectionTest.ral.json b/artifacts/nft/WithdrawNFTCollectionTest.ral.json index fc09d568d..934185ad3 100644 --- a/artifacts/nft/WithdrawNFTCollectionTest.ral.json +++ b/artifacts/nft/WithdrawNFTCollectionTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "WithdrawNFTCollectionTest", "bytecodeTemplate": "01010300000006b4{1}0e0c{0}0106", "fieldsSig": { diff --git a/artifacts/nft/WrongNFTTest.ral.json b/artifacts/nft/WrongNFTTest.ral.json index 187f4e08e..a4c9159a4 100644 --- a/artifacts/nft/WrongNFTTest.ral.json +++ b/artifacts/nft/WrongNFTTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "WrongNFTTest", "bytecode": "04020917010000000102ce0202010000000206040c7bce00ce0102", "codeHash": "7dd2ed643a98b2a1a52a9b9e536fcdae60d961b583b8109f777d846bfdfcae8d", diff --git a/artifacts/sub/Sub.ral.json b/artifacts/sub/Sub.ral.json index 3f873f5c0..372779f4f 100644 --- a/artifacts/sub/Sub.ral.json +++ b/artifacts/sub/Sub.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "Sub", "bytecode": "01011e01000202010dd321939f9e05160016015fa00016002a16012ba100a00002", "codeHash": "3461ebfaca02ad0a3f587a5b67a461c0cbd82d14261407b1d9277ed4ad129234", diff --git a/artifacts/test/Assert.ral.json b/artifacts/test/Assert.ral.json index e4f6afc8a..3a4248600 100644 --- a/artifacts/test/Assert.ral.json +++ b/artifacts/test/Assert.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "Assert", "bytecode": "000110010000000006d362d460120d0e2f0f7b", "codeHash": "46dc5e3835be6551dacbf81565912ec67575aa77522312ceed88472817735d6b", diff --git a/artifacts/test/CallScript0.ral.json b/artifacts/test/CallScript0.ral.json index 87d4c437d..e87ef14af 100644 --- a/artifacts/test/CallScript0.ral.json +++ b/artifacts/test/CallScript0.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "CallScript0", "bytecodeTemplate": "01010000000206{1}0d0e{0}010302", "fieldsSig": { diff --git a/artifacts/test/CallScript1.ral.json b/artifacts/test/CallScript1.ral.json index 687d6f63c..9c2bf295a 100644 --- a/artifacts/test/CallScript1.ral.json +++ b/artifacts/test/CallScript1.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "CallScript1", "bytecodeTemplate": "0101000000070a{1}0d0e{0}01030c11{2}010202", "fieldsSig": { diff --git a/artifacts/test/Debug.ral.json b/artifacts/test/Debug.ral.json index 695c51cf7..3901b8d9d 100644 --- a/artifacts/test/Debug.ral.json +++ b/artifacts/test/Debug.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "Debug", "bytecode": "00010b010000000001d38681d619", "codeHash": "cc0e1966e6847f2c03384e78df1dcd9a0c2b5db1b7c1e901d66e26e2b000eb2c", diff --git a/artifacts/test/InsertIntoMap.ral.json b/artifacts/test/InsertIntoMap.ral.json index 97a15d79e..f41ddde15 100644 --- a/artifacts/test/InsertIntoMap.ral.json +++ b/artifacts/test/InsertIntoMap.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "InsertIntoMap", "bytecodeTemplate": "01010300020010{2}{3}17011700{1}d10f2ca2{1}160016010f0c{0}0100", "fieldsSig": { diff --git a/artifacts/test/MapTest.ral.json b/artifacts/test/MapTest.ral.json index fa01071fa..b3f9551e3 100644 --- a/artifacts/test/MapTest.ral.json +++ b/artifacts/test/MapTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "MapTest", "bytecode": "0004405c40dc4153418001030303001fd3a9cdcc691600d1a2140a5f5f6d61705f5f305f5f160047441601b11602d202011600d1a2140a5f5f6d61705f5f315f5f16014044b11602d201011600d1a2140a5f5f6d61705f5f325f5f1402001144b11602d2010101000104004036d3c50ed2bb0c0d0d140a5f5f6d61705f5f305f5f16004744cb1703160301000c0d0d160301011702170116020d2a0c0e0c140a5f5f6d61705f5f305f5f16004744cb010216020d2a0c0e0c140a5f5f6d61705f5f315f5f16014044cb010216020d2a0c0e0c140a5f5f6d61705f5f325f5f1402001144cb01020100010400402dd392ac08660c0d0d140a5f5f6d61705f5f305f5f16004744cb1703160301000c0d0d160301011702170116000d0c140a5f5f6d61705f5f305f5f16004744cb010316000d0c140a5f5f6d61705f5f315f5f16014044cb010316000d0c140a5f5f6d61705f5f325f5f1402001144cb0103010001020212d3143f7dc50c0d0d140a5f5f6d61705f5f305f5f16004744cb1701160101000c0d0d1601010102", "codeHash": "9c0dad73dd47255270a366794f84539f06816e30c68b1f1cca767707fa8db596", diff --git a/artifacts/test/MapTestWrapper.ral.json b/artifacts/test/MapTestWrapper.ral.json index 869f229dc..61dd5c3be 100644 --- a/artifacts/test/MapTestWrapper.ral.json +++ b/artifacts/test/MapTestWrapper.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "MapTestWrapper", "bytecode": "01031d4030404301030303000dd3a9cdcc691600d10f2ca21600160116020f0cce000100010001010006d3c50ed2bb16000d0cce000101010001010006d392ac086616000d0cce000102", "codeHash": "1d525d3e4cbd1c8f4c0431bf6881e888eeebae012a14532530097f62dd766e9a", diff --git a/artifacts/test/MetaData.ral.json b/artifacts/test/MetaData.ral.json index 20f50e7b7..d2c01c178 100644 --- a/artifacts/test/MetaData.ral.json +++ b/artifacts/test/MetaData.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "MetaData", "bytecode": "000319402c4033010300000006d38d0b3636b4b413c40de0b6b3a7640000a702000200000004b413c40de0b6b3a7640000a80200000000000102", "codeHash": "5b113459525557465f1cc5aeee453dfd5823d1a6094372cee6067f7466b40896", diff --git a/artifacts/test/MultiDeposit.ral.json b/artifacts/test/MultiDeposit.ral.json index 4f61e6971..044e6f42c 100644 --- a/artifacts/test/MultiDeposit.ral.json +++ b/artifacts/test/MultiDeposit.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "MultiDeposit", "bytecodeTemplate": "0101030002004024{0}{1}17011700b413c40de0b6b3a7640000a20c0c16000100b413c40de0b6b3a7640000a20c0c16010100b4{2}13c40de0b6b3a7640000a313c40de0b6b3a76400000d0c16000102b4{2}13c40de0b6b3a7640000a313c40de0b6b3a76400000d0c16010102", "fieldsSig": { diff --git a/artifacts/test/MultiWithdraw.ral.json b/artifacts/test/MultiWithdraw.ral.json index e10139fdf..bd997a759 100644 --- a/artifacts/test/MultiWithdraw.ral.json +++ b/artifacts/test/MultiWithdraw.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "MultiWithdraw", "bytecodeTemplate": "01010300020016{0}{1}170117000c0c160001010c0c1601010113c40de0b6b3a76400000d0c1600010313c40de0b6b3a76400000d0c16010103", "fieldsSig": { diff --git a/artifacts/test/OwnerOnly.ral.json b/artifacts/test/OwnerOnly.ral.json index 8343b0018..cbe2a6d92 100644 --- a/artifacts/test/OwnerOnly.ral.json +++ b/artifacts/test/OwnerOnly.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "OwnerOnly", "bytecode": "010111010000000006d3bf853dbdb4ce00450c7b", "codeHash": "c8ecfd7b7e1f3d0169d80e0abb59702516eeff301d47e0e7be70a631bd9414ca", diff --git a/artifacts/test/RemoveFromMap.ral.json b/artifacts/test/RemoveFromMap.ral.json index bbeee5a09..b00032afb 100644 --- a/artifacts/test/RemoveFromMap.ral.json +++ b/artifacts/test/RemoveFromMap.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "RemoveFromMap", "bytecodeTemplate": "01010300000005{1}0d0c{0}0102", "fieldsSig": { diff --git a/artifacts/test/TemplateArrayVar.ral.json b/artifacts/test/TemplateArrayVar.ral.json index f764ea49f..fedced160 100644 --- a/artifacts/test/TemplateArrayVar.ral.json +++ b/artifacts/test/TemplateArrayVar.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "TemplateArrayVar", "bytecodeTemplate": "010103000e00408d{1}{2}{3}{4}1703170217011700{6}{7}{8}170617051704{0}18{5}1816030f2f16020e2f1a16010d2f1a16000c2f1a0c7b160016011708170716070c2f16080d2f1a0c7b16021603170a170916090e2f160a0f2f1a0c7b16060e2f16050d2f1a16040c2f1a0c7b0c170b160b0e314c40260c170c160c0e314c1b160b7a0e314d0e2c160c7a0e314d2a78160b0e2c160c2a2f0c7b160c0d2a170c4a21160b0d2a170b4a7fd60c170d160d0f314c11160d7a0f314d102a78160d2f0c7b160d0d2a170d4a2b", "fieldsSig": { diff --git a/artifacts/test/TestAssert.ral.json b/artifacts/test/TestAssert.ral.json index 5382c92d7..5776feb27 100644 --- a/artifacts/test/TestAssert.ral.json +++ b/artifacts/test/TestAssert.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "TestAssert", "bytecodeTemplate": "010103000000040c0c{0}0100", "fieldsSig": { diff --git a/artifacts/test/Transact.ral.json b/artifacts/test/Transact.ral.json index ff5418bfb..6862b1a8c 100644 --- a/artifacts/test/Transact.ral.json +++ b/artifacts/test/Transact.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "Transact", "bytecode": "03064027404e40674080408e409c010100010009d353dbb7aab413c40de0b6b3a7640000a9a00013c40de0b6b3a76400002aa10002010200010009d3a248861cb413c40de0b6b3a7640000a8a00013c40de0b6b3a76400002ba1000201010101000ad3bf2d01bdb4ce001600aca00116002aa1010201020101000ad35496306fb4ce001600aba00116002ba10102010000000103d3815a8d0da00002010000000103d3a51b051ca00102", "codeHash": "85e3e9a803741af8e92bd43b1b07cde53f39b86cab0ef1a85bab12b10d691b55", diff --git a/artifacts/test/UpdateMapValue.ral.json b/artifacts/test/UpdateMapValue.ral.json index eef540147..e90bc5fe4 100644 --- a/artifacts/test/UpdateMapValue.ral.json +++ b/artifacts/test/UpdateMapValue.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "UpdateMapValue", "bytecodeTemplate": "01010300000005{1}0d0c{0}0101", "fieldsSig": { diff --git a/artifacts/test/UpdateUserAccount.ral.json b/artifacts/test/UpdateUserAccount.ral.json index f0a2e0fc1..c67f74d03 100644 --- a/artifacts/test/UpdateUserAccount.ral.json +++ b/artifacts/test/UpdateUserAccount.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "UpdateUserAccount", "bytecodeTemplate": "01010300040015{1}{2}{3}{4}17031702170117001600160116021603100c{0}0100{5}0d0c{0}0101", "fieldsSig": { diff --git a/artifacts/test/UserAccount.ral.json b/artifacts/test/UserAccount.ral.json index 215d0c279..d35746f21 100644 --- a/artifacts/test/UserAccount.ral.json +++ b/artifacts/test/UserAccount.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "UserAccount", "bytecode": "080340284037404d010004040013d388b067e71600ce01410c7b1602ce02410c7b1601a1021603a103160116032aa101010001010003d3185a39e11600a100010000000507d384cc0995a001ce01a002ce02a00302", "codeHash": "4e9f7eac1b76eaa2268b5af6ebb5640252892dc170aad6c1ee7b639131a55816", diff --git a/artifacts/test/Warnings.ral.json b/artifacts/test/Warnings.ral.json index 0923a3d33..2a6275177 100644 --- a/artifacts/test/Warnings.ral.json +++ b/artifacts/test/Warnings.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "Warnings", "bytecode": "02010c010002020002d31bbce4a602", "codeHash": "873e095edb39cdb4b11b1157003daeacad06d259a938cd270e22b8e89b75feea", diff --git a/artifacts/token/FakeTokenTest.ral.json b/artifacts/token/FakeTokenTest.ral.json index cf7353bf4..75f5c1968 100644 --- a/artifacts/token/FakeTokenTest.ral.json +++ b/artifacts/token/FakeTokenTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "FakeTokenTest", "bytecode": "010509121b4024402f010000000103044d18010000000103044d18010000000103044d18010000000103044d18010000000001d38d0b3636", "codeHash": "52f971cb44d54a5353e94dc8db991d2726f76760af782e79bd8a66a9b5b294b7", diff --git a/artifacts/token/TokenTest.ral.json b/artifacts/token/TokenTest.ral.json index d5cbb0def..4e978f331 100644 --- a/artifacts/token/TokenTest.ral.json +++ b/artifacts/token/TokenTest.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "TokenTest", "bytecode": "050409121b4024010000000102ce0002010000000102ce0102010000000102ce0202010000000102ce0302", "codeHash": "a2800413eb2c5c23d48068db23df5f8eeaba04653e12c8ed59d589720d96dadd", diff --git a/artifacts/token/TokenTestStd.ral.json b/artifacts/token/TokenTestStd.ral.json index 55f537623..0cf25b55d 100644 --- a/artifacts/token/TokenTestStd.ral.json +++ b/artifacts/token/TokenTestStd.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.6.2", + "version": "v3.7.0", "name": "TokenTestStd", "bytecode": "050509121b40244030010000000102ce0002010000000102ce0102010000000102ce0202010000000102ce0302010000000002d36811cfdd02", "codeHash": "4aa5c769148cada8eeb1cd3791f6e793ed92009ac79ebb64dc79d4d7f2969c8b", From d758fd841b4dc9bc32ecfcddb48e897acd370f5f Mon Sep 17 00:00:00 2001 From: Cheng Wang Date: Tue, 1 Oct 2024 12:50:31 +0200 Subject: [PATCH 4/5] Fix audit --- packages/get-extension-wallet/package.json | 2 +- packages/web3-react/package.json | 2 +- pnpm-lock.yaml | 108 ++++++++++----------- 3 files changed, 56 insertions(+), 56 deletions(-) diff --git a/packages/get-extension-wallet/package.json b/packages/get-extension-wallet/package.json index 9b9499092..4fa672240 100644 --- a/packages/get-extension-wallet/package.json +++ b/packages/get-extension-wallet/package.json @@ -37,7 +37,7 @@ "husky": "^8.0.3", "postcss": "^8.4.31", "prettier": "^2.8.7", - "rollup": "^2.79.1", + "rollup": "^2.79.2", "rollup-plugin-delete": "^2.0.0", "rollup-plugin-esbuild": "^4.10.3", "rollup-plugin-generate-declarations": "^1.1.1", diff --git a/packages/web3-react/package.json b/packages/web3-react/package.json index c2ff2db82..95c2329ca 100644 --- a/packages/web3-react/package.json +++ b/packages/web3-react/package.json @@ -62,7 +62,7 @@ "@types/react-dom": "^18.0.11", "@types/styled-components": "^5.1.26", "eslint-plugin-react-hooks": "^4.6.0", - "rollup": "^2.79.1", + "rollup": "^2.79.2", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-terser": "^7.0.2", "rollup-plugin-typescript2": "^0.34.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7815f48d1..fd42a1268 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,7 +52,7 @@ importers: version: 8.38.0 eslint-plugin-jest: specifier: ^27.2.1 - version: 27.2.1(@typescript-eslint/eslint-plugin@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(jest@28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5) + version: 27.2.1(@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(jest@28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5) jest: specifier: ^28.1.3 version: 28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)) @@ -129,16 +129,16 @@ importers: version: 17.6.1 '@rollup/plugin-commonjs': specifier: ^24.0.1 - version: 24.1.0(rollup@2.79.1) + version: 24.1.0(rollup@2.79.2) '@rollup/plugin-json': specifier: ^6.0.0 - version: 6.0.0(rollup@2.79.1) + version: 6.0.0(rollup@2.79.2) '@rollup/plugin-node-resolve': specifier: ^15.0.1 - version: 15.0.2(rollup@2.79.1) + version: 15.0.2(rollup@2.79.2) '@rollup/plugin-typescript': specifier: ^11.0.0 - version: 11.1.0(rollup@2.79.1)(tslib@2.5.0)(typescript@4.9.5) + version: 11.1.0(rollup@2.79.2)(tslib@2.5.0)(typescript@4.9.5) '@typescript-eslint/eslint-plugin': specifier: ^5.57.0 version: 5.59.0(@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5) @@ -167,20 +167,20 @@ importers: specifier: ^2.8.7 version: 2.8.7 rollup: - specifier: ^2.79.1 - version: 2.79.1 + specifier: ^2.79.2 + version: 2.79.2 rollup-plugin-delete: specifier: ^2.0.0 version: 2.0.0 rollup-plugin-esbuild: specifier: ^4.10.3 - version: 4.10.3(esbuild@0.14.54)(rollup@2.79.1) + version: 4.10.3(esbuild@0.14.54)(rollup@2.79.2) rollup-plugin-generate-declarations: specifier: ^1.1.1 - version: 1.1.1(rollup@2.79.1)(typescript@4.9.5) + version: 1.1.1(rollup@2.79.2)(typescript@4.9.5) rollup-plugin-terser: specifier: ^7.0.2 - version: 7.0.2(rollup@2.79.1) + version: 7.0.2(rollup@2.79.2) sass: specifier: ^1.60.0 version: 1.62.0 @@ -452,7 +452,7 @@ importers: version: 5.3.7(@swc/core@1.4.1)(webpack@5.94.0(@swc/core@1.4.1)(webpack-cli@4.10.0)) ts-jest: specifier: ^28.0.8 - version: 28.0.8(@babel/core@7.21.4)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.21.4))(jest@28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5) + version: 28.0.8(@babel/core@7.21.4)(@jest/types@29.5.0)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5) ts-node: specifier: ^10.9.1 version: 10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5) @@ -513,7 +513,7 @@ importers: devDependencies: '@rollup/plugin-node-resolve': specifier: ^15.0.1 - version: 15.0.2(rollup@2.79.1) + version: 15.0.2(rollup@2.79.2) '@types/node': specifier: ^16.18.23 version: 16.18.24 @@ -533,20 +533,20 @@ importers: specifier: ^4.6.0 version: 4.6.0(eslint@8.38.0) rollup: - specifier: ^2.79.1 - version: 2.79.1 + specifier: ^2.79.2 + version: 2.79.2 rollup-plugin-peer-deps-external: specifier: ^2.2.4 - version: 2.2.4(rollup@2.79.1) + version: 2.2.4(rollup@2.79.2) rollup-plugin-terser: specifier: ^7.0.2 - version: 7.0.2(rollup@2.79.1) + version: 7.0.2(rollup@2.79.2) rollup-plugin-typescript2: specifier: ^0.34.1 - version: 0.34.1(rollup@2.79.1)(typescript@4.9.5) + version: 0.34.1(rollup@2.79.2)(typescript@4.9.5) rollup-plugin-visualizer: specifier: ^5.9.0 - version: 5.9.0(rollup@2.79.1) + version: 5.9.0(rollup@2.79.2) typescript: specifier: ^4.9.5 version: 4.9.5 @@ -5317,8 +5317,8 @@ packages: rollup: optional: true - rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true @@ -7721,41 +7721,41 @@ snapshots: '@parcel/watcher-win32-ia32': 2.3.0 '@parcel/watcher-win32-x64': 2.3.0 - '@rollup/plugin-commonjs@24.1.0(rollup@2.79.1)': + '@rollup/plugin-commonjs@24.1.0(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 5.0.2(rollup@2.79.1) + '@rollup/pluginutils': 5.0.2(rollup@2.79.2) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.27.0 optionalDependencies: - rollup: 2.79.1 + rollup: 2.79.2 - '@rollup/plugin-json@6.0.0(rollup@2.79.1)': + '@rollup/plugin-json@6.0.0(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 5.0.2(rollup@2.79.1) + '@rollup/pluginutils': 5.0.2(rollup@2.79.2) optionalDependencies: - rollup: 2.79.1 + rollup: 2.79.2 - '@rollup/plugin-node-resolve@15.0.2(rollup@2.79.1)': + '@rollup/plugin-node-resolve@15.0.2(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 5.0.2(rollup@2.79.1) + '@rollup/pluginutils': 5.0.2(rollup@2.79.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.2 optionalDependencies: - rollup: 2.79.1 + rollup: 2.79.2 - '@rollup/plugin-typescript@11.1.0(rollup@2.79.1)(tslib@2.5.0)(typescript@4.9.5)': + '@rollup/plugin-typescript@11.1.0(rollup@2.79.2)(tslib@2.5.0)(typescript@4.9.5)': dependencies: - '@rollup/pluginutils': 5.0.2(rollup@2.79.1) + '@rollup/pluginutils': 5.0.2(rollup@2.79.2) resolve: 1.22.2 typescript: 4.9.5 optionalDependencies: - rollup: 2.79.1 + rollup: 2.79.2 tslib: 2.5.0 '@rollup/pluginutils@4.2.1': @@ -7763,13 +7763,13 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.0.2(rollup@2.79.1)': + '@rollup/pluginutils@5.0.2(rollup@2.79.2)': dependencies: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 2.79.1 + rollup: 2.79.2 '@sinclair/typebox@0.24.51': {} @@ -9623,24 +9623,24 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(jest@29.5.0(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5): + eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(jest@28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@4.9.5) eslint: 8.38.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5) - jest: 29.5.0(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)) + jest: 28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(jest@28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5): + eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(jest@29.5.0(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@4.9.5) eslint: 8.38.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@4.9.5))(eslint@8.38.0)(typescript@4.9.5) - jest: 28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)) + jest: 29.5.0(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)) transitivePeerDependencies: - supports-color - typescript @@ -12120,7 +12120,7 @@ snapshots: dependencies: del: 5.1.0 - rollup-plugin-esbuild@4.10.3(esbuild@0.14.54)(rollup@2.79.1): + rollup-plugin-esbuild@4.10.3(esbuild@0.14.54)(rollup@2.79.2): dependencies: '@rollup/pluginutils': 4.2.1 debug: 4.3.4(supports-color@5.5.0) @@ -12128,47 +12128,47 @@ snapshots: esbuild: 0.14.54 joycon: 3.1.1 jsonc-parser: 3.2.0 - rollup: 2.79.1 + rollup: 2.79.2 transitivePeerDependencies: - supports-color - rollup-plugin-generate-declarations@1.1.1(rollup@2.79.1)(typescript@4.9.5): + rollup-plugin-generate-declarations@1.1.1(rollup@2.79.2)(typescript@4.9.5): dependencies: - rollup: 2.79.1 + rollup: 2.79.2 typescript: 4.9.5 - rollup-plugin-peer-deps-external@2.2.4(rollup@2.79.1): + rollup-plugin-peer-deps-external@2.2.4(rollup@2.79.2): dependencies: - rollup: 2.79.1 + rollup: 2.79.2 - rollup-plugin-terser@7.0.2(rollup@2.79.1): + rollup-plugin-terser@7.0.2(rollup@2.79.2): dependencies: '@babel/code-frame': 7.21.4 jest-worker: 26.6.2 - rollup: 2.79.1 + rollup: 2.79.2 serialize-javascript: 4.0.0 terser: 5.17.1 - rollup-plugin-typescript2@0.34.1(rollup@2.79.1)(typescript@4.9.5): + rollup-plugin-typescript2@0.34.1(rollup@2.79.2)(typescript@4.9.5): dependencies: '@rollup/pluginutils': 4.2.1 find-cache-dir: 3.3.2 fs-extra: 10.1.0 - rollup: 2.79.1 + rollup: 2.79.2 semver: 7.5.2 tslib: 2.5.0 typescript: 4.9.5 - rollup-plugin-visualizer@5.9.0(rollup@2.79.1): + rollup-plugin-visualizer@5.9.0(rollup@2.79.2): dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.1 optionalDependencies: - rollup: 2.79.1 + rollup: 2.79.2 - rollup@2.79.1: + rollup@2.79.2: optionalDependencies: fsevents: 2.3.2 @@ -12611,7 +12611,7 @@ snapshots: trim-newlines@3.0.1: {} - ts-jest@28.0.8(@babel/core@7.21.4)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.21.4))(jest@28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@28.0.8(@babel/core@7.21.4)(@jest/types@29.5.0)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@28.1.3(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 @@ -12625,8 +12625,8 @@ snapshots: yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.21.4 - '@jest/types': 28.1.3 - babel-jest: 28.1.3(@babel/core@7.21.4) + '@jest/types': 29.5.0 + babel-jest: 29.5.0(@babel/core@7.21.4) ts-jest@29.1.0(@babel/core@7.21.4)(@jest/types@29.5.0)(babel-jest@29.5.0(@babel/core@7.21.4))(jest@29.5.0(@types/node@16.18.24)(ts-node@10.9.1(@swc/core@1.4.1)(@types/node@16.18.24)(typescript@4.9.5)))(typescript@4.9.5): dependencies: From 1e90e76bacb18f5608448b57c75230393355e418 Mon Sep 17 00:00:00 2001 From: Cheng Wang Date: Wed, 2 Oct 2024 10:30:46 +0200 Subject: [PATCH 5/5] Use Narrow for generic tuples --- artifacts/ts/Add.ts | 3 ++- artifacts/ts/Assert.ts | 1 + artifacts/ts/Debug.ts | 1 + artifacts/ts/DeprecatedNFTTest1.ts | 3 ++- artifacts/ts/DeprecatedNFTTest2.ts | 3 ++- artifacts/ts/DeprecatedNFTTest3.ts | 3 ++- artifacts/ts/DeprecatedNFTTest4.ts | 3 ++- artifacts/ts/DeprecatedNFTTest5.ts | 3 ++- artifacts/ts/DeprecatedNFTTest6.ts | 3 ++- artifacts/ts/DeprecatedNFTTest7.ts | 3 ++- artifacts/ts/FakeTokenTest.ts | 3 ++- artifacts/ts/Greeter.ts | 3 ++- artifacts/ts/MapTest.ts | 3 ++- artifacts/ts/MapTestWrapper.ts | 1 + artifacts/ts/MetaData.ts | 1 + artifacts/ts/NFTCollectionTest.ts | 3 ++- artifacts/ts/NFTCollectionWithRoyaltyTest.ts | 3 ++- artifacts/ts/NFTTest.ts | 3 ++- artifacts/ts/NFTTestStd.ts | 3 ++- artifacts/ts/OwnerOnly.ts | 1 + artifacts/ts/Sub.ts | 3 ++- artifacts/ts/TokenTest.ts | 3 ++- artifacts/ts/TokenTestStd.ts | 3 ++- artifacts/ts/Transact.ts | 3 ++- artifacts/ts/UserAccount.ts | 3 ++- artifacts/ts/Warnings.ts | 1 + artifacts/ts/WrongNFTTest.ts | 3 ++- packages/cli/src/codegen.ts | 4 ++-- packages/web3/src/utils/utils.ts | 8 ++++++++ test/nft-collection.test.ts | 5 +++-- test/token.test.ts | 12 ++++++------ 31 files changed, 67 insertions(+), 31 deletions(-) diff --git a/artifacts/ts/Add.ts b/artifacts/ts/Add.ts index 5d0d1d787..fe6052c65 100644 --- a/artifacts/ts/Add.ts +++ b/artifacts/ts/Add.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as AddContractJson } from "../add/Add.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -407,7 +408,7 @@ export class AddInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends AddTypes.MultiCallParams | AddTypes.MultiCallParams[] diff --git a/artifacts/ts/Assert.ts b/artifacts/ts/Assert.ts index 15959198c..86373cd79 100644 --- a/artifacts/ts/Assert.ts +++ b/artifacts/ts/Assert.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as AssertContractJson } from "../test/Assert.ral.json"; import { getContractByCodeHash } from "./contracts"; diff --git a/artifacts/ts/Debug.ts b/artifacts/ts/Debug.ts index c1386b8a8..ff0ed8bc9 100644 --- a/artifacts/ts/Debug.ts +++ b/artifacts/ts/Debug.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as DebugContractJson } from "../test/Debug.ral.json"; import { getContractByCodeHash } from "./contracts"; diff --git a/artifacts/ts/DeprecatedNFTTest1.ts b/artifacts/ts/DeprecatedNFTTest1.ts index d3b179ea4..0b3322f44 100644 --- a/artifacts/ts/DeprecatedNFTTest1.ts +++ b/artifacts/ts/DeprecatedNFTTest1.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as DeprecatedNFTTest1ContractJson } from "../nft/DeprecatedNFTTest1.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -170,7 +171,7 @@ export class DeprecatedNFTTest1Instance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/DeprecatedNFTTest2.ts b/artifacts/ts/DeprecatedNFTTest2.ts index fb1331205..103cb655a 100644 --- a/artifacts/ts/DeprecatedNFTTest2.ts +++ b/artifacts/ts/DeprecatedNFTTest2.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as DeprecatedNFTTest2ContractJson } from "../nft/DeprecatedNFTTest2.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -209,7 +210,7 @@ export class DeprecatedNFTTest2Instance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/DeprecatedNFTTest3.ts b/artifacts/ts/DeprecatedNFTTest3.ts index 9c989e8f3..b191640e1 100644 --- a/artifacts/ts/DeprecatedNFTTest3.ts +++ b/artifacts/ts/DeprecatedNFTTest3.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as DeprecatedNFTTest3ContractJson } from "../nft/DeprecatedNFTTest3.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -209,7 +210,7 @@ export class DeprecatedNFTTest3Instance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/DeprecatedNFTTest4.ts b/artifacts/ts/DeprecatedNFTTest4.ts index 5ebec8d3d..a1e9a56fe 100644 --- a/artifacts/ts/DeprecatedNFTTest4.ts +++ b/artifacts/ts/DeprecatedNFTTest4.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as DeprecatedNFTTest4ContractJson } from "../nft/DeprecatedNFTTest4.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -202,7 +203,7 @@ export class DeprecatedNFTTest4Instance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/DeprecatedNFTTest5.ts b/artifacts/ts/DeprecatedNFTTest5.ts index ecd6e7f5e..8b8f6a3c1 100644 --- a/artifacts/ts/DeprecatedNFTTest5.ts +++ b/artifacts/ts/DeprecatedNFTTest5.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as DeprecatedNFTTest5ContractJson } from "../nft/DeprecatedNFTTest5.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -216,7 +217,7 @@ export class DeprecatedNFTTest5Instance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/DeprecatedNFTTest6.ts b/artifacts/ts/DeprecatedNFTTest6.ts index 4b46bbe5a..20ffd7e8a 100644 --- a/artifacts/ts/DeprecatedNFTTest6.ts +++ b/artifacts/ts/DeprecatedNFTTest6.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as DeprecatedNFTTest6ContractJson } from "../nft/DeprecatedNFTTest6.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -202,7 +203,7 @@ export class DeprecatedNFTTest6Instance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/DeprecatedNFTTest7.ts b/artifacts/ts/DeprecatedNFTTest7.ts index 6e1796e1c..3778ffa85 100644 --- a/artifacts/ts/DeprecatedNFTTest7.ts +++ b/artifacts/ts/DeprecatedNFTTest7.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as DeprecatedNFTTest7ContractJson } from "../nft/DeprecatedNFTTest7.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -216,7 +217,7 @@ export class DeprecatedNFTTest7Instance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/FakeTokenTest.ts b/artifacts/ts/FakeTokenTest.ts index 360a4f6d5..1c05a45fc 100644 --- a/artifacts/ts/FakeTokenTest.ts +++ b/artifacts/ts/FakeTokenTest.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as FakeTokenTestContractJson } from "../token/FakeTokenTest.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -297,7 +298,7 @@ export class FakeTokenTestInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/Greeter.ts b/artifacts/ts/Greeter.ts index 7b4e21a17..8745c6fd8 100644 --- a/artifacts/ts/Greeter.ts +++ b/artifacts/ts/Greeter.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as GreeterContractJson } from "../greeter/Greeter.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -172,7 +173,7 @@ export class GreeterInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends GreeterTypes.MultiCallParams | GreeterTypes.MultiCallParams[] diff --git a/artifacts/ts/MapTest.ts b/artifacts/ts/MapTest.ts index 1cc29f303..a28356c29 100644 --- a/artifacts/ts/MapTest.ts +++ b/artifacts/ts/MapTest.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as MapTestContractJson } from "../test/MapTest.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -267,7 +268,7 @@ export class MapTestInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends MapTestTypes.MultiCallParams | MapTestTypes.MultiCallParams[] diff --git a/artifacts/ts/MapTestWrapper.ts b/artifacts/ts/MapTestWrapper.ts index a9e55d39c..10a0e272d 100644 --- a/artifacts/ts/MapTestWrapper.ts +++ b/artifacts/ts/MapTestWrapper.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as MapTestWrapperContractJson } from "../test/MapTestWrapper.ral.json"; import { getContractByCodeHash } from "./contracts"; diff --git a/artifacts/ts/MetaData.ts b/artifacts/ts/MetaData.ts index ecbca9556..48153a7da 100644 --- a/artifacts/ts/MetaData.ts +++ b/artifacts/ts/MetaData.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as MetaDataContractJson } from "../test/MetaData.ral.json"; import { getContractByCodeHash } from "./contracts"; diff --git a/artifacts/ts/NFTCollectionTest.ts b/artifacts/ts/NFTCollectionTest.ts index d9c55e8e9..7b7722e2b 100644 --- a/artifacts/ts/NFTCollectionTest.ts +++ b/artifacts/ts/NFTCollectionTest.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as NFTCollectionTestContractJson } from "../nft/NFTCollectionTest.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -318,7 +319,7 @@ export class NFTCollectionTestInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/NFTCollectionWithRoyaltyTest.ts b/artifacts/ts/NFTCollectionWithRoyaltyTest.ts index 8c85c60fa..8803bf8d6 100644 --- a/artifacts/ts/NFTCollectionWithRoyaltyTest.ts +++ b/artifacts/ts/NFTCollectionWithRoyaltyTest.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as NFTCollectionWithRoyaltyTestContractJson } from "../nft/NFTCollectionWithRoyaltyTest.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -492,7 +493,7 @@ export class NFTCollectionWithRoyaltyTestInstance extends ContractInstance { async multicall< Callss extends NFTCollectionWithRoyaltyTestTypes.MultiCallParams[] >( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/NFTTest.ts b/artifacts/ts/NFTTest.ts index 60b268bf0..35b522eb6 100644 --- a/artifacts/ts/NFTTest.ts +++ b/artifacts/ts/NFTTest.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as NFTTestContractJson } from "../nft/NFTTest.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -203,7 +204,7 @@ export class NFTTestInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends NFTTestTypes.MultiCallParams | NFTTestTypes.MultiCallParams[] diff --git a/artifacts/ts/NFTTestStd.ts b/artifacts/ts/NFTTestStd.ts index 6cecbe24f..129c33b47 100644 --- a/artifacts/ts/NFTTestStd.ts +++ b/artifacts/ts/NFTTestStd.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as NFTTestStdContractJson } from "../nft/NFTTestStd.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -240,7 +241,7 @@ export class NFTTestStdInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/OwnerOnly.ts b/artifacts/ts/OwnerOnly.ts index edd241ca9..a7b33f6a3 100644 --- a/artifacts/ts/OwnerOnly.ts +++ b/artifacts/ts/OwnerOnly.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as OwnerOnlyContractJson } from "../test/OwnerOnly.ral.json"; import { getContractByCodeHash } from "./contracts"; diff --git a/artifacts/ts/Sub.ts b/artifacts/ts/Sub.ts index d6b781f00..8e8283af1 100644 --- a/artifacts/ts/Sub.ts +++ b/artifacts/ts/Sub.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as SubContractJson } from "../sub/Sub.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -175,7 +176,7 @@ export class SubInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends SubTypes.MultiCallParams | SubTypes.MultiCallParams[] diff --git a/artifacts/ts/TokenTest.ts b/artifacts/ts/TokenTest.ts index e8b73e4f9..42d0e8aa1 100644 --- a/artifacts/ts/TokenTest.ts +++ b/artifacts/ts/TokenTest.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as TokenTestContractJson } from "../token/TokenTest.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -266,7 +267,7 @@ export class TokenTestInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/TokenTestStd.ts b/artifacts/ts/TokenTestStd.ts index 00c7d342d..5db0763af 100644 --- a/artifacts/ts/TokenTestStd.ts +++ b/artifacts/ts/TokenTestStd.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as TokenTestStdContractJson } from "../token/TokenTestStd.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -298,7 +299,7 @@ export class TokenTestStdInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/Transact.ts b/artifacts/ts/Transact.ts index c60d22257..fc12b0063 100644 --- a/artifacts/ts/Transact.ts +++ b/artifacts/ts/Transact.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as TransactContractJson } from "../test/Transact.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -326,7 +327,7 @@ export class TransactInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/UserAccount.ts b/artifacts/ts/UserAccount.ts index 94c4e1c34..ba1e16576 100644 --- a/artifacts/ts/UserAccount.ts +++ b/artifacts/ts/UserAccount.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as UserAccountContractJson } from "../test/UserAccount.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -236,7 +237,7 @@ export class UserAccountInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/artifacts/ts/Warnings.ts b/artifacts/ts/Warnings.ts index 256df0baa..ac688a3af 100644 --- a/artifacts/ts/Warnings.ts +++ b/artifacts/ts/Warnings.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as WarningsContractJson } from "../test/Warnings.ral.json"; import { getContractByCodeHash } from "./contracts"; diff --git a/artifacts/ts/WrongNFTTest.ts b/artifacts/ts/WrongNFTTest.ts index 66bc40462..4b7ce9134 100644 --- a/artifacts/ts/WrongNFTTest.ts +++ b/artifacts/ts/WrongNFTTest.ts @@ -31,6 +31,7 @@ import { signExecuteMethod, addStdIdToFields, encodeContractFields, + Narrow, } from "@alephium/web3"; import { default as WrongNFTTestContractJson } from "../nft/WrongNFTTest.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -213,7 +214,7 @@ export class WrongNFTTestInstance extends ContractInstance { calls: Calls ): Promise>; async multicall( - callss: Callss + callss: Narrow ): Promise>; async multicall< Callss extends diff --git a/packages/cli/src/codegen.ts b/packages/cli/src/codegen.ts index 3cd12ec11..9998a921e 100644 --- a/packages/cli/src/codegen.ts +++ b/packages/cli/src/codegen.ts @@ -467,7 +467,7 @@ function genMulticall(contract: Contract): string { calls: Calls ): Promise<${types}.MultiCallResults> async multicall( - callss: Callss + callss: Narrow ): Promise<${types}.MulticallReturnType> async multicall( callss: Callss @@ -518,7 +518,7 @@ function genContract(contract: Contract, artifactRelativePath: string): string { testMethod, callMethod, multicallMethods, fetchContractState, Asset, ContractInstance, getContractEventsCurrentCount, TestContractParamsWithoutMaps, TestContractResultWithoutMaps, SignExecuteContractMethodParams, - SignExecuteScriptTxResult, signExecuteMethod, addStdIdToFields, encodeContractFields + SignExecuteScriptTxResult, signExecuteMethod, addStdIdToFields, encodeContractFields, Narrow } from '@alephium/web3' import { default as ${contract.name}ContractJson } from '../${toUnixPath(artifactRelativePath)}' import { getContractByCodeHash } from './contracts' diff --git a/packages/web3/src/utils/utils.ts b/packages/web3/src/utils/utils.ts index cea0652f3..a10b42ef6 100644 --- a/packages/web3/src/utils/utils.ts +++ b/packages/web3/src/utils/utils.ts @@ -169,3 +169,11 @@ export type Eq = _Eq<{ [P in keyof X]: X[P] }, { [P in keyof Y]: Y[P] }> // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars export function assertType(): void {} export type Optional = Pick, K> & Omit + +export type Narrow = + | (unknown extends type ? unknown : never) + // eslint-disable-next-line @typescript-eslint/ban-types + | (type extends Function ? type : never) + | (type extends bigint | boolean | number | string ? type : never) + | (type extends [] ? [] : never) + | { [K in keyof type]: Narrow } diff --git a/test/nft-collection.test.ts b/test/nft-collection.test.ts index 410b3df72..0d740b4fc 100644 --- a/test/nft-collection.test.ts +++ b/test/nft-collection.test.ts @@ -142,7 +142,7 @@ describe('nft collection', function () { const royaltyRate = 200n // basis points if (royalty) { - nftCollectionInstance = ( + const _nftCollectionInstance = ( await NFTCollectionWithRoyaltyTest.deploy(signer, { initialFields: { nftTemplateId, @@ -157,7 +157,7 @@ describe('nft collection', function () { expect( ( - await nftCollectionInstance.view.royaltyAmount({ + await _nftCollectionInstance.view.royaltyAmount({ args: { tokenId: nftTemplateId, salePrice: ONE_ALPH @@ -165,6 +165,7 @@ describe('nft collection', function () { }) ).returns ).toEqual((ONE_ALPH * royaltyRate) / 10000n) + nftCollectionInstance = _nftCollectionInstance } else { nftCollectionInstance = ( await NFTCollectionTest.deploy(signer, { diff --git a/test/token.test.ts b/test/token.test.ts index 91b4e7ef1..3e97d6345 100644 --- a/test/token.test.ts +++ b/test/token.test.ts @@ -82,16 +82,16 @@ describe('contract', function () { getDecimals: {}, getSymbol: {} }) - expect(result0[0].getSymbol.returns).toEqual(symbol) - expect(result0[0].getName.returns).toEqual(name) - expect(result0[0].getDecimals.returns).toEqual(decimals) - expect(result0[0].getTotalSupply.returns).toEqual(totalSupply) + expect(result0.getSymbol.returns).toEqual(symbol) + expect(result0.getName.returns).toEqual(name) + expect(result0.getDecimals.returns).toEqual(decimals) + expect(result0.getTotalSupply.returns).toEqual(totalSupply) - const result1 = await tokenTest.multicall( + const result1 = await tokenTest.multicall([ { getName: {} }, { getName: {}, getSymbol: {} }, { getName: {}, getSymbol: {}, getDecimals: {} } - ) + ]) expect(result1[0].getName.returns).toEqual(name) expect(result1[1].getName.returns).toEqual(name) expect(result1[1].getSymbol.returns).toEqual(symbol)