@sentio/sdk 2.11.2 → 2.11.3-rc.2
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/lib/aptos/ext/coin.js +73 -96
 - package/lib/aptos/ext/coin.js.map +1 -1
 - package/lib/move/abstract-codegen.d.ts +1 -0
 - package/lib/move/abstract-codegen.js +2 -1
 - package/lib/move/abstract-codegen.js.map +1 -1
 - package/lib/sui/builtin/0x2.d.ts +74 -40
 - package/lib/sui/builtin/0x2.js.map +1 -1
 - package/lib/sui/builtin/0x3.d.ts +190 -104
 - package/lib/sui/builtin/0x3.js.map +1 -1
 - package/lib/sui/codegen/codegen.js +1 -0
 - package/lib/sui/codegen/codegen.js.map +1 -1
 - package/lib/sui/models.d.ts +1 -1
 - package/lib/sui/models.js.map +1 -1
 - package/package.json +7 -5
 - package/src/aptos/ext/coin.ts +73 -98
 - package/src/move/abstract-codegen.ts +2 -1
 - package/src/sui/builtin/0x2.ts +64 -40
 - package/src/sui/builtin/0x3.ts +167 -102
 - package/src/sui/codegen/codegen.ts +1 -0
 - package/src/sui/models.ts +1 -1
 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"abstract-codegen.js","sourceRoot":"","sources":["../../src/move/abstract-codegen.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n  InternalMoveFunction,\n  InternalMoveFunctionVisibility,\n  InternalMoveModule,\n  InternalMoveStruct,\n} from './internal-models.js'\nimport path from 'path'\nimport fs from 'fs'\nimport { AccountModulesImportInfo, AccountRegister } from './account.js'\nimport chalk from 'chalk'\nimport { format } from 'prettier'\nimport { isFrameworkAccount, moduleQname, normalizeToJSName, SPLITTER, VECTOR_STR } from './utils.js'\nimport { camelCase, upperFirst } from 'lodash-es'\nimport { TypeDescriptor } from './types.js'\n\ninterface OutputFile {\n  fileName: string\n  fileContent: string\n}\n\ninterface Config<NetworkType> {\n  fileName: string\n  outputDir: string\n  network: NetworkType\n}\n\nexport abstract class AbstractCodegen<ModuleTypes, NetworkType> {\n  TEST_NET: NetworkType\n  MAIN_NET: NetworkType\n  ADDRESS_TYPE: string\n  PREFIX: string\n  STRUCT_FIELD_NAME: string = 'data'\n  GENERATE_CLIENT = false\n  GENERATE_ON_ENTRY = true\n\n  abstract fetchModules(account: string, network: NetworkType): Promise<ModuleTypes>\n  abstract toInternalModules(modules: ModuleTypes): InternalMoveModule[]\n  // Get the structs that represent Events\n  abstract getEventStructs(module: InternalMoveModule): Map<string, InternalMoveStruct>\n  // Get the parameters that actually have arguments in runtime\n  // Aptos first signer and Sui's last TxContext are no use\n  abstract getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[]\n\n  readModulesFile(fullPath: string) {\n    return JSON.parse(fs.readFileSync(fullPath, 'utf-8'))\n  }\n\n  async generate(srcDir: string, outputDir: string): Promise<number> {\n    const num1 = await this.generateForNetwork(srcDir, outputDir, this.MAIN_NET)\n    const num2 = await this.generateForNetwork(\n      path.join(srcDir, 'testnet'),\n      path.join(outputDir, 'testnet'),\n      this.TEST_NET\n    )\n    return num1 + num2\n  }\n\n  async generateForNetwork(srcDir: string, outputDir: string, network: NetworkType) {\n    if (!fs.existsSync(srcDir)) {\n      return 0\n    }\n\n    const files = fs.readdirSync(srcDir)\n    outputDir = path.resolve(outputDir)\n    const outputs: OutputFile[] = []\n\n    fs.mkdirSync(outputDir, { recursive: true })\n\n    const loader = new AccountRegister()\n\n    // when generating user code, don't need to generate framework account\n    loader.accountImports.set('0x1', new AccountModulesImportInfo('0x1', '0x1'))\n    loader.accountImports.set('0x2', new AccountModulesImportInfo('0x2', '0x2'))\n    loader.accountImports.set('0x3', new AccountModulesImportInfo('0x3', '0x3'))\n    // const client = getRpcClient(network)\n\n    for (const file of files) {\n      if (!file.endsWith('.json')) {\n        continue\n      }\n      const fullPath = path.resolve(srcDir, file)\n      const abi = this.readModulesFile(fullPath)\n      const modules = this.toInternalModules(abi)\n\n      for (const module of modules) {\n        loader.register(module, path.basename(file, '.json'))\n      }\n      const codeGen = new AccountCodegen(this, loader, abi, modules, {\n        fileName: path.basename(file, '.json'),\n        outputDir: outputDir,\n        network,\n      })\n\n      outputs.push(...codeGen.generate())\n    }\n\n    while (loader.pendingAccounts.size > 0) {\n      for (const account of loader.pendingAccounts) {\n        console.log(`download dependent module for account ${account} at ${network}`)\n\n        try {\n          const rawModules = await this.fetchModules(account, network)\n          const modules = this.toInternalModules(rawModules)\n\n          fs.writeFileSync(path.resolve(srcDir, account + '.json'), JSON.stringify(rawModules, null, '\\t'))\n          for (const module of modules) {\n            loader.register(module, account)\n          }\n          const codeGen = new AccountCodegen(this, loader, rawModules, modules, {\n            fileName: account,\n            outputDir: outputDir,\n            network,\n          })\n\n          outputs.push(...codeGen.generate())\n        } catch (e) {\n          console.error(\n            chalk.red(\n              'Error downloading account module, check if you choose the right network,or download account modules manually into your director'\n            )\n          )\n          console.error(e)\n          process.exit(1)\n        }\n      }\n    }\n\n    for (const output of outputs) {\n      // const content = output.fileContent\n      const content = format(output.fileContent, { parser: 'typescript' })\n      fs.writeFileSync(path.join(outputDir, output.fileName), content)\n    }\n\n    const rootFile = path.join(outputDir, 'index.ts')\n    fs.writeFileSync(\n      rootFile,\n      `/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n`\n    )\n    for (const output of outputs) {\n      const parsed = path.parse(output.fileName)\n      const content = `export * as _${parsed.name.replaceAll('-', '_')} from './${parsed.name}.js'\\n`\n      fs.appendFileSync(rootFile, content)\n    }\n    return outputs.length + 1\n  }\n\n  generateNetworkOption(network: NetworkType) {\n    switch (network) {\n      case this.TEST_NET:\n        return 'TEST_NET'\n    }\n    return 'MAIN_NET'\n  }\n\n  generateModule(module: InternalMoveModule, network: NetworkType) {\n    const functions = this.GENERATE_ON_ENTRY\n      ? module.exposedFunctions.map((f) => this.generateOnEntryFunctions(module, f)).filter((s) => s !== '')\n      : []\n    const clientFunctions = this.GENERATE_CLIENT\n      ? module.exposedFunctions.map((f) => this.generateClientFunctions(module, f)).filter((s) => s !== '')\n      : []\n    const eventStructs = this.getEventStructs(module)\n    const eventTypes = new Set(eventStructs.keys())\n    const events = Array.from(eventStructs.values())\n      .map((e) => this.generateOnEvents(module, e))\n      .filter((s) => s !== '')\n    const structs = module.structs.map((s) => this.generateStructs(module, s, eventTypes))\n    const callArgs = module.exposedFunctions.map((f) => this.generateCallArgsStructs(module, f))\n\n    const moduleName = normalizeToJSName(module.name)\n    let processor = ''\n    let client = ''\n\n    if (clientFunctions.length > 0) {\n      client = `\n      export class ${moduleName}_client extends ModuleClient {\n        ${clientFunctions.join('\\n')}\n      }\n      `\n    }\n\n    if (functions.length > 0 || events.length > 0) {\n      processor = `export class ${moduleName} extends ${this.PREFIX}BaseProcessor {\n\n    constructor(options: ${this.PREFIX}BindOptions) {\n      super(\"${module.name}\", options)\n    }\n    static DEFAULT_OPTIONS: ${this.PREFIX}BindOptions = {\n      address: \"${module.address}\",\n      network: ${this.PREFIX}Network.${this.generateNetworkOption(network)}\n    }\n\n    static bind(options: Partial<${this.PREFIX}BindOptions> = {}): ${moduleName} {\n      return new ${moduleName}({ ...${moduleName}.DEFAULT_OPTIONS, ...options })\n    }\n\n    ${functions.join('\\n')}\n\n    ${events.join('\\n')}\n  }\n  `\n    }\n\n    return `\n  ${client}\n\n  ${processor}\n\n  export namespace ${moduleName} {\n    ${structs.join('\\n')}\n\n    ${callArgs.join('\\n')}\n }\n  `\n  }\n\n  generateStructs(module: InternalMoveModule, struct: InternalMoveStruct, events: Set<string>) {\n    const genericString = this.generateStructTypeParameters(struct)\n    const genericStringAny = this.generateStructTypeParameters(struct, true)\n\n    const structName = normalizeToJSName(struct.name)\n\n    const fields = struct.fields.map((field) => {\n      const type = this.generateTypeForDescriptor(field.type, module.address)\n      return `${field.name}: ${type}`\n    })\n\n    let eventPayload = ''\n    if (events.has(moduleQname(module) + SPLITTER + struct.name)) {\n      eventPayload = `\n    export interface ${structName}Instance extends\n        TypedEventInstance<${structName}${genericStringAny}> {\n      ${this.STRUCT_FIELD_NAME}_decoded: ${structName}${genericStringAny}\n      type_arguments: [${struct.typeParams.map((_) => 'string').join(', ')}]\n    }\n    `\n    }\n\n    return `\n  export class ${structName}${genericString} {\n    static TYPE_QNAME = '${module.address}::${module.name}::${struct.name}'\n    ${fields.join('\\n')}\n  }\n\n  ${eventPayload}\n  `\n  }\n\n  generateFunctionTypeParameters(func: InternalMoveFunction) {\n    let genericString = ''\n    if (func.typeParams && func.typeParams.length > 0) {\n      const params = func.typeParams\n        .map((v, idx) => {\n          return `T${idx}=any`\n        })\n        .join(',')\n      genericString = `<${params}>`\n    }\n    return genericString\n  }\n\n  generateStructTypeParameters(struct: InternalMoveStruct, useAny = false) {\n    let genericString = ''\n\n    if (struct.typeParams && struct.typeParams.length > 0) {\n      const params = struct.typeParams\n        .map((v, idx) => {\n          return useAny ? 'any' : 'T' + idx\n        })\n        .join(',')\n      genericString = `<${params}>`\n    }\n    return genericString\n  }\n\n  generateCallArgsStructs(module: InternalMoveModule, func: InternalMoveFunction) {\n    if (!func.isEntry) {\n      return\n    }\n\n    const fields = this.getMeaningfulFunctionParams(func.params).map((param) => {\n      return this.generateTypeForDescriptor(param, module.address)\n    })\n\n    const camelFuncName = upperFirst(camelCase(func.name))\n\n    const genericString = this.generateFunctionTypeParameters(func)\n    return `\n  export interface ${camelFuncName}Payload${genericString}\n      extends TypedFunctionPayload<[${fields.join(',')}]> {\n    arguments_decoded: [${fields.join(',')}],\n    type_arguments: [${func.typeParams.map((_) => 'string').join(', ')}]\n  }\n  `\n  }\n\n  generateClientFunctions(module: InternalMoveModule, func: InternalMoveFunction) {\n    if (func.visibility === InternalMoveFunctionVisibility.PRIVATE) {\n      return ''\n    }\n    if (func.isEntry) {\n      return ''\n    }\n    // const moduleName = normalizeToJSName(module.name)\n    const funcName = camelCase(func.name)\n    const fields = this.getMeaningfulFunctionParams(func.params).map((param) => {\n      return this.generateTypeForDescriptor(param, module.address)\n    })\n    const genericString = this.generateFunctionTypeParameters(func)\n\n    const returns = func.return.map((param) => {\n      return this.generateTypeForDescriptor(param, module.address)\n    })\n\n    const source = `\n  ${funcName}${genericString}(type_arguments: [${func.typeParams\n      .map((_) => 'string')\n      .join(', ')}], args: [${fields.join(',')}], version?: bigint): Promise<[${returns.join(',')}]> {\n    return this.viewDecoded('${module.address}::${module.name}::${func.name}', type_arguments, args, version) as any\n  }`\n    return source\n  }\n\n  generateOnEntryFunctions(module: InternalMoveModule, func: InternalMoveFunction) {\n    if (!func.isEntry) {\n      return ''\n    }\n\n    // const genericString = generateFunctionTypeParameters(func)\n    const moduleName = normalizeToJSName(module.name)\n\n    const camelFuncName = upperFirst(camelCase(func.name))\n    const source = `\n  onEntry${camelFuncName}(func: (call: ${moduleName}.${camelFuncName}Payload, ctx: ${this.PREFIX}Context) => void, filter?: CallFilter, fetchConfig?: MoveFetchConfig): ${moduleName} {\n    this.onEntryFunctionCall(func, {\n      ...filter,\n      function: '${module.name}::${func.name}'\n    },\n    fetchConfig)\n    return this\n  }`\n\n    return source\n  }\n\n  generateOnEvents(module: InternalMoveModule, struct: InternalMoveStruct): string {\n    // for struct that has drop + store\n    // if (!isEvent(struct, module)) {\n    //   return ''\n    // }\n\n    // const genericString = generateStructTypeParameters(struct)\n\n    const moduleName = normalizeToJSName(module.name)\n    const source = `\n  onEvent${struct.name}(func: (event: ${moduleName}.${normalizeToJSName(struct.name)}Instance, ctx: ${\n      this.PREFIX\n    }Context) => void, fetchConfig?: MoveFetchConfig): ${moduleName} {\n    this.onMoveEvent(func, {\n      type: '${module.name}::${struct.name}'\n    },\n    fetchConfig)\n    return this\n  }\n  `\n    return source\n  }\n\n  generateTypeForDescriptor(type: TypeDescriptor, currentAddress: string): string {\n    if (type.reference) {\n      return this.ADDRESS_TYPE\n    }\n\n    switch (type.qname) {\n      case 'signer': // TODO check this\n      case 'address':\n      case 'Address':\n        return this.ADDRESS_TYPE\n      case '0x1::string::String':\n        return 'string'\n      case 'bool':\n      case 'Bool':\n        return 'Boolean'\n      case 'u8':\n      case 'U8':\n      case 'u16':\n      case 'U16':\n      case 'u32':\n      case 'U32':\n        return 'number'\n      case 'u64':\n      case 'U64':\n      case 'u128':\n      case 'U128':\n      case 'u256':\n      case 'U256':\n        return 'bigint'\n    }\n\n    if (type.qname.toLowerCase() === VECTOR_STR) {\n      // vector<u8> as hex string\n      const elementTypeQname = type.typeArgs[0].qname\n      if (elementTypeQname === 'u8') {\n        // only for aptos\n        return 'string'\n      }\n      if (elementTypeQname.startsWith('T') && !elementTypeQname.includes(SPLITTER)) {\n        return `${elementTypeQname}[] | string`\n      }\n      return this.generateTypeForDescriptor(type.typeArgs[0], currentAddress) + '[]'\n    }\n\n    const simpleName = this.generateSimpleType(type.qname, currentAddress)\n    if (simpleName.length === 0) {\n      console.error('unexpected error')\n    }\n    if (simpleName.toLowerCase() === VECTOR_STR || simpleName.toLowerCase().startsWith(VECTOR_STR + SPLITTER)) {\n      console.error('unexpected vector type error')\n    }\n    if (type.typeArgs.length > 0) {\n      // return simpleName\n      return (\n        simpleName + '<' + type.typeArgs.map((t) => this.generateTypeForDescriptor(t, currentAddress)).join(',') + '>'\n      )\n    }\n    return simpleName\n  }\n\n  generateSimpleType(type: string, currentAddress: string): string {\n    const parts = type.split(SPLITTER)\n\n    for (let i = 0; i < parts.length; i++) {\n      parts[i] = normalizeToJSName(parts[i])\n    }\n\n    if (parts.length < 2) {\n      return parts[0]\n    }\n    if (parts[0] === currentAddress) {\n      return parts.slice(1).join('.')\n    }\n    return '_' + parts.join('.')\n  }\n}\n\nexport class AccountCodegen<ModuleType, NetworkType> {\n  modules: InternalMoveModule[]\n  config: Config<NetworkType>\n  abi: ModuleType\n  loader: AccountRegister\n  moduleGen: AbstractCodegen<ModuleType, NetworkType>\n\n  constructor(\n    moduleGen: AbstractCodegen<ModuleType, NetworkType>,\n    loader: AccountRegister,\n    abi: ModuleType,\n    modules: InternalMoveModule[],\n    config: Config<NetworkType>\n  ) {\n    // const json = fs.readFileSync(config.srcFile, 'utf-8')\n    this.moduleGen = moduleGen\n    this.abi = abi\n    this.modules = modules\n    this.config = config\n    this.loader = loader\n  }\n\n  generate(): OutputFile[] {\n    if (!this.modules) {\n      return []\n    }\n    // const baseName = path.basename(this.config.fileName, '.json')\n\n    let address: string | undefined\n    for (const module of this.modules) {\n      address = module.address\n    }\n    if (!address) {\n      return []\n    }\n\n    const imports = `\n    import { CallFilter } from \"@sentio/sdk/move\"\n    import {\n      MoveCoder, defaultMoveCoder, ${this.moduleGen.PREFIX}BindOptions, ${this.moduleGen.PREFIX}BaseProcessor,\n      TypedEventInstance, ${this.moduleGen.PREFIX}Network, TypedFunctionPayload,\n      ${this.moduleGen.PREFIX}Context } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}\"\n    import { MoveFetchConfig } from \"@sentio/protos\"\n    import { ${this.moduleGen.ADDRESS_TYPE}, ModuleClient } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}\"\n    `\n\n    const dependedAccounts: string[] = []\n\n    const moduleImports: string[] = []\n\n    const info = this.loader.accountImports.get(address)\n\n    if (info) {\n      for (const [account] of info.imports.entries()) {\n        // Remap to user's filename if possible, TODO codepath not well tested\n        const tsAccountModule = './' + (this.loader.accountImports.get(account)?.moduleName || account)\n        if (isFrameworkAccount(account) && !isFrameworkAccount(address)) {\n          // Decide where to find runtime library\n          moduleImports.push(`import { _${account} } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}/builtin\"`)\n        } else {\n          moduleImports.push(`import * as _${account} from \"${tsAccountModule}.js\"`)\n        }\n\n        dependedAccounts.push(account)\n      }\n    }\n\n    const source = `\n    /* Autogenerated file. Do not edit manually. */\n    /* tslint:disable */\n    /* eslint-disable */\n\n    /* Generated modules for account ${address} */\n\n    ${imports}\n\n    ${moduleImports.join('\\n')}\n\n    ${this.modules.map((m) => this.moduleGen.generateModule(m, this.config.network)).join('\\n')}\n\n    const MODULES = JSON.parse('${JSON.stringify(this.abi)}')\n\n    export function loadAllTypes(coder: MoveCoder) {\n      ${dependedAccounts.map((a) => `_${a}.loadAllTypes(coder)`).join('\\n')}\n      for (const m of Object.values(MODULES)) {\n        coder.load(m as any)\n      }\n    }\n\n    loadAllTypes(defaultMoveCoder())\n    ` // source\n\n    return [\n      {\n        fileName: this.config.fileName + '.ts',\n        fileContent: source,\n      },\n    ]\n  }\n}\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"abstract-codegen.js","sourceRoot":"","sources":["../../src/move/abstract-codegen.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n  InternalMoveFunction,\n  InternalMoveFunctionVisibility,\n  InternalMoveModule,\n  InternalMoveStruct,\n} from './internal-models.js'\nimport path from 'path'\nimport fs from 'fs'\nimport { AccountModulesImportInfo, AccountRegister } from './account.js'\nimport chalk from 'chalk'\nimport { format } from 'prettier'\nimport { isFrameworkAccount, moduleQname, normalizeToJSName, SPLITTER, VECTOR_STR } from './utils.js'\nimport { camelCase, upperFirst } from 'lodash-es'\nimport { TypeDescriptor } from './types.js'\n\ninterface OutputFile {\n  fileName: string\n  fileContent: string\n}\n\ninterface Config<NetworkType> {\n  fileName: string\n  outputDir: string\n  network: NetworkType\n}\n\nexport abstract class AbstractCodegen<ModuleTypes, NetworkType> {\n  TEST_NET: NetworkType\n  MAIN_NET: NetworkType\n  ADDRESS_TYPE: string\n  PREFIX: string\n  STRUCT_FIELD_NAME: string = 'data'\n  GENERATE_CLIENT = false\n  GENERATE_ON_ENTRY = true\n  PAYLOAD_OPTIONAL = false\n\n  abstract fetchModules(account: string, network: NetworkType): Promise<ModuleTypes>\n  abstract toInternalModules(modules: ModuleTypes): InternalMoveModule[]\n  // Get the structs that represent Events\n  abstract getEventStructs(module: InternalMoveModule): Map<string, InternalMoveStruct>\n  // Get the parameters that actually have arguments in runtime\n  // Aptos first signer and Sui's last TxContext are no use\n  abstract getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[]\n\n  readModulesFile(fullPath: string) {\n    return JSON.parse(fs.readFileSync(fullPath, 'utf-8'))\n  }\n\n  async generate(srcDir: string, outputDir: string): Promise<number> {\n    const num1 = await this.generateForNetwork(srcDir, outputDir, this.MAIN_NET)\n    const num2 = await this.generateForNetwork(\n      path.join(srcDir, 'testnet'),\n      path.join(outputDir, 'testnet'),\n      this.TEST_NET\n    )\n    return num1 + num2\n  }\n\n  async generateForNetwork(srcDir: string, outputDir: string, network: NetworkType) {\n    if (!fs.existsSync(srcDir)) {\n      return 0\n    }\n\n    const files = fs.readdirSync(srcDir)\n    outputDir = path.resolve(outputDir)\n    const outputs: OutputFile[] = []\n\n    fs.mkdirSync(outputDir, { recursive: true })\n\n    const loader = new AccountRegister()\n\n    // when generating user code, don't need to generate framework account\n    loader.accountImports.set('0x1', new AccountModulesImportInfo('0x1', '0x1'))\n    loader.accountImports.set('0x2', new AccountModulesImportInfo('0x2', '0x2'))\n    loader.accountImports.set('0x3', new AccountModulesImportInfo('0x3', '0x3'))\n    // const client = getRpcClient(network)\n\n    for (const file of files) {\n      if (!file.endsWith('.json')) {\n        continue\n      }\n      const fullPath = path.resolve(srcDir, file)\n      const abi = this.readModulesFile(fullPath)\n      const modules = this.toInternalModules(abi)\n\n      for (const module of modules) {\n        loader.register(module, path.basename(file, '.json'))\n      }\n      const codeGen = new AccountCodegen(this, loader, abi, modules, {\n        fileName: path.basename(file, '.json'),\n        outputDir: outputDir,\n        network,\n      })\n\n      outputs.push(...codeGen.generate())\n    }\n\n    while (loader.pendingAccounts.size > 0) {\n      for (const account of loader.pendingAccounts) {\n        console.log(`download dependent module for account ${account} at ${network}`)\n\n        try {\n          const rawModules = await this.fetchModules(account, network)\n          const modules = this.toInternalModules(rawModules)\n\n          fs.writeFileSync(path.resolve(srcDir, account + '.json'), JSON.stringify(rawModules, null, '\\t'))\n          for (const module of modules) {\n            loader.register(module, account)\n          }\n          const codeGen = new AccountCodegen(this, loader, rawModules, modules, {\n            fileName: account,\n            outputDir: outputDir,\n            network,\n          })\n\n          outputs.push(...codeGen.generate())\n        } catch (e) {\n          console.error(\n            chalk.red(\n              'Error downloading account module, check if you choose the right network,or download account modules manually into your director'\n            )\n          )\n          console.error(e)\n          process.exit(1)\n        }\n      }\n    }\n\n    for (const output of outputs) {\n      // const content = output.fileContent\n      const content = format(output.fileContent, { parser: 'typescript' })\n      fs.writeFileSync(path.join(outputDir, output.fileName), content)\n    }\n\n    const rootFile = path.join(outputDir, 'index.ts')\n    fs.writeFileSync(\n      rootFile,\n      `/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n`\n    )\n    for (const output of outputs) {\n      const parsed = path.parse(output.fileName)\n      const content = `export * as _${parsed.name.replaceAll('-', '_')} from './${parsed.name}.js'\\n`\n      fs.appendFileSync(rootFile, content)\n    }\n    return outputs.length + 1\n  }\n\n  generateNetworkOption(network: NetworkType) {\n    switch (network) {\n      case this.TEST_NET:\n        return 'TEST_NET'\n    }\n    return 'MAIN_NET'\n  }\n\n  generateModule(module: InternalMoveModule, network: NetworkType) {\n    const functions = this.GENERATE_ON_ENTRY\n      ? module.exposedFunctions.map((f) => this.generateOnEntryFunctions(module, f)).filter((s) => s !== '')\n      : []\n    const clientFunctions = this.GENERATE_CLIENT\n      ? module.exposedFunctions.map((f) => this.generateClientFunctions(module, f)).filter((s) => s !== '')\n      : []\n    const eventStructs = this.getEventStructs(module)\n    const eventTypes = new Set(eventStructs.keys())\n    const events = Array.from(eventStructs.values())\n      .map((e) => this.generateOnEvents(module, e))\n      .filter((s) => s !== '')\n    const structs = module.structs.map((s) => this.generateStructs(module, s, eventTypes))\n    const callArgs = module.exposedFunctions.map((f) => this.generateCallArgsStructs(module, f))\n\n    const moduleName = normalizeToJSName(module.name)\n    let processor = ''\n    let client = ''\n\n    if (clientFunctions.length > 0) {\n      client = `\n      export class ${moduleName}_client extends ModuleClient {\n        ${clientFunctions.join('\\n')}\n      }\n      `\n    }\n\n    if (functions.length > 0 || events.length > 0) {\n      processor = `export class ${moduleName} extends ${this.PREFIX}BaseProcessor {\n\n    constructor(options: ${this.PREFIX}BindOptions) {\n      super(\"${module.name}\", options)\n    }\n    static DEFAULT_OPTIONS: ${this.PREFIX}BindOptions = {\n      address: \"${module.address}\",\n      network: ${this.PREFIX}Network.${this.generateNetworkOption(network)}\n    }\n\n    static bind(options: Partial<${this.PREFIX}BindOptions> = {}): ${moduleName} {\n      return new ${moduleName}({ ...${moduleName}.DEFAULT_OPTIONS, ...options })\n    }\n\n    ${functions.join('\\n')}\n\n    ${events.join('\\n')}\n  }\n  `\n    }\n\n    return `\n  ${client}\n\n  ${processor}\n\n  export namespace ${moduleName} {\n    ${structs.join('\\n')}\n\n    ${callArgs.join('\\n')}\n }\n  `\n  }\n\n  generateStructs(module: InternalMoveModule, struct: InternalMoveStruct, events: Set<string>) {\n    const genericString = this.generateStructTypeParameters(struct)\n    const genericStringAny = this.generateStructTypeParameters(struct, true)\n\n    const structName = normalizeToJSName(struct.name)\n\n    const fields = struct.fields.map((field) => {\n      const type = this.generateTypeForDescriptor(field.type, module.address)\n      return `${field.name}: ${type}`\n    })\n\n    let eventPayload = ''\n    if (events.has(moduleQname(module) + SPLITTER + struct.name)) {\n      eventPayload = `\n    export interface ${structName}Instance extends\n        TypedEventInstance<${structName}${genericStringAny}> {\n      ${this.STRUCT_FIELD_NAME}_decoded: ${structName}${genericStringAny}\n      type_arguments: [${struct.typeParams.map((_) => 'string').join(', ')}]\n    }\n    `\n    }\n\n    return `\n  export class ${structName}${genericString} {\n    static TYPE_QNAME = '${module.address}::${module.name}::${struct.name}'\n    ${fields.join('\\n')}\n  }\n\n  ${eventPayload}\n  `\n  }\n\n  generateFunctionTypeParameters(func: InternalMoveFunction) {\n    let genericString = ''\n    if (func.typeParams && func.typeParams.length > 0) {\n      const params = func.typeParams\n        .map((v, idx) => {\n          return `T${idx}=any`\n        })\n        .join(',')\n      genericString = `<${params}>`\n    }\n    return genericString\n  }\n\n  generateStructTypeParameters(struct: InternalMoveStruct, useAny = false) {\n    let genericString = ''\n\n    if (struct.typeParams && struct.typeParams.length > 0) {\n      const params = struct.typeParams\n        .map((v, idx) => {\n          return useAny ? 'any' : 'T' + idx\n        })\n        .join(',')\n      genericString = `<${params}>`\n    }\n    return genericString\n  }\n\n  generateCallArgsStructs(module: InternalMoveModule, func: InternalMoveFunction) {\n    if (!func.isEntry) {\n      return\n    }\n\n    const fields = this.getMeaningfulFunctionParams(func.params).map((param) => {\n      return this.generateTypeForDescriptor(param, module.address) + (this.PAYLOAD_OPTIONAL ? ' | undefined' : '')\n    })\n\n    const camelFuncName = upperFirst(camelCase(func.name))\n\n    const genericString = this.generateFunctionTypeParameters(func)\n    return `\n  export interface ${camelFuncName}Payload${genericString}\n      extends TypedFunctionPayload<[${fields.join(',')}]> {\n    arguments_decoded: [${fields.join(',')}],\n    type_arguments: [${func.typeParams.map((_) => 'string').join(', ')}]\n  }\n  `\n  }\n\n  generateClientFunctions(module: InternalMoveModule, func: InternalMoveFunction) {\n    if (func.visibility === InternalMoveFunctionVisibility.PRIVATE) {\n      return ''\n    }\n    if (func.isEntry) {\n      return ''\n    }\n    // const moduleName = normalizeToJSName(module.name)\n    const funcName = camelCase(func.name)\n    const fields = this.getMeaningfulFunctionParams(func.params).map((param) => {\n      return this.generateTypeForDescriptor(param, module.address)\n    })\n    const genericString = this.generateFunctionTypeParameters(func)\n\n    const returns = func.return.map((param) => {\n      return this.generateTypeForDescriptor(param, module.address)\n    })\n\n    const source = `\n  ${funcName}${genericString}(type_arguments: [${func.typeParams\n      .map((_) => 'string')\n      .join(', ')}], args: [${fields.join(',')}], version?: bigint): Promise<[${returns.join(',')}]> {\n    return this.viewDecoded('${module.address}::${module.name}::${func.name}', type_arguments, args, version) as any\n  }`\n    return source\n  }\n\n  generateOnEntryFunctions(module: InternalMoveModule, func: InternalMoveFunction) {\n    if (!func.isEntry) {\n      return ''\n    }\n\n    // const genericString = generateFunctionTypeParameters(func)\n    const moduleName = normalizeToJSName(module.name)\n\n    const camelFuncName = upperFirst(camelCase(func.name))\n    const source = `\n  onEntry${camelFuncName}(func: (call: ${moduleName}.${camelFuncName}Payload, ctx: ${this.PREFIX}Context) => void, filter?: CallFilter, fetchConfig?: MoveFetchConfig): ${moduleName} {\n    this.onEntryFunctionCall(func, {\n      ...filter,\n      function: '${module.name}::${func.name}'\n    },\n    fetchConfig)\n    return this\n  }`\n\n    return source\n  }\n\n  generateOnEvents(module: InternalMoveModule, struct: InternalMoveStruct): string {\n    // for struct that has drop + store\n    // if (!isEvent(struct, module)) {\n    //   return ''\n    // }\n\n    // const genericString = generateStructTypeParameters(struct)\n\n    const moduleName = normalizeToJSName(module.name)\n    const source = `\n  onEvent${struct.name}(func: (event: ${moduleName}.${normalizeToJSName(struct.name)}Instance, ctx: ${\n      this.PREFIX\n    }Context) => void, fetchConfig?: MoveFetchConfig): ${moduleName} {\n    this.onMoveEvent(func, {\n      type: '${module.name}::${struct.name}'\n    },\n    fetchConfig)\n    return this\n  }\n  `\n    return source\n  }\n\n  generateTypeForDescriptor(type: TypeDescriptor, currentAddress: string): string {\n    if (type.reference) {\n      return this.ADDRESS_TYPE\n    }\n\n    switch (type.qname) {\n      case 'signer': // TODO check this\n      case 'address':\n      case 'Address':\n        return this.ADDRESS_TYPE\n      case '0x1::string::String':\n        return 'string'\n      case 'bool':\n      case 'Bool':\n        return 'Boolean'\n      case 'u8':\n      case 'U8':\n      case 'u16':\n      case 'U16':\n      case 'u32':\n      case 'U32':\n        return 'number'\n      case 'u64':\n      case 'U64':\n      case 'u128':\n      case 'U128':\n      case 'u256':\n      case 'U256':\n        return 'bigint'\n    }\n\n    if (type.qname.toLowerCase() === VECTOR_STR) {\n      // vector<u8> as hex string\n      const elementTypeQname = type.typeArgs[0].qname\n      if (elementTypeQname === 'u8') {\n        // only for aptos\n        return 'string'\n      }\n      if (elementTypeQname.startsWith('T') && !elementTypeQname.includes(SPLITTER)) {\n        return `${elementTypeQname}[] | string`\n      }\n      return this.generateTypeForDescriptor(type.typeArgs[0], currentAddress) + '[]'\n    }\n\n    const simpleName = this.generateSimpleType(type.qname, currentAddress)\n    if (simpleName.length === 0) {\n      console.error('unexpected error')\n    }\n    if (simpleName.toLowerCase() === VECTOR_STR || simpleName.toLowerCase().startsWith(VECTOR_STR + SPLITTER)) {\n      console.error('unexpected vector type error')\n    }\n    if (type.typeArgs.length > 0) {\n      // return simpleName\n      return (\n        simpleName + '<' + type.typeArgs.map((t) => this.generateTypeForDescriptor(t, currentAddress)).join(',') + '>'\n      )\n    }\n    return simpleName\n  }\n\n  generateSimpleType(type: string, currentAddress: string): string {\n    const parts = type.split(SPLITTER)\n\n    for (let i = 0; i < parts.length; i++) {\n      parts[i] = normalizeToJSName(parts[i])\n    }\n\n    if (parts.length < 2) {\n      return parts[0]\n    }\n    if (parts[0] === currentAddress) {\n      return parts.slice(1).join('.')\n    }\n    return '_' + parts.join('.')\n  }\n}\n\nexport class AccountCodegen<ModuleType, NetworkType> {\n  modules: InternalMoveModule[]\n  config: Config<NetworkType>\n  abi: ModuleType\n  loader: AccountRegister\n  moduleGen: AbstractCodegen<ModuleType, NetworkType>\n\n  constructor(\n    moduleGen: AbstractCodegen<ModuleType, NetworkType>,\n    loader: AccountRegister,\n    abi: ModuleType,\n    modules: InternalMoveModule[],\n    config: Config<NetworkType>\n  ) {\n    // const json = fs.readFileSync(config.srcFile, 'utf-8')\n    this.moduleGen = moduleGen\n    this.abi = abi\n    this.modules = modules\n    this.config = config\n    this.loader = loader\n  }\n\n  generate(): OutputFile[] {\n    if (!this.modules) {\n      return []\n    }\n    // const baseName = path.basename(this.config.fileName, '.json')\n\n    let address: string | undefined\n    for (const module of this.modules) {\n      address = module.address\n    }\n    if (!address) {\n      return []\n    }\n\n    const imports = `\n    import { CallFilter } from \"@sentio/sdk/move\"\n    import {\n      MoveCoder, defaultMoveCoder, ${this.moduleGen.PREFIX}BindOptions, ${this.moduleGen.PREFIX}BaseProcessor,\n      TypedEventInstance, ${this.moduleGen.PREFIX}Network, TypedFunctionPayload,\n      ${this.moduleGen.PREFIX}Context } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}\"\n    import { MoveFetchConfig } from \"@sentio/protos\"\n    import { ${this.moduleGen.ADDRESS_TYPE}, ModuleClient } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}\"\n    `\n\n    const dependedAccounts: string[] = []\n\n    const moduleImports: string[] = []\n\n    const info = this.loader.accountImports.get(address)\n\n    if (info) {\n      for (const [account] of info.imports.entries()) {\n        // Remap to user's filename if possible, TODO codepath not well tested\n        const tsAccountModule = './' + (this.loader.accountImports.get(account)?.moduleName || account)\n        if (isFrameworkAccount(account) && !isFrameworkAccount(address)) {\n          // Decide where to find runtime library\n          moduleImports.push(`import { _${account} } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}/builtin\"`)\n        } else {\n          moduleImports.push(`import * as _${account} from \"${tsAccountModule}.js\"`)\n        }\n\n        dependedAccounts.push(account)\n      }\n    }\n\n    const source = `\n    /* Autogenerated file. Do not edit manually. */\n    /* tslint:disable */\n    /* eslint-disable */\n\n    /* Generated modules for account ${address} */\n\n    ${imports}\n\n    ${moduleImports.join('\\n')}\n\n    ${this.modules.map((m) => this.moduleGen.generateModule(m, this.config.network)).join('\\n')}\n\n    const MODULES = JSON.parse('${JSON.stringify(this.abi)}')\n\n    export function loadAllTypes(coder: MoveCoder) {\n      ${dependedAccounts.map((a) => `_${a}.loadAllTypes(coder)`).join('\\n')}\n      for (const m of Object.values(MODULES)) {\n        coder.load(m as any)\n      }\n    }\n\n    loadAllTypes(defaultMoveCoder())\n    ` // source\n\n    return [\n      {\n        fileName: this.config.fileName + '.ts',\n        fileContent: source,\n      },\n    ]\n  }\n}\n"]}
         
     | 
    
        package/lib/sui/builtin/0x2.d.ts
    CHANGED
    
    | 
         @@ -94,32 +94,52 @@ export declare namespace coin { 
     | 
|
| 
       94 
94 
     | 
    
         
             
                    id: object_.UID;
         
     | 
| 
       95 
95 
     | 
    
         
             
                    total_supply: balance.Supply<T0>;
         
     | 
| 
       96 
96 
     | 
    
         
             
                }
         
     | 
| 
       97 
     | 
    
         
            -
                interface BurnPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress]> {
         
     | 
| 
       98 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress];
         
     | 
| 
      
 97 
     | 
    
         
            +
                interface BurnPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined]> {
         
     | 
| 
      
 98 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined];
         
     | 
| 
       99 
99 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       100 
100 
     | 
    
         
             
                }
         
     | 
| 
       101 
     | 
    
         
            -
                interface JoinPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress]> {
         
     | 
| 
       102 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress];
         
     | 
| 
      
 101 
     | 
    
         
            +
                interface JoinPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined]> {
         
     | 
| 
      
 102 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined];
         
     | 
| 
       103 
103 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       104 
104 
     | 
    
         
             
                }
         
     | 
| 
       105 
     | 
    
         
            -
                interface MintAndTransferPayload<T0 = any> extends TypedFunctionPayload<[ 
     | 
| 
       106 
     | 
    
         
            -
                     
     | 
| 
      
 105 
     | 
    
         
            +
                interface MintAndTransferPayload<T0 = any> extends TypedFunctionPayload<[
         
     | 
| 
      
 106 
     | 
    
         
            +
                    SuiAddress | undefined,
         
     | 
| 
      
 107 
     | 
    
         
            +
                    bigint | undefined,
         
     | 
| 
      
 108 
     | 
    
         
            +
                    SuiAddress | undefined
         
     | 
| 
      
 109 
     | 
    
         
            +
                ]> {
         
     | 
| 
      
 110 
     | 
    
         
            +
                    arguments_decoded: [
         
     | 
| 
      
 111 
     | 
    
         
            +
                        SuiAddress | undefined,
         
     | 
| 
      
 112 
     | 
    
         
            +
                        bigint | undefined,
         
     | 
| 
      
 113 
     | 
    
         
            +
                        SuiAddress | undefined
         
     | 
| 
      
 114 
     | 
    
         
            +
                    ];
         
     | 
| 
       107 
115 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       108 
116 
     | 
    
         
             
                }
         
     | 
| 
       109 
     | 
    
         
            -
                interface UpdateDescriptionPayload<T0 = any> extends TypedFunctionPayload<[ 
     | 
| 
       110 
     | 
    
         
            -
                     
     | 
| 
      
 117 
     | 
    
         
            +
                interface UpdateDescriptionPayload<T0 = any> extends TypedFunctionPayload<[
         
     | 
| 
      
 118 
     | 
    
         
            +
                    SuiAddress | undefined,
         
     | 
| 
      
 119 
     | 
    
         
            +
                    SuiAddress | undefined
         
     | 
| 
      
 120 
     | 
    
         
            +
                ]> {
         
     | 
| 
      
 121 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, SuiAddress | undefined];
         
     | 
| 
       111 
122 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       112 
123 
     | 
    
         
             
                }
         
     | 
| 
       113 
     | 
    
         
            -
                interface UpdateIconUrlPayload<T0 = any> extends TypedFunctionPayload<[ 
     | 
| 
       114 
     | 
    
         
            -
                     
     | 
| 
      
 124 
     | 
    
         
            +
                interface UpdateIconUrlPayload<T0 = any> extends TypedFunctionPayload<[
         
     | 
| 
      
 125 
     | 
    
         
            +
                    SuiAddress | undefined,
         
     | 
| 
      
 126 
     | 
    
         
            +
                    SuiAddress | undefined
         
     | 
| 
      
 127 
     | 
    
         
            +
                ]> {
         
     | 
| 
      
 128 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, SuiAddress | undefined];
         
     | 
| 
       115 
129 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       116 
130 
     | 
    
         
             
                }
         
     | 
| 
       117 
     | 
    
         
            -
                interface UpdateNamePayload<T0 = any> extends TypedFunctionPayload<[ 
     | 
| 
       118 
     | 
    
         
            -
                     
     | 
| 
      
 131 
     | 
    
         
            +
                interface UpdateNamePayload<T0 = any> extends TypedFunctionPayload<[
         
     | 
| 
      
 132 
     | 
    
         
            +
                    SuiAddress | undefined,
         
     | 
| 
      
 133 
     | 
    
         
            +
                    SuiAddress | undefined
         
     | 
| 
      
 134 
     | 
    
         
            +
                ]> {
         
     | 
| 
      
 135 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, SuiAddress | undefined];
         
     | 
| 
       119 
136 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       120 
137 
     | 
    
         
             
                }
         
     | 
| 
       121 
     | 
    
         
            -
                interface UpdateSymbolPayload<T0 = any> extends TypedFunctionPayload<[ 
     | 
| 
       122 
     | 
    
         
            -
                     
     | 
| 
      
 138 
     | 
    
         
            +
                interface UpdateSymbolPayload<T0 = any> extends TypedFunctionPayload<[
         
     | 
| 
      
 139 
     | 
    
         
            +
                    SuiAddress | undefined,
         
     | 
| 
      
 140 
     | 
    
         
            +
                    SuiAddress | undefined
         
     | 
| 
      
 141 
     | 
    
         
            +
                ]> {
         
     | 
| 
      
 142 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, SuiAddress | undefined];
         
     | 
| 
       123 
143 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       124 
144 
     | 
    
         
             
                }
         
     | 
| 
       125 
145 
     | 
    
         
             
            }
         
     | 
| 
         @@ -161,24 +181,27 @@ export declare namespace display { 
     | 
|
| 
       161 
181 
     | 
    
         
             
                    fields_decoded: VersionUpdated<any>;
         
     | 
| 
       162 
182 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       163 
183 
     | 
    
         
             
                }
         
     | 
| 
       164 
     | 
    
         
            -
                interface AddPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress, string]> {
         
     | 
| 
       165 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress, string];
         
     | 
| 
      
 184 
     | 
    
         
            +
                interface AddPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined, string | undefined]> {
         
     | 
| 
      
 185 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, string | undefined];
         
     | 
| 
       166 
186 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       167 
187 
     | 
    
         
             
                }
         
     | 
| 
       168 
     | 
    
         
            -
                interface AddMultiplePayload<T0 = any> extends TypedFunctionPayload<[ 
     | 
| 
       169 
     | 
    
         
            -
                     
     | 
| 
      
 188 
     | 
    
         
            +
                interface AddMultiplePayload<T0 = any> extends TypedFunctionPayload<[
         
     | 
| 
      
 189 
     | 
    
         
            +
                    SuiAddress | undefined,
         
     | 
| 
      
 190 
     | 
    
         
            +
                    string[] | undefined
         
     | 
| 
      
 191 
     | 
    
         
            +
                ]> {
         
     | 
| 
      
 192 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, string[] | undefined];
         
     | 
| 
       170 
193 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       171 
194 
     | 
    
         
             
                }
         
     | 
| 
       172 
     | 
    
         
            -
                interface CreateAndKeepPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress]> {
         
     | 
| 
       173 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress];
         
     | 
| 
      
 195 
     | 
    
         
            +
                interface CreateAndKeepPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined]> {
         
     | 
| 
      
 196 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined];
         
     | 
| 
       174 
197 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       175 
198 
     | 
    
         
             
                }
         
     | 
| 
       176 
     | 
    
         
            -
                interface EditPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress, string]> {
         
     | 
| 
       177 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress, string];
         
     | 
| 
      
 199 
     | 
    
         
            +
                interface EditPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined, string | undefined]> {
         
     | 
| 
      
 200 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, string | undefined];
         
     | 
| 
       178 
201 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       179 
202 
     | 
    
         
             
                }
         
     | 
| 
       180 
     | 
    
         
            -
                interface RemovePayload<T0 = any> extends TypedFunctionPayload<[SuiAddress]> {
         
     | 
| 
       181 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress];
         
     | 
| 
      
 203 
     | 
    
         
            +
                interface RemovePayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined]> {
         
     | 
| 
      
 204 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined];
         
     | 
| 
       182 
205 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       183 
206 
     | 
    
         
             
                }
         
     | 
| 
       184 
207 
     | 
    
         
             
                interface UpdateVersionPayload<T0 = any> extends TypedFunctionPayload<[]> {
         
     | 
| 
         @@ -427,32 +450,43 @@ export declare class pay extends SuiBaseProcessor { 
     | 
|
| 
       427 
450 
     | 
    
         
             
                onEntrySplitVec(func: (call: pay.SplitVecPayload, ctx: SuiContext) => void, filter?: CallFilter, fetchConfig?: MoveFetchConfig): pay;
         
     | 
| 
       428 
451 
     | 
    
         
             
            }
         
     | 
| 
       429 
452 
     | 
    
         
             
            export declare namespace pay {
         
     | 
| 
       430 
     | 
    
         
            -
                interface DivideAndKeepPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress, bigint]> {
         
     | 
| 
       431 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress, bigint];
         
     | 
| 
      
 453 
     | 
    
         
            +
                interface DivideAndKeepPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined, bigint | undefined]> {
         
     | 
| 
      
 454 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, bigint | undefined];
         
     | 
| 
       432 
455 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       433 
456 
     | 
    
         
             
                }
         
     | 
| 
       434 
     | 
    
         
            -
                interface JoinPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress]> {
         
     | 
| 
       435 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress];
         
     | 
| 
      
 457 
     | 
    
         
            +
                interface JoinPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined]> {
         
     | 
| 
      
 458 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined];
         
     | 
| 
       436 
459 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       437 
460 
     | 
    
         
             
                }
         
     | 
| 
       438 
     | 
    
         
            -
                interface JoinVecPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress]> {
         
     | 
| 
       439 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress];
         
     | 
| 
      
 461 
     | 
    
         
            +
                interface JoinVecPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined]> {
         
     | 
| 
      
 462 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined];
         
     | 
| 
       440 
463 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       441 
464 
     | 
    
         
             
                }
         
     | 
| 
       442 
     | 
    
         
            -
                interface JoinVecAndTransferPayload<T0 = any> extends TypedFunctionPayload<[coin.Coin<T0>[]]> {
         
     | 
| 
       443 
     | 
    
         
            -
                    arguments_decoded: [coin.Coin<T0>[]];
         
     | 
| 
      
 465 
     | 
    
         
            +
                interface JoinVecAndTransferPayload<T0 = any> extends TypedFunctionPayload<[coin.Coin<T0>[] | undefined]> {
         
     | 
| 
      
 466 
     | 
    
         
            +
                    arguments_decoded: [coin.Coin<T0>[] | undefined];
         
     | 
| 
       444 
467 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       445 
468 
     | 
    
         
             
                }
         
     | 
| 
       446 
     | 
    
         
            -
                interface SplitPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress, bigint]> {
         
     | 
| 
       447 
     | 
    
         
            -
                    arguments_decoded: [SuiAddress, bigint];
         
     | 
| 
      
 469 
     | 
    
         
            +
                interface SplitPayload<T0 = any> extends TypedFunctionPayload<[SuiAddress | undefined, bigint | undefined]> {
         
     | 
| 
      
 470 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, bigint | undefined];
         
     | 
| 
       448 
471 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       449 
472 
     | 
    
         
             
                }
         
     | 
| 
       450 
     | 
    
         
            -
                interface SplitAndTransferPayload<T0 = any> extends TypedFunctionPayload<[ 
     | 
| 
       451 
     | 
    
         
            -
                     
     | 
| 
      
 473 
     | 
    
         
            +
                interface SplitAndTransferPayload<T0 = any> extends TypedFunctionPayload<[
         
     | 
| 
      
 474 
     | 
    
         
            +
                    SuiAddress | undefined,
         
     | 
| 
      
 475 
     | 
    
         
            +
                    bigint | undefined,
         
     | 
| 
      
 476 
     | 
    
         
            +
                    SuiAddress | undefined
         
     | 
| 
      
 477 
     | 
    
         
            +
                ]> {
         
     | 
| 
      
 478 
     | 
    
         
            +
                    arguments_decoded: [
         
     | 
| 
      
 479 
     | 
    
         
            +
                        SuiAddress | undefined,
         
     | 
| 
      
 480 
     | 
    
         
            +
                        bigint | undefined,
         
     | 
| 
      
 481 
     | 
    
         
            +
                        SuiAddress | undefined
         
     | 
| 
      
 482 
     | 
    
         
            +
                    ];
         
     | 
| 
       452 
483 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       453 
484 
     | 
    
         
             
                }
         
     | 
| 
       454 
     | 
    
         
            -
                interface SplitVecPayload<T0 = any> extends TypedFunctionPayload<[ 
     | 
| 
       455 
     | 
    
         
            -
                     
     | 
| 
      
 485 
     | 
    
         
            +
                interface SplitVecPayload<T0 = any> extends TypedFunctionPayload<[
         
     | 
| 
      
 486 
     | 
    
         
            +
                    SuiAddress | undefined,
         
     | 
| 
      
 487 
     | 
    
         
            +
                    bigint[] | undefined
         
     | 
| 
      
 488 
     | 
    
         
            +
                ]> {
         
     | 
| 
      
 489 
     | 
    
         
            +
                    arguments_decoded: [SuiAddress | undefined, bigint[] | undefined];
         
     | 
| 
       456 
490 
     | 
    
         
             
                    type_arguments: [string];
         
     | 
| 
       457 
491 
     | 
    
         
             
                }
         
     | 
| 
       458 
492 
     | 
    
         
             
            }
         
     | 
| 
         @@ -479,8 +513,8 @@ export declare namespace sui { 
     | 
|
| 
       479 
513 
     | 
    
         
             
                    static TYPE_QNAME: string;
         
     | 
| 
       480 
514 
     | 
    
         
             
                    dummy_field: Boolean;
         
     | 
| 
       481 
515 
     | 
    
         
             
                }
         
     | 
| 
       482 
     | 
    
         
            -
                interface TransferPayload extends TypedFunctionPayload<[coin.Coin<sui.SUI>]> {
         
     | 
| 
       483 
     | 
    
         
            -
                    arguments_decoded: [coin.Coin<sui.SUI>];
         
     | 
| 
      
 516 
     | 
    
         
            +
                interface TransferPayload extends TypedFunctionPayload<[coin.Coin<sui.SUI> | undefined]> {
         
     | 
| 
      
 517 
     | 
    
         
            +
                    arguments_decoded: [coin.Coin<sui.SUI> | undefined];
         
     | 
| 
       484 
518 
     | 
    
         
             
                    type_arguments: [];
         
     | 
| 
       485 
519 
     | 
    
         
             
                }
         
     | 
| 
       486 
520 
     | 
    
         
             
            }
         
     |