Skip to content

Commit

Permalink
update endpoints to include vote delegation
Browse files Browse the repository at this point in the history
  • Loading branch information
twwu123 committed Sep 12, 2024
1 parent 691bb3c commit 5275cca
Show file tree
Hide file tree
Showing 5 changed files with 100 additions and 50 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,8 +76,7 @@ export type CertificateType =
};

export type DRep =
| { keyHash: string }
| { scriptHash: string }
| { dRepId: string }
| {
alwaysAbstain: {};
}
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
34 changes: 32 additions & 2 deletions packages/mesh-transaction/test/mesh-tx-builder/tx.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ describe("MeshTxBuilder transactions", () => {
});

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

let txHex = mesh
.txIn(
Expand All @@ -246,7 +246,7 @@ describe("MeshTxBuilder transactions", () => {
});

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

Expand Down Expand Up @@ -291,4 +291,34 @@ describe("MeshTxBuilder transactions", () => {

console.log(txHex);
});

it("Build tx to withdraw from script stake 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 5275cca

Please sign in to comment.