@sentio/sdk 2.13.2-rc.3 → 2.13.2-rc.4

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.
@@ -34,12 +34,15 @@ class SuiCodegen extends AbstractCodegen {
34
34
  }
35
35
  generateStructs(module, struct, events) {
36
36
  switch (structQname(module, struct)) {
37
+ // TODO they should still have module code generated
38
+ case '0x1::ascii::Char':
39
+ case '0x1::ascii::String':
37
40
  case '0x2::object::ID':
38
41
  return `export type ${struct.name} = string`;
39
42
  case '0x2::coin::Coin':
40
43
  return `export type ${struct.name}<T> = string`;
41
44
  case '0x2::balance::Balance':
42
- return `export type ${struct.name}<T> = string`;
45
+ return `export type ${struct.name}<T> = bigint`;
43
46
  case '0x1::option::Option':
44
47
  return `export type Option<T> = T | undefined`;
45
48
  }
@@ -47,6 +50,8 @@ class SuiCodegen extends AbstractCodegen {
47
50
  }
48
51
  generateOnEvents(module, struct) {
49
52
  switch (structQname(module, struct)) {
53
+ case '0x1::ascii::Char':
54
+ case '0x1::ascii::String':
50
55
  case '0x2::object::ID':
51
56
  case '0x2::coin::Coin':
52
57
  case '0x1::option::Option':
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/sui/codegen/codegen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EACpC,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,KAAK;IAEf,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAM;KACP;IACD,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,QAAQ,UAAU,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAW,SAAQ,eAA8E;IACrG,YAAY,GAAG,YAAY,CAAA;IAC3B,0BAA0B;IAC1B,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAC9B,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAC9B,MAAM,GAAG,KAAK,CAAA;IACd,+BAA+B;IAC/B,2BAA2B;IAC3B,gBAAgB,GAAG,IAAI,CAAA;IAEvB;QACE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAA;SAClB;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,eAAe,CAAC,MAA0B,EAAE,MAA0B,EAAE,MAAmB;QACzF,QAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YACnC,KAAK,iBAAiB;gBACpB,OAAO,eAAe,MAAM,CAAC,IAAI,WAAW,CAAA;YAC9C,KAAK,iBAAiB;gBACpB,OAAO,eAAe,MAAM,CAAC,IAAI,cAAc,CAAA;YACjD,KAAK,uBAAuB;gBAC1B,OAAO,eAAe,MAAM,CAAC,IAAI,cAAc,CAAA;YACjD,KAAK,qBAAqB;gBACxB,OAAO,uCAAuC,CAAA;SACjD;QACD,OAAO,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;IAED,gBAAgB,CAAC,MAA0B,EAAE,MAA0B;QACrE,QAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YACnC,KAAK,iBAAiB,CAAC;YACvB,KAAK,iBAAiB,CAAC;YACvB,KAAK,qBAAqB,CAAC;YAC3B,KAAK,uBAAuB;gBAC1B,OAAO,EAAE,CAAA;SACZ;QACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;CACF","sourcesContent":["import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject } from '@mysten/sui.js'\n\nimport { SuiNetwork } from '../network.js'\nimport * as fs from 'fs'\nimport chalk from 'chalk'\nimport { InternalMoveModule, InternalMoveStruct } from '../../move/internal-models.js'\nimport { AbstractCodegen } from '../../move/abstract-codegen.js'\nimport { structQname } from '../../move/index.js'\nimport { join } from 'path'\nimport { SuiChainAdapter } from '../sui-chain-adapter.js'\n\nexport async function codegen(\n abisDir: string,\n outDir = join('src', 'types', 'sui'),\n genExample = false,\n builtin = false\n) {\n if (!fs.existsSync(abisDir)) {\n return\n }\n const gen = new SuiCodegen()\n const numFiles = await gen.generate(abisDir, outDir, builtin)\n console.log(chalk.green(`Generated ${numFiles} for Sui`))\n}\n\nclass SuiCodegen extends AbstractCodegen<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {\n ADDRESS_TYPE = 'SuiAddress'\n // ADDRESS_TYPE = 'string'\n MAIN_NET = SuiNetwork.MAIN_NET\n TEST_NET = SuiNetwork.TEST_NET\n PREFIX = 'Sui'\n // STRUCT_FIELD_NAME = 'fields'\n // GENERATE_ON_ENTRY = true\n PAYLOAD_OPTIONAL = true\n\n constructor() {\n super(new SuiChainAdapter())\n }\n\n readModulesFile(fullPath: string) {\n const res = super.readModulesFile(fullPath)\n if (res.result) {\n return res.result\n }\n return res\n }\n\n generateStructs(module: InternalMoveModule, struct: InternalMoveStruct, events: Set<string>): string {\n switch (structQname(module, struct)) {\n case '0x2::object::ID':\n return `export type ${struct.name} = string`\n case '0x2::coin::Coin':\n return `export type ${struct.name}<T> = string`\n case '0x2::balance::Balance':\n return `export type ${struct.name}<T> = string`\n case '0x1::option::Option':\n return `export type Option<T> = T | undefined`\n }\n return super.generateStructs(module, struct, events)\n }\n\n generateOnEvents(module: InternalMoveModule, struct: InternalMoveStruct): string {\n switch (structQname(module, struct)) {\n case '0x2::object::ID':\n case '0x2::coin::Coin':\n case '0x1::option::Option':\n case '0x2::balance::Balance':\n return ''\n }\n return super.generateOnEvents(module, struct)\n }\n}\n"]}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/sui/codegen/codegen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EACpC,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,KAAK;IAEf,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAM;KACP;IACD,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,QAAQ,UAAU,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAW,SAAQ,eAA8E;IACrG,YAAY,GAAG,YAAY,CAAA;IAC3B,0BAA0B;IAC1B,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAC9B,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAC9B,MAAM,GAAG,KAAK,CAAA;IACd,+BAA+B;IAC/B,2BAA2B;IAC3B,gBAAgB,GAAG,IAAI,CAAA;IAEvB;QACE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAA;SAClB;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,eAAe,CAAC,MAA0B,EAAE,MAA0B,EAAE,MAAmB;QACzF,QAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YACnC,oDAAoD;YACpD,KAAK,kBAAkB,CAAC;YACxB,KAAK,oBAAoB,CAAC;YAC1B,KAAK,iBAAiB;gBACpB,OAAO,eAAe,MAAM,CAAC,IAAI,WAAW,CAAA;YAC9C,KAAK,iBAAiB;gBACpB,OAAO,eAAe,MAAM,CAAC,IAAI,cAAc,CAAA;YACjD,KAAK,uBAAuB;gBAC1B,OAAO,eAAe,MAAM,CAAC,IAAI,cAAc,CAAA;YACjD,KAAK,qBAAqB;gBACxB,OAAO,uCAAuC,CAAA;SACjD;QACD,OAAO,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;IAED,gBAAgB,CAAC,MAA0B,EAAE,MAA0B;QACrE,QAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YACnC,KAAK,kBAAkB,CAAC;YACxB,KAAK,oBAAoB,CAAC;YAC1B,KAAK,iBAAiB,CAAC;YACvB,KAAK,iBAAiB,CAAC;YACvB,KAAK,qBAAqB,CAAC;YAC3B,KAAK,uBAAuB;gBAC1B,OAAO,EAAE,CAAA;SACZ;QACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;CACF","sourcesContent":["import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject } from '@mysten/sui.js'\n\nimport { SuiNetwork } from '../network.js'\nimport * as fs from 'fs'\nimport chalk from 'chalk'\nimport { InternalMoveModule, InternalMoveStruct } from '../../move/internal-models.js'\nimport { AbstractCodegen } from '../../move/abstract-codegen.js'\nimport { structQname } from '../../move/index.js'\nimport { join } from 'path'\nimport { SuiChainAdapter } from '../sui-chain-adapter.js'\n\nexport async function codegen(\n abisDir: string,\n outDir = join('src', 'types', 'sui'),\n genExample = false,\n builtin = false\n) {\n if (!fs.existsSync(abisDir)) {\n return\n }\n const gen = new SuiCodegen()\n const numFiles = await gen.generate(abisDir, outDir, builtin)\n console.log(chalk.green(`Generated ${numFiles} for Sui`))\n}\n\nclass SuiCodegen extends AbstractCodegen<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {\n ADDRESS_TYPE = 'SuiAddress'\n // ADDRESS_TYPE = 'string'\n MAIN_NET = SuiNetwork.MAIN_NET\n TEST_NET = SuiNetwork.TEST_NET\n PREFIX = 'Sui'\n // STRUCT_FIELD_NAME = 'fields'\n // GENERATE_ON_ENTRY = true\n PAYLOAD_OPTIONAL = true\n\n constructor() {\n super(new SuiChainAdapter())\n }\n\n readModulesFile(fullPath: string) {\n const res = super.readModulesFile(fullPath)\n if (res.result) {\n return res.result\n }\n return res\n }\n\n generateStructs(module: InternalMoveModule, struct: InternalMoveStruct, events: Set<string>): string {\n switch (structQname(module, struct)) {\n // TODO they should still have module code generated\n case '0x1::ascii::Char':\n case '0x1::ascii::String':\n case '0x2::object::ID':\n return `export type ${struct.name} = string`\n case '0x2::coin::Coin':\n return `export type ${struct.name}<T> = string`\n case '0x2::balance::Balance':\n return `export type ${struct.name}<T> = bigint`\n case '0x1::option::Option':\n return `export type Option<T> = T | undefined`\n }\n return super.generateStructs(module, struct, events)\n }\n\n generateOnEvents(module: InternalMoveModule, struct: InternalMoveStruct): string {\n switch (structQname(module, struct)) {\n case '0x1::ascii::Char':\n case '0x1::ascii::String':\n case '0x2::object::ID':\n case '0x2::coin::Coin':\n case '0x1::option::Option':\n case '0x2::balance::Balance':\n return ''\n }\n return super.generateOnEvents(module, struct)\n }\n}\n"]}
@@ -19,10 +19,13 @@ export class MoveCoder extends AbstractMoveCoder {
19
19
  }
20
20
  decode(data, type) {
21
21
  switch (type.qname) {
22
+ case '0x1::ascii::Char':
23
+ case '0x1::ascii::String':
22
24
  case '0x2::object::ID':
23
25
  case '0x2::coin::Coin':
24
- case '0x2::balance::Balance':
25
26
  return data;
27
+ case '0x2::balance::Balance':
28
+ return BigInt(data);
26
29
  case '0x1::option::Option':
27
30
  if (data === null) {
28
31
  return data;
@@ -1 +1 @@
1
- {"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/sui/move-coder.ts"],"names":[],"mappings":"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","sourcesContent":["import { TypedEventInstance, TypedFunctionPayload } from './models.js'\nimport { AbstractMoveCoder } from '../move/abstract-move-coder.js'\nimport { MoveCallSuiTransaction, SuiCallArg, SuiEvent, SuiMoveNormalizedModule, SuiMoveObject } from '@mysten/sui.js'\nimport { toInternalModule } from './move-types.js'\nimport { ANY_TYPE, DecodedStruct, parseMoveType, SPLITTER, TypeDescriptor } from '../move/index.js'\nimport { SuiNetwork } from './network.js'\nimport { SuiChainAdapter } from './sui-chain-adapter.js'\nimport { InternalMoveModule } from '../move/internal-models.js'\nimport { dynamic_field } from './builtin/0x2.js'\n\nexport class MoveCoder extends AbstractMoveCoder<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {\n constructor(network: SuiNetwork) {\n super(network)\n this.adapter = new SuiChainAdapter()\n }\n\n load(module: SuiMoveNormalizedModule): InternalMoveModule {\n let m = this.moduleMapping.get(module.address + '::' + module.name)\n if (m) {\n return m\n }\n m = toInternalModule(module)\n this.loadInternal(m)\n return m\n }\n\n decode(data: any, type: TypeDescriptor): any {\n switch (type.qname) {\n case '0x2::object::ID':\n case '0x2::coin::Coin':\n case '0x2::balance::Balance':\n return data\n case '0x1::option::Option':\n if (data === null) {\n return data\n }\n return this.decode(data, type.typeArgs[0])\n default:\n return super.decode(data, type)\n }\n }\n\n decodeEvent<T>(event: SuiEvent): Promise<TypedEventInstance<T> | undefined> {\n return this.decodedStruct(event)\n }\n filterAndDecodeEvents<T>(type: TypeDescriptor<T> | string, resources: SuiEvent[]): Promise<TypedEventInstance<T>[]> {\n if (typeof type === 'string') {\n type = parseMoveType(type)\n }\n return this.filterAndDecodeStruct(type, resources)\n }\n\n async getDynamicFields<T1, T2>(\n objects: SuiMoveObject[],\n keyType: TypeDescriptor<T1> = ANY_TYPE,\n valueType: TypeDescriptor<T2> = ANY_TYPE\n ): Promise<dynamic_field.Field<T1, T2>[]> {\n // const type = dynamic_field.Field.TYPE\n // Not using the code above to avoid cycle initialize failed\n const type = new TypeDescriptor<dynamic_field.Field<T1, T2>>('0x2::dynamic_field::Field')\n type.typeArgs = [keyType, valueType]\n const res = await this.filterAndDecodeObjects(type, objects)\n return res.map((o) => o.data_decoded)\n }\n\n filterAndDecodeObjects<T>(\n type: TypeDescriptor<T>,\n objects: SuiMoveObject[]\n ): Promise<DecodedStruct<SuiMoveObject, T>[]> {\n return this.filterAndDecodeStruct(type, objects)\n }\n\n async decodeFunctionPayload(payload: MoveCallSuiTransaction, inputs: SuiCallArg[]): Promise<MoveCallSuiTransaction> {\n const functionType = [payload.package, payload.module, payload.function].join(SPLITTER)\n const func = await this.getMoveFunction(functionType)\n const params = this.adapter.getMeaningfulFunctionParams(func.params)\n const args = []\n for (const value of payload.arguments || []) {\n const argValue = value as any\n if ('Input' in (argValue as any)) {\n const idx = argValue.Input\n const arg = inputs[idx]\n if (arg.type === 'pure') {\n args.push(arg.value)\n } else if (arg.type === 'object') {\n args.push(arg.objectId)\n } else {\n console.error('unexpected function arg value')\n args.push(undefined)\n }\n // args.push(arg) // TODO check why ts not work using arg.push(arg)\n } else {\n args.push(undefined)\n }\n }\n\n const argumentsTyped = await this.decodeArray(args, params)\n return {\n ...payload,\n arguments_decoded: argumentsTyped,\n } as TypedFunctionPayload<any>\n }\n}\n\nconst MOVE_CODER = new MoveCoder(SuiNetwork.MAIN_NET)\nconst TESTNET_MOVE_CODER = new MoveCoder(SuiNetwork.TEST_NET)\n\nexport function defaultMoveCoder(network: SuiNetwork = SuiNetwork.MAIN_NET): MoveCoder {\n if (network == SuiNetwork.MAIN_NET) {\n return MOVE_CODER\n }\n return TESTNET_MOVE_CODER\n}\n"]}
1
+ {"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/sui/move-coder.ts"],"names":[],"mappings":"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","sourcesContent":["import { TypedEventInstance, TypedFunctionPayload } from './models.js'\nimport { AbstractMoveCoder } from '../move/abstract-move-coder.js'\nimport { MoveCallSuiTransaction, SuiCallArg, SuiEvent, SuiMoveNormalizedModule, SuiMoveObject } from '@mysten/sui.js'\nimport { toInternalModule } from './move-types.js'\nimport { ANY_TYPE, DecodedStruct, parseMoveType, SPLITTER, TypeDescriptor } from '../move/index.js'\nimport { SuiNetwork } from './network.js'\nimport { SuiChainAdapter } from './sui-chain-adapter.js'\nimport { InternalMoveModule } from '../move/internal-models.js'\nimport { dynamic_field } from './builtin/0x2.js'\n\nexport class MoveCoder extends AbstractMoveCoder<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {\n constructor(network: SuiNetwork) {\n super(network)\n this.adapter = new SuiChainAdapter()\n }\n\n load(module: SuiMoveNormalizedModule): InternalMoveModule {\n let m = this.moduleMapping.get(module.address + '::' + module.name)\n if (m) {\n return m\n }\n m = toInternalModule(module)\n this.loadInternal(m)\n return m\n }\n\n decode(data: any, type: TypeDescriptor): any {\n switch (type.qname) {\n case '0x1::ascii::Char':\n case '0x1::ascii::String':\n case '0x2::object::ID':\n case '0x2::coin::Coin':\n return data\n case '0x2::balance::Balance':\n return BigInt(data)\n case '0x1::option::Option':\n if (data === null) {\n return data\n }\n return this.decode(data, type.typeArgs[0])\n default:\n return super.decode(data, type)\n }\n }\n\n decodeEvent<T>(event: SuiEvent): Promise<TypedEventInstance<T> | undefined> {\n return this.decodedStruct(event)\n }\n filterAndDecodeEvents<T>(type: TypeDescriptor<T> | string, resources: SuiEvent[]): Promise<TypedEventInstance<T>[]> {\n if (typeof type === 'string') {\n type = parseMoveType(type)\n }\n return this.filterAndDecodeStruct(type, resources)\n }\n\n async getDynamicFields<T1, T2>(\n objects: SuiMoveObject[],\n keyType: TypeDescriptor<T1> = ANY_TYPE,\n valueType: TypeDescriptor<T2> = ANY_TYPE\n ): Promise<dynamic_field.Field<T1, T2>[]> {\n // const type = dynamic_field.Field.TYPE\n // Not using the code above to avoid cycle initialize failed\n const type = new TypeDescriptor<dynamic_field.Field<T1, T2>>('0x2::dynamic_field::Field')\n type.typeArgs = [keyType, valueType]\n const res = await this.filterAndDecodeObjects(type, objects)\n return res.map((o) => o.data_decoded)\n }\n\n filterAndDecodeObjects<T>(\n type: TypeDescriptor<T>,\n objects: SuiMoveObject[]\n ): Promise<DecodedStruct<SuiMoveObject, T>[]> {\n return this.filterAndDecodeStruct(type, objects)\n }\n\n async decodeFunctionPayload(payload: MoveCallSuiTransaction, inputs: SuiCallArg[]): Promise<MoveCallSuiTransaction> {\n const functionType = [payload.package, payload.module, payload.function].join(SPLITTER)\n const func = await this.getMoveFunction(functionType)\n const params = this.adapter.getMeaningfulFunctionParams(func.params)\n const args = []\n for (const value of payload.arguments || []) {\n const argValue = value as any\n if ('Input' in (argValue as any)) {\n const idx = argValue.Input\n const arg = inputs[idx]\n if (arg.type === 'pure') {\n args.push(arg.value)\n } else if (arg.type === 'object') {\n args.push(arg.objectId)\n } else {\n console.error('unexpected function arg value')\n args.push(undefined)\n }\n // args.push(arg) // TODO check why ts not work using arg.push(arg)\n } else {\n args.push(undefined)\n }\n }\n\n const argumentsTyped = await this.decodeArray(args, params)\n return {\n ...payload,\n arguments_decoded: argumentsTyped,\n } as TypedFunctionPayload<any>\n }\n}\n\nconst MOVE_CODER = new MoveCoder(SuiNetwork.MAIN_NET)\nconst TESTNET_MOVE_CODER = new MoveCoder(SuiNetwork.TEST_NET)\n\nexport function defaultMoveCoder(network: SuiNetwork = SuiNetwork.MAIN_NET): MoveCoder {\n if (network == SuiNetwork.MAIN_NET) {\n return MOVE_CODER\n }\n return TESTNET_MOVE_CODER\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
3
  "license": "Apache-2.0",
4
- "version": "2.13.2-rc.3",
4
+ "version": "2.13.2-rc.4",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "compile": "tsc && cp src/utils/*.csv lib/utils && cp src/tsup.config.ts lib",
@@ -23,8 +23,8 @@
23
23
  "@project-serum/anchor": "^0.26.0",
24
24
  "@sentio/bigdecimal": "^9.1.1-patch.3",
25
25
  "@sentio/ethers-v6": "^1.0.28",
26
- "@sentio/protos": "^2.13.2-rc.3",
27
- "@sentio/runtime": "^2.13.2-rc.3",
26
+ "@sentio/protos": "^2.13.2-rc.4",
27
+ "@sentio/runtime": "^2.13.2-rc.4",
28
28
  "@solana/web3.js": "^1.74.0",
29
29
  "@types/prettier": "^2.7.2",
30
30
  "aptos-sdk": "npm:aptos@^1.8.3",
@@ -88,5 +88,5 @@
88
88
  "engines": {
89
89
  "node": ">=16"
90
90
  },
91
- "gitHead": "a00b873a5a1a948f3aa828c198f4ad25e0c907c7"
91
+ "gitHead": "219e58354c9bc8276061e94dbf41d6de24003e15"
92
92
  }
@@ -20,86 +20,9 @@ import { SuiAddress, ModuleClient } from "@sentio/sdk/sui";
20
20
 
21
21
  export namespace address {}
22
22
 
23
- export class ascii extends SuiBaseProcessor {
24
- constructor(options: SuiBindOptions) {
25
- super("ascii", options);
26
- }
27
- static DEFAULT_OPTIONS: SuiBindOptions = {
28
- address: "0x1",
29
- network: SuiNetwork.MAIN_NET,
30
- };
31
-
32
- static bind(options: Partial<SuiBindOptions> = {}): ascii {
33
- return new ascii({ ...ascii.DEFAULT_OPTIONS, ...options });
34
- }
35
-
36
- onEventChar(
37
- func: (event: ascii.CharInstance, ctx: SuiContext) => void,
38
- fetchConfig?: Partial<MoveFetchConfig>
39
- ): ascii {
40
- this.onMoveEvent(
41
- func,
42
- {
43
- type: "ascii::Char",
44
- },
45
- fetchConfig
46
- );
47
- return this;
48
- }
49
-
50
- onEventString(
51
- func: (event: ascii.StringInstance, ctx: SuiContext) => void,
52
- fetchConfig?: Partial<MoveFetchConfig>
53
- ): ascii {
54
- this.onMoveEvent(
55
- func,
56
- {
57
- type: "ascii::String",
58
- },
59
- fetchConfig
60
- );
61
- return this;
62
- }
63
- }
64
-
65
23
  export namespace ascii {
66
- export interface Char {
67
- byte: number;
68
- }
69
-
70
- export namespace Char {
71
- export const TYPE_QNAME = "0x1::ascii::Char";
72
-
73
- const TYPE = new TypeDescriptor<Char>(Char.TYPE_QNAME);
74
-
75
- export function type(): TypeDescriptor<Char> {
76
- return TYPE.apply();
77
- }
78
- }
79
-
80
- export interface CharInstance extends TypedEventInstance<Char> {
81
- data_decoded: Char;
82
- type_arguments: [];
83
- }
84
-
85
- export interface String {
86
- bytes: number[];
87
- }
88
-
89
- export namespace String {
90
- export const TYPE_QNAME = "0x1::ascii::String";
91
-
92
- const TYPE = new TypeDescriptor<String>(String.TYPE_QNAME);
93
-
94
- export function type(): TypeDescriptor<String> {
95
- return TYPE.apply();
96
- }
97
- }
98
-
99
- export interface StringInstance extends TypedEventInstance<String> {
100
- data_decoded: String;
101
- type_arguments: [];
102
- }
24
+ export type Char = string;
25
+ export type String = string;
103
26
  }
104
27
 
105
28
  export namespace bcs {}
@@ -40,7 +40,7 @@ export namespace bag {
40
40
  }
41
41
 
42
42
  export namespace balance {
43
- export type Balance<T> = string;
43
+ export type Balance<T> = bigint;
44
44
 
45
45
  export interface Supply<T0> {
46
46
  value: bigint;
@@ -47,12 +47,15 @@ class SuiCodegen extends AbstractCodegen<SuiNetwork, SuiMoveNormalizedModule, Su
47
47
 
48
48
  generateStructs(module: InternalMoveModule, struct: InternalMoveStruct, events: Set<string>): string {
49
49
  switch (structQname(module, struct)) {
50
+ // TODO they should still have module code generated
51
+ case '0x1::ascii::Char':
52
+ case '0x1::ascii::String':
50
53
  case '0x2::object::ID':
51
54
  return `export type ${struct.name} = string`
52
55
  case '0x2::coin::Coin':
53
56
  return `export type ${struct.name}<T> = string`
54
57
  case '0x2::balance::Balance':
55
- return `export type ${struct.name}<T> = string`
58
+ return `export type ${struct.name}<T> = bigint`
56
59
  case '0x1::option::Option':
57
60
  return `export type Option<T> = T | undefined`
58
61
  }
@@ -61,6 +64,8 @@ class SuiCodegen extends AbstractCodegen<SuiNetwork, SuiMoveNormalizedModule, Su
61
64
 
62
65
  generateOnEvents(module: InternalMoveModule, struct: InternalMoveStruct): string {
63
66
  switch (structQname(module, struct)) {
67
+ case '0x1::ascii::Char':
68
+ case '0x1::ascii::String':
64
69
  case '0x2::object::ID':
65
70
  case '0x2::coin::Coin':
66
71
  case '0x1::option::Option':
@@ -26,10 +26,13 @@ export class MoveCoder extends AbstractMoveCoder<SuiNetwork, SuiMoveNormalizedMo
26
26
 
27
27
  decode(data: any, type: TypeDescriptor): any {
28
28
  switch (type.qname) {
29
+ case '0x1::ascii::Char':
30
+ case '0x1::ascii::String':
29
31
  case '0x2::object::ID':
30
32
  case '0x2::coin::Coin':
31
- case '0x2::balance::Balance':
32
33
  return data
34
+ case '0x2::balance::Balance':
35
+ return BigInt(data)
33
36
  case '0x1::option::Option':
34
37
  if (data === null) {
35
38
  return data