From 05973eae6c2829e16bfbe1546e09144120f2d527 Mon Sep 17 00:00:00 2001 From: Jakub Dzikowski Date: Fri, 21 Aug 2026 09:14:16 +0200 Subject: [PATCH 1/5] Mark optional sale and swap DTO fields callers already send. --- src/api/types/LaunchpadDtos.ts | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/api/types/LaunchpadDtos.ts b/src/api/types/LaunchpadDtos.ts index 16cd9e4..f3623c8 100644 --- a/src/api/types/LaunchpadDtos.ts +++ b/src/api/types/LaunchpadDtos.ts @@ -119,6 +119,38 @@ export class CreateTokenSaleDTO extends SubmitCallDTO { @Max(100) public adjustableSupplyMultiplier?: number; + @IsOptional() + @IsString() + public websiteUrl?: string; + + @IsOptional() + @IsString() + public twitterUrl?: string; + + @IsOptional() + @IsString() + public telegramUrl?: string; + + @IsOptional() + @IsString() + public discordUrl?: string; + + @IsOptional() + @IsString() + public facebookUrl?: string; + + @IsOptional() + @IsString() + public instagramUrl?: string; + + @IsOptional() + @IsString() + public redditUrl?: string; + + @IsOptional() + @IsString() + public tiktokUrl?: string; + constructor( tokenName: string, tokenSymbol: string, @@ -228,6 +260,10 @@ export class ExactTokenQuantityDto extends SubmitCallDTO { @IsOptional() public extraFees?: TokenExtraFeesDto; + @IsOptional() + @IsString() + public signing?: string; + constructor(vaultAddress: UserAlias, tokenQuantity: BigNumber = new BigNumber(0)) { super(); this.vaultAddress = vaultAddress; @@ -257,6 +293,10 @@ export class NativeTokenQuantityDto extends SubmitCallDTO { @IsBoolean() public IsPreMint?: boolean; + @IsOptional() + @IsString() + public signing?: string; + constructor(vaultAddress: UserAlias, nativeTokenQuantity: BigNumber = new BigNumber(0)) { super(); this.vaultAddress = vaultAddress; From 07f6727774dcb69ec4af30eb5a443684f49df6a9 Mon Sep 17 00:00:00 2001 From: Jakub Dzikowski Date: Tue, 25 Aug 2026 12:34:33 +0200 Subject: [PATCH 2/5] Drop unused signing field from launchpad trade DTOs. Co-authored-by: Cursor --- src/api/types/LaunchpadDtos.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/api/types/LaunchpadDtos.ts b/src/api/types/LaunchpadDtos.ts index f3623c8..5f70472 100644 --- a/src/api/types/LaunchpadDtos.ts +++ b/src/api/types/LaunchpadDtos.ts @@ -260,10 +260,6 @@ export class ExactTokenQuantityDto extends SubmitCallDTO { @IsOptional() public extraFees?: TokenExtraFeesDto; - @IsOptional() - @IsString() - public signing?: string; - constructor(vaultAddress: UserAlias, tokenQuantity: BigNumber = new BigNumber(0)) { super(); this.vaultAddress = vaultAddress; @@ -293,10 +289,6 @@ export class NativeTokenQuantityDto extends SubmitCallDTO { @IsBoolean() public IsPreMint?: boolean; - @IsOptional() - @IsString() - public signing?: string; - constructor(vaultAddress: UserAlias, nativeTokenQuantity: BigNumber = new BigNumber(0)) { super(); this.vaultAddress = vaultAddress; From d4a39d24a559a4391ed2cae4c95f888557bb109c Mon Sep 17 00:00:00 2001 From: Jakub Dzikowski Date: Wed, 26 Aug 2026 13:33:29 +0200 Subject: [PATCH 3/5] Feat: Upgrade Gala Chain SDK to 3.2.0. Co-authored-by: Cursor --- package-lock.json | 438 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 10 +- 2 files changed, 415 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0158888..b4e64f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,8 @@ "name": "@gala-chain/launchpad", "version": "1.1.3", "dependencies": { - "@gala-chain/api": "3.1.3", - "@gala-chain/chaincode": "3.1.3", + "@gala-chain/api": "3.2.0", + "@gala-chain/chaincode": "3.2.0", "@gala-chain/dex": "1.1.2", "@grpc/grpc-js": "1.10.10", "decimal.js": "^10.5.0", @@ -18,9 +18,9 @@ "fabric-shim": "2.5.6" }, "devDependencies": { - "@gala-chain/cli": "3.1.3", - "@gala-chain/client": "3.1.3", - "@gala-chain/test": "3.1.3", + "@gala-chain/cli": "3.2.0", + "@gala-chain/client": "3.2.0", + "@gala-chain/test": "3.2.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/jest": "^29.5.12", "@types/node": "18.11.9", @@ -71,6 +71,7 @@ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -1154,10 +1155,11 @@ } }, "node_modules/@gala-chain/api": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@gala-chain/api/-/api-3.1.3.tgz", - "integrity": "sha512-2wQNPSVW1UqDcyWDuR2Y7SUa41kLgc+OG6fT16G0S+0sd23i10BGinYfEk87mxLPDxu+KCL5b3sJGpqqqiN77Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@gala-chain/api/-/api-3.2.0.tgz", + "integrity": "sha512-zbwcIl6ETtjoP+o6OG4/CcG9uJ2LZbDP8rmoAIa6bjtziWmplq9BtXzCj26qJmtiYmCKEHMfi0D5IZ3GtkNS3Q==", "license": "Apache-2.0", + "peer": true, "dependencies": { "bignumber.js": "^9.0.2", "bn.js": "5.2.1", @@ -1175,13 +1177,18 @@ } }, "node_modules/@gala-chain/chaincode": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@gala-chain/chaincode/-/chaincode-3.1.3.tgz", - "integrity": "sha512-smh7vrfQ3A9piQNXwLtnlCMU+WL+3WQ9Y6Qx+Ht0lp8gKqSQtPkmmVpluZybGwSyYtd4V/uqpEambNc+5g1fIA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@gala-chain/chaincode/-/chaincode-3.2.0.tgz", + "integrity": "sha512-/PfghBA75OZLfGmGHKBHW7YCwQn34hxUp1Q61cf4eMfB29BngMPXyY51uAqE/hletLwVUNe7Ptyr43CNi+rK5A==", "license": "Apache-2.0", "dependencies": { - "@gala-chain/api": "3.1.3", + "@gala-chain/api": "3.2.0", "@grpc/grpc-js": "1.10.10", + "@opentelemetry/api": "^1.9.1", + "@opentelemetry/exporter-trace-otlp-proto": "^0.205.0", + "@opentelemetry/resources": "^2.10.0", + "@opentelemetry/sdk-trace-node": "^2.10.0", + "@opentelemetry/semantic-conventions": "^1.43.0", "fabric-contract-api": "2.5.6", "fabric-protos": "2.2.20", "fabric-shim": "2.5.6", @@ -1197,13 +1204,13 @@ } }, "node_modules/@gala-chain/cli": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@gala-chain/cli/-/cli-3.1.3.tgz", - "integrity": "sha512-zOQflDoo/OkC3WLQhZ0558DjLMkEhcMfNpsSAAphSrmMsiq9hb09tH9c673b49MPBiUhguS1uzU6aYFOVOAaVg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@gala-chain/cli/-/cli-3.2.0.tgz", + "integrity": "sha512-iS0L8c1DgEzrd5A5Vulzj+S7eQudIntJaB/feh0hLQf5WXZA22tKZ/EZzatRAIL6JCxpufxF/t1+jTGDx91XAg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@gala-chain/api": "3.1.3", + "@gala-chain/api": "3.2.0", "@noble/secp256k1": "^1.7.1", "@oclif/core": "^3", "@oclif/plugin-help": "^3", @@ -1231,13 +1238,13 @@ } }, "node_modules/@gala-chain/client": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@gala-chain/client/-/client-3.1.3.tgz", - "integrity": "sha512-fn3HKTZJO0kZV28QnV05iBh2kKaaMyuu/Dvu7SrLN/ClKFa3BJc4Z+qHPY2GSUDjvuj5JRx3wZifRrTJu0bMGw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@gala-chain/client/-/client-3.2.0.tgz", + "integrity": "sha512-vOD4oOe9HL+pn9wvP5QVW8H3mwLJewOg84/cUi+inpn7RgXedg3dZJmljmPcSqpGYgT8QuDvY4TtLH5jFx08aQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@gala-chain/api": "3.1.3", + "@gala-chain/api": "3.2.0", "axios": "^1.6.0", "jsonschema": "^1.4.1", "tslib": "^2.6.2" @@ -1272,19 +1279,19 @@ } }, "node_modules/@gala-chain/test": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@gala-chain/test/-/test-3.1.3.tgz", - "integrity": "sha512-g/E5pkF+rg8VMACkiEMZUosdmFBG7TFVd34ry/RfsEvpXHadnrl0FEs33mh0FJpGBOOBrGmWqcnxWnOUsZB95A==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@gala-chain/test/-/test-3.2.0.tgz", + "integrity": "sha512-C39pyGvU3PFH6jBv8cdE4zFSy2d+NwS0vRSkhns2+ioDfW5cw/x1SJQOAZVTcp7/VmVoOnFNJVkNFdtgAINfGA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@gala-chain/client": "3.1.3", + "@gala-chain/client": "3.2.0", "@jest/globals": "29.7.0", "nanoid": "^3.3.6", "tslib": "^2.6.2" }, "peerDependencies": { - "@gala-chain/api": "3.1.3", + "@gala-chain/api": "3.2.0", "bignumber.js": "*", "class-transformer": "0.5.1", "fabric-contract-api": "*", @@ -2226,6 +2233,363 @@ "node": ">=8" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.205.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.205.0.tgz", + "integrity": "sha512-wBlPk1nFB37Hsm+3Qy73yQSobVn28F4isnWIBvKpd5IUH/eat8bwcL02H9yzmHyyPmukeccSl2mbN5sDQZYnPg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/context-async-hooks": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-2.10.0.tgz", + "integrity": "sha512-bvyMcgLEkozzSzpEEEo1OMoeQ97bxj6Qs2uN3mPrSdDvObMI1myffD/BPqcLlzZO9//d1SqQA/WPw7Cz2AiqhA==", + "license": "Apache-2.0", + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.1.0.tgz", + "integrity": "sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-trace-otlp-proto": { + "version": "0.205.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.205.0.tgz", + "integrity": "sha512-bGtFzqiENO2GpJk988mOBMe0MfeNpTQjbLm/LBijas6VRyEDQarUzdBHpFlu89A25k1+BCntdWGsWTa9Ai4FyA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/otlp-exporter-base": "0.205.0", + "@opentelemetry/otlp-transformer": "0.205.0", + "@opentelemetry/resources": "2.1.0", + "@opentelemetry/sdk-trace-base": "2.1.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/resources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.1.0.tgz", + "integrity": "sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.205.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.205.0.tgz", + "integrity": "sha512-2MN0C1IiKyo34M6NZzD6P9Nv9Dfuz3OJ3rkZwzFmF6xzjDfqqCTatc9v1EpNfaP55iDOCLHFyYNCgs61FFgtUQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/otlp-transformer": "0.205.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.205.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.205.0.tgz", + "integrity": "sha512-KmObgqPtk9k/XTlWPJHdMbGCylRAmMJNXIRh6VYJmvlRDMfe+DonH41G7eenG8t4FXn3fxOGh14o/WiMRR6vPg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.205.0", + "@opentelemetry/core": "2.1.0", + "@opentelemetry/resources": "2.1.0", + "@opentelemetry/sdk-logs": "0.205.0", + "@opentelemetry/sdk-metrics": "2.1.0", + "@opentelemetry/sdk-trace-base": "2.1.0", + "protobufjs": "^7.3.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.1.0.tgz", + "integrity": "sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.10.0.tgz", + "integrity": "sha512-q6MMm2zhggzsHVNbabYwut+a6nbuQQe3URUoxaojM/8K1IBfwwPzvxIjNi2/lI1TFe+fMHMW9MWhrtDLEXEnkA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.10.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.10.0.tgz", + "integrity": "sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.205.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.205.0.tgz", + "integrity": "sha512-nyqhNQ6eEzPWQU60Nc7+A5LIq8fz3UeIzdEVBQYefB4+msJZ2vuVtRuk9KxPMw1uHoHDtYEwkr2Ct0iG29jU8w==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.205.0", + "@opentelemetry/core": "2.1.0", + "@opentelemetry/resources": "2.1.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.1.0.tgz", + "integrity": "sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-2.1.0.tgz", + "integrity": "sha512-J9QX459mzqHLL9Y6FZ4wQPRZG4TOpMCyPOh6mkr/humxE1W2S3Bvf4i75yiMW9uyed2Kf5rxmLhTm/UK8vNkAw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/resources": "2.1.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.9.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.1.0.tgz", + "integrity": "sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.10.0.tgz", + "integrity": "sha512-MfQGq3GRmTh5fM/y+OjaO0vj6+luCB1XO2gfXCalKCfgKw0eHL++sm75DNweC6ohlp+aFvACqeE0fYayqdRaoQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.10.0", + "@opentelemetry/resources": "2.10.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.1.0.tgz", + "integrity": "sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/resources": "2.1.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/resources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.1.0.tgz", + "integrity": "sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-node": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-2.10.0.tgz", + "integrity": "sha512-GZK/G6oZyBLGlH1pUgeDch7D91KoHd2uotUGIkWCPi9GI5T9X0p4L7nNAMDR1BQjkRYoDqo+ddfVx9t5Uhys+Q==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/context-async-hooks": "2.10.0", + "@opentelemetry/core": "2.10.0", + "@opentelemetry/sdk-trace-base": "2.10.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.10.0.tgz", + "integrity": "sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/sdk-trace-base": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.10.0.tgz", + "integrity": "sha512-GuYQQT7QD2EeO8lcZLRQzcbOyhqAzL+6WWTKTU9mSUBYBazkEDl+VrQcXQhbB08OWM9anD1aHleVadzulpOaUQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.10.0", + "@opentelemetry/resources": "2.10.0", + "@opentelemetry/sdk-trace": "2.10.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace/node_modules/@opentelemetry/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.10.0.tgz", + "integrity": "sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", + "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, "node_modules/@pkgr/core": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", @@ -2573,7 +2937,8 @@ "version": "18.11.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/semver": { "version": "7.7.1", @@ -2659,6 +3024,7 @@ "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -2827,6 +3193,7 @@ "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3167,6 +3534,7 @@ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", "license": "MIT", + "peer": true, "engines": { "node": "*" } @@ -3226,6 +3594,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.10.38", "caniuse-lite": "^1.0.30001799", @@ -3448,13 +3817,15 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/class-validator": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.2.tgz", "integrity": "sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw==", "license": "MIT", + "peer": true, "dependencies": { "@types/validator": "^13.11.8", "libphonenumber-js": "^1.11.1", @@ -3466,6 +3837,7 @@ "resolved": "https://registry.npmjs.org/class-validator-jsonschema/-/class-validator-jsonschema-5.0.2.tgz", "integrity": "sha512-b+oHktogJLWf/IRWEoVizrT/0TkYBHKxSLHbE4lq5DEJAEhq6z6nBJbw4hwh9akEeX3v08Hw8d5TBEv7VcZ8TQ==", "license": "MIT", + "peer": true, "dependencies": { "lodash.groupby": "^4.6.0", "lodash.merge": "^4.6.2", @@ -4053,6 +4425,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -4109,6 +4482,7 @@ "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -5018,6 +5392,7 @@ "integrity": "sha512-uaVpjPU+Yar2n4sNPJZpRC/jPgeLhw7nbzGl+aInkleg8Zkor4eBfQKpNQQxEORqgqWS5hAHNYu2x0iPEHBmLw==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "fabric-common": "2.2.20", "jsrsasign": "^10.5.25", @@ -5139,6 +5514,7 @@ "integrity": "sha512-Hdecb9UBuY/M2FZI4I7mYNRejYrULqA/VBiFIX3zLaQ7z7HVSfZOjFb9o+YepygBES1NSn/e+hSDfAFcziPSQQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "fabric-common": "2.2.20", "fabric-protos": "2.2.20", @@ -6284,6 +6660,7 @@ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -6917,6 +7294,7 @@ "resolved": "https://registry.npmjs.org/json-stringify-deterministic/-/json-stringify-deterministic-1.0.12.tgz", "integrity": "sha512-q3PN0lbUdv0pmurkBNdJH3pfFvOTL/Zp0lquqpvcjfKzt6Y0j49EPHAmVHCAS4Ceq/Y+PejWTzyiVpoY71+D6g==", "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -7187,7 +7565,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/lru-cache": { "version": "5.1.1", @@ -7989,6 +8368,7 @@ "integrity": "sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -9170,6 +9550,7 @@ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -9295,6 +9676,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/package.json b/package.json index 9bf7979..49c44e5 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,8 @@ "update-snapshot": "jest --updateSnapshot" }, "dependencies": { - "@gala-chain/api": "3.1.3", - "@gala-chain/chaincode": "3.1.3", + "@gala-chain/api": "3.2.0", + "@gala-chain/chaincode": "3.2.0", "@gala-chain/dex": "1.1.2", "@grpc/grpc-js": "1.10.10", "decimal.js": "^10.5.0", @@ -33,9 +33,9 @@ "fabric-shim": "2.5.6" }, "devDependencies": { - "@gala-chain/cli": "3.1.3", - "@gala-chain/client": "3.1.3", - "@gala-chain/test": "3.1.3", + "@gala-chain/cli": "3.2.0", + "@gala-chain/client": "3.2.0", + "@gala-chain/test": "3.2.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/jest": "^29.5.12", "@types/node": "18.11.9", From 2b4cf447ba3d24f70e8e0df73f1e0977d8032c8d Mon Sep 17 00:00:00 2001 From: Jakub Dzikowski Date: Wed, 26 Aug 2026 13:43:21 +0200 Subject: [PATCH 4/5] Fix subtractQuantity test calls for SDK 3.2.0. Co-authored-by: Cursor --- src/chaincode/launchpad/buyWithNative.spec.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/chaincode/launchpad/buyWithNative.spec.ts b/src/chaincode/launchpad/buyWithNative.spec.ts index 516f4ad..57c6466 100644 --- a/src/chaincode/launchpad/buyWithNative.spec.ts +++ b/src/chaincode/launchpad/buyWithNative.spec.ts @@ -267,7 +267,12 @@ describe("buyWithNative", () => { it("should return inverse native tokens when buying and selling tokens", async () => { //Given - salelaunchpadGalaBalance.subtractQuantity(new BigNumber("1e+7"), 0); + salelaunchpadGalaBalance.subtractQuantity( + new BigNumber("1e+7"), + 0, + undefined, + asValidUserAlias(users.testUser1.identityKey) + ); saleCurrencyBalance.addQuantity(new BigNumber("1e+7")); userlaunchpadGalaBalance.addQuantity(new BigNumber("1e+7")); const { ctx, contract } = fixture(LaunchpadContract) From 3d2020f8011019cb4cb10eb2dcfcf15dd1ac93ea Mon Sep 17 00:00:00 2001 From: Jakub Dzikowski Date: Wed, 26 Aug 2026 13:58:26 +0200 Subject: [PATCH 5/5] Bump @gala-chain/dex to 1.1.3. Co-authored-by: Cursor --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4e64f7..329e257 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@gala-chain/api": "3.2.0", "@gala-chain/chaincode": "3.2.0", - "@gala-chain/dex": "1.1.2", + "@gala-chain/dex": "1.1.3", "@grpc/grpc-js": "1.10.10", "decimal.js": "^10.5.0", "dotenv": "^16.0.1", @@ -1264,12 +1264,12 @@ } }, "node_modules/@gala-chain/dex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gala-chain/dex/-/dex-1.1.2.tgz", - "integrity": "sha512-ZikrVGbvRS8uTr17fboJ6xtDYj0vwgZQ1cmS7doEN1j38KNgZ4FrLXPZ0THLBK+3q1p3+JwWfA+e/VDboLjQ6Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gala-chain/dex/-/dex-1.1.3.tgz", + "integrity": "sha512-Qvi2BWUtZrhZeWDFerkqIGbtNrUNmIGzNk6EXeUelsGB9ilqZW1ZYGLlN5CfZcGO1+6/54ahVPVdFqOVcvzqPA==", "dependencies": { - "@gala-chain/api": "3.1.3", - "@gala-chain/chaincode": "3.1.3", + "@gala-chain/api": "3.2.0", + "@gala-chain/chaincode": "3.2.0", "@grpc/grpc-js": "1.10.10", "@noble/hashes": "^1.8.0", "decimal.js": "^10.6.0", diff --git a/package.json b/package.json index 49c44e5..e2aee20 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "dependencies": { "@gala-chain/api": "3.2.0", "@gala-chain/chaincode": "3.2.0", - "@gala-chain/dex": "1.1.2", + "@gala-chain/dex": "1.1.3", "@grpc/grpc-js": "1.10.10", "decimal.js": "^10.5.0", "dotenv": "^16.0.1",