Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/polite-shirts-occur.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@iota/graphql-transport': minor
'@iota/iota-sdk': minor
---

Add the `MoveAuthenticator` variant to the `GenericSignature` to allow the authentication of Abstract Accounts.
109 changes: 106 additions & 3 deletions sdk/graphql-transport/src/generated/queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6100,7 +6100,7 @@ export type GetNormalizedMoveModuleQueryVariables = Exact<{
}>;


export type GetNormalizedMoveModuleQuery = { __typename?: 'Query', object?: { __typename?: 'Object', asMovePackage?: { __typename?: 'MovePackage', module?: { __typename?: 'MoveModule', name: string, fileFormatVersion: number, friends: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, package: { __typename?: 'MovePackage', address: any } }> }, structs?: { __typename?: 'MoveStructConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveStruct', name: string, abilities?: Array<MoveAbility> | null, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', signature: any } | null }> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', isPhantom: boolean, constraints: Array<MoveAbility> }> | null }> } | null, functions?: { __typename?: 'MoveFunctionConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveFunction', name: string, visibility?: MoveVisibility | null, isEntry?: boolean | null, parameters?: Array<{ __typename?: 'OpenMoveType', signature: any }> | null, typeParameters?: Array<{ __typename?: 'MoveFunctionTypeParameter', constraints: Array<MoveAbility> }> | null, return?: Array<{ __typename?: 'OpenMoveType', repr: string, signature: any }> | null }> } | null } | null } | null } | null };
export type GetNormalizedMoveModuleQuery = { __typename?: 'Query', object?: { __typename?: 'Object', asMovePackage?: { __typename?: 'MovePackage', module?: { __typename?: 'MoveModule', name: string, fileFormatVersion: number, friends: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, package: { __typename?: 'MovePackage', address: any } }> }, structs?: { __typename?: 'MoveStructConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveStruct', name: string, abilities?: Array<MoveAbility> | null, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', signature: any } | null }> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', isPhantom: boolean, constraints: Array<MoveAbility> }> | null }> } | null, enums?: { __typename?: 'MoveEnumConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveEnum', name: string, abilities?: Array<MoveAbility> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', constraints: Array<MoveAbility>, isPhantom: boolean }> | null, variants?: Array<{ __typename?: 'MoveEnumVariant', name: string, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', repr: string, signature: any } | null }> | null }> | null }> } | null, functions?: { __typename?: 'MoveFunctionConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveFunction', name: string, visibility?: MoveVisibility | null, isEntry?: boolean | null, parameters?: Array<{ __typename?: 'OpenMoveType', signature: any }> | null, typeParameters?: Array<{ __typename?: 'MoveFunctionTypeParameter', constraints: Array<MoveAbility> }> | null, return?: Array<{ __typename?: 'OpenMoveType', repr: string, signature: any }> | null }> } | null } | null } | null } | null };

export type PaginateMoveModuleListsQueryVariables = Exact<{
packageId: Scalars['IotaAddress']['input'];
Expand All @@ -6116,15 +6116,17 @@ export type PaginateMoveModuleListsQueryVariables = Exact<{

export type PaginateMoveModuleListsQuery = { __typename?: 'Query', object?: { __typename?: 'Object', asMovePackage?: { __typename?: 'MovePackage', module?: { __typename?: 'MoveModule', friends?: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, package: { __typename?: 'MovePackage', address: any } }> }, structs?: { __typename?: 'MoveStructConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveStruct', name: string, abilities?: Array<MoveAbility> | null, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', signature: any } | null }> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', isPhantom: boolean, constraints: Array<MoveAbility> }> | null }> } | null, functions?: { __typename?: 'MoveFunctionConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveFunction', name: string, visibility?: MoveVisibility | null, isEntry?: boolean | null, parameters?: Array<{ __typename?: 'OpenMoveType', signature: any }> | null, typeParameters?: Array<{ __typename?: 'MoveFunctionTypeParameter', constraints: Array<MoveAbility> }> | null, return?: Array<{ __typename?: 'OpenMoveType', repr: string, signature: any }> | null }> } | null } | null } | null } | null };

export type Rpc_Move_Module_FieldsFragment = { __typename?: 'MoveModule', name: string, fileFormatVersion: number, friends: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, package: { __typename?: 'MovePackage', address: any } }> }, structs?: { __typename?: 'MoveStructConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveStruct', name: string, abilities?: Array<MoveAbility> | null, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', signature: any } | null }> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', isPhantom: boolean, constraints: Array<MoveAbility> }> | null }> } | null, functions?: { __typename?: 'MoveFunctionConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveFunction', name: string, visibility?: MoveVisibility | null, isEntry?: boolean | null, parameters?: Array<{ __typename?: 'OpenMoveType', signature: any }> | null, typeParameters?: Array<{ __typename?: 'MoveFunctionTypeParameter', constraints: Array<MoveAbility> }> | null, return?: Array<{ __typename?: 'OpenMoveType', repr: string, signature: any }> | null }> } | null };
export type Rpc_Move_Module_FieldsFragment = { __typename?: 'MoveModule', name: string, fileFormatVersion: number, friends: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, package: { __typename?: 'MovePackage', address: any } }> }, structs?: { __typename?: 'MoveStructConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveStruct', name: string, abilities?: Array<MoveAbility> | null, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', signature: any } | null }> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', isPhantom: boolean, constraints: Array<MoveAbility> }> | null }> } | null, enums?: { __typename?: 'MoveEnumConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveEnum', name: string, abilities?: Array<MoveAbility> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', constraints: Array<MoveAbility>, isPhantom: boolean }> | null, variants?: Array<{ __typename?: 'MoveEnumVariant', name: string, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', repr: string, signature: any } | null }> | null }> | null }> } | null, functions?: { __typename?: 'MoveFunctionConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveFunction', name: string, visibility?: MoveVisibility | null, isEntry?: boolean | null, parameters?: Array<{ __typename?: 'OpenMoveType', signature: any }> | null, typeParameters?: Array<{ __typename?: 'MoveFunctionTypeParameter', constraints: Array<MoveAbility> }> | null, return?: Array<{ __typename?: 'OpenMoveType', repr: string, signature: any }> | null }> } | null };

export type Rpc_Move_Enum_FieldsFragment = { __typename?: 'MoveEnum', name: string, abilities?: Array<MoveAbility> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', constraints: Array<MoveAbility>, isPhantom: boolean }> | null, variants?: Array<{ __typename?: 'MoveEnumVariant', name: string, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', repr: string, signature: any } | null }> | null }> | null };

export type GetNormalizedMoveModulesByPackageQueryVariables = Exact<{
packageId: Scalars['IotaAddress']['input'];
cursor?: InputMaybe<Scalars['String']['input']>;
}>;


export type GetNormalizedMoveModulesByPackageQuery = { __typename?: 'Query', object?: { __typename?: 'Object', asMovePackage?: { __typename?: 'MovePackage', address: any, modules?: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, fileFormatVersion: number, friends: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, package: { __typename?: 'MovePackage', address: any } }> }, structs?: { __typename?: 'MoveStructConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveStruct', name: string, abilities?: Array<MoveAbility> | null, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', signature: any } | null }> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', isPhantom: boolean, constraints: Array<MoveAbility> }> | null }> } | null, functions?: { __typename?: 'MoveFunctionConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveFunction', name: string, visibility?: MoveVisibility | null, isEntry?: boolean | null, parameters?: Array<{ __typename?: 'OpenMoveType', signature: any }> | null, typeParameters?: Array<{ __typename?: 'MoveFunctionTypeParameter', constraints: Array<MoveAbility> }> | null, return?: Array<{ __typename?: 'OpenMoveType', repr: string, signature: any }> | null }> } | null }> } | null } | null } | null };
export type GetNormalizedMoveModulesByPackageQuery = { __typename?: 'Query', object?: { __typename?: 'Object', asMovePackage?: { __typename?: 'MovePackage', address: any, modules?: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, fileFormatVersion: number, friends: { __typename?: 'MoveModuleConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveModule', name: string, package: { __typename?: 'MovePackage', address: any } }> }, structs?: { __typename?: 'MoveStructConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveStruct', name: string, abilities?: Array<MoveAbility> | null, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', signature: any } | null }> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', isPhantom: boolean, constraints: Array<MoveAbility> }> | null }> } | null, enums?: { __typename?: 'MoveEnumConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveEnum', name: string, abilities?: Array<MoveAbility> | null, typeParameters?: Array<{ __typename?: 'MoveStructTypeParameter', constraints: Array<MoveAbility>, isPhantom: boolean }> | null, variants?: Array<{ __typename?: 'MoveEnumVariant', name: string, fields?: Array<{ __typename?: 'MoveField', name: string, type?: { __typename?: 'OpenMoveType', repr: string, signature: any } | null }> | null }> | null }> } | null, functions?: { __typename?: 'MoveFunctionConnection', pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean, endCursor?: string | null }, nodes: Array<{ __typename?: 'MoveFunction', name: string, visibility?: MoveVisibility | null, isEntry?: boolean | null, parameters?: Array<{ __typename?: 'OpenMoveType', signature: any }> | null, typeParameters?: Array<{ __typename?: 'MoveFunctionTypeParameter', constraints: Array<MoveAbility> }> | null, return?: Array<{ __typename?: 'OpenMoveType', repr: string, signature: any }> | null }> } | null }> } | null } | null } | null };

export type GetNormalizedMoveStructQueryVariables = Exact<{
packageId: Scalars['IotaAddress']['input'];
Expand Down Expand Up @@ -6543,6 +6545,26 @@ export const Rpc_Move_Struct_FieldsFragmentDoc = new TypedDocumentString(`
}
}
`, {"fragmentName":"RPC_MOVE_STRUCT_FIELDS"}) as unknown as TypedDocumentString<Rpc_Move_Struct_FieldsFragment, unknown>;
export const Rpc_Move_Enum_FieldsFragmentDoc = new TypedDocumentString(`
fragment RPC_MOVE_ENUM_FIELDS on MoveEnum {
name
abilities
typeParameters {
constraints
isPhantom
}
variants {
name
fields {
name
type {
repr
signature
}
}
}
}
`, {"fragmentName":"RPC_MOVE_ENUM_FIELDS"}) as unknown as TypedDocumentString<Rpc_Move_Enum_FieldsFragment, unknown>;
export const Rpc_Move_Function_FieldsFragmentDoc = new TypedDocumentString(`
fragment RPC_MOVE_FUNCTION_FIELDS on MoveFunction {
name
Expand Down Expand Up @@ -6584,6 +6606,15 @@ export const Rpc_Move_Module_FieldsFragmentDoc = new TypedDocumentString(`
...RPC_MOVE_STRUCT_FIELDS
}
}
enums {
pageInfo {
hasNextPage
endCursor
}
nodes {
...RPC_MOVE_ENUM_FIELDS
}
}
fileFormatVersion
functions {
pageInfo {
Expand All @@ -6610,6 +6641,24 @@ export const Rpc_Move_Module_FieldsFragmentDoc = new TypedDocumentString(`
signature
}
}
fragment RPC_MOVE_ENUM_FIELDS on MoveEnum {
name
abilities
typeParameters {
constraints
isPhantom
}
variants {
name
fields {
name
type {
repr
signature
}
}
}
}
fragment RPC_MOVE_STRUCT_FIELDS on MoveStruct {
name
abilities
Expand Down Expand Up @@ -8128,6 +8177,15 @@ fragment RPC_MOVE_MODULE_FIELDS on MoveModule {
...RPC_MOVE_STRUCT_FIELDS
}
}
enums {
pageInfo {
hasNextPage
endCursor
}
nodes {
...RPC_MOVE_ENUM_FIELDS
}
}
fileFormatVersion
functions {
pageInfo {
Expand All @@ -8139,6 +8197,24 @@ fragment RPC_MOVE_MODULE_FIELDS on MoveModule {
}
}
}
fragment RPC_MOVE_ENUM_FIELDS on MoveEnum {
name
abilities
typeParameters {
constraints
isPhantom
}
variants {
name
fields {
name
type {
repr
signature
}
}
}
}
fragment RPC_MOVE_STRUCT_FIELDS on MoveStruct {
name
abilities
Expand Down Expand Up @@ -8276,6 +8352,15 @@ fragment RPC_MOVE_MODULE_FIELDS on MoveModule {
...RPC_MOVE_STRUCT_FIELDS
}
}
enums {
pageInfo {
hasNextPage
endCursor
}
nodes {
...RPC_MOVE_ENUM_FIELDS
}
}
fileFormatVersion
functions {
pageInfo {
Expand All @@ -8287,6 +8372,24 @@ fragment RPC_MOVE_MODULE_FIELDS on MoveModule {
}
}
}
fragment RPC_MOVE_ENUM_FIELDS on MoveEnum {
name
abilities
typeParameters {
constraints
isPhantom
}
variants {
name
fields {
name
type {
repr
signature
}
}
}
}
fragment RPC_MOVE_STRUCT_FIELDS on MoveStruct {
name
abilities
Expand Down
43 changes: 43 additions & 0 deletions sdk/graphql-transport/src/mappers/move.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ import type {
IotaMoveNormalizedModule,
IotaMoveNormalizedStruct,
IotaMoveNormalizedType,
IotaMoveNormalizedEnum,
IotaMoveNormalizedField,
} from '@iota/iota-sdk/client';
import { normalizeIotaAddress, parseStructTag } from '@iota/iota-sdk/utils';

import type {
Rpc_Move_Enum_FieldsFragment,
Rpc_Move_Function_FieldsFragment,
Rpc_Move_Module_FieldsFragment,
Rpc_Move_Struct_FieldsFragment,
Expand Down Expand Up @@ -152,12 +155,47 @@ export function mapNormalizedMoveStruct(
};
}

export function mapNormalizedMoveEnum(
struct: Rpc_Move_Enum_FieldsFragment,
): IotaMoveNormalizedEnum {
return {
abilities: {
abilities:
struct.abilities?.map(
(ability) =>
`${ability[0]}${ability.slice(1).toLowerCase()}` as IotaMoveAbility,
) ?? [],
},
variants:
struct.variants?.reduce<Record<string, IotaMoveNormalizedField[]>>((acc, variant) => {
acc[variant.name] =
variant.fields?.map((field) => ({
name: field.name,
type: mapOpenMoveType(field.type?.signature),
})) ?? [];

return acc;
}, {}) ?? {},
typeParameters:
struct.typeParameters?.map((param) => ({
isPhantom: param.isPhantom!,
constraints: {
abilities: param.constraints?.map(
(constraint) =>
`${constraint[0]}${constraint.slice(1).toLowerCase()}` as IotaMoveAbility,
),
},
})) ?? [],
};
}

export function mapNormalizedMoveModule(
module: Rpc_Move_Module_FieldsFragment,
address: string,
): IotaMoveNormalizedModule {
const exposedFunctions: Record<string, IotaMoveNormalizedFunction> = {};
const structs: Record<string, IotaMoveNormalizedStruct> = {};
const enums: Record<string, IotaMoveNormalizedEnum> = {};

module.functions?.nodes
.filter(
Expand All @@ -171,6 +209,10 @@ export function mapNormalizedMoveModule(
structs[struct.name] = mapNormalizedMoveStruct(struct);
});

module.enums?.nodes.forEach((_enum) => {
enums[_enum.name] = mapNormalizedMoveEnum(_enum);
});

return {
address: toShortTypeString(address),
name: module.name,
Expand All @@ -181,6 +223,7 @@ export function mapNormalizedMoveModule(
name: friend.name,
})) ?? [],
structs,
...(Object.keys(enums).length > 0 ? { enums } : {}),
exposedFunctions,
};
}
Expand Down
28 changes: 28 additions & 0 deletions sdk/graphql-transport/src/queries/getNormalizedMoveModule.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,15 @@ fragment RPC_MOVE_MODULE_FIELDS on MoveModule {
...RPC_MOVE_STRUCT_FIELDS
}
}
enums {
pageInfo {
hasNextPage
endCursor
}
nodes {
...RPC_MOVE_ENUM_FIELDS
}
}
fileFormatVersion
functions {
pageInfo {
Expand All @@ -94,3 +103,22 @@ fragment RPC_MOVE_MODULE_FIELDS on MoveModule {
}
}
}

fragment RPC_MOVE_ENUM_FIELDS on MoveEnum {
name
abilities
typeParameters {
constraints
isPhantom
}
variants {
name
fields {
name
type {
repr
signature
}
}
}
}
Loading
Loading