@iota/graphql-transport 0.9.2 → 0.11.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 +39 -0
- package/README.md +0 -1
- package/dist/cjs/generated/queries.d.ts +175 -82
- package/dist/cjs/generated/queries.js +46 -5
- package/dist/cjs/generated/queries.js.map +2 -2
- package/dist/cjs/mappers/move.js +18 -2
- package/dist/cjs/mappers/move.js.map +2 -2
- package/dist/cjs/methods.js +107 -43
- package/dist/cjs/methods.js.map +2 -2
- package/dist/esm/generated/queries.d.ts +175 -82
- package/dist/esm/generated/queries.js +46 -5
- package/dist/esm/generated/queries.js.map +2 -2
- package/dist/esm/mappers/move.js +18 -2
- package/dist/esm/mappers/move.js.map +2 -2
- package/dist/esm/methods.js +110 -44
- package/dist/esm/methods.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -7
package/dist/esm/mappers/move.js
CHANGED
|
@@ -141,13 +141,29 @@ function moveDataToRpcContent(data, layout) {
|
|
|
141
141
|
}
|
|
142
142
|
if ("Vector" in data) {
|
|
143
143
|
if (typeof layout !== "object" || !("vector" in layout)) {
|
|
144
|
-
throw new Error(`Invalid layout for data: ${JSON.stringify(data)}
|
|
144
|
+
throw new Error(`Invalid layout for data: ${JSON.stringify(data)}`);
|
|
145
145
|
}
|
|
146
146
|
const itemLayout = layout.vector;
|
|
147
147
|
return data.Vector.map((item) => moveDataToRpcContent(item, itemLayout));
|
|
148
148
|
}
|
|
149
149
|
if ("Option" in data) {
|
|
150
|
-
|
|
150
|
+
if (data.Option === null) {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
if (typeof layout !== "object" || !("struct" in layout)) {
|
|
154
|
+
throw new Error(`Invalid layout for Option data: ${JSON.stringify(layout)}`);
|
|
155
|
+
}
|
|
156
|
+
const vecField = layout.struct.fields.find((field) => field.name === "vec");
|
|
157
|
+
if (!vecField) {
|
|
158
|
+
throw new Error(`Could not find the expected 'vec' field in the Option layout.`);
|
|
159
|
+
}
|
|
160
|
+
const innerLayout = vecField.layout;
|
|
161
|
+
const innerData = data.Option;
|
|
162
|
+
if (typeof innerLayout === "object" && "vector" in innerLayout && innerData && !("Vector" in innerData)) {
|
|
163
|
+
const itemLayout = innerLayout.vector;
|
|
164
|
+
return moveDataToRpcContent(innerData, itemLayout);
|
|
165
|
+
}
|
|
166
|
+
return moveDataToRpcContent(innerData, innerLayout);
|
|
151
167
|
}
|
|
152
168
|
if ("Struct" in data) {
|
|
153
169
|
const result = {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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.slice(1).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.slice(1).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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
|
|
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.slice(1).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.slice(1).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 if (data.Option === null) {\n return null;\n }\n\n if (typeof layout !== 'object' || !('struct' in layout)) {\n throw new Error(`Invalid layout for Option data: ${JSON.stringify(layout)}`);\n }\n\n const vecField = layout.struct.fields.find((field) => field.name === 'vec');\n if (!vecField) {\n throw new Error(`Could not find the expected 'vec' field in the Option layout.`);\n }\n\n const innerLayout = vecField.layout;\n const innerData = data.Option;\n\n if (\n typeof innerLayout === 'object' &&\n 'vector' in innerLayout &&\n innerData &&\n !('Vector' in innerData)\n ) {\n const itemLayout = innerLayout.vector;\n return moveDataToRpcContent(innerData, itemLayout);\n }\n\n return moveDataToRpcContent(innerData, innerLayout);\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": "AAaA,SAAS,sBAAsB,sBAAsB;AAOrD,SAAS,yBAAyB;AAsB3B,SAAS,gBAAgB,MAA+D;AAC3F,QAAM,OAAO,kBAAkB,KAAK,IAAI;AAExC,MAAI,KAAK,QAAQ,KAAK;AAClB,WAAO;AAAA,MACH,WAAW;AAAA,IACf;AAAA,EACJ;AAEA,MAAI,KAAK,QAAQ,QAAQ;AACrB,WAAO;AAAA,MACH,kBAAkB;AAAA,IACtB;AAAA,EACJ;AAEA,SAAO;AACX;AAEO,SAAS,kBAAkB,MAAyD;AACvF,UAAQ,MAAM;AAAA,IACV,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,EACf;AAEA,MAAI,YAAY,MAAM;AAClB,WAAO;AAAA,MACH,QAAQ,kBAAkB,KAAK,MAAM;AAAA,IACzC;AAAA,EACJ;AAEA,MAAI,mBAAmB,MAAM;AACzB,WAAO;AAAA,MACH,eAAe,KAAK;AAAA,IACxB;AAAA,EACJ;AAEA,MAAI,cAAc,MAAM;AACpB,WAAO;AAAA,MACH,QAAQ;AAAA,QACJ,SAAS,kBAAkB,KAAK,SAAS,OAAO;AAAA,QAChD,QAAQ,KAAK,SAAS;AAAA,QACtB,MAAM,KAAK,SAAS;AAAA,QACpB,eAAe,KAAK,SAAS,gBAAgB,IAAI,iBAAiB,KAAK,CAAC;AAAA,MAC5E;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,IAAI,MAAM,cAAc;AAClC;AAEO,SAAS,0BACZ,IAC0B;AAC1B,SAAO;AAAA,IACH,YAAY,GAAG,GAAG,aAAa,CAAC,CAAC,GAAG,GAAG,YAAY,MAAM,CAAC,EAAE,YAAY,CAAC;AAAA,IACzE,SAAS,GAAG;AAAA,IACZ,gBACI,GAAG,gBAAgB,IAAI,CAAC,WAAW;AAAA,MAC/B,WACI,MAAM,aAAa;AAAA,QACf,CAAC,eACG,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,MAAM,CAAC,EAAE,YAAY,CAAC;AAAA,MAC5D,KAAK,CAAC;AAAA,IACd,EAAE,KAAK,CAAC;AAAA,IACZ,QAAQ,GAAG,QAAQ,IAAI,CAAC,UAAU,gBAAgB,MAAM,SAAS,CAAC,KAAK,CAAC;AAAA,IACxE,YAAY,GAAG,YAAY,IAAI,CAAC,UAAU,gBAAgB,MAAM,SAAS,CAAC,KAAK,CAAC;AAAA,EACpF;AACJ;AAEO,SAAS,wBACZ,QACwB;AACxB,SAAO;AAAA,IACH,WAAW;AAAA,MACP,WACI,OAAO,WAAW;AAAA,QACd,CAAC,YACG,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,MAAM,CAAC,EAAE,YAAY,CAAC;AAAA,MACtD,KAAK,CAAC;AAAA,IACd;AAAA,IACA,QACI,OAAO,QAAQ,IAAI,CAAC,WAAW;AAAA,MAC3B,MAAM,MAAM;AAAA,MACZ,MAAM,gBAAgB,MAAM,MAAM,SAAS;AAAA,IAC/C,EAAE,KAAK,CAAC;AAAA,IACZ,gBACI,OAAO,gBAAgB,IAAI,CAAC,WAAW;AAAA,MACnC,WAAW,MAAM;AAAA,MACjB,aAAa;AAAA,QACT,WAAW,MAAM,aAAa;AAAA,UAC1B,CAAC,eACG,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,MAAM,CAAC,EAAE,YAAY,CAAC;AAAA,QAC5D;AAAA,MACJ;AAAA,IACJ,EAAE,KAAK,CAAC;AAAA,EAChB;AACJ;AAEO,SAAS,wBACZ,QACA,SACwB;AACxB,QAAM,mBAA+D,CAAC;AACtE,QAAM,UAAoD,CAAC;AAE3D,SAAO,WAAW,MACb;AAAA,IACG,CAAC,SAAS,KAAK,eAAe,YAAY,KAAK,WAAW,KAAK,eAAe;AAAA,EAClF,EACC,QAAQ,CAAC,SAAS;AACf,qBAAiB,KAAK,IAAI,IAAI,0BAA0B,IAAI;AAAA,EAChE,CAAC;AAEL,SAAO,SAAS,MAAM,QAAQ,CAAC,WAAW;AACtC,YAAQ,OAAO,IAAI,IAAI,wBAAwB,MAAM;AAAA,EACzD,CAAC;AAED,SAAO;AAAA,IACH,SAAS,kBAAkB,OAAO;AAAA,IAClC,MAAM,OAAO;AAAA,IACb,mBAAmB,OAAO;AAAA,IAC1B,SACI,OAAO,QAAQ,OAAO,IAAI,CAAC,YAAY;AAAA,MACnC,SAAS,kBAAkB,OAAO,QAAQ,OAAO;AAAA,MACjD,MAAM,OAAO;AAAA,IACjB,EAAE,KAAK,CAAC;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AACJ;AA8BO,SAAS,qBAAqB,MAAgB,QAAmC;AACpF,MAAI,aAAa,MAAM;AACnB,WAAO;AAAA,MACH,KAAK,QAAQ,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,IAC1E;AAAA,EACJ;AAEA,MAAI,SAAS,MAAM;AACf,WAAO;AAAA,MACH,IAAI;AAAA,QACA,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,MACtE;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,QAAQ,MAAM;AACd,WAAO;AAAA,MACH,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,IACrE;AAAA,EACJ;AAEA,MAAI,UAAU,MAAM;AAChB,WAAO,KAAK;AAAA,EAChB;AAEA,MAAI,YAAY,MAAM;AAClB,WAAO,WAAW,SAAS,WAAW,UAAU,WAAW,SACrD,OAAO,KAAK,MAAM,IAClB,OAAO,SAAS,KAAK,QAAQ,EAAE;AAAA,EACzC;AAEA,MAAI,YAAY,MAAM;AAClB,WAAO,KAAK;AAAA,EAChB;AAEA,MAAI,YAAY,MAAM;AAClB,QAAI,OAAO,WAAW,YAAY,EAAE,YAAY,SAAS;AACrD,YAAM,IAAI,MAAM,4BAA4B,KAAK,UAAU,IAAI,CAAC,EAAE;AAAA,IACtE;AACA,UAAM,aAAa,OAAO;AAC1B,WAAO,KAAK,OAAO,IAAI,CAAC,SAAS,qBAAqB,MAAM,UAAU,CAAC;AAAA,EAC3E;AAEA,MAAI,YAAY,MAAM;AAClB,QAAI,KAAK,WAAW,MAAM;AACtB,aAAO;AAAA,IACX;AAEA,QAAI,OAAO,WAAW,YAAY,EAAE,YAAY,SAAS;AACrD,YAAM,IAAI,MAAM,mCAAmC,KAAK,UAAU,MAAM,CAAC,EAAE;AAAA,IAC/E;AAEA,UAAM,WAAW,OAAO,OAAO,OAAO,KAAK,CAAC,UAAU,MAAM,SAAS,KAAK;AAC1E,QAAI,CAAC,UAAU;AACX,YAAM,IAAI,MAAM,+DAA+D;AAAA,IACnF;AAEA,UAAM,cAAc,SAAS;AAC7B,UAAM,YAAY,KAAK;AAEvB,QACI,OAAO,gBAAgB,YACvB,YAAY,eACZ,aACA,EAAE,YAAY,YAChB;AACE,YAAM,aAAa,YAAY;AAC/B,aAAO,qBAAqB,WAAW,UAAU;AAAA,IACrD;AAEA,WAAO,qBAAqB,WAAW,WAAW;AAAA,EACtD;AAEA,MAAI,YAAY,MAAM;AAClB,UAAM,SAAqB,CAAC;AAE5B,QAAI,OAAO,WAAW,YAAY,EAAE,YAAY,SAAS;AACrD,YAAM,IAAI,MAAM,4BAA4B,KAAK,UAAU,IAAI,CAAC,GAAG;AAAA,IACvE;AAEA,SAAK,OAAO,QAAQ,CAAC,MAAM,UAAU;AACjC,YAAM,EAAE,MAAM,QAAQ,WAAW,IAAI,OAAO,OAAO,OAAO,KAAK;AAE/D,aAAO,IAAI,IAAI,qBAAqB,KAAK,OAAO,UAAU;AAAA,IAC9D,CAAC;AAGD,UAAM,MAAM,eAAe,OAAO,OAAO,IAAI;AAC7C,UAAM,aAAa,GAAG,kBAAkB,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI;AAEhF,YAAQ,YAAY;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AACD,eAAO,OAAO,OAAO;AAAA,MACzB,KAAK;AACD,eAAO,OAAO,KAAK;AAAA,MACvB,KAAK;AACD,eAAO,OAAO,OAAO;AAAA,MACzB,KAAK;AACD,eAAO;AAAA,UACH,IAAI,OAAO,IAAI;AAAA,QACnB;AAAA,MACJ,KAAK;AACD,eAAO,OAAO,OAAO;AAAA,MACzB,KAAK;AACD,eAAQ,OAAO,KAAK,EAAkB,CAAC,KAAK;AAAA,IACpD;AAEA,WAAO;AAAA,MACH,MAAM,kBAAkB,OAAO,OAAO,IAAI;AAAA,MAC1C,QAAQ;AAAA,IACZ;AAAA,EACJ;AAEA,QAAM,IAAI,MAAM,wBAAwB,KAAK,UAAU,IAAI,CAAC;AAChE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/methods.js
CHANGED
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
GetTransactionBlockDocument,
|
|
35
35
|
GetTypeLayoutDocument,
|
|
36
36
|
GetValidatorsApyDocument,
|
|
37
|
+
IsTransactionIndexedOnNodeDocument,
|
|
37
38
|
MultiGetObjectsDocument,
|
|
38
39
|
MultiGetTransactionBlocksDocument,
|
|
39
40
|
PaginateCheckpointTransactionBlocksDocument,
|
|
@@ -43,7 +44,8 @@ import {
|
|
|
43
44
|
QueryEventsDocument,
|
|
44
45
|
QueryTransactionBlocksDocument,
|
|
45
46
|
TransactionBlockKindInput,
|
|
46
|
-
TryGetPastObjectDocument
|
|
47
|
+
TryGetPastObjectDocument,
|
|
48
|
+
ViewDocument
|
|
47
49
|
} from "./generated/queries.js";
|
|
48
50
|
import { mapJsonToBcs } from "./mappers/bcs.js";
|
|
49
51
|
import { mapGraphQLCheckpointToRpcCheckpoint } from "./mappers/checkpoint.js";
|
|
@@ -909,52 +911,27 @@ const RPC_METHODS = {
|
|
|
909
911
|
hasNextPage: pageInfo.hasNextPage
|
|
910
912
|
};
|
|
911
913
|
},
|
|
914
|
+
async getDynamicFieldObjectV2(transport, inputs) {
|
|
915
|
+
return await getDynamicFieldObject(transport, inputs);
|
|
916
|
+
},
|
|
917
|
+
/**
|
|
918
|
+
* @deprecated The V1 of this method is deprecated, use `getDynamicFieldObjectV2` instead.
|
|
919
|
+
*/
|
|
912
920
|
async getDynamicFieldObject(transport, [parentId, name]) {
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
variables: {
|
|
917
|
-
type: name.type
|
|
918
|
-
}
|
|
919
|
-
},
|
|
920
|
-
(data) => data.type.layout
|
|
921
|
-
);
|
|
922
|
-
const bcsName = mapJsonToBcs(name.value, nameLayout);
|
|
923
|
-
const parent = await transport.graphqlQuery(
|
|
921
|
+
return await getDynamicFieldObject(transport, [
|
|
922
|
+
parentId,
|
|
923
|
+
name,
|
|
924
924
|
{
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
},
|
|
934
|
-
(data) => {
|
|
935
|
-
return data.owner?.dynamicObjectField?.value?.__typename === "MoveObject" ? data.owner.dynamicObjectField.value.owner?.__typename === "Parent" ? data.owner.dynamicObjectField.value.owner.parent : void 0 : void 0;
|
|
925
|
+
// These are the same defaults as in the JSON RPC.
|
|
926
|
+
showBcs: true,
|
|
927
|
+
showContent: true,
|
|
928
|
+
showDisplay: true,
|
|
929
|
+
showOwner: true,
|
|
930
|
+
showPreviousTransaction: true,
|
|
931
|
+
showStorageRebate: true,
|
|
932
|
+
showType: true
|
|
936
933
|
}
|
|
937
|
-
);
|
|
938
|
-
return {
|
|
939
|
-
data: {
|
|
940
|
-
content: {
|
|
941
|
-
dataType: "moveObject",
|
|
942
|
-
...moveDataToRpcContent(
|
|
943
|
-
parent?.asMoveObject?.contents?.data,
|
|
944
|
-
parent?.asMoveObject?.contents?.type.layout
|
|
945
|
-
)
|
|
946
|
-
},
|
|
947
|
-
digest: parent?.digest,
|
|
948
|
-
objectId: parent?.address,
|
|
949
|
-
type: toShortTypeString(parent?.asMoveObject?.contents?.type.repr),
|
|
950
|
-
version: parent?.version.toString(),
|
|
951
|
-
storageRebate: parent.storageRebate,
|
|
952
|
-
previousTransaction: parent.previousTransactionBlock?.digest,
|
|
953
|
-
owner: parent.owner?.__typename === "Parent" ? {
|
|
954
|
-
ObjectOwner: parent.owner.parent?.address
|
|
955
|
-
} : void 0
|
|
956
|
-
}
|
|
957
|
-
};
|
|
934
|
+
]);
|
|
958
935
|
},
|
|
959
936
|
async executeTransactionBlock(transport, [txBytes, signatures, options]) {
|
|
960
937
|
const { effects, errors } = await transport.graphqlQuery(
|
|
@@ -1270,6 +1247,41 @@ const RPC_METHODS = {
|
|
|
1270
1247
|
attributes,
|
|
1271
1248
|
featureFlags
|
|
1272
1249
|
};
|
|
1250
|
+
},
|
|
1251
|
+
async isTransactionIndexedOnNode(transport, [digest]) {
|
|
1252
|
+
const isTransactionIndexedOnNode = await transport.graphqlQuery(
|
|
1253
|
+
{
|
|
1254
|
+
query: IsTransactionIndexedOnNodeDocument,
|
|
1255
|
+
variables: {
|
|
1256
|
+
digest
|
|
1257
|
+
}
|
|
1258
|
+
},
|
|
1259
|
+
(data) => data.isTransactionIndexedOnNode
|
|
1260
|
+
);
|
|
1261
|
+
return isTransactionIndexedOnNode;
|
|
1262
|
+
},
|
|
1263
|
+
async view(transport, [functionName, typeArgs, callArgs]) {
|
|
1264
|
+
return await transport.graphqlQuery(
|
|
1265
|
+
{
|
|
1266
|
+
query: ViewDocument,
|
|
1267
|
+
variables: {
|
|
1268
|
+
functionName,
|
|
1269
|
+
typeArgs,
|
|
1270
|
+
arguments: callArgs
|
|
1271
|
+
}
|
|
1272
|
+
},
|
|
1273
|
+
(data) => {
|
|
1274
|
+
if (data.moveViewCall.error) {
|
|
1275
|
+
return {
|
|
1276
|
+
executionError: data.moveViewCall.error
|
|
1277
|
+
};
|
|
1278
|
+
} else {
|
|
1279
|
+
return {
|
|
1280
|
+
functionReturnValues: data.moveViewCall.results
|
|
1281
|
+
};
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
);
|
|
1273
1285
|
}
|
|
1274
1286
|
};
|
|
1275
1287
|
class UnsupportedParamError extends Error {
|
|
@@ -1356,6 +1368,60 @@ async function paginateCheckpointLists(transport, checkpoint) {
|
|
|
1356
1368
|
}
|
|
1357
1369
|
}
|
|
1358
1370
|
}
|
|
1371
|
+
async function getDynamicFieldObject(transport, [parentId, name, options]) {
|
|
1372
|
+
const nameLayout = await transport.graphqlQuery(
|
|
1373
|
+
{
|
|
1374
|
+
query: GetTypeLayoutDocument,
|
|
1375
|
+
variables: {
|
|
1376
|
+
type: name.type
|
|
1377
|
+
}
|
|
1378
|
+
},
|
|
1379
|
+
(data) => data.type.layout
|
|
1380
|
+
);
|
|
1381
|
+
const bcsName = mapJsonToBcs(name.value, nameLayout);
|
|
1382
|
+
const parent = await transport.graphqlQuery(
|
|
1383
|
+
{
|
|
1384
|
+
query: GetDynamicFieldObjectDocument,
|
|
1385
|
+
variables: {
|
|
1386
|
+
parentId,
|
|
1387
|
+
name: {
|
|
1388
|
+
type: name.type,
|
|
1389
|
+
bcs: bcsName
|
|
1390
|
+
},
|
|
1391
|
+
showBcs: options?.showBcs,
|
|
1392
|
+
showContent: options?.showContent,
|
|
1393
|
+
showDisplay: options?.showDisplay,
|
|
1394
|
+
showOwner: options?.showOwner,
|
|
1395
|
+
showPreviousTransaction: options?.showPreviousTransaction,
|
|
1396
|
+
showStorageRebate: options?.showStorageRebate,
|
|
1397
|
+
showType: options?.showType
|
|
1398
|
+
}
|
|
1399
|
+
},
|
|
1400
|
+
(data) => {
|
|
1401
|
+
return data.owner?.dynamicObjectField?.value?.__typename === "MoveObject" ? data.owner.dynamicObjectField.value.owner?.__typename === "Parent" ? data.owner.dynamicObjectField.value.owner.parent : void 0 : void 0;
|
|
1402
|
+
}
|
|
1403
|
+
);
|
|
1404
|
+
return {
|
|
1405
|
+
data: {
|
|
1406
|
+
content: parent.asMoveObject ? {
|
|
1407
|
+
dataType: "moveObject",
|
|
1408
|
+
...moveDataToRpcContent(
|
|
1409
|
+
parent.asMoveObject?.contents?.data,
|
|
1410
|
+
parent.asMoveObject?.contents?.type.layout
|
|
1411
|
+
)
|
|
1412
|
+
} : void 0,
|
|
1413
|
+
digest: parent?.digest,
|
|
1414
|
+
objectId: parent?.address,
|
|
1415
|
+
type: parent?.asMoveObject ? toShortTypeString(parent.asMoveObject.contents?.type.repr) : void 0,
|
|
1416
|
+
version: parent?.version.toString(),
|
|
1417
|
+
storageRebate: parent.storageRebate,
|
|
1418
|
+
previousTransaction: parent.previousTransactionBlock?.digest,
|
|
1419
|
+
owner: parent.owner?.__typename === "Parent" ? {
|
|
1420
|
+
ObjectOwner: parent.owner.parent?.address
|
|
1421
|
+
} : void 0
|
|
1422
|
+
}
|
|
1423
|
+
};
|
|
1424
|
+
}
|
|
1359
1425
|
export {
|
|
1360
1426
|
RPC_METHODS,
|
|
1361
1427
|
UnsupportedMethodError,
|