Skip to content

Commit

Permalink
Merge branch 'fix/return-tx-build-error' of https://github.com/MeshJS…
Browse files Browse the repository at this point in the history
…/mesh into fix/return-tx-build-error
  • Loading branch information
HinsonSIDAN committed Sep 12, 2024
2 parents 1b413bf + e0b2b1c commit a8a4a0a
Show file tree
Hide file tree
Showing 5 changed files with 178 additions and 54 deletions.
90 changes: 46 additions & 44 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,12 @@ export type CertificateType =
};

export type DRep =
| { keyHash: string }
| { scriptHash: string }
| { dRepId: string }
| {
alwaysAbstain: {};
alwaysAbstain: null;
}
| {
alwaysNoConfidence: {};
alwaysNoConfidence: null;
};

export type Anchor = {
Expand Down
4 changes: 2 additions & 2 deletions packages/mesh-core-csl/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@
},
"dependencies": {
"@meshsdk/common": "1.7.4",
"@sidan-lab/sidan-csl-rs-browser": "0.8.3",
"@sidan-lab/sidan-csl-rs-nodejs": "0.8.3",
"@sidan-lab/sidan-csl-rs-browser": "0.8.5",
"@sidan-lab/sidan-csl-rs-nodejs": "0.8.5",
"json-bigint": "^1.0.0"
},
"prettier": "@meshsdk/configs/prettier",
Expand Down
19 changes: 19 additions & 0 deletions packages/mesh-transaction/src/mesh-tx-builder/tx-builder-core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {
Data,
DEFAULT_PROTOCOL_PARAMETERS,
DEFAULT_REDEEMER_BUDGET,
DRep,
DREP_DEPOSIT,
emptyTxBuilderBody,
LanguageVersion,
Expand Down Expand Up @@ -1033,6 +1034,24 @@ export class MeshTxBuilderCore {
return this;
};

/**
* Dregister DRep certificate, and adds it to the transaction
* @param drepId The bech32 drep id (i.e. starts with `drep1xxxxx`)
* @param rewardAddress The bech32 reward address (i.e. start with `stake_xxxxx`)
* @returns The MeshTxBuilder instance
*/
voteDelegationCertificate = (drep: DRep, rewardAddress: string) => {
this.meshTxBuilderBody.certificates.push({
type: "BasicCertificate",
certType: {
type: "VoteDelegation",
drep,
stakeKeyAddress: rewardAddress,
},
});
return this;
};

/**
* Adds a script witness to the certificate
* @param scriptCbor The CborHex of the script
Expand Down
112 changes: 108 additions & 4 deletions packages/mesh-transaction/test/mesh-tx-builder/tx.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import {
DEFAULT_REDEEMER_BUDGET,
mConStr0,
NativeScript,
resolveNativeScriptHash,
resolveNativeScriptHex,
Expand Down Expand Up @@ -127,10 +129,8 @@ describe("MeshTxBuilder transactions", () => {
)
.drepRegistrationCertificate(
"drep1j6257gz2swty9ut46lspyvujkt02pd82am2zq97p7p9pv2euzs7",
"500000000",
{
anchorUrl:
"https://path-to.jsonld",
anchorUrl: "https://path-to.jsonld",
anchorDataHash:
"2aef51273a566e529a2d5958d981d7f0b3c7224fc2853b6c4922e019657b5060",
},
Expand Down Expand Up @@ -169,7 +169,7 @@ describe("MeshTxBuilder transactions", () => {
],
"addr_test1vru4e2un2tq50q4rv6qzk7t8w34gjdtw3y2uzuqxzj0ldrqqactxh",
)
.drepRegistrationCertificate(drepId, "500000000", {
.drepRegistrationCertificate(drepId, {
anchorUrl:
"https://raw.githubusercontent.com/HinsonSIDAN/cardano-drep/main/HinsonSIDAN.jsonld",
anchorDataHash:
Expand Down Expand Up @@ -217,4 +217,108 @@ describe("MeshTxBuilder transactions", () => {
console.log(txHex);
expect(txHex !== "").toBeTruthy();
});

it("Build tx to register script stake should succeed", () => {
let mesh = new MeshTxBuilder();

let txHex = mesh
.txIn(
"40d48affc2e9648c4e40b2dad65b24185357c07d140045d98b28bb60714e9d4a",
0,
[
{
unit: "lovelace",
quantity: "554843556",
},
],
"addr_test1qr3a9rrclgf9rx90lmll2qnfzfwgrw35ukvgjrk36pmlzu0jemqwylc286744g0tnqkrvu0dkl8r48k0upkfmg7mncpqf0672w",
)
.registerStakeCertificate(
"stake_test17ryje2rawy9d7m2fwn4nrxgch8st3anccre32g885gu232snvhvu7",
)
.changeAddress(
"addr_test1qr3a9rrclgf9rx90lmll2qnfzfwgrw35ukvgjrk36pmlzu0jemqwylc286744g0tnqkrvu0dkl8r48k0upkfmg7mncpqf0672w",
)
.setNetwork("preprod")
.completeSync();

console.log(txHex);
});

it("Build tx to withdraw from script stake should succeed", () => {
let mesh = new MeshTxBuilder();
let scriptCbor =
"58ff58fd01010033232323232322322533300432323232323232533300b3370e9002001099198011bac301030113011301130113011301130113011300e375400e014601e601a6ea800c54ccc02ccdc3a400c0042646464660086eb0c048c04cc04cc04cc04cc04cc04cc04cc04cc040dd5004806180898090011bad3010001300d37540062c44646600200200644a66602200229404c94ccc03ccdc79bae301300200414a2266006006002602600260146ea8004c030c034008c02c004c02c008c024004c018dd50008a4c26cac6eb80055cd2ab9d5573caae7d5d0aba24c011e581ce3d28c78fa125198affefff50269125c81ba34e598890ed1d077f1710001";

let txHex = mesh
.txIn(
"f5be282d696cc5ca269d18de02224c3717aabc01ab2b76002860a110e108016a",
0,
[
{
unit: "lovelace",
quantity: "554042851",
},
],
"addr_test1qr3a9rrclgf9rx90lmll2qnfzfwgrw35ukvgjrk36pmlzu0jemqwylc286744g0tnqkrvu0dkl8r48k0upkfmg7mncpqf0672w",
)
.txInCollateral(
"80fff8d27e8dffec05ac773f22140cf86d8e30a0243e7df6849b74633d79e007",
5,
[
{
unit: "lovelace",
quantity: "5000000",
},
],
"addr_test1qr3a9rrclgf9rx90lmll2qnfzfwgrw35ukvgjrk36pmlzu0jemqwylc286744g0tnqkrvu0dkl8r48k0upkfmg7mncpqf0672w",
)
.withdrawalPlutusScriptV3()
.withdrawal(
"stake_test17zfe24q7scqldhc6csp5uf2yr4z5gtv5vq4ex394g7ve36q8j32jn",
"0",
)
.withdrawalScript(scriptCbor)
.withdrawalRedeemerValue(mConStr0([]), "Mesh", DEFAULT_REDEEMER_BUDGET)
.requiredSignerHash(
"e3d28c78fa125198affefff50269125c81ba34e598890ed1d077f171",
)
.changeAddress(
"addr_test1qr3a9rrclgf9rx90lmll2qnfzfwgrw35ukvgjrk36pmlzu0jemqwylc286744g0tnqkrvu0dkl8r48k0upkfmg7mncpqf0672w",
)
.setNetwork("preprod")
.completeSync();

console.log(txHex);
});

it("Build tx to delegate vote should succeed", () => {
let mesh = new MeshTxBuilder();

let txHex = mesh
.txIn(
"f5be282d696cc5ca269d18de02224c3717aabc01ab2b76002860a110e108016a",
0,
[
{
unit: "lovelace",
quantity: "554042851",
},
],
"addr_test1qr3a9rrclgf9rx90lmll2qnfzfwgrw35ukvgjrk36pmlzu0jemqwylc286744g0tnqkrvu0dkl8r48k0upkfmg7mncpqf0672w",
)
.voteDelegationCertificate(
{
dRepId: "drep1j6257gz2swty9ut46lspyvujkt02pd82am2zq97p7p9pv2euzs7",
},
"stake_test1uzdx8vwxvz5wy45fwdrwk2l85ax7j5wtr4cee6a8xc632cc3p6psh",
)
.changeAddress(
"addr_test1qr3a9rrclgf9rx90lmll2qnfzfwgrw35ukvgjrk36pmlzu0jemqwylc286744g0tnqkrvu0dkl8r48k0upkfmg7mncpqf0672w",
)
.setNetwork("preprod")
.completeSync();

console.log(txHex);
});
});

0 comments on commit a8a4a0a

Please sign in to comment.