@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,1366 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __values = (this && this.__values) || function(o) {
|
|
50
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
51
|
+
if (m) return m.call(o);
|
|
52
|
+
if (o && typeof o.length === "number") return {
|
|
53
|
+
next: function () {
|
|
54
|
+
if (o && i >= o.length) o = void 0;
|
|
55
|
+
return { value: o && o[i++], done: !o };
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
59
|
+
};
|
|
60
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
61
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
62
|
+
if (!m) return o;
|
|
63
|
+
var i = m.call(o), r, ar = [], e;
|
|
64
|
+
try {
|
|
65
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
66
|
+
}
|
|
67
|
+
catch (error) { e = { error: error }; }
|
|
68
|
+
finally {
|
|
69
|
+
try {
|
|
70
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
71
|
+
}
|
|
72
|
+
finally { if (e) throw e.error; }
|
|
73
|
+
}
|
|
74
|
+
return ar;
|
|
75
|
+
};
|
|
76
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
77
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
78
|
+
if (ar || !(i in from)) {
|
|
79
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
80
|
+
ar[i] = from[i];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
84
|
+
};
|
|
85
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
86
|
+
exports.TxBuilderRunner = void 0;
|
|
87
|
+
var obj_utils_1 = require("@harmoniclabs/obj-utils");
|
|
88
|
+
var txBuild_1 = require("../../txBuild/index.js");
|
|
89
|
+
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
|
|
90
|
+
var ints_1 = require("../../utils/ints.js");
|
|
91
|
+
var CanResolveToUTxO_1 = require("../CanResolveToUTxO/CanResolveToUTxO.js");
|
|
92
|
+
var jsonToMetadata_1 = require("./jsonToMetadata.js");
|
|
93
|
+
var GenesisInfos_1 = require("../GenesisInfos.js");
|
|
94
|
+
var crypto_1 = require("@harmoniclabs/crypto");
|
|
95
|
+
var uint8array_utils_1 = require("@harmoniclabs/uint8array-utils");
|
|
96
|
+
var plutus_data_1 = require("@harmoniclabs/plutus-data");
|
|
97
|
+
var bytestring_1 = require("@harmoniclabs/bytestring");
|
|
98
|
+
var CanBeData_1 = require("../../utils/CanBeData.js");
|
|
99
|
+
var CanBePoolKeyHash_1 = require("./CanBePoolKeyHash.js");
|
|
100
|
+
var CanBeStakeCreds_1 = require("./CanBeStakeCreds.js");
|
|
101
|
+
var forceAddr_1 = require("./forceAddr.js");
|
|
102
|
+
var ITxBuildVotingProcedure_1 = require("../../txBuild/ITxBuildVotingProcedure.js");
|
|
103
|
+
function cloneTask(task) {
|
|
104
|
+
if (task.kind === 0 /* TxBuilderTaskKind.ResolveUTxO */ || task.kind === 1 /* TxBuilderTaskKind.ResolveTxIn */) {
|
|
105
|
+
var _a = task, kind = _a.kind, arg = _a.arg, onResolved = _a.onResolved;
|
|
106
|
+
return {
|
|
107
|
+
kind: kind,
|
|
108
|
+
arg: (0, CanResolveToUTxO_1.cloneCanResolveToUTxO)(arg),
|
|
109
|
+
onResolved: onResolved
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
kind: task.kind,
|
|
114
|
+
getPromise: task.getPromise
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
var readonlyValueDescriptor = Object.freeze({
|
|
118
|
+
writable: false,
|
|
119
|
+
enumerable: true,
|
|
120
|
+
configurable: false
|
|
121
|
+
});
|
|
122
|
+
var _datumsCache = {};
|
|
123
|
+
var _datumsHashes = [];
|
|
124
|
+
var _MAX_DATUMS_CACHE_SIZE = 20;
|
|
125
|
+
function _saveResolvedDatum(datum, hash) {
|
|
126
|
+
var theData = (0, plutus_data_1.cloneData)(datum);
|
|
127
|
+
var actualHash = (0, uint8array_utils_1.toHex)(new Uint8Array((0, crypto_1.sha2_256)((0, plutus_data_1.dataToCbor)(datum).toBuffer())));
|
|
128
|
+
var actualHashIdx = _datumsHashes.lastIndexOf(actualHash);
|
|
129
|
+
if (actualHashIdx < 0) {
|
|
130
|
+
_datumsHashes.push(actualHash);
|
|
131
|
+
_datumsCache[actualHash] = theData;
|
|
132
|
+
}
|
|
133
|
+
if (hash) {
|
|
134
|
+
var hashIdx = _datumsHashes.lastIndexOf(hash);
|
|
135
|
+
if (hashIdx < 0) {
|
|
136
|
+
_datumsHashes.push(hash);
|
|
137
|
+
_datumsCache[hash] = theData;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
while (_datumsHashes.length > _MAX_DATUMS_CACHE_SIZE) {
|
|
141
|
+
var h = _datumsHashes.shift();
|
|
142
|
+
delete _datumsCache[h];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function _getResolvedDatum(hash) {
|
|
146
|
+
// no need to `cloneData` because this datum is used only internally
|
|
147
|
+
return _datumsCache[hash];
|
|
148
|
+
}
|
|
149
|
+
var TxBuilderRunner = /** @class */ (function () {
|
|
150
|
+
function TxBuilderRunner(txBuilder, provider) {
|
|
151
|
+
if (!(0, obj_utils_1.isObject)(provider))
|
|
152
|
+
provider = {};
|
|
153
|
+
var self = this;
|
|
154
|
+
var tasks = [];
|
|
155
|
+
var buildArgs = {};
|
|
156
|
+
var scripts = [];
|
|
157
|
+
var scriptHashesStr = [];
|
|
158
|
+
var refUtxos = [];
|
|
159
|
+
var _collateralAmount = 5000000;
|
|
160
|
+
var _setCollateralTask = undefined;
|
|
161
|
+
(0, obj_utils_1.defineReadOnlyProperty)(this, "reset", function () {
|
|
162
|
+
tasks.length = 0;
|
|
163
|
+
// steps.length = 0;
|
|
164
|
+
buildArgs = {};
|
|
165
|
+
scripts.length = 0;
|
|
166
|
+
scriptHashesStr.length = 0;
|
|
167
|
+
refUtxos.length = 0;
|
|
168
|
+
_collateralAmount = 5000000;
|
|
169
|
+
_setCollateralTask = undefined;
|
|
170
|
+
return self;
|
|
171
|
+
});
|
|
172
|
+
function _addRefUtxo(u) {
|
|
173
|
+
if ((0, cardano_ledger_ts_1.isIUTxO)(u)) {
|
|
174
|
+
refUtxos.push(new cardano_ledger_ts_1.UTxO(u));
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
// add before other resolveUtxOs (`unshift`)
|
|
178
|
+
tasks.unshift({
|
|
179
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
180
|
+
arg: u,
|
|
181
|
+
onResolved: function (utxo) { return refUtxos.push(utxo); }
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
function _addAviableScript(scrpt) {
|
|
185
|
+
var hStr = scrpt.hash.toString();
|
|
186
|
+
if (!scriptHashesStr.includes(hStr)) {
|
|
187
|
+
scripts.push(scrpt);
|
|
188
|
+
scriptHashesStr.push(hStr);
|
|
189
|
+
}
|
|
190
|
+
return self;
|
|
191
|
+
}
|
|
192
|
+
Object.defineProperties(this, {
|
|
193
|
+
tasks: {
|
|
194
|
+
get: function () { return tasks.map(cloneTask); },
|
|
195
|
+
set: function () { },
|
|
196
|
+
enumerable: true,
|
|
197
|
+
configurable: false
|
|
198
|
+
},
|
|
199
|
+
// steps: {
|
|
200
|
+
// get: () => steps.map( cloneStep ),
|
|
201
|
+
// set: () => {},
|
|
202
|
+
// enumerable: true,
|
|
203
|
+
// configurable: false
|
|
204
|
+
// },
|
|
205
|
+
buildArgs: {
|
|
206
|
+
get: function () { return (0, txBuild_1.normalizeITxBuildArgs)(buildArgs); },
|
|
207
|
+
set: function () { },
|
|
208
|
+
enumerable: true,
|
|
209
|
+
configurable: false
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
function _addRequiredSignerKey(key) {
|
|
213
|
+
key = new cardano_ledger_ts_1.PubKeyHash(key);
|
|
214
|
+
if (buildArgs.requiredSigners === undefined) {
|
|
215
|
+
buildArgs.requiredSigners = [key];
|
|
216
|
+
return self;
|
|
217
|
+
}
|
|
218
|
+
if (!buildArgs.requiredSigners.some(function (sig) { return sig.toString() === key.toString(); })) {
|
|
219
|
+
buildArgs.requiredSigners.push(key);
|
|
220
|
+
}
|
|
221
|
+
return self;
|
|
222
|
+
}
|
|
223
|
+
function _addRequiredSigner(signer) {
|
|
224
|
+
if (typeof signer === "string") {
|
|
225
|
+
if (signer.startsWith("addr")) {
|
|
226
|
+
signer = cardano_ledger_ts_1.Address.fromString(signer);
|
|
227
|
+
}
|
|
228
|
+
else if (signer.startsWith("stake")) {
|
|
229
|
+
signer = cardano_ledger_ts_1.StakeAddress.fromString(signer);
|
|
230
|
+
}
|
|
231
|
+
else
|
|
232
|
+
throw new Error("invalid string passed as address: " + signer);
|
|
233
|
+
}
|
|
234
|
+
if (signer instanceof cardano_ledger_ts_1.Address) {
|
|
235
|
+
void _addRequiredSignerKey(signer.paymentCreds.hash);
|
|
236
|
+
if (signer.stakeCreds !== undefined &&
|
|
237
|
+
!Array.isArray(signer.stakeCreds.hash)) {
|
|
238
|
+
void _addRequiredSignerKey(signer.stakeCreds.hash);
|
|
239
|
+
}
|
|
240
|
+
return self;
|
|
241
|
+
}
|
|
242
|
+
if (signer instanceof cardano_ledger_ts_1.StakeAddress) {
|
|
243
|
+
return _addRequiredSignerKey(signer.credentials);
|
|
244
|
+
}
|
|
245
|
+
throw new Error("invalid required signer");
|
|
246
|
+
}
|
|
247
|
+
function _attachMemo(memo) {
|
|
248
|
+
buildArgs.memo = memo;
|
|
249
|
+
return self;
|
|
250
|
+
}
|
|
251
|
+
function _attachMetadata(label, metadatum) {
|
|
252
|
+
var _a;
|
|
253
|
+
var _b;
|
|
254
|
+
var meta = (_b = buildArgs.metadata) === null || _b === void 0 ? void 0 : _b.metadata;
|
|
255
|
+
var labelStr = (0, ints_1.forceBigUInt)(label).toString();
|
|
256
|
+
buildArgs.metadata = new cardano_ledger_ts_1.TxMetadata(__assign(__assign({}, meta), (_a = {}, _a[labelStr] = metadatum, _a)));
|
|
257
|
+
return self;
|
|
258
|
+
}
|
|
259
|
+
function _attachMetadataJson(label, json) {
|
|
260
|
+
return _attachMetadata(label, (0, jsonToMetadata_1.jsonToMetadata)(json));
|
|
261
|
+
}
|
|
262
|
+
function _attachMetadataJsonWithConversion(label, json) {
|
|
263
|
+
return _attachMetadata(label, (0, jsonToMetadata_1.jsonToMetadata)(json, true));
|
|
264
|
+
}
|
|
265
|
+
function _setChangeAddress(addr) {
|
|
266
|
+
buildArgs.changeAddress = addr;
|
|
267
|
+
return self;
|
|
268
|
+
}
|
|
269
|
+
function _validFromSlot(slot) {
|
|
270
|
+
tasks = tasks.filter(function (_a) {
|
|
271
|
+
var kind = _a.kind;
|
|
272
|
+
return kind !== 2 /* TxBuilderTaskKind.ValidFromPOSIX */;
|
|
273
|
+
});
|
|
274
|
+
buildArgs.invalidBefore = (0, ints_1.forceBigUInt)(slot);
|
|
275
|
+
return self;
|
|
276
|
+
}
|
|
277
|
+
function _validFromPOSIX(POSIX) {
|
|
278
|
+
var _this = this;
|
|
279
|
+
tasks.push({
|
|
280
|
+
kind: 2 /* TxBuilderTaskKind.ValidFromPOSIX */,
|
|
281
|
+
getPromise: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
282
|
+
var _a, _b;
|
|
283
|
+
return __generator(this, function (_c) {
|
|
284
|
+
switch (_c.label) {
|
|
285
|
+
case 0:
|
|
286
|
+
if (!!(0, GenesisInfos_1.isGenesisInfos)(txBuilder.genesisInfos)) return [3 /*break*/, 2];
|
|
287
|
+
if (typeof provider.getGenesisInfos !== "function") {
|
|
288
|
+
throw new Error("validFromPOSIX requires either a tx builder with genesis infos or a provider that can fetch them; but none is present");
|
|
289
|
+
}
|
|
290
|
+
_b = (_a = txBuilder).setGenesisInfos;
|
|
291
|
+
return [4 /*yield*/, provider.getGenesisInfos()];
|
|
292
|
+
case 1:
|
|
293
|
+
_b.apply(_a, [_c.sent()]);
|
|
294
|
+
_c.label = 2;
|
|
295
|
+
case 2:
|
|
296
|
+
buildArgs.invalidBefore = (0, ints_1.forceBigUInt)(txBuilder.posixToSlot(POSIX));
|
|
297
|
+
return [2 /*return*/];
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
}); }
|
|
301
|
+
});
|
|
302
|
+
return self;
|
|
303
|
+
}
|
|
304
|
+
function _validToSlot(slot) {
|
|
305
|
+
tasks = tasks.filter(function (_a) {
|
|
306
|
+
var kind = _a.kind;
|
|
307
|
+
return kind !== 3 /* TxBuilderTaskKind.ValidToPOSIX */;
|
|
308
|
+
});
|
|
309
|
+
buildArgs.invalidAfter = (0, ints_1.forceBigUInt)(slot);
|
|
310
|
+
return self;
|
|
311
|
+
}
|
|
312
|
+
function _validToPOSIX(POSIX) {
|
|
313
|
+
var _this = this;
|
|
314
|
+
tasks.push({
|
|
315
|
+
kind: 3 /* TxBuilderTaskKind.ValidToPOSIX */,
|
|
316
|
+
getPromise: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
317
|
+
var _a, _b;
|
|
318
|
+
return __generator(this, function (_c) {
|
|
319
|
+
switch (_c.label) {
|
|
320
|
+
case 0:
|
|
321
|
+
if (!!(0, GenesisInfos_1.isGenesisInfos)(txBuilder.genesisInfos)) return [3 /*break*/, 2];
|
|
322
|
+
if (typeof provider.getGenesisInfos !== "function") {
|
|
323
|
+
throw new Error("validToPOSIX requires either a tx builder with genesis infos or a provider that can fetch them; but none is present");
|
|
324
|
+
}
|
|
325
|
+
_b = (_a = txBuilder).setGenesisInfos;
|
|
326
|
+
return [4 /*yield*/, provider.getGenesisInfos()];
|
|
327
|
+
case 1:
|
|
328
|
+
_b.apply(_a, [_c.sent()]);
|
|
329
|
+
_c.label = 2;
|
|
330
|
+
case 2:
|
|
331
|
+
buildArgs.invalidAfter = (0, ints_1.forceBigUInt)(txBuilder.posixToSlot(POSIX));
|
|
332
|
+
return [2 /*return*/];
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
}); }
|
|
336
|
+
});
|
|
337
|
+
return self;
|
|
338
|
+
}
|
|
339
|
+
function _referenceUTxOs(utxos) {
|
|
340
|
+
var e_1, _a;
|
|
341
|
+
if (utxos.length <= 0)
|
|
342
|
+
return self;
|
|
343
|
+
try {
|
|
344
|
+
for (var utxos_1 = __values(utxos), utxos_1_1 = utxos_1.next(); !utxos_1_1.done; utxos_1_1 = utxos_1.next()) {
|
|
345
|
+
var u = utxos_1_1.value;
|
|
346
|
+
_addRefUtxo(u);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
350
|
+
finally {
|
|
351
|
+
try {
|
|
352
|
+
if (utxos_1_1 && !utxos_1_1.done && (_a = utxos_1.return)) _a.call(utxos_1);
|
|
353
|
+
}
|
|
354
|
+
finally { if (e_1) throw e_1.error; }
|
|
355
|
+
}
|
|
356
|
+
return self;
|
|
357
|
+
}
|
|
358
|
+
function _addCertificate(cert, script) {
|
|
359
|
+
if (!(buildArgs.certificates)) {
|
|
360
|
+
buildArgs.certificates = [{
|
|
361
|
+
cert: cert,
|
|
362
|
+
script: script
|
|
363
|
+
}];
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
buildArgs.certificates.push({
|
|
368
|
+
cert: cert,
|
|
369
|
+
script: script
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
function _addWithdraw(withdrawal, script) {
|
|
374
|
+
if (!(buildArgs.withdrawals)) {
|
|
375
|
+
buildArgs.withdrawals = [{
|
|
376
|
+
withdrawal: withdrawal,
|
|
377
|
+
script: script
|
|
378
|
+
}];
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
buildArgs.withdrawals.push({
|
|
383
|
+
withdrawal: withdrawal,
|
|
384
|
+
script: script
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
function _tryGetRefScript(scriptHashStr) {
|
|
389
|
+
var theRef = refUtxos.find(function (ref) { var _a, _b; return ((_b = (_a = ref.resolved.refScript) === null || _a === void 0 ? void 0 : _a.hash) === null || _b === void 0 ? void 0 : _b.toString()) === scriptHashStr; });
|
|
390
|
+
if (theRef === undefined)
|
|
391
|
+
return undefined;
|
|
392
|
+
return theRef;
|
|
393
|
+
}
|
|
394
|
+
function _tryGetScript(scriptHashStr) {
|
|
395
|
+
var theScript = scripts.find(function (scr) { return scr.hash.toString() === scriptHashStr; });
|
|
396
|
+
if (theScript === undefined)
|
|
397
|
+
return undefined;
|
|
398
|
+
return theScript;
|
|
399
|
+
}
|
|
400
|
+
function _tryGetRefStakeScript(stakeCreds) {
|
|
401
|
+
var scriptHash = stakeCreds.hash;
|
|
402
|
+
if (Array.isArray(scriptHash))
|
|
403
|
+
return undefined;
|
|
404
|
+
return _tryGetRefScript(scriptHash.toString());
|
|
405
|
+
}
|
|
406
|
+
function _tryGetStakeScript(stakeCreds) {
|
|
407
|
+
var scriptHash = stakeCreds.hash;
|
|
408
|
+
if (Array.isArray(scriptHash))
|
|
409
|
+
return undefined;
|
|
410
|
+
return _tryGetScript(scriptHash.toString());
|
|
411
|
+
}
|
|
412
|
+
function _ensureStakeScript(stakeCreds, script_or_ref, redeemer, script) {
|
|
413
|
+
if (stakeCreds.type === cardano_ledger_ts_1.CredentialType.Script) {
|
|
414
|
+
if (redeemer === undefined) {
|
|
415
|
+
throw new Error("stake credenials are \"script\" but \"redeemer\" is missing");
|
|
416
|
+
}
|
|
417
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
418
|
+
throw new Error("unresolved TxOutRef used as ref UTxO");
|
|
419
|
+
}
|
|
420
|
+
if (!(script)) {
|
|
421
|
+
script_or_ref = _tryGetRefStakeScript(stakeCreds);
|
|
422
|
+
if (script_or_ref === undefined) {
|
|
423
|
+
script_or_ref = _tryGetStakeScript(stakeCreds);
|
|
424
|
+
}
|
|
425
|
+
if (script_or_ref === undefined) {
|
|
426
|
+
throw new Error("missing script with hash: " + stakeCreds.hash);
|
|
427
|
+
}
|
|
428
|
+
if ((0, cardano_ledger_ts_1.isIUTxO)(script_or_ref)) {
|
|
429
|
+
script = {
|
|
430
|
+
ref: new cardano_ledger_ts_1.UTxO(script_or_ref),
|
|
431
|
+
redeemer: redeemer
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
else {
|
|
435
|
+
script = {
|
|
436
|
+
inline: script_or_ref,
|
|
437
|
+
redeemer: redeemer
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
return script;
|
|
443
|
+
}
|
|
444
|
+
function _delegateTo(delegator, poolId, redeemer, script_or_ref) {
|
|
445
|
+
var _this = this;
|
|
446
|
+
var stakeCreds = (0, CanBeStakeCreds_1.forceStakeCreds)(delegator);
|
|
447
|
+
var poolKeyHash = (0, CanBePoolKeyHash_1.forcePoolKeyHash)(poolId);
|
|
448
|
+
var script = undefined;
|
|
449
|
+
if (delegator instanceof cardano_ledger_ts_1.Script &&
|
|
450
|
+
(script_or_ref === undefined || script_or_ref instanceof cardano_ledger_ts_1.Script)) {
|
|
451
|
+
script_or_ref = delegator;
|
|
452
|
+
}
|
|
453
|
+
if (stakeCreds.type === cardano_ledger_ts_1.CredentialType.Script) {
|
|
454
|
+
if (redeemer === undefined) {
|
|
455
|
+
throw new Error("in \"delegateTo\"; stake credenials are \"script\" but \"redeemer\" is missing");
|
|
456
|
+
}
|
|
457
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
458
|
+
_addRefUtxo;
|
|
459
|
+
tasks.unshift({
|
|
460
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
461
|
+
arg: script_or_ref,
|
|
462
|
+
onResolved: function (utxo) {
|
|
463
|
+
script_or_ref = utxo;
|
|
464
|
+
script = {
|
|
465
|
+
ref: utxo,
|
|
466
|
+
redeemer: redeemer
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
tasks.push({
|
|
473
|
+
kind: 4 /* TxBuilderTaskKind.DelegateTo */,
|
|
474
|
+
getPromise: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
475
|
+
return __generator(this, function (_a) {
|
|
476
|
+
script = _ensureStakeScript(stakeCreds, script_or_ref, redeemer, script);
|
|
477
|
+
_addCertificate(new cardano_ledger_ts_1.CertStakeDelegation({
|
|
478
|
+
stakeCredential: stakeCreds,
|
|
479
|
+
poolKeyHash: poolKeyHash
|
|
480
|
+
}), script);
|
|
481
|
+
return [2 /*return*/];
|
|
482
|
+
});
|
|
483
|
+
}); }
|
|
484
|
+
});
|
|
485
|
+
return self;
|
|
486
|
+
}
|
|
487
|
+
function _deregisterStake(delegator, redeemer, script_or_ref) {
|
|
488
|
+
var _this = this;
|
|
489
|
+
var stakeCreds = (0, CanBeStakeCreds_1.forceStakeCreds)(delegator);
|
|
490
|
+
var script = undefined;
|
|
491
|
+
if (delegator instanceof cardano_ledger_ts_1.Script &&
|
|
492
|
+
(script_or_ref === undefined || script_or_ref instanceof cardano_ledger_ts_1.Script)) {
|
|
493
|
+
script_or_ref = delegator;
|
|
494
|
+
}
|
|
495
|
+
if (stakeCreds.type === cardano_ledger_ts_1.CredentialType.Script) {
|
|
496
|
+
if (redeemer === undefined) {
|
|
497
|
+
throw new Error("in \"deregisterStake\"; stake credenials are \"script\" but \"redeemer\" is missing");
|
|
498
|
+
}
|
|
499
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
500
|
+
tasks.push({
|
|
501
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
502
|
+
arg: script_or_ref,
|
|
503
|
+
onResolved: function (utxo) {
|
|
504
|
+
script_or_ref = utxo;
|
|
505
|
+
script = {
|
|
506
|
+
ref: utxo,
|
|
507
|
+
redeemer: redeemer
|
|
508
|
+
};
|
|
509
|
+
}
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
tasks.push({
|
|
514
|
+
kind: 5 /* TxBuilderTaskKind.DeregisterStake */,
|
|
515
|
+
getPromise: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
516
|
+
return __generator(this, function (_a) {
|
|
517
|
+
script = _ensureStakeScript(stakeCreds, script_or_ref, redeemer, script);
|
|
518
|
+
_addCertificate(new cardano_ledger_ts_1.CertStakeDeRegistration({
|
|
519
|
+
stakeCredential: stakeCreds,
|
|
520
|
+
}), script);
|
|
521
|
+
return [2 /*return*/];
|
|
522
|
+
});
|
|
523
|
+
}); }
|
|
524
|
+
});
|
|
525
|
+
return self;
|
|
526
|
+
}
|
|
527
|
+
function _registerStake(delegator, redeemer, script_or_ref) {
|
|
528
|
+
var _this = this;
|
|
529
|
+
var stakeCreds = (0, CanBeStakeCreds_1.forceStakeCreds)(delegator);
|
|
530
|
+
var script = undefined;
|
|
531
|
+
if (delegator instanceof cardano_ledger_ts_1.Script &&
|
|
532
|
+
(script_or_ref === undefined || script_or_ref instanceof cardano_ledger_ts_1.Script)) {
|
|
533
|
+
script_or_ref = delegator;
|
|
534
|
+
}
|
|
535
|
+
if (stakeCreds.type === cardano_ledger_ts_1.CredentialType.Script) {
|
|
536
|
+
if (redeemer === undefined) {
|
|
537
|
+
throw new Error("in \"registerStake\"; stake credenials are \"script\" but \"redeemer\" is missing");
|
|
538
|
+
}
|
|
539
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
540
|
+
tasks.push({
|
|
541
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
542
|
+
arg: script_or_ref,
|
|
543
|
+
onResolved: function (utxo) {
|
|
544
|
+
script_or_ref = utxo;
|
|
545
|
+
script = {
|
|
546
|
+
ref: utxo,
|
|
547
|
+
redeemer: redeemer
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
tasks.push({
|
|
554
|
+
kind: 7 /* TxBuilderTaskKind.RegisterStake */,
|
|
555
|
+
getPromise: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
556
|
+
return __generator(this, function (_a) {
|
|
557
|
+
script = _ensureStakeScript(stakeCreds, script_or_ref, redeemer, script);
|
|
558
|
+
_addCertificate(new cardano_ledger_ts_1.CertStakeRegistration({
|
|
559
|
+
stakeCredential: stakeCreds,
|
|
560
|
+
}), script);
|
|
561
|
+
return [2 /*return*/];
|
|
562
|
+
});
|
|
563
|
+
}); }
|
|
564
|
+
});
|
|
565
|
+
return self;
|
|
566
|
+
}
|
|
567
|
+
function _registerPool(poolParams) {
|
|
568
|
+
_addCertificate(new cardano_ledger_ts_1.CertPoolRegistration({
|
|
569
|
+
poolParams: new cardano_ledger_ts_1.PoolParams(poolParams)
|
|
570
|
+
}));
|
|
571
|
+
return self;
|
|
572
|
+
}
|
|
573
|
+
function _retirePool(poolId, epoch) {
|
|
574
|
+
_addCertificate(new cardano_ledger_ts_1.CertPoolRetirement({
|
|
575
|
+
poolHash: new cardano_ledger_ts_1.PoolKeyHash(poolId),
|
|
576
|
+
epoch: epoch
|
|
577
|
+
}));
|
|
578
|
+
return self;
|
|
579
|
+
}
|
|
580
|
+
function _withdraw(stakeAddress, amount, redeemer, script_or_ref) {
|
|
581
|
+
var _this = this;
|
|
582
|
+
var stakeCreds = (0, CanBeStakeCreds_1.forceStakeCreds)(stakeAddress);
|
|
583
|
+
var script = undefined;
|
|
584
|
+
if (stakeAddress instanceof cardano_ledger_ts_1.Script &&
|
|
585
|
+
(script_or_ref === undefined || script_or_ref instanceof cardano_ledger_ts_1.Script)) {
|
|
586
|
+
script_or_ref = stakeAddress;
|
|
587
|
+
}
|
|
588
|
+
if (stakeCreds.type === cardano_ledger_ts_1.CredentialType.Script) {
|
|
589
|
+
if (redeemer === undefined) {
|
|
590
|
+
throw new Error("in \"withdraw\"; stake credenials are \"script\" but \"redeemer\" is missing");
|
|
591
|
+
}
|
|
592
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
593
|
+
tasks.push({
|
|
594
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
595
|
+
arg: script_or_ref,
|
|
596
|
+
onResolved: function (utxo) {
|
|
597
|
+
script_or_ref = utxo;
|
|
598
|
+
script = {
|
|
599
|
+
ref: utxo,
|
|
600
|
+
redeemer: redeemer
|
|
601
|
+
};
|
|
602
|
+
}
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
tasks.push({
|
|
607
|
+
kind: 6 /* TxBuilderTaskKind.Withdraw */,
|
|
608
|
+
getPromise: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
609
|
+
return __generator(this, function (_a) {
|
|
610
|
+
script = _ensureStakeScript(stakeCreds, script_or_ref, redeemer, script);
|
|
611
|
+
if (Array.isArray(stakeCreds.hash)) {
|
|
612
|
+
throw new Error("unexpected pointer stake credentials");
|
|
613
|
+
}
|
|
614
|
+
_addWithdraw({
|
|
615
|
+
rewardAccount: stakeCreds.hash,
|
|
616
|
+
amount: amount
|
|
617
|
+
}, script);
|
|
618
|
+
return [2 /*return*/];
|
|
619
|
+
});
|
|
620
|
+
}); }
|
|
621
|
+
});
|
|
622
|
+
return self;
|
|
623
|
+
}
|
|
624
|
+
function _pushInput(utxo, redeemer, script_or_ref) {
|
|
625
|
+
var _a, _b, _c;
|
|
626
|
+
var paymentCreds = utxo.resolved.address.paymentCreds;
|
|
627
|
+
if (paymentCreds.type === cardano_ledger_ts_1.CredentialType.Script) {
|
|
628
|
+
if (!(0, CanBeData_1.canBeData)(redeemer))
|
|
629
|
+
throw new Error("script input " + utxo.utxoRef.toString() + " is missing a redeemer");
|
|
630
|
+
else
|
|
631
|
+
redeemer = (0, CanBeData_1.forceData)(redeemer);
|
|
632
|
+
if ((0, cardano_ledger_ts_1.isIUTxO)(script_or_ref)) {
|
|
633
|
+
refUtxos.push(new cardano_ledger_ts_1.UTxO(script_or_ref));
|
|
634
|
+
}
|
|
635
|
+
if (script_or_ref instanceof cardano_ledger_ts_1.Script) {
|
|
636
|
+
_addAviableScript(script_or_ref);
|
|
637
|
+
}
|
|
638
|
+
if (!(0, cardano_ledger_ts_1.isIUTxO)(script_or_ref) || !(script_or_ref instanceof cardano_ledger_ts_1.Script)) {
|
|
639
|
+
var scriptHash = paymentCreds.hash.toString();
|
|
640
|
+
script_or_ref = (_a = _tryGetRefScript(scriptHash)) !== null && _a !== void 0 ? _a : _tryGetScript(scriptHash);
|
|
641
|
+
if (!!(0, cardano_ledger_ts_1.isIUTxO)(script_or_ref) || !(script_or_ref instanceof cardano_ledger_ts_1.Script)) {
|
|
642
|
+
throw new Error("script input " + utxo.utxoRef.toString() + " is missing the script source");
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
if (!Array.isArray(buildArgs.inputs)) {
|
|
646
|
+
buildArgs.inputs = [];
|
|
647
|
+
}
|
|
648
|
+
var isInlineDatum = (0, plutus_data_1.isData)(utxo.resolved.datum);
|
|
649
|
+
var datumHashStr = (_c = (_b = utxo.resolved.datum) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : "undefined";
|
|
650
|
+
var datum = bytestring_1.ByteString.isValidHexValue(datumHashStr) &&
|
|
651
|
+
datumHashStr.length === 64 ?
|
|
652
|
+
_getResolvedDatum(datumHashStr) : undefined;
|
|
653
|
+
if (!isInlineDatum && !(0, plutus_data_1.isData)(datum))
|
|
654
|
+
throw new Error("missing datum for script input " + +utxo.utxoRef.toString());
|
|
655
|
+
if ((0, cardano_ledger_ts_1.isIUTxO)(script_or_ref)) {
|
|
656
|
+
var ref = script_or_ref instanceof cardano_ledger_ts_1.UTxO ? script_or_ref : new cardano_ledger_ts_1.UTxO(script_or_ref);
|
|
657
|
+
buildArgs.inputs.push({
|
|
658
|
+
utxo: utxo,
|
|
659
|
+
referenceScript: {
|
|
660
|
+
refUtxo: ref,
|
|
661
|
+
redeemer: redeemer,
|
|
662
|
+
datum: isInlineDatum ? "inline" : datum
|
|
663
|
+
}
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
else {
|
|
667
|
+
buildArgs.inputs.push({
|
|
668
|
+
utxo: utxo,
|
|
669
|
+
inputScript: {
|
|
670
|
+
script: script_or_ref,
|
|
671
|
+
redeemer: redeemer,
|
|
672
|
+
datum: isInlineDatum ? "inline" : datum
|
|
673
|
+
}
|
|
674
|
+
});
|
|
675
|
+
}
|
|
676
|
+
return;
|
|
677
|
+
}
|
|
678
|
+
// not script
|
|
679
|
+
if (!Array.isArray(buildArgs.inputs)) {
|
|
680
|
+
buildArgs.inputs = [{ utxo: utxo }];
|
|
681
|
+
}
|
|
682
|
+
else {
|
|
683
|
+
buildArgs.inputs.push({ utxo: utxo });
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
function _addInput(utxo, redeemer, script_or_ref, datum) {
|
|
687
|
+
var _a;
|
|
688
|
+
if (datum && (0, CanBeData_1.canBeData)(datum)) {
|
|
689
|
+
try {
|
|
690
|
+
datum = (0, CanBeData_1.forceData)(datum);
|
|
691
|
+
_saveResolvedDatum(datum);
|
|
692
|
+
}
|
|
693
|
+
catch (_b) { }
|
|
694
|
+
}
|
|
695
|
+
utxo = utxo instanceof cardano_ledger_ts_1.UTxO ? utxo : new cardano_ledger_ts_1.UTxO(utxo);
|
|
696
|
+
var paymentCreds = utxo.resolved.address.paymentCreds;
|
|
697
|
+
if (paymentCreds.type === cardano_ledger_ts_1.CredentialType.Script) {
|
|
698
|
+
var hashStr = paymentCreds.hash.toString();
|
|
699
|
+
if (!(0, cardano_ledger_ts_1.isIUTxO)(script_or_ref))
|
|
700
|
+
script_or_ref = (_a = _tryGetRefScript(hashStr)) !== null && _a !== void 0 ? _a : script_or_ref;
|
|
701
|
+
if (!script_or_ref)
|
|
702
|
+
script_or_ref = _tryGetScript(hashStr);
|
|
703
|
+
if (!script_or_ref)
|
|
704
|
+
throw new Error("missing script for utxo: " + utxo.utxoRef.toString());
|
|
705
|
+
if ((0, cardano_ledger_ts_1.isIUTxO)(script_or_ref))
|
|
706
|
+
script_or_ref = new cardano_ledger_ts_1.UTxO(script_or_ref);
|
|
707
|
+
}
|
|
708
|
+
_pushInput(utxo, redeemer, script_or_ref);
|
|
709
|
+
}
|
|
710
|
+
function __addInptus(utxos, redeemer, script_or_ref, datum) {
|
|
711
|
+
var e_2, _a;
|
|
712
|
+
// save datum before resolving utxo
|
|
713
|
+
if (datum && (0, CanBeData_1.canBeData)(datum)) {
|
|
714
|
+
try {
|
|
715
|
+
datum = (0, CanBeData_1.forceData)(datum);
|
|
716
|
+
_saveResolvedDatum(datum);
|
|
717
|
+
}
|
|
718
|
+
catch (_b) { }
|
|
719
|
+
}
|
|
720
|
+
try {
|
|
721
|
+
for (var utxos_2 = __values(utxos), utxos_2_1 = utxos_2.next(); !utxos_2_1.done; utxos_2_1 = utxos_2.next()) {
|
|
722
|
+
var _utxo = utxos_2_1.value;
|
|
723
|
+
tasks.push({
|
|
724
|
+
kind: 1 /* TxBuilderTaskKind.ResolveTxIn */,
|
|
725
|
+
arg: _utxo,
|
|
726
|
+
onResolved: function (txIn) {
|
|
727
|
+
_addInput(txIn, redeemer, script_or_ref);
|
|
728
|
+
}
|
|
729
|
+
});
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
733
|
+
finally {
|
|
734
|
+
try {
|
|
735
|
+
if (utxos_2_1 && !utxos_2_1.done && (_a = utxos_2.return)) _a.call(utxos_2);
|
|
736
|
+
}
|
|
737
|
+
finally { if (e_2) throw e_2.error; }
|
|
738
|
+
}
|
|
739
|
+
return self;
|
|
740
|
+
}
|
|
741
|
+
function _addInputs(utxos, redeemer, script_or_ref, datum) {
|
|
742
|
+
datum = datum === "inline" ? undefined : datum;
|
|
743
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
744
|
+
// save datum before resolving utxo
|
|
745
|
+
if (datum && (0, CanBeData_1.canBeData)(datum)) {
|
|
746
|
+
try {
|
|
747
|
+
datum = (0, CanBeData_1.forceData)(datum);
|
|
748
|
+
_saveResolvedDatum(datum);
|
|
749
|
+
}
|
|
750
|
+
catch (_a) { }
|
|
751
|
+
}
|
|
752
|
+
tasks.push({
|
|
753
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
754
|
+
arg: script_or_ref,
|
|
755
|
+
onResolved: function (ref) {
|
|
756
|
+
__addInptus(utxos, redeemer, ref);
|
|
757
|
+
}
|
|
758
|
+
});
|
|
759
|
+
return self;
|
|
760
|
+
}
|
|
761
|
+
return __addInptus(utxos, redeemer, script_or_ref, datum);
|
|
762
|
+
}
|
|
763
|
+
function _addSingleInput(utxo, redeemer, script_or_ref, datum) {
|
|
764
|
+
return _addInputs([utxo], redeemer, script_or_ref, datum);
|
|
765
|
+
}
|
|
766
|
+
function _payTo(address, amount, datum, refScript) {
|
|
767
|
+
if (!Array.isArray(buildArgs.outputs)) {
|
|
768
|
+
buildArgs.outputs = [];
|
|
769
|
+
}
|
|
770
|
+
buildArgs.outputs.push({
|
|
771
|
+
address: typeof address === "string" ? cardano_ledger_ts_1.Address.fromString(address) : address,
|
|
772
|
+
value: (0, ints_1.canBeUInteger)(amount) ? cardano_ledger_ts_1.Value.lovelaces(amount) : amount,
|
|
773
|
+
datum: datum !== undefined && (0, CanBeData_1.canBeData)(datum) ? (0, CanBeData_1.forceData)(datum) : undefined,
|
|
774
|
+
refScript: refScript
|
|
775
|
+
});
|
|
776
|
+
return self;
|
|
777
|
+
}
|
|
778
|
+
function _setCollateral(collateral, collateralOutput) {
|
|
779
|
+
_setCollateralTask = {
|
|
780
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
781
|
+
arg: collateral,
|
|
782
|
+
onResolved: function (utxo) {
|
|
783
|
+
if (!cardano_ledger_ts_1.Value.isAdaOnly(utxo.resolved.value) && !(0, cardano_ledger_ts_1.isITxOut)(collateralOutput)) {
|
|
784
|
+
collateralOutput = {
|
|
785
|
+
address: utxo.resolved.address,
|
|
786
|
+
value: cardano_ledger_ts_1.Value.sub(utxo.resolved.value, cardano_ledger_ts_1.Value.lovelaces((0, ints_1.forceBigUInt)(_collateralAmount)))
|
|
787
|
+
};
|
|
788
|
+
}
|
|
789
|
+
buildArgs.collaterals = [utxo];
|
|
790
|
+
if ((0, cardano_ledger_ts_1.isITxOut)(collateralOutput)) {
|
|
791
|
+
if (typeof collateralOutput.address === "string")
|
|
792
|
+
collateralOutput.address = cardano_ledger_ts_1.Address.fromString(collateralOutput.address);
|
|
793
|
+
buildArgs.collateralReturn = collateralOutput;
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
};
|
|
797
|
+
return self;
|
|
798
|
+
}
|
|
799
|
+
function _setCollateralAmount(amount) {
|
|
800
|
+
if ((0, ints_1.canBeUInteger)(amount))
|
|
801
|
+
_collateralAmount = amount;
|
|
802
|
+
return self;
|
|
803
|
+
}
|
|
804
|
+
function __mintAssets(assets, script_or_ref, redeemer) {
|
|
805
|
+
redeemer = redeemer === undefined ? new plutus_data_1.DataI(0) : (0, CanBeData_1.forceData)(redeemer);
|
|
806
|
+
if (!Array.isArray(buildArgs.mints)) {
|
|
807
|
+
buildArgs.mints = [];
|
|
808
|
+
}
|
|
809
|
+
buildArgs.mints.push({
|
|
810
|
+
value: assets,
|
|
811
|
+
script: (0, cardano_ledger_ts_1.isIUTxO)(script_or_ref) ?
|
|
812
|
+
{
|
|
813
|
+
ref: new cardano_ledger_ts_1.UTxO(script_or_ref),
|
|
814
|
+
// policyId: assets.policy,
|
|
815
|
+
redeemer: redeemer
|
|
816
|
+
} : {
|
|
817
|
+
inline: script_or_ref,
|
|
818
|
+
// policyId: assets.policy,
|
|
819
|
+
redeemer: redeemer
|
|
820
|
+
}
|
|
821
|
+
});
|
|
822
|
+
return self;
|
|
823
|
+
}
|
|
824
|
+
function _mintAssets(assets, script_or_ref, redeemer) {
|
|
825
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
826
|
+
tasks.push({
|
|
827
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
828
|
+
arg: script_or_ref,
|
|
829
|
+
onResolved: function (ref) {
|
|
830
|
+
__mintAssets(assets, ref, redeemer);
|
|
831
|
+
}
|
|
832
|
+
});
|
|
833
|
+
return self;
|
|
834
|
+
}
|
|
835
|
+
else
|
|
836
|
+
return __mintAssets(assets, script_or_ref, redeemer);
|
|
837
|
+
}
|
|
838
|
+
function __vote(voter, govActionId, vote, anchor, redeemer, script_or_ref) {
|
|
839
|
+
govActionId = (0, cardano_ledger_ts_1.forceTxOutRef)(govActionId);
|
|
840
|
+
if (!Array.isArray(buildArgs.votingProcedures))
|
|
841
|
+
buildArgs.votingProcedures = [];
|
|
842
|
+
var govActionVote = {
|
|
843
|
+
govActionId: govActionId,
|
|
844
|
+
vote: {
|
|
845
|
+
vote: vote,
|
|
846
|
+
anchor: anchor
|
|
847
|
+
},
|
|
848
|
+
};
|
|
849
|
+
var votingProcedure = {
|
|
850
|
+
voter: voter,
|
|
851
|
+
votes: [govActionVote]
|
|
852
|
+
};
|
|
853
|
+
var entry = buildArgs.votingProcedures.find(function (elem) {
|
|
854
|
+
var votingProcedure = (0, cardano_ledger_ts_1.isIVotingProceduresEntry)(elem) ? elem : elem.votingProcedure;
|
|
855
|
+
return (0, ITxBuildVotingProcedure_1.eqIVoter)(voter, votingProcedure.voter);
|
|
856
|
+
});
|
|
857
|
+
if (!entry) {
|
|
858
|
+
buildArgs.votingProcedures.push({
|
|
859
|
+
votingProcedure: votingProcedure,
|
|
860
|
+
script: redeemer === undefined ? undefined :
|
|
861
|
+
(0, cardano_ledger_ts_1.isIUTxO)(script_or_ref) ? {
|
|
862
|
+
ref: script_or_ref,
|
|
863
|
+
redeemer: redeemer
|
|
864
|
+
} : (script_or_ref instanceof cardano_ledger_ts_1.Script ? {
|
|
865
|
+
inline: script_or_ref,
|
|
866
|
+
redeemer: redeemer
|
|
867
|
+
} : undefined)
|
|
868
|
+
});
|
|
869
|
+
}
|
|
870
|
+
else {
|
|
871
|
+
var votingProcedure_1 = (0, cardano_ledger_ts_1.isIVotingProceduresEntry)(entry) ? entry : entry.votingProcedure;
|
|
872
|
+
var govActionEntry = votingProcedure_1.votes.find(function (_a) {
|
|
873
|
+
var entryGovActionId = _a.govActionId;
|
|
874
|
+
return (0, cardano_ledger_ts_1.eqITxOutRef)(govActionId, entryGovActionId);
|
|
875
|
+
});
|
|
876
|
+
if (!govActionEntry) {
|
|
877
|
+
votingProcedure_1.votes.push(govActionVote);
|
|
878
|
+
}
|
|
879
|
+
else {
|
|
880
|
+
govActionEntry.vote = {
|
|
881
|
+
vote: vote,
|
|
882
|
+
anchor: anchor
|
|
883
|
+
};
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
return self;
|
|
887
|
+
}
|
|
888
|
+
function _vote(voter, governanceActionId, vote, anchor, redeemer, script_or_ref) {
|
|
889
|
+
redeemer = redeemer && (0, CanBeData_1.canBeData)(redeemer) ? (0, CanBeData_1.forceData)(redeemer) : undefined;
|
|
890
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
891
|
+
tasks.push({
|
|
892
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
893
|
+
arg: script_or_ref,
|
|
894
|
+
onResolved: function (ref) {
|
|
895
|
+
__vote(voter, governanceActionId, vote, anchor, redeemer, ref);
|
|
896
|
+
}
|
|
897
|
+
});
|
|
898
|
+
return self;
|
|
899
|
+
}
|
|
900
|
+
else
|
|
901
|
+
return __vote(voter, governanceActionId, vote, anchor, redeemer, script_or_ref);
|
|
902
|
+
}
|
|
903
|
+
function _voteDRep(drepKeyHash, governanceActionId, vote, anchor) {
|
|
904
|
+
return _vote({
|
|
905
|
+
kind: cardano_ledger_ts_1.VoterKind.DRepKeyHash,
|
|
906
|
+
hash: drepKeyHash
|
|
907
|
+
}, governanceActionId, vote, anchor);
|
|
908
|
+
}
|
|
909
|
+
function _voteScriptDRep(drepScriptHash, governanceActionId, vote, anchor, redeemer, script_or_ref) {
|
|
910
|
+
return _vote({
|
|
911
|
+
kind: cardano_ledger_ts_1.VoterKind.DRepScript,
|
|
912
|
+
hash: drepScriptHash
|
|
913
|
+
}, governanceActionId, vote, anchor, redeemer, script_or_ref);
|
|
914
|
+
}
|
|
915
|
+
function _voteConstitutionalComittee(memberKeyHash, governanceActionId, vote, anchor) {
|
|
916
|
+
return _vote({
|
|
917
|
+
kind: cardano_ledger_ts_1.VoterKind.ConstitutionalCommitteKeyHash,
|
|
918
|
+
hash: memberKeyHash
|
|
919
|
+
}, governanceActionId, vote, anchor);
|
|
920
|
+
}
|
|
921
|
+
function _voteScriptConstitutionalComittee(memberScriptHash, governanceActionId, vote, anchor, redeemer, script_or_ref) {
|
|
922
|
+
return _vote({
|
|
923
|
+
kind: cardano_ledger_ts_1.VoterKind.ConstitutionalCommitteScript,
|
|
924
|
+
hash: memberScriptHash
|
|
925
|
+
}, governanceActionId, vote, anchor, redeemer, script_or_ref);
|
|
926
|
+
}
|
|
927
|
+
function _voteStakePool(poolId, governanceActionId, vote, anchor) {
|
|
928
|
+
return _vote({
|
|
929
|
+
kind: cardano_ledger_ts_1.VoterKind.StakingPoolKeyHash,
|
|
930
|
+
hash: poolId
|
|
931
|
+
}, governanceActionId, vote, anchor);
|
|
932
|
+
}
|
|
933
|
+
function __propose(proposal, redeemer, script_or_ref) {
|
|
934
|
+
if (!Array.isArray(buildArgs.proposalProcedures))
|
|
935
|
+
buildArgs.proposalProcedures = [];
|
|
936
|
+
buildArgs.proposalProcedures.push({
|
|
937
|
+
proposalProcedure: proposal,
|
|
938
|
+
script: redeemer === undefined ? undefined :
|
|
939
|
+
(0, cardano_ledger_ts_1.isIUTxO)(script_or_ref) ? {
|
|
940
|
+
ref: script_or_ref,
|
|
941
|
+
redeemer: redeemer
|
|
942
|
+
} : ((script_or_ref instanceof cardano_ledger_ts_1.Script) ? {
|
|
943
|
+
inline: script_or_ref,
|
|
944
|
+
redeemer: redeemer
|
|
945
|
+
} : undefined)
|
|
946
|
+
});
|
|
947
|
+
var _proposalProcedure = buildArgs.proposalProcedures[buildArgs.proposalProcedures.length - 1];
|
|
948
|
+
var govActionRef = (0, cardano_ledger_ts_1.isIProposalProcedure)(_proposalProcedure) ?
|
|
949
|
+
_proposalProcedure.govAction :
|
|
950
|
+
_proposalProcedure.proposalProcedure.govAction;
|
|
951
|
+
if ((govActionRef.govActionType === cardano_ledger_ts_1.GovActionType.ParameterChange ||
|
|
952
|
+
govActionRef.govActionType === cardano_ledger_ts_1.GovActionType.TreasuryWithdrawals) &&
|
|
953
|
+
govActionRef.policyHash === undefined) {
|
|
954
|
+
if ((0, cardano_ledger_ts_1.isIUTxO)(script_or_ref) &&
|
|
955
|
+
script_or_ref.resolved.refScript instanceof cardano_ledger_ts_1.Script) {
|
|
956
|
+
govActionRef.policyHash = script_or_ref.resolved.refScript.hash;
|
|
957
|
+
}
|
|
958
|
+
else if (script_or_ref instanceof cardano_ledger_ts_1.Script) {
|
|
959
|
+
govActionRef.policyHash = script_or_ref.hash;
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
return self;
|
|
963
|
+
}
|
|
964
|
+
function _propose(proposal, redeemer, script_or_ref) {
|
|
965
|
+
redeemer = redeemer && (0, CanBeData_1.canBeData)(redeemer) ? (0, CanBeData_1.forceData)(redeemer) : undefined;
|
|
966
|
+
if ((0, CanResolveToUTxO_1.shouldResolveToUTxO)(script_or_ref)) {
|
|
967
|
+
tasks.push({
|
|
968
|
+
kind: 0 /* TxBuilderTaskKind.ResolveUTxO */,
|
|
969
|
+
arg: script_or_ref,
|
|
970
|
+
onResolved: function (ref) {
|
|
971
|
+
__propose(proposal, redeemer, ref);
|
|
972
|
+
}
|
|
973
|
+
});
|
|
974
|
+
return self;
|
|
975
|
+
}
|
|
976
|
+
else
|
|
977
|
+
return __propose(proposal, redeemer, script_or_ref);
|
|
978
|
+
}
|
|
979
|
+
function _proposeParametersChanges(changes, procedureInfos, govActionId, redeemer, script_or_ref) {
|
|
980
|
+
return _propose(__assign(__assign({}, procedureInfos), { govAction: {
|
|
981
|
+
govActionType: cardano_ledger_ts_1.GovActionType.ParameterChange,
|
|
982
|
+
protocolParamsUpdate: changes,
|
|
983
|
+
govActionId: govActionId ? (0, cardano_ledger_ts_1.forceTxOutRef)(govActionId) : undefined,
|
|
984
|
+
// policyHash // script hash if any specified
|
|
985
|
+
} }), redeemer, script_or_ref);
|
|
986
|
+
}
|
|
987
|
+
function _proposeHardForkInitiation(nextProtocolVersion, procedureInfos, govActionId, redeemer, script_or_ref) {
|
|
988
|
+
return _propose(__assign(__assign({}, procedureInfos), { govAction: {
|
|
989
|
+
govActionType: cardano_ledger_ts_1.GovActionType.InitHardFork,
|
|
990
|
+
protocolVersion: nextProtocolVersion,
|
|
991
|
+
govActionId: govActionId ? (0, cardano_ledger_ts_1.forceTxOutRef)(govActionId) : undefined,
|
|
992
|
+
} }), redeemer, script_or_ref);
|
|
993
|
+
}
|
|
994
|
+
function _proposeTreasuryWithdrawal(withdrawals, procedureInfos, redeemer, script_or_ref) {
|
|
995
|
+
return _propose(__assign(__assign({}, procedureInfos), { govAction: {
|
|
996
|
+
govActionType: cardano_ledger_ts_1.GovActionType.TreasuryWithdrawals,
|
|
997
|
+
withdrawals: withdrawals,
|
|
998
|
+
// policyHash // script hash if any specified
|
|
999
|
+
} }), redeemer, script_or_ref);
|
|
1000
|
+
}
|
|
1001
|
+
function _proposeNoConfidence(procedureInfos, govActionId, redeemer, script_or_ref) {
|
|
1002
|
+
return _propose(__assign(__assign({}, procedureInfos), { govAction: {
|
|
1003
|
+
govActionType: cardano_ledger_ts_1.GovActionType.NoConfidence,
|
|
1004
|
+
govActionId: govActionId ? (0, cardano_ledger_ts_1.forceTxOutRef)(govActionId) : undefined,
|
|
1005
|
+
// policyHash // script hash if any specified
|
|
1006
|
+
} }), redeemer, script_or_ref);
|
|
1007
|
+
}
|
|
1008
|
+
function _proposeComitteeUpdate(toRemove, toAdd, threshold, procedureInfos, govActionId, redeemer, script_or_ref) {
|
|
1009
|
+
return _propose(__assign(__assign({}, procedureInfos), { govAction: {
|
|
1010
|
+
govActionType: cardano_ledger_ts_1.GovActionType.UpdateCommittee,
|
|
1011
|
+
toRemove: toRemove,
|
|
1012
|
+
toAdd: toAdd,
|
|
1013
|
+
threshold: threshold,
|
|
1014
|
+
govActionId: govActionId ? (0, cardano_ledger_ts_1.forceTxOutRef)(govActionId) : undefined,
|
|
1015
|
+
} }), redeemer, script_or_ref);
|
|
1016
|
+
}
|
|
1017
|
+
function _proposeNewConstitution(constitution, procedureInfos, govActionId, redeemer, script_or_ref) {
|
|
1018
|
+
return _propose(__assign(__assign({}, procedureInfos), { govAction: {
|
|
1019
|
+
govActionType: cardano_ledger_ts_1.GovActionType.NewConstitution,
|
|
1020
|
+
constitution: constitution,
|
|
1021
|
+
govActionId: govActionId ? (0, cardano_ledger_ts_1.forceTxOutRef)(govActionId) : undefined,
|
|
1022
|
+
} }), redeemer, script_or_ref);
|
|
1023
|
+
}
|
|
1024
|
+
function _proposeInfos(procedureInfos, redeemer, script_or_ref) {
|
|
1025
|
+
return _propose(__assign(__assign({}, procedureInfos), { govAction: {
|
|
1026
|
+
govActionType: cardano_ledger_ts_1.GovActionType.Info,
|
|
1027
|
+
} }), redeemer, script_or_ref);
|
|
1028
|
+
}
|
|
1029
|
+
function _build() {
|
|
1030
|
+
var _a, _b, _c, _d;
|
|
1031
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1032
|
+
function resolveUtxos(_tasks) {
|
|
1033
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1034
|
+
var utxosToFind, uLen, resolvedUtxos, iLen, _tasks_1, _tasks_1_1, arg, _a, _b, _c, _d, datumHashesToResolve, resolvedDatums, resolvedDatums_1, resolvedDatums_1_1, _e, hash, datum, forced, _loop_1, resolvedUtxos_1, resolvedUtxos_1_1, u;
|
|
1035
|
+
var e_5, _f, e_6, _g, e_7, _h;
|
|
1036
|
+
return __generator(this, function (_j) {
|
|
1037
|
+
switch (_j.label) {
|
|
1038
|
+
case 0:
|
|
1039
|
+
utxosToFind = new Array(_tasks.length);
|
|
1040
|
+
uLen = 0;
|
|
1041
|
+
resolvedUtxos = new Array(_tasks.length);
|
|
1042
|
+
iLen = 0;
|
|
1043
|
+
try {
|
|
1044
|
+
for (_tasks_1 = __values(_tasks), _tasks_1_1 = _tasks_1.next(); !_tasks_1_1.done; _tasks_1_1 = _tasks_1.next()) {
|
|
1045
|
+
arg = _tasks_1_1.value.arg;
|
|
1046
|
+
if (arg instanceof cardano_ledger_ts_1.UTxO)
|
|
1047
|
+
resolvedUtxos[iLen++] = arg;
|
|
1048
|
+
else if ((0, cardano_ledger_ts_1.isIUTxO)(arg))
|
|
1049
|
+
resolvedUtxos[iLen++] = new cardano_ledger_ts_1.UTxO(arg);
|
|
1050
|
+
else
|
|
1051
|
+
utxosToFind[uLen++] = arg;
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
1055
|
+
finally {
|
|
1056
|
+
try {
|
|
1057
|
+
if (_tasks_1_1 && !_tasks_1_1.done && (_f = _tasks_1.return)) _f.call(_tasks_1);
|
|
1058
|
+
}
|
|
1059
|
+
finally { if (e_5) throw e_5.error; }
|
|
1060
|
+
}
|
|
1061
|
+
utxosToFind.length = uLen;
|
|
1062
|
+
resolvedUtxos.length = iLen;
|
|
1063
|
+
if (!(uLen > 0)) return [3 /*break*/, 2];
|
|
1064
|
+
if (typeof provider.resolveUtxos !== "function") {
|
|
1065
|
+
throw new Error("some unresolved utxos where used and the provider is missing the 'resolveUtxos' method to resolve them");
|
|
1066
|
+
}
|
|
1067
|
+
_b = (_a = resolvedUtxos.push).apply;
|
|
1068
|
+
_c = [resolvedUtxos];
|
|
1069
|
+
_d = [[]];
|
|
1070
|
+
return [4 /*yield*/, provider.resolveUtxos(utxosToFind)];
|
|
1071
|
+
case 1:
|
|
1072
|
+
_b.apply(_a, _c.concat([__spreadArray.apply(void 0, _d.concat([__read.apply(void 0, [(_j.sent())]), false]))]));
|
|
1073
|
+
_j.label = 2;
|
|
1074
|
+
case 2:
|
|
1075
|
+
datumHashesToResolve = resolvedUtxos.filter(function (u) {
|
|
1076
|
+
var _a, _b;
|
|
1077
|
+
var dat = (_b = (_a = u.resolved.datum) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "undefined";
|
|
1078
|
+
return (bytestring_1.ByteString.isValidHexValue(dat) &&
|
|
1079
|
+
dat.length === 64 && // 32 * 2
|
|
1080
|
+
!_datumsHashes.includes(dat));
|
|
1081
|
+
})
|
|
1082
|
+
.map(function (u) { return u.resolved.datum; });
|
|
1083
|
+
if (!(datumHashesToResolve.length > 0)) return [3 /*break*/, 4];
|
|
1084
|
+
if (typeof provider.resolveDatumHashes !== "function") {
|
|
1085
|
+
throw new Error("provider is missing 'resolveDatumHashes' function but some unresolved datum hashes where found");
|
|
1086
|
+
}
|
|
1087
|
+
return [4 /*yield*/, provider.resolveDatumHashes(datumHashesToResolve)];
|
|
1088
|
+
case 3:
|
|
1089
|
+
resolvedDatums = _j.sent();
|
|
1090
|
+
try {
|
|
1091
|
+
for (resolvedDatums_1 = __values(resolvedDatums), resolvedDatums_1_1 = resolvedDatums_1.next(); !resolvedDatums_1_1.done; resolvedDatums_1_1 = resolvedDatums_1.next()) {
|
|
1092
|
+
_e = resolvedDatums_1_1.value, hash = _e.hash, datum = _e.datum;
|
|
1093
|
+
try {
|
|
1094
|
+
forced = (0, CanBeData_1.forceData)(datum);
|
|
1095
|
+
_saveResolvedDatum(forced, hash.toString());
|
|
1096
|
+
}
|
|
1097
|
+
catch (_k) { }
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
1101
|
+
finally {
|
|
1102
|
+
try {
|
|
1103
|
+
if (resolvedDatums_1_1 && !resolvedDatums_1_1.done && (_g = resolvedDatums_1.return)) _g.call(resolvedDatums_1);
|
|
1104
|
+
}
|
|
1105
|
+
finally { if (e_6) throw e_6.error; }
|
|
1106
|
+
}
|
|
1107
|
+
_j.label = 4;
|
|
1108
|
+
case 4:
|
|
1109
|
+
_loop_1 = function (u) {
|
|
1110
|
+
var resolvedIdx = _tasks.findIndex(function (t) { return (0, cardano_ledger_ts_1.forceTxOutRefStr)(t.arg) === u.utxoRef.toString(); });
|
|
1111
|
+
if (resolvedIdx < 0) {
|
|
1112
|
+
return "continue";
|
|
1113
|
+
}
|
|
1114
|
+
var task = void 0;
|
|
1115
|
+
if (resolvedIdx === 0) {
|
|
1116
|
+
task = _tasks.shift();
|
|
1117
|
+
}
|
|
1118
|
+
else {
|
|
1119
|
+
task = _tasks[resolvedIdx];
|
|
1120
|
+
// remove in-place
|
|
1121
|
+
void _tasks.splice(resolvedIdx, 1);
|
|
1122
|
+
}
|
|
1123
|
+
task.onResolved(u);
|
|
1124
|
+
};
|
|
1125
|
+
try {
|
|
1126
|
+
for (resolvedUtxos_1 = __values(resolvedUtxos), resolvedUtxos_1_1 = resolvedUtxos_1.next(); !resolvedUtxos_1_1.done; resolvedUtxos_1_1 = resolvedUtxos_1.next()) {
|
|
1127
|
+
u = resolvedUtxos_1_1.value;
|
|
1128
|
+
_loop_1(u);
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
1132
|
+
finally {
|
|
1133
|
+
try {
|
|
1134
|
+
if (resolvedUtxos_1_1 && !resolvedUtxos_1_1.done && (_h = resolvedUtxos_1.return)) _h.call(resolvedUtxos_1);
|
|
1135
|
+
}
|
|
1136
|
+
finally { if (e_7) throw e_7.error; }
|
|
1137
|
+
}
|
|
1138
|
+
// should already be 0 but just to be sure;
|
|
1139
|
+
_tasks.length = 0;
|
|
1140
|
+
return [2 /*return*/];
|
|
1141
|
+
}
|
|
1142
|
+
});
|
|
1143
|
+
});
|
|
1144
|
+
}
|
|
1145
|
+
var otherTasks, oLen, utxoTasks, uLen, insTasks, iLen, tasks_1, tasks_1_1, task, hasUTxOTasks, tasks_2, tasks_2_1, task, _e, _f, _g, kind, getPromise, _h, _j, _k, _changeInput, tx;
|
|
1146
|
+
var e_3, _l, e_4, _m, _o;
|
|
1147
|
+
return __generator(this, function (_p) {
|
|
1148
|
+
switch (_p.label) {
|
|
1149
|
+
case 0:
|
|
1150
|
+
otherTasks = new Array(tasks.length);
|
|
1151
|
+
oLen = 0;
|
|
1152
|
+
utxoTasks = new Array(tasks.length);
|
|
1153
|
+
uLen = 0;
|
|
1154
|
+
insTasks = new Array(tasks.length);
|
|
1155
|
+
iLen = 0;
|
|
1156
|
+
try {
|
|
1157
|
+
// collect tasks first time
|
|
1158
|
+
for (tasks_1 = __values(tasks), tasks_1_1 = tasks_1.next(); !tasks_1_1.done; tasks_1_1 = tasks_1.next()) {
|
|
1159
|
+
task = tasks_1_1.value;
|
|
1160
|
+
switch (task.kind) {
|
|
1161
|
+
case 0 /* TxBuilderTaskKind.ResolveUTxO */:
|
|
1162
|
+
utxoTasks[uLen++] = task;
|
|
1163
|
+
break;
|
|
1164
|
+
case 1 /* TxBuilderTaskKind.ResolveTxIn */:
|
|
1165
|
+
insTasks[iLen++] = task;
|
|
1166
|
+
break;
|
|
1167
|
+
default:
|
|
1168
|
+
otherTasks[oLen++] = task;
|
|
1169
|
+
break;
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
1174
|
+
finally {
|
|
1175
|
+
try {
|
|
1176
|
+
if (tasks_1_1 && !tasks_1_1.done && (_l = tasks_1.return)) _l.call(tasks_1);
|
|
1177
|
+
}
|
|
1178
|
+
finally { if (e_3) throw e_3.error; }
|
|
1179
|
+
}
|
|
1180
|
+
tasks.length = 0;
|
|
1181
|
+
utxoTasks.length = uLen;
|
|
1182
|
+
insTasks.length = iLen;
|
|
1183
|
+
otherTasks.length = oLen;
|
|
1184
|
+
_setCollateralTask && utxoTasks.push(_setCollateralTask);
|
|
1185
|
+
return [4 /*yield*/, resolveUtxos(utxoTasks)];
|
|
1186
|
+
case 1:
|
|
1187
|
+
_p.sent();
|
|
1188
|
+
hasUTxOTasks = utxoTasks.length > 0;
|
|
1189
|
+
_p.label = 2;
|
|
1190
|
+
case 2:
|
|
1191
|
+
try {
|
|
1192
|
+
// collect any other thasks
|
|
1193
|
+
for (tasks_2 = (e_4 = void 0, __values(tasks)), tasks_2_1 = tasks_2.next(); !tasks_2_1.done; tasks_2_1 = tasks_2.next()) {
|
|
1194
|
+
task = tasks_2_1.value;
|
|
1195
|
+
switch (task.kind) {
|
|
1196
|
+
case 0 /* TxBuilderTaskKind.ResolveUTxO */:
|
|
1197
|
+
utxoTasks.push(task);
|
|
1198
|
+
break;
|
|
1199
|
+
case 1 /* TxBuilderTaskKind.ResolveTxIn */:
|
|
1200
|
+
insTasks.push(task);
|
|
1201
|
+
break;
|
|
1202
|
+
default:
|
|
1203
|
+
otherTasks.push(task);
|
|
1204
|
+
break;
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
1209
|
+
finally {
|
|
1210
|
+
try {
|
|
1211
|
+
if (tasks_2_1 && !tasks_2_1.done && (_m = tasks_2.return)) _m.call(tasks_2);
|
|
1212
|
+
}
|
|
1213
|
+
finally { if (e_4) throw e_4.error; }
|
|
1214
|
+
}
|
|
1215
|
+
// clear all tasks
|
|
1216
|
+
tasks.length = 0;
|
|
1217
|
+
hasUTxOTasks = utxoTasks.length > 0;
|
|
1218
|
+
_e = hasUTxOTasks;
|
|
1219
|
+
if (!_e) return [3 /*break*/, 4];
|
|
1220
|
+
return [4 /*yield*/, resolveUtxos(utxoTasks)];
|
|
1221
|
+
case 3:
|
|
1222
|
+
_e = (_p.sent());
|
|
1223
|
+
_p.label = 4;
|
|
1224
|
+
case 4:
|
|
1225
|
+
_e;
|
|
1226
|
+
_p.label = 5;
|
|
1227
|
+
case 5:
|
|
1228
|
+
if (hasUTxOTasks) return [3 /*break*/, 2];
|
|
1229
|
+
_p.label = 6;
|
|
1230
|
+
case 6:
|
|
1231
|
+
_f = insTasks.length > 0;
|
|
1232
|
+
if (!_f) return [3 /*break*/, 8];
|
|
1233
|
+
return [4 /*yield*/, resolveUtxos(insTasks)];
|
|
1234
|
+
case 7:
|
|
1235
|
+
_f = (_p.sent());
|
|
1236
|
+
_p.label = 8;
|
|
1237
|
+
case 8:
|
|
1238
|
+
_f;
|
|
1239
|
+
_p.label = 9;
|
|
1240
|
+
case 9:
|
|
1241
|
+
if (!(otherTasks.length > 0)) return [3 /*break*/, 13];
|
|
1242
|
+
_g = otherTasks.pop(), kind = _g.kind, getPromise = _g.getPromise;
|
|
1243
|
+
if (!((kind === 2 /* TxBuilderTaskKind.ValidFromPOSIX */ || kind === 3 /* TxBuilderTaskKind.ValidToPOSIX */) &&
|
|
1244
|
+
!(0, GenesisInfos_1.isGenesisInfos)(txBuilder.genesisInfos))) return [3 /*break*/, 11];
|
|
1245
|
+
if (typeof provider.getGenesisInfos !== "function") {
|
|
1246
|
+
throw new Error("POSIX operatoins do require either a tx builder with genesis infos or a provider that can fetch them; but none is present");
|
|
1247
|
+
}
|
|
1248
|
+
_j = (_h = txBuilder).setGenesisInfos;
|
|
1249
|
+
return [4 /*yield*/, provider.getGenesisInfos()];
|
|
1250
|
+
case 10:
|
|
1251
|
+
_j.apply(_h, [_p.sent()]);
|
|
1252
|
+
_p.label = 11;
|
|
1253
|
+
case 11: return [4 /*yield*/, getPromise()];
|
|
1254
|
+
case 12:
|
|
1255
|
+
_p.sent();
|
|
1256
|
+
return [3 /*break*/, 9];
|
|
1257
|
+
case 13:
|
|
1258
|
+
;
|
|
1259
|
+
if (!!buildArgs.changeAddress) return [3 /*break*/, 16];
|
|
1260
|
+
if (!(typeof provider.getChangeAddress === "function")) return [3 /*break*/, 15];
|
|
1261
|
+
_k = buildArgs;
|
|
1262
|
+
return [4 /*yield*/, provider.getChangeAddress()];
|
|
1263
|
+
case 14:
|
|
1264
|
+
_k.changeAddress = _p.sent();
|
|
1265
|
+
return [3 /*break*/, 16];
|
|
1266
|
+
case 15:
|
|
1267
|
+
if (!Array.isArray(buildArgs.inputs) ||
|
|
1268
|
+
buildArgs.inputs.length === 0) {
|
|
1269
|
+
throw new Error("can't deduce change Address; missing inputs");
|
|
1270
|
+
}
|
|
1271
|
+
_changeInput = (_a = buildArgs.inputs) === null || _a === void 0 ? void 0 : _a.find(function (_in) {
|
|
1272
|
+
var addr = ((0, cardano_ledger_ts_1.isIUTxO)(_in) ? _in : _in.utxo).resolved.address;
|
|
1273
|
+
return (addr instanceof cardano_ledger_ts_1.Address ?
|
|
1274
|
+
addr : cardano_ledger_ts_1.Address.fromString(addr)).paymentCreds.type === cardano_ledger_ts_1.CredentialType.KeyHash;
|
|
1275
|
+
});
|
|
1276
|
+
buildArgs.changeAddress =
|
|
1277
|
+
(_b = ((0, cardano_ledger_ts_1.isIUTxO)(_changeInput) ?
|
|
1278
|
+
_changeInput :
|
|
1279
|
+
_changeInput === null || _changeInput === void 0 ? void 0 : _changeInput.utxo)) === null || _b === void 0 ? void 0 : _b.resolved.address;
|
|
1280
|
+
if (!buildArgs.changeAddress) {
|
|
1281
|
+
console.log(buildArgs.outputs);
|
|
1282
|
+
console.log(Array.isArray(buildArgs.outputs));
|
|
1283
|
+
if (Array.isArray(buildArgs.outputs)) {
|
|
1284
|
+
buildArgs.changeAddress = (_d = (_c = buildArgs.outputs) === null || _c === void 0 ? void 0 : _c.find(function (out) { return (0, forceAddr_1.forceAddr)(out.address).paymentCreds.type === cardano_ledger_ts_1.CredentialType.KeyHash; })) === null || _d === void 0 ? void 0 : _d.address;
|
|
1285
|
+
}
|
|
1286
|
+
else
|
|
1287
|
+
throw new Error("can't deduce change Address; only script inputs");
|
|
1288
|
+
if (!buildArgs.changeAddress) {
|
|
1289
|
+
throw new Error("can't deduce change Address; only script inputs and scripts outputs");
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
1292
|
+
_p.label = 16;
|
|
1293
|
+
case 16:
|
|
1294
|
+
if (refUtxos.length > 0) {
|
|
1295
|
+
if (!Array.isArray(buildArgs.readonlyRefInputs)) {
|
|
1296
|
+
buildArgs.readonlyRefInputs = [];
|
|
1297
|
+
}
|
|
1298
|
+
void (_o = buildArgs.readonlyRefInputs).push.apply(_o, __spreadArray([], __read(refUtxos), false));
|
|
1299
|
+
}
|
|
1300
|
+
return [4 /*yield*/, txBuilder.build(buildArgs)];
|
|
1301
|
+
case 17:
|
|
1302
|
+
tx = _p.sent();
|
|
1303
|
+
self.reset();
|
|
1304
|
+
return [2 /*return*/, tx];
|
|
1305
|
+
}
|
|
1306
|
+
});
|
|
1307
|
+
});
|
|
1308
|
+
}
|
|
1309
|
+
;
|
|
1310
|
+
Object.defineProperties(this, {
|
|
1311
|
+
addSigner: __assign({ value: _addRequiredSigner }, readonlyValueDescriptor),
|
|
1312
|
+
addRequiredSigner: __assign({ value: _addRequiredSigner }, readonlyValueDescriptor),
|
|
1313
|
+
addSignerKey: __assign({ value: _addRequiredSignerKey }, readonlyValueDescriptor),
|
|
1314
|
+
addRequiredSignerKey: __assign({ value: _addRequiredSignerKey }, readonlyValueDescriptor),
|
|
1315
|
+
attachMetadata: __assign({ value: _attachMetadata }, readonlyValueDescriptor),
|
|
1316
|
+
setMetadata: __assign({ value: _attachMetadata }, readonlyValueDescriptor),
|
|
1317
|
+
attachMetadataJson: __assign({ value: _attachMetadataJson }, readonlyValueDescriptor),
|
|
1318
|
+
attachMetadataJsonWithConversion: __assign({ value: _attachMetadataJsonWithConversion }, readonlyValueDescriptor),
|
|
1319
|
+
setChangeAddress: __assign({ value: _setChangeAddress }, readonlyValueDescriptor),
|
|
1320
|
+
validFrom: __assign({ value: _validFromPOSIX }, readonlyValueDescriptor),
|
|
1321
|
+
validFromSlot: __assign({ value: _validFromSlot }, readonlyValueDescriptor),
|
|
1322
|
+
invalidBeforeSlot: __assign({ value: _validFromSlot }, readonlyValueDescriptor),
|
|
1323
|
+
validTo: __assign({ value: _validToPOSIX }, readonlyValueDescriptor),
|
|
1324
|
+
validToSlot: __assign({ value: _validToSlot }, readonlyValueDescriptor),
|
|
1325
|
+
invalidAfterSlot: __assign({ value: _validToSlot }, readonlyValueDescriptor),
|
|
1326
|
+
delegateTo: __assign({ value: _delegateTo }, readonlyValueDescriptor),
|
|
1327
|
+
deregisterStake: __assign({ value: _deregisterStake }, readonlyValueDescriptor),
|
|
1328
|
+
mintAssets: __assign({ value: _mintAssets }, readonlyValueDescriptor),
|
|
1329
|
+
registerStake: __assign({ value: _registerStake }, readonlyValueDescriptor),
|
|
1330
|
+
registerStakeAddress: __assign({ value: _registerStake }, readonlyValueDescriptor),
|
|
1331
|
+
registerPool: __assign({ value: _registerPool }, readonlyValueDescriptor),
|
|
1332
|
+
retirePool: __assign({ value: _retirePool }, readonlyValueDescriptor),
|
|
1333
|
+
withdraw: __assign({ value: _withdraw }, readonlyValueDescriptor),
|
|
1334
|
+
attachCertificateValidator: __assign({ value: _addAviableScript }, readonlyValueDescriptor),
|
|
1335
|
+
attachMintingValidator: __assign({ value: _addAviableScript }, readonlyValueDescriptor),
|
|
1336
|
+
attachSpendingValidator: __assign({ value: _addAviableScript }, readonlyValueDescriptor),
|
|
1337
|
+
attachWithdrawalValidator: __assign({ value: _addAviableScript }, readonlyValueDescriptor),
|
|
1338
|
+
attachValidator: __assign({ value: _addAviableScript }, readonlyValueDescriptor),
|
|
1339
|
+
readFrom: __assign({ value: _referenceUTxOs }, readonlyValueDescriptor),
|
|
1340
|
+
referenceUtxos: __assign({ value: _referenceUTxOs }, readonlyValueDescriptor),
|
|
1341
|
+
collectFrom: __assign({ value: _addInputs }, readonlyValueDescriptor),
|
|
1342
|
+
addInputs: __assign({ value: _addInputs }, readonlyValueDescriptor),
|
|
1343
|
+
addInput: __assign({ value: _addSingleInput }, readonlyValueDescriptor),
|
|
1344
|
+
payTo: __assign({ value: _payTo }, readonlyValueDescriptor),
|
|
1345
|
+
setCollateral: __assign({ value: _setCollateral }, readonlyValueDescriptor),
|
|
1346
|
+
setCollateralAmount: __assign({ value: _setCollateralAmount }, readonlyValueDescriptor),
|
|
1347
|
+
vote: __assign({ value: _vote }, readonlyValueDescriptor),
|
|
1348
|
+
voteDRep: __assign({ value: _voteDRep }, readonlyValueDescriptor),
|
|
1349
|
+
voteScriptDRep: __assign({ value: _voteScriptDRep }, readonlyValueDescriptor),
|
|
1350
|
+
voteConstitutionalComittee: __assign({ value: _voteConstitutionalComittee }, readonlyValueDescriptor),
|
|
1351
|
+
voteScriptConstitutionalComittee: __assign({ value: _voteScriptConstitutionalComittee }, readonlyValueDescriptor),
|
|
1352
|
+
voteStakePool: __assign({ value: _voteStakePool }, readonlyValueDescriptor),
|
|
1353
|
+
propose: __assign({ value: _propose }, readonlyValueDescriptor),
|
|
1354
|
+
proposeParametersChanges: __assign({ value: _proposeParametersChanges }, readonlyValueDescriptor),
|
|
1355
|
+
proposeHardForkInitiation: __assign({ value: _proposeHardForkInitiation }, readonlyValueDescriptor),
|
|
1356
|
+
proposeTreasuryWithdrawal: __assign({ value: _proposeTreasuryWithdrawal }, readonlyValueDescriptor),
|
|
1357
|
+
proposeNoConfidence: __assign({ value: _proposeNoConfidence }, readonlyValueDescriptor),
|
|
1358
|
+
proposeComitteeUpdate: __assign({ value: _proposeComitteeUpdate }, readonlyValueDescriptor),
|
|
1359
|
+
proposeNewConstitution: __assign({ value: _proposeNewConstitution }, readonlyValueDescriptor),
|
|
1360
|
+
proposeInfos: __assign({ value: _proposeInfos }, readonlyValueDescriptor),
|
|
1361
|
+
build: __assign({ value: _build }, readonlyValueDescriptor)
|
|
1362
|
+
});
|
|
1363
|
+
}
|
|
1364
|
+
return TxBuilderRunner;
|
|
1365
|
+
}());
|
|
1366
|
+
exports.TxBuilderRunner = TxBuilderRunner;
|