@iota/graphql-transport 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/CHANGELOG.md +13 -0
- package/LICENSE +201 -0
- package/README.md +100 -0
- package/dist/cjs/generated/queries.d.ts +9134 -0
- package/dist/cjs/generated/queries.js +3530 -0
- package/dist/cjs/generated/queries.js.map +7 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/mappers/bcs.d.ts +4 -0
- package/dist/cjs/mappers/bcs.js +71 -0
- package/dist/cjs/mappers/bcs.js.map +7 -0
- package/dist/cjs/mappers/checkpint.d.ts +3 -0
- package/dist/cjs/mappers/checkpint.js +63 -0
- package/dist/cjs/mappers/checkpint.js.map +7 -0
- package/dist/cjs/mappers/display.d.ts +8 -0
- package/dist/cjs/mappers/display.js +43 -0
- package/dist/cjs/mappers/display.js.map +7 -0
- package/dist/cjs/mappers/move.d.ts +57 -0
- package/dist/cjs/mappers/move.js +215 -0
- package/dist/cjs/mappers/move.js.map +7 -0
- package/dist/cjs/mappers/object.d.ts +8 -0
- package/dist/cjs/mappers/object.js +80 -0
- package/dist/cjs/mappers/object.js.map +7 -0
- package/dist/cjs/mappers/owner.d.ts +3 -0
- package/dist/cjs/mappers/owner.js +48 -0
- package/dist/cjs/mappers/owner.js.map +7 -0
- package/dist/cjs/mappers/stakes.d.ts +3 -0
- package/dist/cjs/mappers/stakes.js +48 -0
- package/dist/cjs/mappers/stakes.js.map +7 -0
- package/dist/cjs/mappers/transaction-block.d.ts +6 -0
- package/dist/cjs/mappers/transaction-block.js +314 -0
- package/dist/cjs/mappers/transaction-block.js.map +7 -0
- package/dist/cjs/mappers/util.d.ts +2 -0
- package/dist/cjs/mappers/util.js +31 -0
- package/dist/cjs/mappers/util.js.map +7 -0
- package/dist/cjs/mappers/validator.d.ts +3 -0
- package/dist/cjs/mappers/validator.js +66 -0
- package/dist/cjs/mappers/validator.js.map +7 -0
- package/dist/cjs/methods.d.ts +19 -0
- package/dist/cjs/methods.js +1276 -0
- package/dist/cjs/methods.js.map +7 -0
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/transport.d.ts +43 -0
- package/dist/cjs/transport.js +153 -0
- package/dist/cjs/transport.js.map +7 -0
- package/dist/esm/generated/queries.d.ts +9134 -0
- package/dist/esm/generated/queries.js +3510 -0
- package/dist/esm/generated/queries.js.map +7 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/mappers/bcs.d.ts +4 -0
- package/dist/esm/mappers/bcs.js +51 -0
- package/dist/esm/mappers/bcs.js.map +7 -0
- package/dist/esm/mappers/checkpint.d.ts +3 -0
- package/dist/esm/mappers/checkpint.js +43 -0
- package/dist/esm/mappers/checkpint.js.map +7 -0
- package/dist/esm/mappers/display.d.ts +8 -0
- package/dist/esm/mappers/display.js +23 -0
- package/dist/esm/mappers/display.js.map +7 -0
- package/dist/esm/mappers/move.d.ts +57 -0
- package/dist/esm/mappers/move.js +195 -0
- package/dist/esm/mappers/move.js.map +7 -0
- package/dist/esm/mappers/object.d.ts +8 -0
- package/dist/esm/mappers/object.js +60 -0
- package/dist/esm/mappers/object.js.map +7 -0
- package/dist/esm/mappers/owner.d.ts +3 -0
- package/dist/esm/mappers/owner.js +28 -0
- package/dist/esm/mappers/owner.js.map +7 -0
- package/dist/esm/mappers/stakes.d.ts +3 -0
- package/dist/esm/mappers/stakes.js +28 -0
- package/dist/esm/mappers/stakes.js.map +7 -0
- package/dist/esm/mappers/transaction-block.d.ts +6 -0
- package/dist/esm/mappers/transaction-block.js +294 -0
- package/dist/esm/mappers/transaction-block.js.map +7 -0
- package/dist/esm/mappers/util.d.ts +2 -0
- package/dist/esm/mappers/util.js +11 -0
- package/dist/esm/mappers/util.js.map +7 -0
- package/dist/esm/mappers/validator.d.ts +3 -0
- package/dist/esm/mappers/validator.js +46 -0
- package/dist/esm/mappers/validator.js.map +7 -0
- package/dist/esm/methods.d.ts +19 -0
- package/dist/esm/methods.js +1306 -0
- package/dist/esm/methods.js.map +7 -0
- package/dist/esm/package.json +5 -0
- package/dist/esm/transport.d.ts +43 -0
- package/dist/esm/transport.js +133 -0
- package/dist/esm/transport.js.map +7 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './transport.js';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var src_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(src_exports);
|
|
18
|
+
__reExport(src_exports, require("./transport.js"), module.exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nexport * from './transport.js';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAIA,wBAAc,2BAJd;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var bcs_exports = {};
|
|
20
|
+
__export(bcs_exports, {
|
|
21
|
+
layoutToBcs: () => layoutToBcs,
|
|
22
|
+
mapJsonToBcs: () => mapJsonToBcs
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(bcs_exports);
|
|
25
|
+
var import_bcs = require("@iota/bcs");
|
|
26
|
+
var import_bcs2 = require("@iota/iota-sdk/bcs");
|
|
27
|
+
var import_util = require("./util.js");
|
|
28
|
+
function layoutToBcs(layout) {
|
|
29
|
+
switch (layout) {
|
|
30
|
+
case "address":
|
|
31
|
+
return import_bcs2.bcs.Address;
|
|
32
|
+
case "bool":
|
|
33
|
+
return import_bcs2.bcs.Bool;
|
|
34
|
+
case "u8":
|
|
35
|
+
return import_bcs2.bcs.U8;
|
|
36
|
+
case "u16":
|
|
37
|
+
return import_bcs2.bcs.U16;
|
|
38
|
+
case "u32":
|
|
39
|
+
return import_bcs2.bcs.U32;
|
|
40
|
+
case "u64":
|
|
41
|
+
return import_bcs2.bcs.U64;
|
|
42
|
+
case "u128":
|
|
43
|
+
return import_bcs2.bcs.U128;
|
|
44
|
+
case "u256":
|
|
45
|
+
return import_bcs2.bcs.U256;
|
|
46
|
+
}
|
|
47
|
+
if ("vector" in layout) {
|
|
48
|
+
return import_bcs2.bcs.vector(layoutToBcs(layout.vector));
|
|
49
|
+
}
|
|
50
|
+
if ("struct" in layout) {
|
|
51
|
+
const fields = {};
|
|
52
|
+
for (const { name, layout: field } of layout.struct.fields) {
|
|
53
|
+
fields[name] = layoutToBcs(field);
|
|
54
|
+
}
|
|
55
|
+
let struct = import_bcs2.bcs.struct(layout.struct.type, fields);
|
|
56
|
+
const structName = (0, import_util.toShortTypeString)(layout.struct.type);
|
|
57
|
+
if (structName === "0x2::object::ID") {
|
|
58
|
+
struct = struct.transform({
|
|
59
|
+
input: (id) => typeof id === "string" ? { bytes: id } : id,
|
|
60
|
+
output: (id) => id.id
|
|
61
|
+
});
|
|
62
|
+
return struct;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
throw new Error(`Unknown layout: ${layout}`);
|
|
66
|
+
}
|
|
67
|
+
function mapJsonToBcs(json, layout) {
|
|
68
|
+
const schema = layoutToBcs(layout);
|
|
69
|
+
return (0, import_bcs.toB64)(schema.serialize(json).toBytes());
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=bcs.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/mappers/bcs.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toB64 } from '@iota/bcs';\nimport type { BcsType } from '@iota/bcs';\nimport { bcs } from '@iota/iota-sdk/bcs';\n\nimport type { MoveTypeLayout } from './move.js';\nimport { toShortTypeString } from './util.js';\n\nexport function layoutToBcs(layout: MoveTypeLayout): BcsType<any> {\n switch (layout) {\n case 'address':\n return bcs.Address;\n case 'bool':\n return bcs.Bool;\n case 'u8':\n return bcs.U8;\n case 'u16':\n return bcs.U16;\n case 'u32':\n return bcs.U32;\n case 'u64':\n return bcs.U64;\n case 'u128':\n return bcs.U128;\n case 'u256':\n return bcs.U256;\n }\n\n if ('vector' in layout) {\n return bcs.vector(layoutToBcs(layout.vector));\n }\n\n if ('struct' in layout) {\n const fields: Record<string, BcsType<any>> = {};\n\n for (const { name, layout: field } of layout.struct.fields) {\n fields[name] = layoutToBcs(field);\n }\n\n let struct = bcs.struct(layout.struct.type, fields);\n const structName = toShortTypeString(layout.struct.type);\n\n if (structName === '0x2::object::ID') {\n struct = struct.transform({\n input: (id: any) => (typeof id === 'string' ? { bytes: id } : id) as never,\n output: (id) => id.id,\n });\n\n return struct;\n }\n }\n\n throw new Error(`Unknown layout: ${layout}`);\n}\n\nexport function mapJsonToBcs(json: unknown, layout: MoveTypeLayout) {\n const schema = layoutToBcs(layout);\n return toB64(schema.serialize(json).toBytes());\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,iBAAsB;AAEtB,IAAAA,cAAoB;AAGpB,kBAAkC;AAE3B,SAAS,YAAY,QAAsC;AAC9D,UAAQ,QAAQ;AAAA,IACZ,KAAK;AACD,aAAO,gBAAI;AAAA,IACf,KAAK;AACD,aAAO,gBAAI;AAAA,IACf,KAAK;AACD,aAAO,gBAAI;AAAA,IACf,KAAK;AACD,aAAO,gBAAI;AAAA,IACf,KAAK;AACD,aAAO,gBAAI;AAAA,IACf,KAAK;AACD,aAAO,gBAAI;AAAA,IACf,KAAK;AACD,aAAO,gBAAI;AAAA,IACf,KAAK;AACD,aAAO,gBAAI;AAAA,EACnB;AAEA,MAAI,YAAY,QAAQ;AACpB,WAAO,gBAAI,OAAO,YAAY,OAAO,MAAM,CAAC;AAAA,EAChD;AAEA,MAAI,YAAY,QAAQ;AACpB,UAAM,SAAuC,CAAC;AAE9C,eAAW,EAAE,MAAM,QAAQ,MAAM,KAAK,OAAO,OAAO,QAAQ;AACxD,aAAO,IAAI,IAAI,YAAY,KAAK;AAAA,IACpC;AAEA,QAAI,SAAS,gBAAI,OAAO,OAAO,OAAO,MAAM,MAAM;AAClD,UAAM,iBAAa,+BAAkB,OAAO,OAAO,IAAI;AAEvD,QAAI,eAAe,mBAAmB;AAClC,eAAS,OAAO,UAAU;AAAA,QACtB,OAAO,CAAC,OAAa,OAAO,OAAO,WAAW,EAAE,OAAO,GAAG,IAAI;AAAA,QAC9D,QAAQ,CAAC,OAAO,GAAG;AAAA,MACvB,CAAC;AAED,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,QAAM,IAAI,MAAM,mBAAmB,QAAQ;AAC/C;AAEO,SAAS,aAAa,MAAe,QAAwB;AAChE,QAAM,SAAS,YAAY,MAAM;AACjC,aAAO,kBAAM,OAAO,UAAU,IAAI,EAAE,QAAQ,CAAC;AACjD;",
|
|
6
|
+
"names": ["import_bcs"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var checkpint_exports = {};
|
|
20
|
+
__export(checkpint_exports, {
|
|
21
|
+
mapGraphQLCheckpointToRpcCheckpoint: () => mapGraphQLCheckpointToRpcCheckpoint
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(checkpint_exports);
|
|
24
|
+
function mapGraphQLCheckpointToRpcCheckpoint(checkpoint) {
|
|
25
|
+
const endOfEpochTx = checkpoint.endOfEpoch.nodes[0];
|
|
26
|
+
let endOfEpochData;
|
|
27
|
+
if (endOfEpochTx?.kind?.__typename === "EndOfEpochTransaction" && endOfEpochTx.kind?.transactions.nodes[0].__typename === "ChangeEpochTransaction") {
|
|
28
|
+
endOfEpochData = {
|
|
29
|
+
epochCommitments: [],
|
|
30
|
+
// TODO
|
|
31
|
+
nextEpochCommittee: endOfEpochTx.kind.transactions.nodes[0].epoch?.validatorSet?.activeValidators?.nodes.map(
|
|
32
|
+
(val) => [val.credentials?.protocolPubKey, val.votingPower?.toString()]
|
|
33
|
+
) ?? [],
|
|
34
|
+
nextEpochProtocolVersion: String(
|
|
35
|
+
endOfEpochTx.kind.transactions.nodes[0].epoch?.protocolConfigs.protocolVersion
|
|
36
|
+
),
|
|
37
|
+
epochSupplyChange: 0
|
|
38
|
+
// TODO: https://github.com/iotaledger/iota/issues/1738
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
checkpointCommitments: [],
|
|
43
|
+
// TODO
|
|
44
|
+
digest: checkpoint.digest,
|
|
45
|
+
endOfEpochData,
|
|
46
|
+
epoch: String(checkpoint.epoch?.epochId),
|
|
47
|
+
epochRollingGasCostSummary: {
|
|
48
|
+
computationCost: checkpoint.rollingGasSummary?.computationCost,
|
|
49
|
+
nonRefundableStorageFee: checkpoint.rollingGasSummary?.nonRefundableStorageFee,
|
|
50
|
+
storageCost: checkpoint.rollingGasSummary?.storageCost,
|
|
51
|
+
storageRebate: checkpoint.rollingGasSummary?.storageRebate
|
|
52
|
+
},
|
|
53
|
+
networkTotalTransactions: String(checkpoint.networkTotalTransactions),
|
|
54
|
+
...checkpoint.previousCheckpointDigest ? { previousDigest: checkpoint.previousCheckpointDigest } : {},
|
|
55
|
+
sequenceNumber: String(checkpoint.sequenceNumber),
|
|
56
|
+
timestampMs: new Date(checkpoint.timestamp).getTime().toString(),
|
|
57
|
+
transactions: checkpoint.transactionBlocks?.nodes.map(
|
|
58
|
+
(transactionBlock) => transactionBlock.digest
|
|
59
|
+
) ?? [],
|
|
60
|
+
validatorSignature: checkpoint.validatorSignatures
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=checkpint.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/mappers/checkpint.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Checkpoint, EndOfEpochData } from '@iota/iota-sdk/client';\n\nimport type { Rpc_Checkpoint_FieldsFragment } from '../generated/queries.js';\n\nexport function mapGraphQLCheckpointToRpcCheckpoint(\n checkpoint: Rpc_Checkpoint_FieldsFragment,\n): Checkpoint {\n const endOfEpochTx = checkpoint.endOfEpoch.nodes[0];\n let endOfEpochData: EndOfEpochData | undefined;\n\n if (\n endOfEpochTx?.kind?.__typename === 'EndOfEpochTransaction' &&\n endOfEpochTx.kind?.transactions.nodes[0].__typename === 'ChangeEpochTransaction'\n ) {\n endOfEpochData = {\n epochCommitments: [], // TODO\n nextEpochCommittee:\n endOfEpochTx.kind.transactions.nodes[0].epoch?.validatorSet?.activeValidators?.nodes.map(\n (val) => [val.credentials?.protocolPubKey, val.votingPower?.toString()!],\n ) ?? [],\n nextEpochProtocolVersion: String(\n endOfEpochTx.kind.transactions.nodes[0].epoch?.protocolConfigs.protocolVersion,\n ),\n epochSupplyChange: 0, // TODO: https://github.com/iotaledger/iota/issues/1738\n };\n }\n\n return {\n checkpointCommitments: [], // TODO\n digest: checkpoint.digest,\n endOfEpochData,\n epoch: String(checkpoint.epoch?.epochId),\n epochRollingGasCostSummary: {\n computationCost: checkpoint.rollingGasSummary?.computationCost,\n nonRefundableStorageFee: checkpoint.rollingGasSummary?.nonRefundableStorageFee,\n storageCost: checkpoint.rollingGasSummary?.storageCost,\n storageRebate: checkpoint.rollingGasSummary?.storageRebate,\n },\n networkTotalTransactions: String(checkpoint.networkTotalTransactions),\n ...(checkpoint.previousCheckpointDigest\n ? { previousDigest: checkpoint.previousCheckpointDigest }\n : {}),\n sequenceNumber: String(checkpoint.sequenceNumber),\n timestampMs: new Date(checkpoint.timestamp).getTime().toString(),\n transactions:\n checkpoint.transactionBlocks?.nodes.map(\n (transactionBlock) => transactionBlock.digest!,\n ) ?? [],\n validatorSignature: checkpoint.validatorSignatures,\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,SAAS,oCACZ,YACU;AACV,QAAM,eAAe,WAAW,WAAW,MAAM,CAAC;AAClD,MAAI;AAEJ,MACI,cAAc,MAAM,eAAe,2BACnC,aAAa,MAAM,aAAa,MAAM,CAAC,EAAE,eAAe,0BAC1D;AACE,qBAAiB;AAAA,MACb,kBAAkB,CAAC;AAAA;AAAA,MACnB,oBACI,aAAa,KAAK,aAAa,MAAM,CAAC,EAAE,OAAO,cAAc,kBAAkB,MAAM;AAAA,QACjF,CAAC,QAAQ,CAAC,IAAI,aAAa,gBAAgB,IAAI,aAAa,SAAS,CAAE;AAAA,MAC3E,KAAK,CAAC;AAAA,MACV,0BAA0B;AAAA,QACtB,aAAa,KAAK,aAAa,MAAM,CAAC,EAAE,OAAO,gBAAgB;AAAA,MACnE;AAAA,MACA,mBAAmB;AAAA;AAAA,IACvB;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,uBAAuB,CAAC;AAAA;AAAA,IACxB,QAAQ,WAAW;AAAA,IACnB;AAAA,IACA,OAAO,OAAO,WAAW,OAAO,OAAO;AAAA,IACvC,4BAA4B;AAAA,MACxB,iBAAiB,WAAW,mBAAmB;AAAA,MAC/C,yBAAyB,WAAW,mBAAmB;AAAA,MACvD,aAAa,WAAW,mBAAmB;AAAA,MAC3C,eAAe,WAAW,mBAAmB;AAAA,IACjD;AAAA,IACA,0BAA0B,OAAO,WAAW,wBAAwB;AAAA,IACpE,GAAI,WAAW,2BACT,EAAE,gBAAgB,WAAW,yBAAyB,IACtD,CAAC;AAAA,IACP,gBAAgB,OAAO,WAAW,cAAc;AAAA,IAChD,aAAa,IAAI,KAAK,WAAW,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,IAC/D,cACI,WAAW,mBAAmB,MAAM;AAAA,MAChC,CAAC,qBAAqB,iBAAiB;AAAA,IAC3C,KAAK,CAAC;AAAA,IACV,oBAAoB,WAAW;AAAA,EACnC;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var display_exports = {};
|
|
20
|
+
__export(display_exports, {
|
|
21
|
+
formatDisplay: () => formatDisplay
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(display_exports);
|
|
24
|
+
function formatDisplay(object) {
|
|
25
|
+
const display = {
|
|
26
|
+
data: null,
|
|
27
|
+
error: null
|
|
28
|
+
};
|
|
29
|
+
if (object.display) {
|
|
30
|
+
object.display.forEach((displayItem) => {
|
|
31
|
+
if (displayItem.error) {
|
|
32
|
+
display.error = displayItem.error;
|
|
33
|
+
} else if (displayItem.value != null) {
|
|
34
|
+
if (!display.data) {
|
|
35
|
+
display.data = {};
|
|
36
|
+
}
|
|
37
|
+
display.data[displayItem.key] = displayItem.value;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return display;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=display.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/mappers/display.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { DisplayFieldsResponse } from '@iota/iota-sdk/client';\n\nexport function formatDisplay(object: {\n display?:\n | {\n key: string;\n value?: string | null | undefined;\n error?: string | null | undefined;\n }[]\n | null;\n}) {\n const display: DisplayFieldsResponse = {\n data: null,\n error: null,\n };\n\n if (object.display) {\n object.display.forEach((displayItem) => {\n if (displayItem.error) {\n display!.error = displayItem.error as never;\n } else if (displayItem.value != null) {\n if (!display!.data) {\n display!.data = {};\n }\n display!.data[displayItem.key] = displayItem.value;\n }\n });\n }\n\n return display;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,SAAS,cAAc,QAQ3B;AACC,QAAM,UAAiC;AAAA,IACnC,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAEA,MAAI,OAAO,SAAS;AAChB,WAAO,QAAQ,QAAQ,CAAC,gBAAgB;AACpC,UAAI,YAAY,OAAO;AACnB,gBAAS,QAAQ,YAAY;AAAA,MACjC,WAAW,YAAY,SAAS,MAAM;AAClC,YAAI,CAAC,QAAS,MAAM;AAChB,kBAAS,OAAO,CAAC;AAAA,QACrB;AACA,gBAAS,KAAK,YAAY,GAAG,IAAI,YAAY;AAAA,MACjD;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,SAAO;AACX;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { MoveValue, IotaMoveNormalizedFunction, IotaMoveNormalizedModule, IotaMoveNormalizedStruct, IotaMoveNormalizedType } from '@iota/iota-sdk/client';
|
|
2
|
+
import type { Rpc_Move_Function_FieldsFragment, Rpc_Move_Module_FieldsFragment, Rpc_Move_Struct_FieldsFragment } from '../generated/queries.js';
|
|
3
|
+
export type OpenMoveTypeSignatureBody = 'address' | 'bool' | 'u8' | 'u16' | 'u32' | 'u64' | 'u128' | 'u256' | {
|
|
4
|
+
vector: OpenMoveTypeSignatureBody;
|
|
5
|
+
} | {
|
|
6
|
+
datatype: {
|
|
7
|
+
package: string;
|
|
8
|
+
module: string;
|
|
9
|
+
type: string;
|
|
10
|
+
typeParameters?: [OpenMoveTypeSignatureBody];
|
|
11
|
+
};
|
|
12
|
+
} | {
|
|
13
|
+
typeParameter: number;
|
|
14
|
+
};
|
|
15
|
+
export declare function mapOpenMoveType(type: {
|
|
16
|
+
ref?: '&' | '&mut';
|
|
17
|
+
body: OpenMoveTypeSignatureBody;
|
|
18
|
+
}): IotaMoveNormalizedType;
|
|
19
|
+
export declare function mapNormalizedType(type: OpenMoveTypeSignatureBody): IotaMoveNormalizedType;
|
|
20
|
+
export declare function mapNormalizedMoveFunction(fn: Rpc_Move_Function_FieldsFragment): IotaMoveNormalizedFunction;
|
|
21
|
+
export declare function mapNormalizedMoveStruct(struct: Rpc_Move_Struct_FieldsFragment): IotaMoveNormalizedStruct;
|
|
22
|
+
export declare function mapNormalizedMoveModule(module: Rpc_Move_Module_FieldsFragment, address: string): IotaMoveNormalizedModule;
|
|
23
|
+
type MoveData = {
|
|
24
|
+
Address: number[];
|
|
25
|
+
} | {
|
|
26
|
+
UID: number[];
|
|
27
|
+
} | {
|
|
28
|
+
ID: number[];
|
|
29
|
+
} | {
|
|
30
|
+
Bool: boolean;
|
|
31
|
+
} | {
|
|
32
|
+
Number: string;
|
|
33
|
+
} | {
|
|
34
|
+
String: string;
|
|
35
|
+
} | {
|
|
36
|
+
Vector: MoveData[];
|
|
37
|
+
} | {
|
|
38
|
+
Option: MoveData | null;
|
|
39
|
+
} | {
|
|
40
|
+
Struct: [{
|
|
41
|
+
name: string;
|
|
42
|
+
value: MoveData;
|
|
43
|
+
}];
|
|
44
|
+
};
|
|
45
|
+
export type MoveTypeLayout = 'address' | 'bool' | 'u8' | 'u16' | 'u32' | 'u64' | 'u128' | 'u256' | {
|
|
46
|
+
vector: MoveTypeLayout;
|
|
47
|
+
} | {
|
|
48
|
+
struct: {
|
|
49
|
+
type: string;
|
|
50
|
+
fields: {
|
|
51
|
+
name: string;
|
|
52
|
+
layout: MoveTypeLayout;
|
|
53
|
+
}[];
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
export declare function moveDataToRpcContent(data: MoveData, layout: MoveTypeLayout): MoveValue;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var move_exports = {};
|
|
20
|
+
__export(move_exports, {
|
|
21
|
+
mapNormalizedMoveFunction: () => mapNormalizedMoveFunction,
|
|
22
|
+
mapNormalizedMoveModule: () => mapNormalizedMoveModule,
|
|
23
|
+
mapNormalizedMoveStruct: () => mapNormalizedMoveStruct,
|
|
24
|
+
mapNormalizedType: () => mapNormalizedType,
|
|
25
|
+
mapOpenMoveType: () => mapOpenMoveType,
|
|
26
|
+
moveDataToRpcContent: () => moveDataToRpcContent
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(move_exports);
|
|
29
|
+
var import_utils = require("@iota/iota-sdk/utils");
|
|
30
|
+
var import_util = require("./util.js");
|
|
31
|
+
function mapOpenMoveType(type) {
|
|
32
|
+
const body = mapNormalizedType(type.body);
|
|
33
|
+
if (type.ref === "&") {
|
|
34
|
+
return {
|
|
35
|
+
Reference: body
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (type.ref === "&mut") {
|
|
39
|
+
return {
|
|
40
|
+
MutableReference: body
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return body;
|
|
44
|
+
}
|
|
45
|
+
function mapNormalizedType(type) {
|
|
46
|
+
switch (type) {
|
|
47
|
+
case "address":
|
|
48
|
+
return "Address";
|
|
49
|
+
case "bool":
|
|
50
|
+
return "Bool";
|
|
51
|
+
case "u8":
|
|
52
|
+
return "U8";
|
|
53
|
+
case "u16":
|
|
54
|
+
return "U16";
|
|
55
|
+
case "u32":
|
|
56
|
+
return "U32";
|
|
57
|
+
case "u64":
|
|
58
|
+
return "U64";
|
|
59
|
+
case "u128":
|
|
60
|
+
return "U128";
|
|
61
|
+
case "u256":
|
|
62
|
+
return "U256";
|
|
63
|
+
}
|
|
64
|
+
if ("vector" in type) {
|
|
65
|
+
return {
|
|
66
|
+
Vector: mapNormalizedType(type.vector)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if ("typeParameter" in type) {
|
|
70
|
+
return {
|
|
71
|
+
TypeParameter: type.typeParameter
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if ("datatype" in type) {
|
|
75
|
+
return {
|
|
76
|
+
Struct: {
|
|
77
|
+
address: (0, import_util.toShortTypeString)(type.datatype.package),
|
|
78
|
+
module: type.datatype.module,
|
|
79
|
+
name: type.datatype.type,
|
|
80
|
+
typeArguments: type.datatype.typeParameters?.map(mapNormalizedType) ?? []
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
throw new Error("Invalid type");
|
|
85
|
+
}
|
|
86
|
+
function mapNormalizedMoveFunction(fn) {
|
|
87
|
+
return {
|
|
88
|
+
visibility: `${fn.visibility?.[0]}${fn.visibility?.slice(1).toLowerCase()}`,
|
|
89
|
+
isEntry: fn.isEntry,
|
|
90
|
+
typeParameters: fn.typeParameters?.map((param) => ({
|
|
91
|
+
abilities: param.constraints?.map(
|
|
92
|
+
(constraint) => `${constraint[0]}${constraint.slice(1).toLowerCase()}`
|
|
93
|
+
) ?? []
|
|
94
|
+
})) ?? [],
|
|
95
|
+
return: fn.return?.map((param) => mapOpenMoveType(param.signature)) ?? [],
|
|
96
|
+
parameters: fn.parameters?.map((param) => mapOpenMoveType(param.signature)) ?? []
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function mapNormalizedMoveStruct(struct) {
|
|
100
|
+
return {
|
|
101
|
+
abilities: {
|
|
102
|
+
abilities: struct.abilities?.map(
|
|
103
|
+
(ability) => `${ability[0]}${ability.slice(1).toLowerCase()}`
|
|
104
|
+
) ?? []
|
|
105
|
+
},
|
|
106
|
+
fields: struct.fields?.map((field) => ({
|
|
107
|
+
name: field.name,
|
|
108
|
+
type: mapOpenMoveType(field.type?.signature)
|
|
109
|
+
})) ?? [],
|
|
110
|
+
typeParameters: struct.typeParameters?.map((param) => ({
|
|
111
|
+
isPhantom: param.isPhantom,
|
|
112
|
+
constraints: {
|
|
113
|
+
abilities: param.constraints?.map(
|
|
114
|
+
(constraint) => `${constraint[0]}${constraint.slice(1).toLowerCase()}`
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
})) ?? []
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function mapNormalizedMoveModule(module2, address) {
|
|
121
|
+
const exposedFunctions = {};
|
|
122
|
+
const structs = {};
|
|
123
|
+
module2.functions?.nodes.filter(
|
|
124
|
+
(func) => func.visibility === "PUBLIC" || func.isEntry || func.visibility === "FRIEND"
|
|
125
|
+
).forEach((func) => {
|
|
126
|
+
exposedFunctions[func.name] = mapNormalizedMoveFunction(func);
|
|
127
|
+
});
|
|
128
|
+
module2.structs?.nodes.forEach((struct) => {
|
|
129
|
+
structs[struct.name] = mapNormalizedMoveStruct(struct);
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
address: (0, import_util.toShortTypeString)(address),
|
|
133
|
+
name: module2.name,
|
|
134
|
+
fileFormatVersion: module2.fileFormatVersion,
|
|
135
|
+
friends: module2.friends.nodes?.map((friend) => ({
|
|
136
|
+
address: (0, import_util.toShortTypeString)(friend.package.address),
|
|
137
|
+
name: friend.name
|
|
138
|
+
})) ?? [],
|
|
139
|
+
structs,
|
|
140
|
+
exposedFunctions
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function moveDataToRpcContent(data, layout) {
|
|
144
|
+
if ("Address" in data) {
|
|
145
|
+
return (0, import_utils.normalizeIotaAddress)(
|
|
146
|
+
data.Address.map((byte) => byte.toString(16).padStart(2, "0")).join("")
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
if ("UID" in data) {
|
|
150
|
+
return {
|
|
151
|
+
id: (0, import_utils.normalizeIotaAddress)(
|
|
152
|
+
data.UID.map((byte) => byte.toString(16).padStart(2, "0")).join("")
|
|
153
|
+
)
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
if ("ID" in data) {
|
|
157
|
+
return (0, import_utils.normalizeIotaAddress)(
|
|
158
|
+
data.ID.map((byte) => byte.toString(16).padStart(2, "0")).join("")
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
if ("Bool" in data) {
|
|
162
|
+
return data.Bool;
|
|
163
|
+
}
|
|
164
|
+
if ("Number" in data) {
|
|
165
|
+
return layout === "u64" || layout === "u128" || layout === "u256" ? String(data.Number) : Number.parseInt(data.Number, 10);
|
|
166
|
+
}
|
|
167
|
+
if ("String" in data) {
|
|
168
|
+
return data.String;
|
|
169
|
+
}
|
|
170
|
+
if ("Vector" in data) {
|
|
171
|
+
if (typeof layout !== "object" || !("vector" in layout)) {
|
|
172
|
+
throw new Error(`Invalid layout for data: ${JSON.stringify(data)}}`);
|
|
173
|
+
}
|
|
174
|
+
const itemLayout = layout.vector;
|
|
175
|
+
return data.Vector.map((item) => moveDataToRpcContent(item, itemLayout));
|
|
176
|
+
}
|
|
177
|
+
if ("Option" in data) {
|
|
178
|
+
return data.Option && moveDataToRpcContent(data.Option, layout);
|
|
179
|
+
}
|
|
180
|
+
if ("Struct" in data) {
|
|
181
|
+
const result = {};
|
|
182
|
+
if (typeof layout !== "object" || !("struct" in layout)) {
|
|
183
|
+
throw new Error(`Invalid layout for data: ${JSON.stringify(data)}}`);
|
|
184
|
+
}
|
|
185
|
+
data.Struct.forEach((item, index) => {
|
|
186
|
+
const { name, layout: itemLayout } = layout.struct.fields[index];
|
|
187
|
+
result[name] = moveDataToRpcContent(item.value, itemLayout);
|
|
188
|
+
});
|
|
189
|
+
const tag = (0, import_utils.parseStructTag)(layout.struct.type);
|
|
190
|
+
const structName = `${(0, import_util.toShortTypeString)(tag.address)}::${tag.module}::${tag.name}`;
|
|
191
|
+
switch (structName) {
|
|
192
|
+
case "0x1::string::String":
|
|
193
|
+
case "0x1::ascii::String":
|
|
194
|
+
return result["bytes"];
|
|
195
|
+
case "0x2::url::Url":
|
|
196
|
+
return result["url"];
|
|
197
|
+
case "0x2::object::ID":
|
|
198
|
+
return result["bytes"];
|
|
199
|
+
case "0x2::object::UID":
|
|
200
|
+
return {
|
|
201
|
+
id: result["id"]
|
|
202
|
+
};
|
|
203
|
+
case "0x2::balance::Balance":
|
|
204
|
+
return result["value"];
|
|
205
|
+
case "0x1::option::Option":
|
|
206
|
+
return result["vec"][0] ?? null;
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
type: (0, import_util.toShortTypeString)(layout.struct.type),
|
|
210
|
+
fields: result
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
throw new Error("Invalid move data: " + JSON.stringify(data));
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=move.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/mappers/move.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n MoveStruct,\n MoveValue,\n IotaMoveAbility,\n IotaMoveNormalizedFunction,\n IotaMoveNormalizedModule,\n IotaMoveNormalizedStruct,\n IotaMoveNormalizedType,\n} from '@iota/iota-sdk/client';\nimport { normalizeIotaAddress, parseStructTag } from '@iota/iota-sdk/utils';\n\nimport type {\n Rpc_Move_Function_FieldsFragment,\n Rpc_Move_Module_FieldsFragment,\n Rpc_Move_Struct_FieldsFragment,\n} from '../generated/queries.js';\nimport { toShortTypeString } from './util.js';\n\nexport type OpenMoveTypeSignatureBody =\n | 'address'\n | 'bool'\n | 'u8'\n | 'u16'\n | 'u32'\n | 'u64'\n | 'u128'\n | 'u256'\n | { vector: OpenMoveTypeSignatureBody }\n | {\n datatype: {\n package: string;\n module: string;\n type: string;\n typeParameters?: [OpenMoveTypeSignatureBody];\n };\n }\n | { typeParameter: number };\n\nexport function mapOpenMoveType(type: { ref?: '&' | '&mut'; body: OpenMoveTypeSignatureBody }) {\n const body = mapNormalizedType(type.body);\n\n if (type.ref === '&') {\n return {\n Reference: body,\n };\n }\n\n if (type.ref === '&mut') {\n return {\n MutableReference: body,\n };\n }\n\n return body;\n}\n\nexport function mapNormalizedType(type: OpenMoveTypeSignatureBody): IotaMoveNormalizedType {\n switch (type) {\n case 'address':\n return 'Address';\n case 'bool':\n return 'Bool';\n case 'u8':\n return 'U8';\n case 'u16':\n return 'U16';\n case 'u32':\n return 'U32';\n case 'u64':\n return 'U64';\n case 'u128':\n return 'U128';\n case 'u256':\n return 'U256';\n }\n\n if ('vector' in type) {\n return {\n Vector: mapNormalizedType(type.vector),\n };\n }\n\n if ('typeParameter' in type) {\n return {\n TypeParameter: type.typeParameter,\n };\n }\n\n if ('datatype' in type) {\n return {\n Struct: {\n address: toShortTypeString(type.datatype.package),\n module: type.datatype.module,\n name: type.datatype.type,\n typeArguments: type.datatype.typeParameters?.map(mapNormalizedType) ?? [],\n },\n };\n }\n\n throw new Error('Invalid type');\n}\n\nexport function mapNormalizedMoveFunction(\n fn: Rpc_Move_Function_FieldsFragment,\n): IotaMoveNormalizedFunction {\n return {\n visibility: `${fn.visibility?.[0]}${fn.visibility?.slice(1).toLowerCase()}` as never,\n isEntry: fn.isEntry!,\n typeParameters:\n fn.typeParameters?.map((param) => ({\n abilities:\n param.constraints?.map(\n (constraint) =>\n `${constraint[0]}${constraint\n .slice(1)\n .toLowerCase()}` as IotaMoveAbility,\n ) ?? [],\n })) ?? [],\n return: fn.return?.map((param) => mapOpenMoveType(param.signature)) ?? [],\n parameters: fn.parameters?.map((param) => mapOpenMoveType(param.signature)) ?? [],\n };\n}\n\nexport function mapNormalizedMoveStruct(\n struct: Rpc_Move_Struct_FieldsFragment,\n): IotaMoveNormalizedStruct {\n return {\n abilities: {\n abilities:\n struct.abilities?.map(\n (ability) =>\n `${ability[0]}${ability.slice(1).toLowerCase()}` as IotaMoveAbility,\n ) ?? [],\n },\n fields:\n struct.fields?.map((field) => ({\n name: field.name,\n type: mapOpenMoveType(field.type?.signature),\n })) ?? [],\n typeParameters:\n struct.typeParameters?.map((param) => ({\n isPhantom: param.isPhantom!,\n constraints: {\n abilities: param.constraints?.map(\n (constraint) =>\n `${constraint[0]}${constraint\n .slice(1)\n .toLowerCase()}` as IotaMoveAbility,\n ),\n },\n })) ?? [],\n };\n}\n\nexport function mapNormalizedMoveModule(\n module: Rpc_Move_Module_FieldsFragment,\n address: string,\n): IotaMoveNormalizedModule {\n const exposedFunctions: Record<string, IotaMoveNormalizedFunction> = {};\n const structs: Record<string, IotaMoveNormalizedStruct> = {};\n\n module.functions?.nodes\n .filter(\n (func) => func.visibility === 'PUBLIC' || func.isEntry || func.visibility === 'FRIEND',\n )\n .forEach((func) => {\n exposedFunctions[func.name] = mapNormalizedMoveFunction(func);\n });\n\n module.structs?.nodes.forEach((struct) => {\n structs[struct.name] = mapNormalizedMoveStruct(struct);\n });\n\n return {\n address: toShortTypeString(address),\n name: module.name,\n fileFormatVersion: module.fileFormatVersion,\n friends:\n module.friends.nodes?.map((friend) => ({\n address: toShortTypeString(friend.package.address),\n name: friend.name,\n })) ?? [],\n structs,\n exposedFunctions,\n };\n}\n\ntype MoveData =\n | { Address: number[] }\n | { UID: number[] }\n | { ID: number[] }\n | { Bool: boolean }\n | { Number: string }\n | { String: string }\n | { Vector: MoveData[] }\n | { Option: MoveData | null }\n | { Struct: [{ name: string; value: MoveData }] };\n\nexport type MoveTypeLayout =\n | 'address'\n | 'bool'\n | 'u8'\n | 'u16'\n | 'u32'\n | 'u64'\n | 'u128'\n | 'u256'\n | { vector: MoveTypeLayout }\n | {\n struct: {\n type: string;\n fields: { name: string; layout: MoveTypeLayout }[];\n };\n };\n\nexport function moveDataToRpcContent(data: MoveData, layout: MoveTypeLayout): MoveValue {\n if ('Address' in data) {\n return normalizeIotaAddress(\n data.Address.map((byte) => byte.toString(16).padStart(2, '0')).join(''),\n );\n }\n\n if ('UID' in data) {\n return {\n id: normalizeIotaAddress(\n data.UID.map((byte) => byte.toString(16).padStart(2, '0')).join(''),\n ),\n };\n }\n\n if ('ID' in data) {\n return normalizeIotaAddress(\n data.ID.map((byte) => byte.toString(16).padStart(2, '0')).join(''),\n );\n }\n\n if ('Bool' in data) {\n return data.Bool;\n }\n\n if ('Number' in data) {\n return layout === 'u64' || layout === 'u128' || layout === 'u256'\n ? String(data.Number)\n : Number.parseInt(data.Number, 10);\n }\n\n if ('String' in data) {\n return data.String;\n }\n\n if ('Vector' in data) {\n if (typeof layout !== 'object' || !('vector' in layout)) {\n throw new Error(`Invalid layout for data: ${JSON.stringify(data)}}`);\n }\n const itemLayout = layout.vector;\n return data.Vector.map((item) => moveDataToRpcContent(item, itemLayout));\n }\n\n if ('Option' in data) {\n return data.Option && moveDataToRpcContent(data.Option, layout);\n }\n\n if ('Struct' in data) {\n const result: MoveStruct = {};\n\n if (typeof layout !== 'object' || !('struct' in layout)) {\n throw new Error(`Invalid layout for data: ${JSON.stringify(data)}}`);\n }\n\n data.Struct.forEach((item, index) => {\n const { name, layout: itemLayout } = layout.struct.fields[index];\n\n result[name] = moveDataToRpcContent(item.value, itemLayout);\n });\n\n // https://github.com/iotaledger/iota/blob/5849f6845a3ab9fdb4c17523994adad461478a4c/crates/iota-json-rpc-types/src/iota_move.rs#L481\n const tag = parseStructTag(layout.struct.type);\n const structName = `${toShortTypeString(tag.address)}::${tag.module}::${tag.name}`;\n\n switch (structName) {\n case '0x1::string::String':\n case '0x1::ascii::String':\n return result['bytes'];\n case '0x2::url::Url':\n return result['url'];\n case '0x2::object::ID':\n return result['bytes'];\n case '0x2::object::UID':\n return {\n id: result['id'] as string,\n };\n case '0x2::balance::Balance':\n return result['value'];\n case '0x1::option::Option':\n return (result['vec'] as MoveValue[])[0] ?? null;\n }\n\n return {\n type: toShortTypeString(layout.struct.type),\n fields: result,\n };\n }\n\n throw new Error('Invalid move data: ' + JSON.stringify(data));\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["module"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IotaObjectResponse } from '@iota/iota-sdk/client';
|
|
2
|
+
import type { Rpc_Move_Object_FieldsFragment, Rpc_Object_FieldsFragment } from '../generated/queries.js';
|
|
3
|
+
export declare function mapGraphQLObjectToRpcObject(object: Rpc_Object_FieldsFragment, options?: {
|
|
4
|
+
showBcs?: boolean | null;
|
|
5
|
+
}): NonNullable<IotaObjectResponse['data']>;
|
|
6
|
+
export declare function mapGraphQLMoveObjectToRpcObject(object: Rpc_Move_Object_FieldsFragment, options?: {
|
|
7
|
+
showBcs?: boolean | null;
|
|
8
|
+
}): NonNullable<IotaObjectResponse['data']>;
|