@cardano-sdk/e2e 0.28.0 → 0.28.1
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/CHANGELOG.md +6 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/util/handle-util.d.ts +1 -1
- package/dist/cjs/util/handle-util.d.ts.map +1 -1
- package/dist/cjs/util/handle-util.js +30 -13
- package/dist/cjs/util/handle-util.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/util/handle-util.d.ts +1 -1
- package/dist/esm/util/handle-util.d.ts.map +1 -1
- package/dist/esm/util/handle-util.js +30 -13
- package/dist/esm/util/handle-util.js.map +1 -1
- package/package.json +19 -19
- package/src/util/handle-util.ts +74 -13
- package/test/wallet/PersonalWallet/handle.test.ts +4 -4
- package/test/wallet/PersonalWallet/phase2validation.test.ts +5 -1
- package/test/wallet/PersonalWallet/unspendableUtxos.test.ts +2 -1
|
@@ -28,6 +28,6 @@ export declare const createHandlePolicy: (keyAgent: KeyAgent) => Promise<{
|
|
|
28
28
|
export declare const handleNames: Handle[];
|
|
29
29
|
export declare const getHandlePolicyId: (pathToSdkIpc: string) => Promise<Cardano.PolicyId>;
|
|
30
30
|
export declare const coinsRequiredByHandleMint = 10000000n;
|
|
31
|
-
export declare const mint: (wallet: ObservableWallet, keyAgent: KeyAgent, tokens: Cardano.TokenMap, txMetadatum: Cardano.Metadatum, datum?: Cardano.PlutusData) => Promise<void>;
|
|
31
|
+
export declare const mint: (wallet: ObservableWallet, keyAgent: KeyAgent, tokens: Cardano.TokenMap, txMetadatum: Cardano.Metadatum, datum?: Cardano.PlutusData, isNFTHandle?: boolean) => Promise<void>;
|
|
32
32
|
export declare const mintCIP25andCIP68Handles: (wallet: ObservableWallet, keyAgent: KeyAgent, policyId: Cardano.PolicyId) => Promise<void>;
|
|
33
33
|
//# sourceMappingURL=handle-util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-util.d.ts","sourceRoot":"","sources":["../../../src/util/handle-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAwD,MAAM,mBAAmB,CAAC;AACjH,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,QAAQ,EAAW,IAAI,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"handle-util.d.ts","sourceRoot":"","sources":["../../../src/util/handle-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAwD,MAAM,mBAAmB,CAAC;AACjH,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,QAAQ,EAAW,IAAI,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAkC3F,oBAAY,cAAc,GAAG;IAC3B,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,aAAa,EAAE,EAAE,CAAC;YAClB,IAAI,EAAE;gBACJ,cAAc,EAAE,MAAM,CAAC;gBACvB,EAAE,EAAE,MAAM,CAAC;gBACX,MAAM,EAAE,MAAM,CAAC;gBACf,UAAU,EAAE,MAAM,CAAC;gBACnB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC;YACF,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,oBAAoB,mBAAoB,MAAM,eAAe,MAAM,EAAE,KAAG,cAmBpF,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAoB,QAAQ;;;;EAe1D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,EAAkE,CAAC;AAEnG,eAAO,MAAM,iBAAiB,iBAAwB,MAAM,KAAG,QAAQ,QAAQ,QAAQ,CAKtF,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAAc,CAAC;AAErD,eAAO,MAAM,IAAI,WACP,gBAAgB,YACd,QAAQ,yCAEL,QAAQ,SAAS,UACtB,QAAQ,UAAU,yCA0C3B,CAAC;AAEF,eAAO,MAAM,wBAAwB,WAC3B,gBAAgB,YACd,QAAQ,YACR,QAAQ,QAAQ,kBAsD3B,CAAC"}
|
|
@@ -12,6 +12,9 @@ const promises_1 = require("fs/promises");
|
|
|
12
12
|
const util_2 = require("./util");
|
|
13
13
|
const path_1 = __importDefault(require("path"));
|
|
14
14
|
const handleDatum = core_1.Serialization.PlutusData.fromCbor((0, util_1.HexBlob)('d8799faa446e616d654a24706861726d6572733245696d6167655838697066733a2f2f7a646a37576d6f5a3656793564334b3675714253525a50527a5365625678624c326e315741514e4158336f4c6157655974496d65646961547970654a696d6167652f6a706567426f6700496f675f6e756d6265720046726172697479456261736963466c656e677468094a636861726163746572734f6c6574746572732c6e756d62657273516e756d657269635f6d6f64696669657273404776657273696f6e0101b34862675f696d6167655835697066733a2f2f516d59365869714272394a4e6e75677554527378336f63766b51656d4e4a356943524d6965383577717a39344a6f497066705f696d6167655835697066733a2f2f516d57676a58437856555357507931576d5556336a6f505031735a4d765a3731736f3671793643325a756b52424446706f7274616c404864657369676e65725838697066733a2f2f7a623272686b3278453154755757787448547a6f356774446945784136547276534b69596e6176704552334c66446b6f4b47736f6369616c73404676656e646f72404764656661756c74004e7374616e646172645f696d6167655838697066733a2f2f7a62327268696b435674535a7a4b756935336b76574c387974564374637a67457239424c6a466258423454585578684879536c6173745f7570646174655f61646472657373583901e80fd3030bfb17f25bfee50d2e71c9ece68292915698f955ea6645ea2b7be012268a95ebaefe5305164405df22ce4119a4a3549bbf1cda3d4c76616c6964617465645f6279581c4da965a049dfd15ed1ee19fba6e2974a0b79fc416dd1796a1f97f5e14a696d6167655f686173685820bcd58c0dceea97b717bcbe0edc40b2e65fc2329a4db9ce3716b47b90eb5167de537374616e646172645f696d6167655f686173685820b3d06b8604acc91729e4d10ff5f42da4137cbb6b943291f703eb97761673c9804b7376675f76657273696f6e46312e31352e304c6167726565645f7465726d7340546d6967726174655f7369675f726571756972656400446e7366770045747269616c00497066705f61737365745823e74862a09d17a9cb03174a6bd5fa305b8684475c4c36021591c606e0445030363831364862675f6173736574582c9bdf437b6831d46d92d0db80f19f1b702145e9fdcc43c6264f7a04dc001bc2805468652046726565204f6e65ff')).toCore();
|
|
15
|
+
const handlDatum = core_1.Serialization.PlutusData.fromCbor((0, util_1.HexBlob)('d8799faa446e616d654524686e646c45696d6167655838697066733a2f2f7a623272685a6a4c4a545838615a6d4a7a42424862366b7535446d6e6650674d47375a6d73627162317366736356365970496d65646961547970654a696d6167652f6a706567426f6700496f675f6e756d626572004672617269747946636f6d6d6f6e466c656e677468044a63686172616374657273476c657474657273516e756d657269635f6d6f64696669657273404776657273696f6e0101af4e7374616e646172645f696d6167655838697066733a2f2f7a623272685a6a4c4a545838615a6d4a7a42424862366b7535446d6e6650674d47375a6d7362716231736673635636597046706f7274616c404864657369676e65724047736f6369616c73404676656e646f72404764656661756c7400536c6173745f7570646174655f61646472657373583900f541f0822d4794e6d1ddc3c0d5e932585bfcce2d869b1c2ee05b1dc7c37bace64b57b50a044bbafa593811a6f49c9d8d8c0b187932e2df404c76616c6964617465645f6279581c4da965a049dfd15ed1ee19fba6e2974a0b79fc416dd1796a1f97f5e14a696d6167655f68617368584032646465376163633062376532333931626633326133646537643566313763356365663231633336626432333564636663643738376463663439656661363339537374616e646172645f696d6167655f686173685840326464653761636330623765323339316266333261336465376435663137633563656632316333366264323335646366636437383764636634396566613633394b7376675f76657273696f6e45322e302e314c6167726565645f7465726d7340546d6967726174655f7369675f72657175697265640045747269616c00446e73667700ff')).toCore();
|
|
16
|
+
const subhandlDatum = core_1.Serialization.PlutusData.fromCbor((0, util_1.HexBlob)('d8799faa446e616d65492473756240686e646c45696d6167655838697066733a2f2f7a6232726862426e7a6e4e48716748624a58786d71596a47714663377947314a444e6741664d3534726472455032776366496d65646961547970654a696d6167652f6a706567426f6700496f675f6e756d6265720046726172697479456261736963466c656e677468084a63686172616374657273476c657474657273516e756d657269635f6d6f64696669657273404776657273696f6e0101af4e7374616e646172645f696d6167655838697066733a2f2f7a6232726862426e7a6e4e48716748624a58786d71596a47714663377947314a444e6741664d353472647245503277636646706f7274616c404864657369676e65724047736f6369616c73404676656e646f72404764656661756c7400536c6173745f7570646174655f61646472657373583900f541f0822d4794e6d1ddc3c0d5e932585bfcce2d869b1c2ee05b1dc7c37bace64b57b50a044bbafa593811a6f49c9d8d8c0b187932e2df404c76616c6964617465645f6279581c4da965a049dfd15ed1ee19fba6e2974a0b79fc416dd1796a1f97f5e14a696d6167655f68617368584034333831373362613630333931353466646232643137383763363765633636333863393462643331633835336630643964356166343365626462313864623934537374616e646172645f696d6167655f686173685840343338313733626136303339313534666462326431373837633637656336363338633934626433316338353366306439643561663433656264623138646239344b7376675f76657273696f6e45322e302e314c6167726565645f7465726d7340546d6967726174655f7369675f72657175697265640045747269616c00446e73667700ff')).toCore();
|
|
17
|
+
const virtualhandlDatum = core_1.Serialization.PlutusData.fromCbor((0, util_1.HexBlob)('d8799faf446e616d654d247669727475616c40686e646c45696d6167655838697066733a2f2f7a623272686b52636a5471546e5a387462704635485a474e4c4e355473324554633558477039576264614b415134335472496d65646961547970654a696d6167652f6a706567426f6700496f675f6e756d6265720046726172697479456261736963466c656e6774680c4a63686172616374657273476c657474657273516e756d657269635f6d6f64696669657273404a7375625f7261726974794562617369634a7375625f6c656e677468074e7375625f63686172616374657273476c657474657273557375625f6e756d657269635f6d6f64696669657273404b68616e646c655f74797065517669727475616c5f73756268616e646c654776657273696f6e0101a94e7374616e646172645f696d6167655838697066733a2f2f7a623272686b52636a5471546e5a387462704635485a474e4c4e355473324554633558477039576264614b41513433547246706f7274616c404864657369676e65724047736f6369616c73404676656e646f72404764656661756c7400536c6173745f7570646174655f616464726573735839007ad324c4fb08709dd997f6b2ba7980d5007103a2aa3f7a7eb8b44bc6f1a8e379127b811583070faf74db00d880d45027fe6171b1b69bd9ca4c76616c6964617465645f6279581c4da965a049dfd15ed1ee19fba6e2974a0b79fc416dd1796a1f97f5e1527265736f6c7665645f616464726573736573a1436164615839007ad324c4fb08709dd997f6b2ba7980d5007103a2aa3f7a7eb8b44bc6f1a8e379127b811583070faf74db00d880d45027fe6171b1b69bd9caff')).toCore();
|
|
15
18
|
const createHandleMetadata = (handlePolicyId, handleNames) => {
|
|
16
19
|
const result = {};
|
|
17
20
|
for (const key of handleNames) {
|
|
@@ -50,7 +53,7 @@ const createHandlePolicy = async (keyAgent) => {
|
|
|
50
53
|
return { policyId, policyScript, policySigner };
|
|
51
54
|
};
|
|
52
55
|
exports.createHandlePolicy = createHandlePolicy;
|
|
53
|
-
exports.handleNames = ['handle1', 'handle2'];
|
|
56
|
+
exports.handleNames = ['handle1', 'handle2', 'handl', 'sub@handl', 'virtual@handl'];
|
|
54
57
|
const getHandlePolicyId = async (pathToSdkIpc) => {
|
|
55
58
|
const handleProviderPolicyId = (await (0, promises_1.readFile)(path_1.default.join(pathToSdkIpc, 'handle_policy_ids')))
|
|
56
59
|
.toString('utf8')
|
|
@@ -59,26 +62,28 @@ const getHandlePolicyId = async (pathToSdkIpc) => {
|
|
|
59
62
|
};
|
|
60
63
|
exports.getHandlePolicyId = getHandlePolicyId;
|
|
61
64
|
exports.coinsRequiredByHandleMint = 10000000n;
|
|
62
|
-
const mint = async (wallet, keyAgent, tokens, txMetadatum, datum) => {
|
|
65
|
+
const mint = async (wallet, keyAgent, tokens, txMetadatum, datum, isNFTHandle = true) => {
|
|
63
66
|
const knownAddresses = await (0, rxjs_1.firstValueFrom)(wallet.addresses$);
|
|
64
67
|
const [{ address }] = knownAddresses;
|
|
65
68
|
const { policyScript, policySigner } = await (0, exports.createHandlePolicy)(keyAgent);
|
|
66
69
|
const auxiliaryData = {
|
|
67
70
|
blob: new Map([[721n, txMetadatum]])
|
|
68
71
|
};
|
|
72
|
+
const outputs = new Set();
|
|
73
|
+
if (isNFTHandle) {
|
|
74
|
+
outputs.add({
|
|
75
|
+
address,
|
|
76
|
+
datum,
|
|
77
|
+
value: {
|
|
78
|
+
assets: tokens,
|
|
79
|
+
coins: exports.coinsRequiredByHandleMint
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
69
83
|
const txProps = {
|
|
70
84
|
auxiliaryData,
|
|
71
85
|
mint: tokens,
|
|
72
|
-
outputs
|
|
73
|
-
{
|
|
74
|
-
address,
|
|
75
|
-
datum,
|
|
76
|
-
value: {
|
|
77
|
-
assets: tokens,
|
|
78
|
-
coins: exports.coinsRequiredByHandleMint
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
]),
|
|
86
|
+
outputs,
|
|
82
87
|
witness: { extraSigners: [policySigner], scripts: [policyScript] }
|
|
83
88
|
};
|
|
84
89
|
const unsignedTx = await wallet.initializeTx(txProps);
|
|
@@ -92,10 +97,16 @@ const mint = async (wallet, keyAgent, tokens, txMetadatum, datum) => {
|
|
|
92
97
|
};
|
|
93
98
|
exports.mint = mint;
|
|
94
99
|
const mintCIP25andCIP68Handles = async (wallet, keyAgent, policyId) => {
|
|
95
|
-
const [cip25handle, cip68handle] = exports.handleNames;
|
|
100
|
+
const [cip25handle, cip68handle, parentHandle, subHandle, virtualHandle] = exports.handleNames;
|
|
96
101
|
const decodedCIP68HandleAssetName = core_1.Cardano.AssetName(core_1.util.utf8ToHex(cip68handle));
|
|
97
102
|
const cip68UserTokenAssetId = core_1.Cardano.AssetId.fromParts(policyId, core_1.Asset.AssetNameLabel.encode(decodedCIP68HandleAssetName, core_1.Asset.AssetNameLabelNum.UserNFT));
|
|
98
103
|
const cip68ReferenceTokenAssetId = core_1.Cardano.AssetId.fromParts(policyId, core_1.Asset.AssetNameLabel.encode(decodedCIP68HandleAssetName, core_1.Asset.AssetNameLabelNum.ReferenceNFT));
|
|
104
|
+
const decodedParentHandleAssetName = core_1.Cardano.AssetName(core_1.util.utf8ToHex(parentHandle));
|
|
105
|
+
const cip68ParentHandleAssetId = core_1.Cardano.AssetId.fromParts(policyId, core_1.Asset.AssetNameLabel.encode(decodedParentHandleAssetName, core_1.Asset.AssetNameLabelNum.UserNFT));
|
|
106
|
+
const decodedSubHandleAssetName = core_1.Cardano.AssetName(core_1.util.utf8ToHex(subHandle));
|
|
107
|
+
const cip68SubHandleAssetId = core_1.Cardano.AssetId.fromParts(policyId, core_1.Asset.AssetNameLabel.encode(decodedSubHandleAssetName, core_1.Asset.AssetNameLabelNum.UserNFT));
|
|
108
|
+
const decodedVirtualHandleAssetName = core_1.Cardano.AssetName(core_1.util.utf8ToHex(virtualHandle));
|
|
109
|
+
const cip68VirtualHandleAssetId = core_1.Cardano.AssetId.fromParts(policyId, core_1.Asset.AssetNameLabel.encode(decodedVirtualHandleAssetName, core_1.Asset.AssetNameLabelNum.VirtualHandle));
|
|
99
110
|
const cip25AssetId = core_1.Cardano.AssetId.fromParts(policyId, core_1.Cardano.AssetName(core_1.util.utf8ToHex(cip25handle)));
|
|
100
111
|
const tokens = new Map([
|
|
101
112
|
[cip25AssetId, 1n],
|
|
@@ -104,6 +115,12 @@ const mintCIP25andCIP68Handles = async (wallet, keyAgent, policyId) => {
|
|
|
104
115
|
]);
|
|
105
116
|
const txMetadatum = core_1.metadatum.jsonToMetadatum((0, exports.createHandleMetadata)(policyId, [cip25handle]));
|
|
106
117
|
await (0, exports.mint)(wallet, keyAgent, tokens, txMetadatum, handleDatum);
|
|
118
|
+
const parentHandleTxMetadatum = core_1.metadatum.jsonToMetadatum((0, exports.createHandleMetadata)(policyId, [parentHandle]));
|
|
119
|
+
const subHandleTxMetadatum = core_1.metadatum.jsonToMetadatum((0, exports.createHandleMetadata)(policyId, [subHandle]));
|
|
120
|
+
const virtualHandleTxMetadatum = core_1.metadatum.jsonToMetadatum((0, exports.createHandleMetadata)(policyId, [virtualHandle]));
|
|
121
|
+
await (0, exports.mint)(wallet, keyAgent, new Map([[cip68ParentHandleAssetId, 1n]]), parentHandleTxMetadatum, handlDatum);
|
|
122
|
+
await (0, exports.mint)(wallet, keyAgent, new Map([[cip68SubHandleAssetId, 1n]]), subHandleTxMetadatum, subhandlDatum);
|
|
123
|
+
await (0, exports.mint)(wallet, keyAgent, new Map([[cip68VirtualHandleAssetId, 1n]]), virtualHandleTxMetadatum, virtualhandlDatum, false);
|
|
107
124
|
};
|
|
108
125
|
exports.mintCIP25andCIP68Handles = mintCIP25andCIP68Handles;
|
|
109
126
|
//# sourceMappingURL=handle-util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-util.js","sourceRoot":"","sources":["../../../src/util/handle-util.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAiH;AAEjH,4CAA4C;AAE5C,gEAA2F;AAC3F,+BAAsC;AACtC,0CAAuC;AACvC,iCAA0C;AAC1C,gDAAwB;AAExB,MAAM,WAAW,GAAG,oBAAa,CAAC,UAAU,CAAC,QAAQ,CACnD,IAAA,cAAO,EAEL,4vDAA4vD,CAC7vD,CACF,CAAC,MAAM,EAAE,CAAC;AAqBJ,MAAM,oBAAoB,GAAG,CAAC,cAAsB,EAAE,WAAqB,EAAkB,EAAE;IACpG,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,MAAM,CAAC,GAAG,CAAC,GAAG;YACZ,aAAa,EAAE,EAAE;YACjB,IAAI,EAAE;gBACJ,cAAc,EAAE,OAAO;gBACvB,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,wDAAwD;gBACpE,OAAO,EAAE,CAAC;aACX;YACD,WAAW,EAAE,qBAAqB;YAClC,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,OAAO,EAAE,sBAAsB;SAChC,CAAC;KACH;IACD,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC,CAAC;AAnBW,QAAA,oBAAoB,wBAmB/B;AAEK,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;IAC7D,MAAM,cAAc,GAAG;QACrB,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,wBAAO,CAAC,QAAQ;KACvB,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,IAAI,qBAAiB,CAAC,yBAAyB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC/F,MAAM,YAAY,GAAyB;QACzC,MAAM,EAAE,cAAO,CAAC,UAAU,CAAC,MAAM;QACjC,OAAO;QACP,IAAI,EAAE,cAAO,CAAC,gBAAgB,CAAC,gBAAgB;KAChD,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,2BAAoB,EAAC,YAAY,CAAC,CAAC;IACpD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAClD,CAAC,CAAC;AAfW,QAAA,kBAAkB,sBAe7B;AAEW,QAAA,WAAW,GAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"handle-util.js","sourceRoot":"","sources":["../../../src/util/handle-util.ts"],"names":[],"mappings":"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"}
|