@harmoniclabs/buildooor 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +22 -0
- package/dist/TxBuilder/CanResolveToUTxO/CanResolveToUTxO.d.ts +5 -0
- package/dist/TxBuilder/CanResolveToUTxO/CanResolveToUTxO.js +62 -0
- package/dist/TxBuilder/CanResolveToUTxO/index.d.ts +1 -0
- package/dist/TxBuilder/CanResolveToUTxO/index.js +17 -0
- package/dist/TxBuilder/GenesisInfos.d.ts +54 -0
- package/dist/TxBuilder/GenesisInfos.js +56 -0
- package/dist/TxBuilder/IProvider/IProvider.d.ts +42 -0
- package/dist/TxBuilder/IProvider/IProvider.js +2 -0
- package/dist/TxBuilder/IProvider/index.d.ts +1 -0
- package/dist/TxBuilder/IProvider/index.js +17 -0
- package/dist/TxBuilder/TxBuilder.d.ts +106 -0
- package/dist/TxBuilder/TxBuilder.js +1251 -0
- package/dist/TxBuilder/TxBuilderProtocolParams.d.ts +42 -0
- package/dist/TxBuilder/TxBuilderProtocolParams.js +121 -0
- package/dist/TxBuilder/TxBuilderRunner/CanBePoolKeyHash.d.ts +3 -0
- package/dist/TxBuilder/TxBuilderRunner/CanBePoolKeyHash.js +33 -0
- package/dist/TxBuilder/TxBuilderRunner/CanBeStakeCreds.d.ts +3 -0
- package/dist/TxBuilder/TxBuilderRunner/CanBeStakeCreds.js +25 -0
- package/dist/TxBuilder/TxBuilderRunner/TxBuilderRunner.d.ts +280 -0
- package/dist/TxBuilder/TxBuilderRunner/TxBuilderRunner.js +1366 -0
- package/dist/TxBuilder/TxBuilderRunner/forceAddr.d.ts +2 -0
- package/dist/TxBuilder/TxBuilderRunner/forceAddr.js +8 -0
- package/dist/TxBuilder/TxBuilderRunner/index.d.ts +2 -0
- package/dist/TxBuilder/TxBuilderRunner/index.js +18 -0
- package/dist/TxBuilder/TxBuilderRunner/jsonToMetadata.d.ts +2 -0
- package/dist/TxBuilder/TxBuilderRunner/jsonToMetadata.js +35 -0
- package/dist/TxBuilder/index.d.ts +5 -0
- package/dist/TxBuilder/index.js +21 -0
- package/dist/TxBuilder/keepRelevant.d.ts +4 -0
- package/dist/TxBuilder/keepRelevant.js +79 -0
- package/dist/TxBuilder/utils.d.ts +4 -0
- package/dist/TxBuilder/utils.js +66 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +31 -0
- package/dist/toOnChain/getSpendingPurposeData.d.ts +5 -0
- package/dist/toOnChain/getSpendingPurposeData.js +98 -0
- package/dist/toOnChain/getTxInfos.d.ts +8 -0
- package/dist/toOnChain/getTxInfos.js +126 -0
- package/dist/toOnChain/getTxIntervalData.d.ts +19 -0
- package/dist/toOnChain/getTxIntervalData.js +85 -0
- package/dist/toOnChain/index.d.ts +2 -0
- package/dist/toOnChain/index.js +18 -0
- package/dist/txBuild/ChangeInfos/ChangeInfos.d.ts +15 -0
- package/dist/txBuild/ChangeInfos/ChangeInfos.js +27 -0
- package/dist/txBuild/ITxBuildArgs.d.ts +74 -0
- package/dist/txBuild/ITxBuildArgs.js +71 -0
- package/dist/txBuild/ITxBuildCert.d.ts +13 -0
- package/dist/txBuild/ITxBuildCert.js +37 -0
- package/dist/txBuild/ITxBuildInput/ITxBuildInput.d.ts +25 -0
- package/dist/txBuild/ITxBuildInput/ITxBuildInput.js +70 -0
- package/dist/txBuild/ITxBuildInput/ITxBuildInputInlineScript.d.ts +14 -0
- package/dist/txBuild/ITxBuildInput/ITxBuildInputInlineScript.js +14 -0
- package/dist/txBuild/ITxBuildInput/ITxBuildInputRefScript.d.ts +14 -0
- package/dist/txBuild/ITxBuildInput/ITxBuildInputRefScript.js +15 -0
- package/dist/txBuild/ITxBuildMint.d.ts +30 -0
- package/dist/txBuild/ITxBuildMint.js +54 -0
- package/dist/txBuild/ITxBuildOptions.d.ts +11 -0
- package/dist/txBuild/ITxBuildOptions.js +2 -0
- package/dist/txBuild/ITxBuildOutput.d.ts +10 -0
- package/dist/txBuild/ITxBuildOutput.js +27 -0
- package/dist/txBuild/ITxBuildProposalProcedure.d.ts +11 -0
- package/dist/txBuild/ITxBuildProposalProcedure.js +13 -0
- package/dist/txBuild/ITxBuildVotingProcedure.d.ts +13 -0
- package/dist/txBuild/ITxBuildVotingProcedure.js +40 -0
- package/dist/txBuild/ITxBuildWithdrawal.d.ts +29 -0
- package/dist/txBuild/ITxBuildWithdrawal.js +34 -0
- package/dist/txBuild/ScriptWithRedeemer.d.ts +18 -0
- package/dist/txBuild/ScriptWithRedeemer.js +16 -0
- package/dist/txBuild/index.d.ts +7 -0
- package/dist/txBuild/index.js +23 -0
- package/dist/utils/CanBeData.d.ts +7 -0
- package/dist/utils/CanBeData.js +68 -0
- package/dist/utils/Rational.d.ts +8 -0
- package/dist/utils/Rational.js +34 -0
- package/dist/utils/assert.d.ts +1 -0
- package/dist/utils/assert.js +44 -0
- package/dist/utils/ints.d.ts +4 -0
- package/dist/utils/ints.js +25 -0
- package/dist/utils/stringify.d.ts +2 -0
- package/dist/utils/stringify.js +38 -0
- package/package.json +72 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IProposalProcedure, ProposalProcedure } from "@harmoniclabs/cardano-ledger-ts";
|
|
2
|
+
import { IScriptWithRedeemer, ScriptWithRedeemer } from "./ScriptWithRedeemer.js";
|
|
3
|
+
export interface ITxBuildProposalProcedure {
|
|
4
|
+
proposalProcedure: IProposalProcedure;
|
|
5
|
+
script?: IScriptWithRedeemer;
|
|
6
|
+
}
|
|
7
|
+
export interface NormalizedITxBuildProposalProcedure {
|
|
8
|
+
proposalProcedure: ProposalProcedure;
|
|
9
|
+
script?: ScriptWithRedeemer;
|
|
10
|
+
}
|
|
11
|
+
export declare function normalizeITxBuildProposalProcedure({ proposalProcedure, script }: ITxBuildProposalProcedure): NormalizedITxBuildProposalProcedure;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeITxBuildProposalProcedure = void 0;
|
|
4
|
+
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
|
|
5
|
+
var ScriptWithRedeemer_1 = require("./ScriptWithRedeemer.js");
|
|
6
|
+
function normalizeITxBuildProposalProcedure(_a) {
|
|
7
|
+
var proposalProcedure = _a.proposalProcedure, script = _a.script;
|
|
8
|
+
return {
|
|
9
|
+
proposalProcedure: new cardano_ledger_ts_1.ProposalProcedure(proposalProcedure),
|
|
10
|
+
script: script === undefined ? undefined : (0, ScriptWithRedeemer_1.normalizeIScriptWithRedeemer)(script)
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
exports.normalizeITxBuildProposalProcedure = normalizeITxBuildProposalProcedure;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ITypedVotingProceduresEntry, IVoter, IVotingProceduresEntry } from "@harmoniclabs/cardano-ledger-ts";
|
|
2
|
+
import { IScriptWithRedeemer, ScriptWithRedeemer } from "./ScriptWithRedeemer.js";
|
|
3
|
+
export interface ITxBuildVotingProcedure {
|
|
4
|
+
votingProcedure: IVotingProceduresEntry;
|
|
5
|
+
script?: IScriptWithRedeemer;
|
|
6
|
+
}
|
|
7
|
+
export interface NormalizedITxBuildVotingProcedure {
|
|
8
|
+
votingProcedure: ITypedVotingProceduresEntry;
|
|
9
|
+
script?: ScriptWithRedeemer;
|
|
10
|
+
}
|
|
11
|
+
export declare function eqIVoter(a: IVoter, b: IVoter): boolean;
|
|
12
|
+
export declare function normalizeITxBuildVotingProcedure({ votingProcedure, script }: ITxBuildVotingProcedure): NormalizedITxBuildVotingProcedure;
|
|
13
|
+
export declare function normalizeVotingProcedureEntry(votingProcedure: IVotingProceduresEntry): ITypedVotingProceduresEntry;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeVotingProcedureEntry = exports.normalizeITxBuildVotingProcedure = exports.eqIVoter = void 0;
|
|
4
|
+
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
|
|
5
|
+
var ScriptWithRedeemer_1 = require("./ScriptWithRedeemer.js");
|
|
6
|
+
var obj_utils_1 = require("@harmoniclabs/obj-utils");
|
|
7
|
+
var uint8array_utils_1 = require("@harmoniclabs/uint8array-utils");
|
|
8
|
+
function eqIVoter(a, b) {
|
|
9
|
+
if (!(0, obj_utils_1.isObject)(a))
|
|
10
|
+
return false;
|
|
11
|
+
if (!(0, obj_utils_1.isObject)(b))
|
|
12
|
+
return false;
|
|
13
|
+
return ((0, cardano_ledger_ts_1.isVoterKind)(a.kind) && a.kind === b.kind &&
|
|
14
|
+
(0, cardano_ledger_ts_1.canBeHash28)(a.hash) &&
|
|
15
|
+
(0, cardano_ledger_ts_1.canBeHash28)(b.hash) &&
|
|
16
|
+
(0, uint8array_utils_1.uint8ArrayEq)(new cardano_ledger_ts_1.Hash28(a.hash).toBuffer(), new cardano_ledger_ts_1.Hash28(b.hash).toBuffer()));
|
|
17
|
+
}
|
|
18
|
+
exports.eqIVoter = eqIVoter;
|
|
19
|
+
function normalizeITxBuildVotingProcedure(_a) {
|
|
20
|
+
var votingProcedure = _a.votingProcedure, script = _a.script;
|
|
21
|
+
return {
|
|
22
|
+
votingProcedure: normalizeVotingProcedureEntry(votingProcedure),
|
|
23
|
+
script: script === undefined ? undefined : (0, ScriptWithRedeemer_1.normalizeIScriptWithRedeemer)(script)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.normalizeITxBuildVotingProcedure = normalizeITxBuildVotingProcedure;
|
|
27
|
+
function normalizeVotesEntry(_a) {
|
|
28
|
+
var govActionId = _a.govActionId, vote = _a.vote;
|
|
29
|
+
return {
|
|
30
|
+
govActionId: (0, cardano_ledger_ts_1.forceTxOutRef)(govActionId),
|
|
31
|
+
vote: new cardano_ledger_ts_1.VotingProcedure(vote)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function normalizeVotingProcedureEntry(votingProcedure) {
|
|
35
|
+
return {
|
|
36
|
+
voter: new cardano_ledger_ts_1.Voter(votingProcedure.voter),
|
|
37
|
+
votes: votingProcedure.votes.map(normalizeVotesEntry)
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.normalizeVotingProcedureEntry = normalizeVotingProcedureEntry;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Hash28, ITxWithdrawalsEntry, ITxWithdrawalsEntryBigInt, IUTxO, Script, UTxO } from "@harmoniclabs/cardano-ledger-ts";
|
|
2
|
+
import { CanBeData } from "../utils/CanBeData.js";
|
|
3
|
+
import { Data } from "@harmoniclabs/plutus-data";
|
|
4
|
+
export interface ITxBuildWithdrawal {
|
|
5
|
+
withdrawal: ITxWithdrawalsEntry;
|
|
6
|
+
script?: {
|
|
7
|
+
inline: Script;
|
|
8
|
+
redeemer: CanBeData;
|
|
9
|
+
} | {
|
|
10
|
+
ref: IUTxO;
|
|
11
|
+
redeemer: CanBeData;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface NormalizedITxBuildWithdrawal extends ITxBuildWithdrawal {
|
|
15
|
+
withdrawal: ITxWithdrawalsEntryBigInt | {
|
|
16
|
+
rewardAccount: Hash28;
|
|
17
|
+
amount: bigint;
|
|
18
|
+
};
|
|
19
|
+
script?: {
|
|
20
|
+
inline: Script;
|
|
21
|
+
redeemer: Data;
|
|
22
|
+
} | {
|
|
23
|
+
ref: UTxO;
|
|
24
|
+
redeemer: Data;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export declare function normalizeITxBuildWithdrawal({ withdrawal, script }: ITxBuildWithdrawal): NormalizedITxBuildWithdrawal;
|
|
28
|
+
/** @deprecated use `normalizeITxBuildWithdrawal` instead */
|
|
29
|
+
export declare function cloneITxBuildWithdrawal(stuff: ITxBuildWithdrawal): ITxBuildWithdrawal;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cloneITxBuildWithdrawal = exports.normalizeITxBuildWithdrawal = void 0;
|
|
4
|
+
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
|
|
5
|
+
var CanBeData_1 = require("../utils/CanBeData.js");
|
|
6
|
+
var obj_utils_1 = require("@harmoniclabs/obj-utils");
|
|
7
|
+
var plutus_data_1 = require("@harmoniclabs/plutus-data");
|
|
8
|
+
;
|
|
9
|
+
;
|
|
10
|
+
function normalizeITxBuildWithdrawal(_a) {
|
|
11
|
+
var withdrawal = _a.withdrawal, script = _a.script;
|
|
12
|
+
script = script === undefined ? undefined : (0, obj_utils_1.hasOwn)(script, "ref") ?
|
|
13
|
+
{
|
|
14
|
+
ref: script.ref.clone(),
|
|
15
|
+
redeemer: (0, plutus_data_1.isData)(script.redeemer) ? (0, plutus_data_1.cloneData)(script.redeemer) : (0, CanBeData_1.forceData)(script.redeemer)
|
|
16
|
+
} :
|
|
17
|
+
{
|
|
18
|
+
inline: script.inline.clone(),
|
|
19
|
+
redeemer: (0, plutus_data_1.isData)(script.redeemer) ? (0, plutus_data_1.cloneData)(script.redeemer) : (0, CanBeData_1.forceData)(script.redeemer)
|
|
20
|
+
};
|
|
21
|
+
return {
|
|
22
|
+
withdrawal: {
|
|
23
|
+
rewardAccount: (0, cardano_ledger_ts_1.canBeHash28)(withdrawal.rewardAccount) ? new cardano_ledger_ts_1.Hash28(withdrawal.rewardAccount) : withdrawal.rewardAccount,
|
|
24
|
+
amount: BigInt(withdrawal.amount)
|
|
25
|
+
},
|
|
26
|
+
script: script
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.normalizeITxBuildWithdrawal = normalizeITxBuildWithdrawal;
|
|
30
|
+
/** @deprecated use `normalizeITxBuildWithdrawal` instead */
|
|
31
|
+
function cloneITxBuildWithdrawal(stuff) {
|
|
32
|
+
return normalizeITxBuildWithdrawal(stuff);
|
|
33
|
+
}
|
|
34
|
+
exports.cloneITxBuildWithdrawal = cloneITxBuildWithdrawal;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IUTxO, Script, UTxO } from "@harmoniclabs/cardano-ledger-ts";
|
|
2
|
+
import { Data } from "@harmoniclabs/plutus-data";
|
|
3
|
+
import { CanBeData } from "../utils/CanBeData.js";
|
|
4
|
+
export type ScriptWithRedeemer = {
|
|
5
|
+
inline: Script;
|
|
6
|
+
redeemer: Data;
|
|
7
|
+
} | {
|
|
8
|
+
ref: UTxO;
|
|
9
|
+
redeemer: Data;
|
|
10
|
+
};
|
|
11
|
+
export type IScriptWithRedeemer = {
|
|
12
|
+
inline: Script;
|
|
13
|
+
redeemer: CanBeData;
|
|
14
|
+
} | {
|
|
15
|
+
ref: IUTxO;
|
|
16
|
+
redeemer: CanBeData;
|
|
17
|
+
};
|
|
18
|
+
export declare function normalizeIScriptWithRedeemer(script: IScriptWithRedeemer): ScriptWithRedeemer;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeIScriptWithRedeemer = void 0;
|
|
4
|
+
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
|
|
5
|
+
var CanBeData_1 = require("../utils/CanBeData.js");
|
|
6
|
+
function normalizeIScriptWithRedeemer(script) {
|
|
7
|
+
var redeemer = (0, CanBeData_1.forceData)(script.redeemer);
|
|
8
|
+
return (0, cardano_ledger_ts_1.isIUTxO)(script.ref) ? {
|
|
9
|
+
ref: new cardano_ledger_ts_1.UTxO(script.ref),
|
|
10
|
+
redeemer: redeemer
|
|
11
|
+
} : {
|
|
12
|
+
inline: script.inline.clone(),
|
|
13
|
+
redeemer: redeemer
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
exports.normalizeIScriptWithRedeemer = normalizeIScriptWithRedeemer;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./ITxBuildArgs.js";
|
|
2
|
+
export * from "./ITxBuildCert.js";
|
|
3
|
+
export * from "./ITxBuildInput/ITxBuildInput.js";
|
|
4
|
+
export * from "./ITxBuildMint.js";
|
|
5
|
+
export * from "./ITxBuildOptions.js";
|
|
6
|
+
export * from "./ITxBuildOutput.js";
|
|
7
|
+
export * from "./ITxBuildWithdrawal.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ITxBuildArgs.js"), exports);
|
|
18
|
+
__exportStar(require("./ITxBuildCert.js"), exports);
|
|
19
|
+
__exportStar(require("./ITxBuildInput/ITxBuildInput.js"), exports);
|
|
20
|
+
__exportStar(require("./ITxBuildMint.js"), exports);
|
|
21
|
+
__exportStar(require("./ITxBuildOptions.js"), exports);
|
|
22
|
+
__exportStar(require("./ITxBuildOutput.js"), exports);
|
|
23
|
+
__exportStar(require("./ITxBuildWithdrawal.js"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CborObj, CborString } from "@harmoniclabs/cbor";
|
|
2
|
+
import { Data } from "@harmoniclabs/plutus-data";
|
|
3
|
+
import { ToUPLC } from "@harmoniclabs/uplc";
|
|
4
|
+
export type CanBeData = Data | ToUPLC | CborObj | CborString | string;
|
|
5
|
+
export declare function cloneCanBeData(stuff: CanBeData): CanBeData;
|
|
6
|
+
export declare function canBeData(something: any): something is CanBeData;
|
|
7
|
+
export declare function forceData(data: CanBeData): Data;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.forceData = exports.canBeData = exports.cloneCanBeData = void 0;
|
|
4
|
+
var bytestring_1 = require("@harmoniclabs/bytestring");
|
|
5
|
+
var cbor_1 = require("@harmoniclabs/cbor");
|
|
6
|
+
var obj_utils_1 = require("@harmoniclabs/obj-utils");
|
|
7
|
+
var plutus_data_1 = require("@harmoniclabs/plutus-data");
|
|
8
|
+
var plutus_machine_1 = require("@harmoniclabs/plutus-machine");
|
|
9
|
+
function cloneCanBeData(stuff) {
|
|
10
|
+
if (typeof stuff === "string")
|
|
11
|
+
return stuff;
|
|
12
|
+
if (stuff instanceof cbor_1.CborString ||
|
|
13
|
+
(0, cbor_1.isCborObj)(stuff) ||
|
|
14
|
+
(0, plutus_data_1.isData)(stuff))
|
|
15
|
+
return stuff.clone();
|
|
16
|
+
var result = plutus_machine_1.Machine.evalSimple(stuff.toUPLC());
|
|
17
|
+
if (!(result instanceof plutus_machine_1.CEKConst)) {
|
|
18
|
+
throw new Error("`CanBeData` object that implements `ToUPLC` did not evaluated to a constant");
|
|
19
|
+
}
|
|
20
|
+
var value = result.value;
|
|
21
|
+
if (!(0, plutus_data_1.isData)(value)) {
|
|
22
|
+
throw new Error("`CanBeData` object that implements `ToUPLC` evaluated to a constant with a non-Data value");
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
exports.cloneCanBeData = cloneCanBeData;
|
|
27
|
+
function canBeData(something) {
|
|
28
|
+
if (typeof something === "string" &&
|
|
29
|
+
bytestring_1.ByteString.isValidHexValue(something))
|
|
30
|
+
return true;
|
|
31
|
+
if (typeof something !== "object")
|
|
32
|
+
return false;
|
|
33
|
+
return ((0, plutus_data_1.isData)(something) ||
|
|
34
|
+
(typeof something === "object" &&
|
|
35
|
+
(0, obj_utils_1.hasOwn)(something, "toUPLC") &&
|
|
36
|
+
typeof something.toUPLC === "function") ||
|
|
37
|
+
something instanceof cbor_1.CborString ||
|
|
38
|
+
(0, cbor_1.isCborObj)(something));
|
|
39
|
+
}
|
|
40
|
+
exports.canBeData = canBeData;
|
|
41
|
+
function forceData(data) {
|
|
42
|
+
if (typeof data === "string")
|
|
43
|
+
data = (0, plutus_data_1.dataFromCbor)(data);
|
|
44
|
+
if ((0, plutus_data_1.isData)(data)) {
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
if (typeof data === "object" &&
|
|
48
|
+
(0, obj_utils_1.hasOwn)(data, "toUPLC") &&
|
|
49
|
+
typeof data.toUPLC === "function") {
|
|
50
|
+
var uplcData = plutus_machine_1.Machine.evalSimple(data.toUPLC());
|
|
51
|
+
if (!(uplcData instanceof plutus_machine_1.CEKConst)) {
|
|
52
|
+
throw new Error("term passed as 'datum' field evaluated to an error");
|
|
53
|
+
}
|
|
54
|
+
var _data = uplcData.value;
|
|
55
|
+
if (!(0, plutus_data_1.isData)(_data)) {
|
|
56
|
+
throw new Error("term of type 'data' evaluation resulted in a value that is not data");
|
|
57
|
+
}
|
|
58
|
+
return _data;
|
|
59
|
+
}
|
|
60
|
+
if (data instanceof cbor_1.CborString) {
|
|
61
|
+
return (0, plutus_data_1.dataFromCbor)(data);
|
|
62
|
+
}
|
|
63
|
+
if ((0, cbor_1.isCborObj)(data)) {
|
|
64
|
+
return (0, plutus_data_1.dataFromCborObj)(data);
|
|
65
|
+
}
|
|
66
|
+
throw new Error("'forceData' did not match any possible 'CanBeData' value");
|
|
67
|
+
}
|
|
68
|
+
exports.forceData = forceData;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CborObj, CborPositiveRational, CborTag } from "@harmoniclabs/cbor";
|
|
2
|
+
export type Rational = CborPositiveRational | number;
|
|
3
|
+
export declare function canBeCborPostiveRational(cbor: CborObj): cbor is CborPositiveRational | CborTag;
|
|
4
|
+
export declare function isRational(n: any): n is Rational;
|
|
5
|
+
export declare function isRationalOrUndefined(n: any): n is Rational | undefined;
|
|
6
|
+
export declare function cborFromRational(n: Rational): CborPositiveRational;
|
|
7
|
+
export declare function tryCborFromRational(n: any): CborPositiveRational | undefined;
|
|
8
|
+
export declare function numberFromRational(n: Rational): number;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.numberFromRational = exports.tryCborFromRational = exports.cborFromRational = exports.isRationalOrUndefined = exports.isRational = exports.canBeCborPostiveRational = void 0;
|
|
4
|
+
var cbor_1 = require("@harmoniclabs/cbor");
|
|
5
|
+
function canBeCborPostiveRational(cbor) {
|
|
6
|
+
return cbor instanceof cbor_1.CborPositiveRational || (cbor instanceof cbor_1.CborTag &&
|
|
7
|
+
Number(cbor.tag) === 30 &&
|
|
8
|
+
cbor.data instanceof cbor_1.CborArray &&
|
|
9
|
+
cbor.data.array.length === 2 &&
|
|
10
|
+
cbor.data.array[0] instanceof cbor_1.CborUInt &&
|
|
11
|
+
cbor.data.array[1] instanceof cbor_1.CborUInt);
|
|
12
|
+
}
|
|
13
|
+
exports.canBeCborPostiveRational = canBeCborPostiveRational;
|
|
14
|
+
function isRational(n) {
|
|
15
|
+
return typeof n === "number" || n instanceof cbor_1.CborPositiveRational;
|
|
16
|
+
}
|
|
17
|
+
exports.isRational = isRational;
|
|
18
|
+
function isRationalOrUndefined(n) {
|
|
19
|
+
return typeof n == "undefined" || isRational(n);
|
|
20
|
+
}
|
|
21
|
+
exports.isRationalOrUndefined = isRationalOrUndefined;
|
|
22
|
+
function cborFromRational(n) {
|
|
23
|
+
return n instanceof cbor_1.CborPositiveRational ? n : cbor_1.CborPositiveRational.fromNumber(n);
|
|
24
|
+
}
|
|
25
|
+
exports.cborFromRational = cborFromRational;
|
|
26
|
+
function tryCborFromRational(n) {
|
|
27
|
+
return n instanceof cbor_1.CborPositiveRational ? n : (typeof n === "number" ? cbor_1.CborPositiveRational.fromNumber(n) :
|
|
28
|
+
undefined);
|
|
29
|
+
}
|
|
30
|
+
exports.tryCborFromRational = tryCborFromRational;
|
|
31
|
+
function numberFromRational(n) {
|
|
32
|
+
return n instanceof cbor_1.CborPositiveRational ? n.toNumber() : Number(n);
|
|
33
|
+
}
|
|
34
|
+
exports.numberFromRational = numberFromRational;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function assert(condition: boolean, errorMessage: string | Error, addInfos?: any, ...args: any[]): void;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.assert = void 0;
|
|
29
|
+
function assert(condition, errorMessage, addInfos) {
|
|
30
|
+
var args = [];
|
|
31
|
+
for (var _i = 3; _i < arguments.length; _i++) {
|
|
32
|
+
args[_i - 3] = arguments[_i];
|
|
33
|
+
}
|
|
34
|
+
if (condition)
|
|
35
|
+
return;
|
|
36
|
+
args.length > 0 && console.error.apply(console, __spreadArray([], __read(args), false));
|
|
37
|
+
addInfos && console.error(addInfos);
|
|
38
|
+
if (errorMessage instanceof Error) {
|
|
39
|
+
throw errorMessage;
|
|
40
|
+
}
|
|
41
|
+
;
|
|
42
|
+
throw new Error(errorMessage);
|
|
43
|
+
}
|
|
44
|
+
exports.assert = assert;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type CanBeUInteger = bigint | number;
|
|
2
|
+
export declare function canBeUInteger(something: any): something is (number | bigint);
|
|
3
|
+
export declare function forceBigUInt(toForce: CanBeUInteger): bigint;
|
|
4
|
+
export declare function unsafeForceUInt(toForce: CanBeUInteger): number;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unsafeForceUInt = exports.forceBigUInt = exports.canBeUInteger = void 0;
|
|
4
|
+
function canBeUInteger(something) {
|
|
5
|
+
return ((typeof something === "bigint" && something >= BigInt(0)) ||
|
|
6
|
+
(typeof something === "number" && something === Math.round(Math.abs(something))));
|
|
7
|
+
}
|
|
8
|
+
exports.canBeUInteger = canBeUInteger;
|
|
9
|
+
function forceBigUInt(toForce) {
|
|
10
|
+
if (!canBeUInteger(toForce)) {
|
|
11
|
+
// console.error( toForce );
|
|
12
|
+
throw new Error("trying to convert an integer to an unsigned Integer, the number was negative");
|
|
13
|
+
}
|
|
14
|
+
return BigInt(toForce);
|
|
15
|
+
}
|
|
16
|
+
exports.forceBigUInt = forceBigUInt;
|
|
17
|
+
;
|
|
18
|
+
function unsafeForceUInt(toForce) {
|
|
19
|
+
if (!canBeUInteger(toForce)) {
|
|
20
|
+
// console.error( toForce );
|
|
21
|
+
throw new Error("trying to convert an integer to an unsigned Integer, the number was negative");
|
|
22
|
+
}
|
|
23
|
+
return Number(toForce);
|
|
24
|
+
}
|
|
25
|
+
exports.unsafeForceUInt = unsafeForceUInt;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare function mkReplacer(replacer?: (key: string, value: any) => any | null, map?: WeakMap<any, string>): (key: string, value: any) => any;
|
|
2
|
+
export declare function stringify(value: any, replacer?: (key: string, value: any) => any | null | (number | string)[], space?: string | number): string;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stringify = exports.mkReplacer = void 0;
|
|
4
|
+
var obj_utils_1 = require("@harmoniclabs/obj-utils");
|
|
5
|
+
var uint8array_utils_1 = require("@harmoniclabs/uint8array-utils");
|
|
6
|
+
function mkReplacer(replacer, map) {
|
|
7
|
+
if (map === void 0) { map = new WeakMap(); }
|
|
8
|
+
if (typeof replacer !== "function")
|
|
9
|
+
replacer = function (k, v) { return v; };
|
|
10
|
+
return function (key, value) {
|
|
11
|
+
value = replacer(key, value);
|
|
12
|
+
if ((0, obj_utils_1.isObject)(value)) {
|
|
13
|
+
if (map.has(value)) {
|
|
14
|
+
return map.get(value);
|
|
15
|
+
}
|
|
16
|
+
map.set(value, key);
|
|
17
|
+
if (typeof value.buffer === "object" && value.buffer instanceof ArrayBuffer) {
|
|
18
|
+
value = new Uint8Array(value.buffer);
|
|
19
|
+
}
|
|
20
|
+
if (value instanceof Uint8Array) {
|
|
21
|
+
value = (0, uint8array_utils_1.toHex)(value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (typeof value === "bigint") {
|
|
25
|
+
value = value.toString();
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.mkReplacer = mkReplacer;
|
|
31
|
+
function stringify(value, replacer, space) {
|
|
32
|
+
if (space === void 0) { space = 0; }
|
|
33
|
+
if (replacer) {
|
|
34
|
+
return JSON.stringify(value, replacer, space);
|
|
35
|
+
}
|
|
36
|
+
return JSON.stringify(value, mkReplacer(replacer, new WeakMap()), space);
|
|
37
|
+
}
|
|
38
|
+
exports.stringify = stringify;
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@harmoniclabs/buildooor",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Cardano transaction builder in typescript",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"browser": {
|
|
8
|
+
"worker_threads": false
|
|
9
|
+
},
|
|
10
|
+
"type": "commonjs",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"test": "jest",
|
|
16
|
+
"clear-jest": "jest --clearCache",
|
|
17
|
+
"test-watch": "jest --watchman",
|
|
18
|
+
"test-coverage": "jest --coverage",
|
|
19
|
+
"build": "rm -rf ./dist && tsc --project ./tsconfig.json && tsc-alias -p ./tsconfig.json",
|
|
20
|
+
"build:light": "tsc --project ./tsconfig.json && tsc-alias -p ./tsconfig.json",
|
|
21
|
+
"buidl": "npm run build",
|
|
22
|
+
"ci": "npm i && npm run test && npm run build",
|
|
23
|
+
"start": "npm-run-all --parallel build:watch run:watch"
|
|
24
|
+
},
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"registry": "https://registry.npmjs.org"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"cardano",
|
|
30
|
+
"plutus",
|
|
31
|
+
"blockchain",
|
|
32
|
+
"offchain",
|
|
33
|
+
"ada",
|
|
34
|
+
"dApp"
|
|
35
|
+
],
|
|
36
|
+
"author": "Michele Nuzzi",
|
|
37
|
+
"license": "Apache-2.0",
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/HarmonicLabs/plu-ts.git"
|
|
41
|
+
},
|
|
42
|
+
"bugs": {
|
|
43
|
+
"url": "https://github.com/HarmonicLabs/plu-ts/issues"
|
|
44
|
+
},
|
|
45
|
+
"homepage": "https://github.com/HarmonicLabs/plu-ts#readme",
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@harmoniclabs/bigint-utils": "^1.0.0",
|
|
48
|
+
"@harmoniclabs/crypto": "^0.2.5",
|
|
49
|
+
"@harmoniclabs/obj-utils": "^1.0.0",
|
|
50
|
+
"@harmoniclabs/uint8array-utils": "^1.0.3",
|
|
51
|
+
"@harmoniclabs/bip32_ed25519": "^0.1.2",
|
|
52
|
+
"@harmoniclabs/bytestring": "^1.0.0",
|
|
53
|
+
"@harmoniclabs/cardano-costmodels-ts": "^1.3.0",
|
|
54
|
+
"@harmoniclabs/cardano-ledger-ts": "^0.3.2",
|
|
55
|
+
"@harmoniclabs/cbor": "^1.6.0",
|
|
56
|
+
"@harmoniclabs/pair": "^1.0.0",
|
|
57
|
+
"@harmoniclabs/plutus-data": "^1.2.4",
|
|
58
|
+
"@harmoniclabs/plutus-machine": "^2.1.0",
|
|
59
|
+
"@harmoniclabs/uplc": "^1.4.0"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@babel/preset-env": "^7.18.6",
|
|
63
|
+
"@babel/preset-typescript": "^7.18.6",
|
|
64
|
+
"@types/jest": "^28.1.4",
|
|
65
|
+
"@types/node": "^18.14.6",
|
|
66
|
+
"jest": "^29.4.3",
|
|
67
|
+
"jest-environment-jsdom": "^29.4.3",
|
|
68
|
+
"tsc-alias": "^1.7.1",
|
|
69
|
+
"typescript": "^4.6.3"
|
|
70
|
+
},
|
|
71
|
+
"funding": "https://github.com/sponsors/HarmonicLabs"
|
|
72
|
+
}
|