Skip to content

Fix vkeys count calculation for certificates, fix setFee function #613

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
May 6, 2025
Merged
6 changes: 3 additions & 3 deletions packages/hydra/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/hydra",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "Mesh Hydra package",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
Expand All @@ -27,8 +27,8 @@
"test": "jest"
},
"dependencies": {
"@meshsdk/common": "1.9.0-beta-39",
"@meshsdk/core-cst": "1.9.0-beta-39",
"@meshsdk/common": "1.9.0-beta-40",
"@meshsdk/core-cst": "1.9.0-beta-40",
"axios": "^1.7.2"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/mesh-common/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/common",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "Contains constants, types and interfaces used across the SDK and different serialization libraries",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
Expand Down
2 changes: 2 additions & 0 deletions packages/mesh-common/src/types/transaction-builder/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ export type MeshTxBuilderBody = {
network: Network | number[][];
expectedNumberKeyWitnesses: number;
expectedByronAddressWitnesses: string[];
totalCollateral?: Quantity;
collateralReturnAddress?: string;
};

export const emptyTxBuilderBody = (): MeshTxBuilderBody => ({
Expand Down
6 changes: 3 additions & 3 deletions packages/mesh-contract/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/contract",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "List of open-source smart contracts, complete with documentation, live demos, and end-to-end source code. https://meshjs.dev/smart-contracts",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
Expand Down Expand Up @@ -34,8 +34,8 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@meshsdk/common": "1.9.0-beta-39",
"@meshsdk/core": "1.9.0-beta-39"
"@meshsdk/common": "1.9.0-beta-40",
"@meshsdk/core": "1.9.0-beta-40"
},
"prettier": "@meshsdk/configs/prettier",
"publishConfig": {
Expand Down
6 changes: 3 additions & 3 deletions packages/mesh-core-csl/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/core-csl",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "Types and utilities functions between Mesh and cardano-serialization-lib",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
Expand Down Expand Up @@ -31,15 +31,15 @@
},
"devDependencies": {
"@meshsdk/configs": "*",
"@meshsdk/provider": "1.9.0-beta-39",
"@meshsdk/provider": "1.9.0-beta-40",
"@types/json-bigint": "^1.0.4",
"eslint": "^8.57.0",
"ts-jest": "^29.1.4",
"tsup": "^8.0.2",
"typescript": "^5.3.3"
},
"dependencies": {
"@meshsdk/common": "1.9.0-beta-39",
"@meshsdk/common": "1.9.0-beta-40",
"@sidan-lab/whisky-js-browser": "^1.0.1",
"@sidan-lab/whisky-js-nodejs": "^1.0.1",
"@types/base32-encoding": "^1.0.2",
Expand Down
4 changes: 2 additions & 2 deletions packages/mesh-core-cst/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/core-cst",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "Types and utilities functions between Mesh and cardano-js-sdk",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
Expand Down Expand Up @@ -44,7 +44,7 @@
"@harmoniclabs/plutus-data": "1.2.4",
"@harmoniclabs/uplc": "1.2.4",
"@harmoniclabs/pair": "^1.0.0",
"@meshsdk/common": "1.9.0-beta-39",
"@meshsdk/common": "1.9.0-beta-40",
"@types/base32-encoding": "^1.0.2",
"base32-encoding": "^1.0.0",
"bech32": "^2.0.0",
Expand Down
34 changes: 34 additions & 0 deletions packages/mesh-core-cst/src/serializer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,13 @@ import {
TransactionInput,
TransactionOutput,
TransactionWitnessSet,
Value,
VkeyWitness,
} from "../types";
import {
buildEd25519PrivateKeyFromSecretKey,
fromBuilderToPlutusData,
mergeValue,
toAddress,
toCardanoAddress,
toNativeScript,
Expand Down Expand Up @@ -588,6 +590,9 @@ class CardanoSDKSerializerCore {
certificates,
withdrawals,
votes,
totalCollateral,
collateralReturnAddress,
changeAddress,
} = txBuilderBody;

const uniqueRefInputs = this.removeBodyInputRefInputOverlap(
Expand All @@ -603,6 +608,14 @@ class CardanoSDKSerializerCore {
this.addAllWithdrawals(withdrawals);
this.addAllVotes(votes);
this.addAllCollateralInputs(collaterals);
if (totalCollateral) {
this.txBody.setTotalCollateral(BigInt(totalCollateral));
this.addCollateralReturn(
totalCollateral,
collaterals,
collateralReturnAddress ?? changeAddress,
);
}
this.addAllReferenceInputs(uniqueRefInputs);
this.removeInputRefInputOverlap();
this.setValidityInterval(validityRange);
Expand Down Expand Up @@ -1234,6 +1247,27 @@ class CardanoSDKSerializerCore {
this.txBody.setCollateral(collateralInputs);
};

private addCollateralReturn = (
totalCollateral: string,
collaterals: PubKeyTxIn[],
collateralReturnAddress: string,
) => {
let collateralReturnValue = Value.fromCore({
coins: -BigInt(totalCollateral),
});
for (const collateral of collaterals) {
collateralReturnValue = mergeValue(
collateralReturnValue,
toValue(collateral.txIn.amount!),
);
}
const collateralReturn = new TransactionOutput(
toCardanoAddress(collateralReturnAddress),
collateralReturnValue,
);
this.txBody.setCollateralReturn(collateralReturn);
};

private setValidityInterval = (validity: ValidityRange) => {
if (validity.invalidBefore) {
this.txBody.setValidityStartInterval(Slot(validity.invalidBefore));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { CardanoSDKSerializer, Transaction, TxCBOR } from "@meshsdk/core-cst";

describe("Ref script inputs", () => {
it("Basic ref script inputs should be included in fees", async () => {
const body: MeshTxBuilderBody = {
const body: Partial<MeshTxBuilderBody> = {
inputs: [
{
type: "PubKey",
Expand Down Expand Up @@ -124,7 +124,6 @@ describe("Ref script inputs", () => {
strategy: "experimental",
includeTxFees: false,
},
fee: "0",
expectedNumberKeyWitnesses: 0,
expectedByronAddressWitnesses: [],
};
Expand Down
33 changes: 16 additions & 17 deletions packages/mesh-core-cst/test/ref-script-output.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,8 @@ import { CardanoSDKSerializer, Transaction, TxCBOR } from "@meshsdk/core-cst";

describe("Ref Script output", () => {
it("serializer should build a tx with ref script output", async () => {
const body: MeshTxBuilderBody = {
inputs: [
{
type: "PubKey",
txIn: {
txHash:
"c15875aef7d14602040affbb80219681d318dfd035c03f9581cca5c625270e6a",
txIndex: 1,
amount: [{ unit: "lovelace", quantity: "307063809" }],
address:
"addr_test1qprgjf3u3tkl0qk9738jlyspg25dukxuzrz2lugmp7uypqzw6yxtdssjk4pxv9j489vv8ekkh03wvet9v2y2tsdl6cjs6dsvxs",
scriptSize: 0,
},
},
],
const body: Partial<MeshTxBuilderBody> = {
inputs: [],
outputs: [
{
address:
Expand Down Expand Up @@ -76,13 +63,25 @@ describe("Ref Script output", () => {
},
},
network: "preprod",
extraInputs: [],
extraInputs: [
{
input: {
txHash:
"c15875aef7d14602040affbb80219681d318dfd035c03f9581cca5c625270e6a",
outputIndex: 1,
},
output: {
amount: [{ unit: "lovelace", quantity: "307063809" }],
address:
"addr_test1qprgjf3u3tkl0qk9738jlyspg25dukxuzrz2lugmp7uypqzw6yxtdssjk4pxv9j489vv8ekkh03wvet9v2y2tsdl6cjs6dsvxs",
},
},
],
selectionConfig: {
threshold: "",
strategy: "experimental",
includeTxFees: false,
},
fee: "0",
expectedNumberKeyWitnesses: 0,
expectedByronAddressWitnesses: [],
};
Expand Down
14 changes: 7 additions & 7 deletions packages/mesh-core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/core",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "Mesh SDK Core - https://meshjs.dev/",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
Expand Down Expand Up @@ -33,12 +33,12 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@meshsdk/common": "1.9.0-beta-39",
"@meshsdk/core-cst": "1.9.0-beta-39",
"@meshsdk/provider": "1.9.0-beta-39",
"@meshsdk/react": "1.9.0-beta-39",
"@meshsdk/transaction": "1.9.0-beta-39",
"@meshsdk/wallet": "1.9.0-beta-39"
"@meshsdk/common": "1.9.0-beta-40",
"@meshsdk/core-cst": "1.9.0-beta-40",
"@meshsdk/provider": "1.9.0-beta-40",
"@meshsdk/react": "1.9.0-beta-40",
"@meshsdk/transaction": "1.9.0-beta-40",
"@meshsdk/wallet": "1.9.0-beta-40"
},
"prettier": "@meshsdk/configs/prettier",
"publishConfig": {
Expand Down
6 changes: 3 additions & 3 deletions packages/mesh-provider/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/provider",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "Blockchain data providers - https://meshjs.dev/providers",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
Expand Down Expand Up @@ -35,8 +35,8 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@meshsdk/common": "1.9.0-beta-39",
"@meshsdk/core-cst": "1.9.0-beta-39",
"@meshsdk/common": "1.9.0-beta-40",
"@meshsdk/core-cst": "1.9.0-beta-40",
"@utxorpc/sdk": "0.6.2",
"@utxorpc/spec": "0.10.1",
"axios": "^1.7.2"
Expand Down
8 changes: 4 additions & 4 deletions packages/mesh-react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/react",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "React component library - https://meshjs.dev/react",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
Expand Down Expand Up @@ -30,9 +30,9 @@
},
"dependencies": {
"@fabianbormann/cardano-peer-connect": "^1.2.18",
"@meshsdk/common": "1.9.0-beta-39",
"@meshsdk/transaction": "1.9.0-beta-39",
"@meshsdk/wallet": "1.9.0-beta-39",
"@meshsdk/common": "1.9.0-beta-40",
"@meshsdk/transaction": "1.9.0-beta-40",
"@meshsdk/wallet": "1.9.0-beta-40",
"@meshsdk/web3-sdk": "0.0.26",
"@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-dropdown-menu": "^2.1.2",
Expand Down
4 changes: 2 additions & 2 deletions packages/mesh-svelte/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/svelte",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "Svelte component library - https://meshjs.dev/svelte",
"type": "module",
"exports": {
Expand All @@ -26,7 +26,7 @@
"dev": "vite dev"
},
"dependencies": {
"@meshsdk/core": "1.9.0-beta-39",
"@meshsdk/core": "1.9.0-beta-40",
"bits-ui": "1.0.0-next.65"
},
"devDependencies": {
Expand Down
6 changes: 3 additions & 3 deletions packages/mesh-transaction/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/transaction",
"version": "1.9.0-beta-39",
"version": "1.9.0-beta-40",
"description": "Transactions - https://meshjs.dev/apis/transaction",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
Expand Down Expand Up @@ -35,8 +35,8 @@
"typescript": "^5.3.3"
},
"dependencies": {
"@meshsdk/common": "1.9.0-beta-39",
"@meshsdk/core-cst": "1.9.0-beta-39",
"@meshsdk/common": "1.9.0-beta-40",
"@meshsdk/core-cst": "1.9.0-beta-40",
"@cardano-sdk/core": "^0.45.5",
"@cardano-sdk/util": "^0.15.5",
"@cardano-sdk/input-selection": "^0.13.33",
Expand Down
Loading